From f5134e312515d8fc882a80b69dbb24bb3b13f291 Mon Sep 17 00:00:00 2001 From: Alex Eyers-Taylor Date: Tue, 16 Sep 2025 17:20:44 +0100 Subject: [PATCH 001/263] Java: Eliminate pointless use of PathNodes over DataFlow::Node The use of PathNode prevents these from being overlay informed. --- java/ql/lib/experimental/quantum/JCA.qll | 40 ++++++++++-------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll index 108835c2c94..e2c03d69883 100644 --- a/java/ql/lib/experimental/quantum/JCA.qll +++ b/java/ql/lib/experimental/quantum/JCA.qll @@ -556,40 +556,32 @@ module JCAModel { module GetInstanceToInitToUseFlow = DataFlow::GlobalWithState; - GetInstance getInstantiationFromUse( - Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { - src.getNode().asExpr() = result and - sink.getNode().asExpr() = use.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + GetInstance getInstantiationFromUse(Use use, DataFlow::Node src, DataFlow::Node sink) { + src.asExpr() = result and + sink.asExpr() = use.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } - GetInstance getInstantiationFromInit( - Init init, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { - src.getNode().asExpr() = result and - sink.getNode().asExpr() = init.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + GetInstance getInstantiationFromInit(Init init, DataFlow::Node src, DataFlow::Node sink) { + src.asExpr() = result and + sink.asExpr() = init.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } - Init getInitFromUse( - Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { - src.getNode().asExpr() = result.(MethodCall).getQualifier() and - sink.getNode().asExpr() = use.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + Init getInitFromUse(Use use, DataFlow::Node src, DataFlow::Node sink) { + src.asExpr() = result.(MethodCall).getQualifier() and + sink.asExpr() = use.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } predicate hasInit(Use use) { exists(getInitFromUse(use, _, _)) } - Use getAnIntermediateUseFromFinalUse( - Use final, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink - ) { + Use getAnIntermediateUseFromFinalUse(Use final, DataFlow::Node src, DataFlow::Node sink) { not final.isIntermediate() and result.isIntermediate() and - src.getNode().asExpr() = result.(MethodCall).getQualifier() and - sink.getNode().asExpr() = final.(MethodCall).getQualifier() and - GetInstanceToInitToUseFlow::flowPath(src, sink) + src.asExpr() = result.(MethodCall).getQualifier() and + sink.asExpr() = final.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flow(src, sink) } } From f52f5b63e67fce53c64fd9e3b25a588d197fbcb5 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 10:30:58 +0100 Subject: [PATCH 002/263] JS: Add test with route.ts outside 'api' --- .../Security/CWE-079/ReflectedXss/app/blah/route.ts | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts new file mode 100644 index 00000000000..292accde9d7 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts @@ -0,0 +1,4 @@ +export async function GET(req: Request) { + const url = req.url; // $ MISSING: Source + return new Response(url, { headers: { "Content-Type": "text/html" } }); // $ MISSING: Alert +} From e54789d1bdf33d3200b380d373ce60a910d317c5 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 10:33:20 +0100 Subject: [PATCH 003/263] JS: Recognise route.ts outside api folder --- .../ql/lib/semmle/javascript/frameworks/Next.qll | 15 +++++++++++++-- .../CWE-079/ReflectedXss/ReflectedXss.expected | 6 ++++++ .../ReflectedXssWithCustomSanitizer.expected | 1 + .../CWE-079/ReflectedXss/app/blah/route.ts | 4 ++-- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll index a65fcdce44d..bdbc18d30f3 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll @@ -32,6 +32,12 @@ module NextJS { private Folder apiRoot() { result = [pagesRoot(), appRoot()].getFolder("api") } + private Folder appFolder() { + result = appRoot() + or + result = appFolder().getAFolder() + } + /** * Gets a "pages" folder in a `Next.js` application. * JavaScript files inside these folders are mapped to routes. @@ -300,8 +306,13 @@ module NextJS { class NextAppRouteHandler extends DataFlow::FunctionNode, Http::Servers::StandardRouteHandler { NextAppRouteHandler() { exists(Module mod | - mod.getFile().getParentContainer() = apiFolder() or - mod.getFile().getStem() = "middleware" + ( + mod.getFile().getParentContainer() = apiFolder() + or + mod.getFile().getStem() = "middleware" + or + mod.getFile().getStem() = "route" and mod.getFile().getParentContainer() = appFolder() + ) | this = mod.getAnExportedValue([any(Http::RequestMethodName m), "middleware"]).getAFunctionValue() diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected index b488018d09d..123ceaecf79 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected @@ -35,6 +35,7 @@ | app/api/routeNextRequest.ts:15:20:15:23 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:15:20:15:23 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:27:20:27:23 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:27:20:27:23 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:31:27:31:30 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:31:27:31:30 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | +| app/blah/route.ts:3:25:3:27 | url | app/blah/route.ts:2:17:2:23 | req.url | app/blah/route.ts:3:25:3:27 | url | Cross-site scripting vulnerability due to a $@. | app/blah/route.ts:2:17:2:23 | req.url | user-provided value | | app/pages/Next2.jsx:8:13:8:19 | req.url | app/pages/Next2.jsx:8:13:8:19 | req.url | app/pages/Next2.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/pages/Next2.jsx:8:13:8:19 | req.url | user-provided value | | app/pages/Next2.jsx:15:13:15:19 | req.url | app/pages/Next2.jsx:15:13:15:19 | req.url | app/pages/Next2.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/pages/Next2.jsx:15:13:15:19 | req.url | user-provided value | | etherpad.js:11:12:11:19 | response | etherpad.js:9:16:9:30 | req.query.jsonp | etherpad.js:11:12:11:19 | response | Cross-site scripting vulnerability due to a $@. | etherpad.js:9:16:9:30 | req.query.jsonp | user-provided value | @@ -154,6 +155,8 @@ edges | app/api/routeNextRequest.ts:4:9:4:12 | body | app/api/routeNextRequest.ts:31:27:31:30 | body | provenance | | | app/api/routeNextRequest.ts:4:16:4:31 | await req.json() | app/api/routeNextRequest.ts:4:9:4:12 | body | provenance | | | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:4:16:4:31 | await req.json() | provenance | | +| app/blah/route.ts:2:11:2:13 | url | app/blah/route.ts:3:25:3:27 | url | provenance | | +| app/blah/route.ts:2:17:2:23 | req.url | app/blah/route.ts:2:11:2:13 | url | provenance | | | etherpad.js:9:5:9:12 | response | etherpad.js:11:12:11:19 | response | provenance | | | etherpad.js:9:16:9:30 | req.query.jsonp | etherpad.js:9:5:9:12 | response | provenance | | | formatting.js:4:9:4:12 | evil | formatting.js:6:43:6:46 | evil | provenance | | @@ -367,6 +370,9 @@ nodes | app/api/routeNextRequest.ts:15:20:15:23 | body | semmle.label | body | | app/api/routeNextRequest.ts:27:20:27:23 | body | semmle.label | body | | app/api/routeNextRequest.ts:31:27:31:30 | body | semmle.label | body | +| app/blah/route.ts:2:11:2:13 | url | semmle.label | url | +| app/blah/route.ts:2:17:2:23 | req.url | semmle.label | req.url | +| app/blah/route.ts:3:25:3:27 | url | semmle.label | url | | app/pages/Next2.jsx:8:13:8:19 | req.url | semmle.label | req.url | | app/pages/Next2.jsx:15:13:15:19 | req.url | semmle.label | req.url | | etherpad.js:9:5:9:12 | response | semmle.label | response | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected index 2dceb5fa807..b130f70a22f 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected @@ -34,6 +34,7 @@ | app/api/routeNextRequest.ts:15:20:15:23 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:27:20:27:23 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:31:27:31:30 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | +| app/blah/route.ts:3:25:3:27 | url | Cross-site scripting vulnerability due to $@. | app/blah/route.ts:2:17:2:23 | req.url | user-provided value | | app/pages/Next2.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to $@. | app/pages/Next2.jsx:8:13:8:19 | req.url | user-provided value | | app/pages/Next2.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to $@. | app/pages/Next2.jsx:15:13:15:19 | req.url | user-provided value | | formatting.js:6:14:6:47 | util.fo ... , evil) | Cross-site scripting vulnerability due to $@. | formatting.js:4:16:4:29 | req.query.evil | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts index 292accde9d7..0410915513f 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/route.ts @@ -1,4 +1,4 @@ export async function GET(req: Request) { - const url = req.url; // $ MISSING: Source - return new Response(url, { headers: { "Content-Type": "text/html" } }); // $ MISSING: Alert + const url = req.url; // $ Source + return new Response(url, { headers: { "Content-Type": "text/html" } }); // $ Alert } From f0ecf1599c417da9996889cd5cff9721c4e4770c Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 10:49:12 +0100 Subject: [PATCH 004/263] JS: Add test with file named 'page' --- .../lib/semmle/javascript/frameworks/Next.qll | 16 ++++++++++------ .../ReflectedXss/ReflectedXss.expected | 4 ++++ .../ReflectedXssWithCustomSanitizer.expected | 2 ++ .../CWE-079/ReflectedXss/app/blah/page.jsx | 19 +++++++++++++++++++ 4 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/page.jsx diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll index bdbc18d30f3..8c826f90368 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll @@ -38,20 +38,24 @@ module NextJS { result = appFolder().getAFolder() } + private Folder pagesFolder() { + result = pagesRoot() + or + result = pagesFolder().getAFolder() + } + /** * Gets a "pages" folder in a `Next.js` application. * JavaScript files inside these folders are mapped to routes. */ - Folder getAPagesFolder() { - result = pagesRoot() - or - result = getAPagesFolder().getAFolder() - } + deprecated predicate getAPagesFolder = pagesFolder/0; /** * Gets a module corrosponding to a `Next.js` page. */ - Module getAPagesModule() { result.getFile().getParentContainer() = getAPagesFolder() } + Module getAPagesModule() { + result.getFile() = [pagesFolder().getAFile(), appFolder().getJavaScriptFile("page")] + } /** * Gets a module inside a "pages" folder where `fallback` from `getStaticPaths` is not set to false. diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected index 123ceaecf79..74c8de4686c 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected @@ -35,6 +35,8 @@ | app/api/routeNextRequest.ts:15:20:15:23 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:15:20:15:23 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:27:20:27:23 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:27:20:27:23 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:31:27:31:30 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:31:27:31:30 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | +| app/blah/page.jsx:10:13:10:19 | req.url | app/blah/page.jsx:10:13:10:19 | req.url | app/blah/page.jsx:10:13:10:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/blah/page.jsx:10:13:10:19 | req.url | user-provided value | +| app/blah/page.jsx:17:13:17:19 | req.url | app/blah/page.jsx:17:13:17:19 | req.url | app/blah/page.jsx:17:13:17:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/blah/page.jsx:17:13:17:19 | req.url | user-provided value | | app/blah/route.ts:3:25:3:27 | url | app/blah/route.ts:2:17:2:23 | req.url | app/blah/route.ts:3:25:3:27 | url | Cross-site scripting vulnerability due to a $@. | app/blah/route.ts:2:17:2:23 | req.url | user-provided value | | app/pages/Next2.jsx:8:13:8:19 | req.url | app/pages/Next2.jsx:8:13:8:19 | req.url | app/pages/Next2.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/pages/Next2.jsx:8:13:8:19 | req.url | user-provided value | | app/pages/Next2.jsx:15:13:15:19 | req.url | app/pages/Next2.jsx:15:13:15:19 | req.url | app/pages/Next2.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/pages/Next2.jsx:15:13:15:19 | req.url | user-provided value | @@ -370,6 +372,8 @@ nodes | app/api/routeNextRequest.ts:15:20:15:23 | body | semmle.label | body | | app/api/routeNextRequest.ts:27:20:27:23 | body | semmle.label | body | | app/api/routeNextRequest.ts:31:27:31:30 | body | semmle.label | body | +| app/blah/page.jsx:10:13:10:19 | req.url | semmle.label | req.url | +| app/blah/page.jsx:17:13:17:19 | req.url | semmle.label | req.url | | app/blah/route.ts:2:11:2:13 | url | semmle.label | url | | app/blah/route.ts:2:17:2:23 | req.url | semmle.label | req.url | | app/blah/route.ts:3:25:3:27 | url | semmle.label | url | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected index b130f70a22f..e55d11371cf 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected @@ -34,6 +34,8 @@ | app/api/routeNextRequest.ts:15:20:15:23 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:27:20:27:23 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:31:27:31:30 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | +| app/blah/page.jsx:10:13:10:19 | req.url | Cross-site scripting vulnerability due to $@. | app/blah/page.jsx:10:13:10:19 | req.url | user-provided value | +| app/blah/page.jsx:17:13:17:19 | req.url | Cross-site scripting vulnerability due to $@. | app/blah/page.jsx:17:13:17:19 | req.url | user-provided value | | app/blah/route.ts:3:25:3:27 | url | Cross-site scripting vulnerability due to $@. | app/blah/route.ts:2:17:2:23 | req.url | user-provided value | | app/pages/Next2.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to $@. | app/pages/Next2.jsx:8:13:8:19 | req.url | user-provided value | | app/pages/Next2.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to $@. | app/pages/Next2.jsx:15:13:15:19 | req.url | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/page.jsx b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/page.jsx new file mode 100644 index 00000000000..7df53280636 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/app/blah/page.jsx @@ -0,0 +1,19 @@ +export default function Page() { + return ; +} + +Page.getInitialProps = async (ctx) => { + const req = ctx.req; + const res = ctx.res; + res.end(req.url); // $ Alert + return {} +} + +export async function getServerSideProps(ctx) { + const req = ctx.req; + const res = ctx.res; + res.end(req.url); // $ Alert + return { + props: {} + } +} From f9033f2abd3bf25143adcdbfc1afc5ff746d5f80 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 11:16:40 +0100 Subject: [PATCH 005/263] JS: Look for special folders in root, even if 'src' exists --- .../ql/lib/semmle/javascript/frameworks/Next.qll | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll index 8c826f90368..9c661b7f91d 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll @@ -13,18 +13,9 @@ module NextJS { */ PackageJson getANextPackage() { result.getDependencies().getADependency("next", _) } - bindingset[base, name] - pragma[inline_late] - private Folder getOptionalFolder(Folder base, string name) { - result = base.getFolder(name) - or - not exists(base.getFolder(name)) and - result = base - } - private Folder packageRoot() { result = getANextPackage().getFile().getParentContainer() } - private Folder srcRoot() { result = getOptionalFolder(packageRoot(), "src") } + private Folder srcRoot() { result = [packageRoot(), packageRoot().getFolder("src")] } private Folder appRoot() { result = srcRoot().getFolder("app") } From 7848369f775c614a4dcfae4ddd94f0c07b9bce65 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 11:20:42 +0100 Subject: [PATCH 006/263] JS: Change note --- .../src/change-notes/2025-11-26-nextjs-page-route-files.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md diff --git a/javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md b/javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md new file mode 100644 index 00000000000..b1f87b63d31 --- /dev/null +++ b/javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Fixed a bug in the Next.js model that would cause the analysis to miss server-side taint sources in files + named `route` or `page` appearing outside `api` and `pages` folders. From 7bd19854076285130e8e1e9d49c4c9d83d5aabe8 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 11:22:08 +0100 Subject: [PATCH 007/263] JS: Add proxy as a route handler name --- javascript/ql/lib/semmle/javascript/frameworks/Next.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll index 9c661b7f91d..bd45d8c048f 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll @@ -310,7 +310,8 @@ module NextJS { ) | this = - mod.getAnExportedValue([any(Http::RequestMethodName m), "middleware"]).getAFunctionValue() + mod.getAnExportedValue([any(Http::RequestMethodName m), "middleware", "proxy"]) + .getAFunctionValue() ) } From 037f354abf376adce3e340e8eb2599642c8b3f22 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 11:42:39 +0100 Subject: [PATCH 008/263] JS: Update another expected file --- .../Security/CWE-079/ReflectedXss/ReflectedXss.expected | 8 ++++---- .../ReflectedXss/ReflectedXssWithCustomSanitizer.expected | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected index 74c8de4686c..c93f155b5d0 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected @@ -35,8 +35,8 @@ | app/api/routeNextRequest.ts:15:20:15:23 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:15:20:15:23 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:27:20:27:23 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:27:20:27:23 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:31:27:31:30 | body | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | app/api/routeNextRequest.ts:31:27:31:30 | body | Cross-site scripting vulnerability due to a $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | -| app/blah/page.jsx:10:13:10:19 | req.url | app/blah/page.jsx:10:13:10:19 | req.url | app/blah/page.jsx:10:13:10:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/blah/page.jsx:10:13:10:19 | req.url | user-provided value | -| app/blah/page.jsx:17:13:17:19 | req.url | app/blah/page.jsx:17:13:17:19 | req.url | app/blah/page.jsx:17:13:17:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/blah/page.jsx:17:13:17:19 | req.url | user-provided value | +| app/blah/page.jsx:8:13:8:19 | req.url | app/blah/page.jsx:8:13:8:19 | req.url | app/blah/page.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/blah/page.jsx:8:13:8:19 | req.url | user-provided value | +| app/blah/page.jsx:15:13:15:19 | req.url | app/blah/page.jsx:15:13:15:19 | req.url | app/blah/page.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/blah/page.jsx:15:13:15:19 | req.url | user-provided value | | app/blah/route.ts:3:25:3:27 | url | app/blah/route.ts:2:17:2:23 | req.url | app/blah/route.ts:3:25:3:27 | url | Cross-site scripting vulnerability due to a $@. | app/blah/route.ts:2:17:2:23 | req.url | user-provided value | | app/pages/Next2.jsx:8:13:8:19 | req.url | app/pages/Next2.jsx:8:13:8:19 | req.url | app/pages/Next2.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/pages/Next2.jsx:8:13:8:19 | req.url | user-provided value | | app/pages/Next2.jsx:15:13:15:19 | req.url | app/pages/Next2.jsx:15:13:15:19 | req.url | app/pages/Next2.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to a $@. | app/pages/Next2.jsx:15:13:15:19 | req.url | user-provided value | @@ -372,8 +372,8 @@ nodes | app/api/routeNextRequest.ts:15:20:15:23 | body | semmle.label | body | | app/api/routeNextRequest.ts:27:20:27:23 | body | semmle.label | body | | app/api/routeNextRequest.ts:31:27:31:30 | body | semmle.label | body | -| app/blah/page.jsx:10:13:10:19 | req.url | semmle.label | req.url | -| app/blah/page.jsx:17:13:17:19 | req.url | semmle.label | req.url | +| app/blah/page.jsx:8:13:8:19 | req.url | semmle.label | req.url | +| app/blah/page.jsx:15:13:15:19 | req.url | semmle.label | req.url | | app/blah/route.ts:2:11:2:13 | url | semmle.label | url | | app/blah/route.ts:2:17:2:23 | req.url | semmle.label | req.url | | app/blah/route.ts:3:25:3:27 | url | semmle.label | url | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected index e55d11371cf..402cd74cc12 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected @@ -34,8 +34,8 @@ | app/api/routeNextRequest.ts:15:20:15:23 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:27:20:27:23 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | | app/api/routeNextRequest.ts:31:27:31:30 | body | Cross-site scripting vulnerability due to $@. | app/api/routeNextRequest.ts:4:22:4:31 | req.json() | user-provided value | -| app/blah/page.jsx:10:13:10:19 | req.url | Cross-site scripting vulnerability due to $@. | app/blah/page.jsx:10:13:10:19 | req.url | user-provided value | -| app/blah/page.jsx:17:13:17:19 | req.url | Cross-site scripting vulnerability due to $@. | app/blah/page.jsx:17:13:17:19 | req.url | user-provided value | +| app/blah/page.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to $@. | app/blah/page.jsx:8:13:8:19 | req.url | user-provided value | +| app/blah/page.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to $@. | app/blah/page.jsx:15:13:15:19 | req.url | user-provided value | | app/blah/route.ts:3:25:3:27 | url | Cross-site scripting vulnerability due to $@. | app/blah/route.ts:2:17:2:23 | req.url | user-provided value | | app/pages/Next2.jsx:8:13:8:19 | req.url | Cross-site scripting vulnerability due to $@. | app/pages/Next2.jsx:8:13:8:19 | req.url | user-provided value | | app/pages/Next2.jsx:15:13:15:19 | req.url | Cross-site scripting vulnerability due to $@. | app/pages/Next2.jsx:15:13:15:19 | req.url | user-provided value | From cc7bf4e880a134555be9c7386e7391ef4d57289c Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 13:29:43 +0100 Subject: [PATCH 009/263] JS: Handle default 'content-type' header in Response() objects --- .../semmle/javascript/frameworks/WebResponse.qll | 11 ++++++++++- .../CWE-079/ReflectedXss/ReflectedXss.expected | 15 --------------- .../ReflectedXssWithCustomSanitizer.expected | 5 ----- .../CWE-079/ReflectedXss/response-object.js | 16 ++++++++++------ 4 files changed, 20 insertions(+), 27 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll b/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll index dfdee73c9d9..c8a450e5cff 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll @@ -45,6 +45,10 @@ private class ResponseArgumentHeaders extends Http::HeaderDefinition { ResponseArgumentHeaders() { headerNode = response.getParameter(1).getMember("headers") and this = headerNode.asSink() + or + not exists(response.getParameter(1).getMember("headers")) and + headerNode = API::root() and // just bind 'headerNode' to something + this = response } ResponseCall getResponse() { result = response } @@ -80,9 +84,14 @@ private class ResponseArgumentHeaders extends Http::HeaderDefinition { override predicate defines(string headerName, string headerValue) { this.getHeaderNode(headerName).getAValueReachingSink().getStringValue() = headerValue + or + // If no 'content-type' header is defined, a default one is sent in the HTTP response. + not exists(this.getHeaderNode("content-type")) and + headerName = "content-type" and + headerValue = "text/plain;charset=utf-8" } - override string getAHeaderName() { exists(this.getHeaderNode(result)) } + override string getAHeaderName() { exists(this.getHeaderNode(result)) or result = "content-type" } override Http::RouteHandler getRouteHandler() { none() } } diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected index b488018d09d..e24a3319e16 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected @@ -50,15 +50,10 @@ | partial.js:28:14:28:18 | x + y | partial.js:31:47:31:53 | req.url | partial.js:28:14:28:18 | x + y | Cross-site scripting vulnerability due to a $@. | partial.js:31:47:31:53 | req.url | user-provided value | | partial.js:37:14:37:18 | x + y | partial.js:40:43:40:49 | req.url | partial.js:37:14:37:18 | x + y | Cross-site scripting vulnerability due to a $@. | partial.js:40:43:40:49 | req.url | user-provided value | | promises.js:6:25:6:25 | x | promises.js:5:44:5:57 | req.query.data | promises.js:6:25:6:25 | x | Cross-site scripting vulnerability due to a $@. | promises.js:5:44:5:57 | req.query.data | user-provided value | -| response-object.js:9:18:9:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:9:18:9:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:10:18:10:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:10:18:10:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:11:18:11:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:11:18:11:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:14:18:14:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:14:18:14:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:17:18:17:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:17:18:17:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:23:18:23:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:23:18:23:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:26:18:26:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:26:18:26:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:34:18:34:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:34:18:34:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:38:18:38:21 | data | response-object.js:7:18:7:25 | req.body | response-object.js:38:18:38:21 | data | Cross-site scripting vulnerability due to a $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | tst2.js:7:12:7:12 | p | tst2.js:6:9:6:9 | p | tst2.js:7:12:7:12 | p | Cross-site scripting vulnerability due to a $@. | tst2.js:6:9:6:9 | p | user-provided value | | tst2.js:8:12:8:12 | r | tst2.js:6:12:6:15 | q: r | tst2.js:8:12:8:12 | r | Cross-site scripting vulnerability due to a $@. | tst2.js:6:12:6:15 | q: r | user-provided value | | tst2.js:18:12:18:12 | p | tst2.js:14:9:14:9 | p | tst2.js:18:12:18:12 | p | Cross-site scripting vulnerability due to a $@. | tst2.js:14:9:14:9 | p | user-provided value | @@ -184,15 +179,10 @@ edges | promises.js:5:36:5:42 | [post update] resolve [resolve-value] | promises.js:5:16:5:22 | resolve [Return] [resolve-value] | provenance | | | promises.js:5:44:5:57 | req.query.data | promises.js:5:36:5:42 | [post update] resolve [resolve-value] | provenance | | | promises.js:6:11:6:11 | x | promises.js:6:25:6:25 | x | provenance | | -| response-object.js:7:11:7:14 | data | response-object.js:9:18:9:21 | data | provenance | | -| response-object.js:7:11:7:14 | data | response-object.js:10:18:10:21 | data | provenance | | -| response-object.js:7:11:7:14 | data | response-object.js:11:18:11:21 | data | provenance | | | response-object.js:7:11:7:14 | data | response-object.js:14:18:14:21 | data | provenance | | | response-object.js:7:11:7:14 | data | response-object.js:17:18:17:21 | data | provenance | | | response-object.js:7:11:7:14 | data | response-object.js:23:18:23:21 | data | provenance | | -| response-object.js:7:11:7:14 | data | response-object.js:26:18:26:21 | data | provenance | | | response-object.js:7:11:7:14 | data | response-object.js:34:18:34:21 | data | provenance | | -| response-object.js:7:11:7:14 | data | response-object.js:38:18:38:21 | data | provenance | | | response-object.js:7:18:7:25 | req.body | response-object.js:7:11:7:14 | data | provenance | | | tst2.js:6:9:6:9 | p | tst2.js:6:9:6:9 | p | provenance | | | tst2.js:6:9:6:9 | p | tst2.js:7:12:7:12 | p | provenance | | @@ -413,15 +403,10 @@ nodes | promises.js:6:25:6:25 | x | semmle.label | x | | response-object.js:7:11:7:14 | data | semmle.label | data | | response-object.js:7:18:7:25 | req.body | semmle.label | req.body | -| response-object.js:9:18:9:21 | data | semmle.label | data | -| response-object.js:10:18:10:21 | data | semmle.label | data | -| response-object.js:11:18:11:21 | data | semmle.label | data | | response-object.js:14:18:14:21 | data | semmle.label | data | | response-object.js:17:18:17:21 | data | semmle.label | data | | response-object.js:23:18:23:21 | data | semmle.label | data | -| response-object.js:26:18:26:21 | data | semmle.label | data | | response-object.js:34:18:34:21 | data | semmle.label | data | -| response-object.js:38:18:38:21 | data | semmle.label | data | | tst2.js:6:9:6:9 | p | semmle.label | p | | tst2.js:6:9:6:9 | p | semmle.label | p | | tst2.js:6:12:6:15 | q: r | semmle.label | q: r | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected index 2dceb5fa807..dee99b1490c 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXssWithCustomSanitizer.expected @@ -48,15 +48,10 @@ | partial.js:28:14:28:18 | x + y | Cross-site scripting vulnerability due to $@. | partial.js:31:47:31:53 | req.url | user-provided value | | partial.js:37:14:37:18 | x + y | Cross-site scripting vulnerability due to $@. | partial.js:40:43:40:49 | req.url | user-provided value | | promises.js:6:25:6:25 | x | Cross-site scripting vulnerability due to $@. | promises.js:5:44:5:57 | req.query.data | user-provided value | -| response-object.js:9:18:9:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:10:18:10:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:11:18:11:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:14:18:14:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:17:18:17:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:23:18:23:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:26:18:26:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | response-object.js:34:18:34:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | -| response-object.js:38:18:38:21 | data | Cross-site scripting vulnerability due to $@. | response-object.js:7:18:7:25 | req.body | user-provided value | | tst2.js:7:12:7:12 | p | Cross-site scripting vulnerability due to $@. | tst2.js:6:9:6:9 | p | user-provided value | | tst2.js:8:12:8:12 | r | Cross-site scripting vulnerability due to $@. | tst2.js:6:12:6:15 | q: r | user-provided value | | tst2.js:18:12:18:12 | p | Cross-site scripting vulnerability due to $@. | tst2.js:14:9:14:9 | p | user-provided value | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js index 030cff46733..5d802709410 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js @@ -1,14 +1,14 @@ const express = require('express'); -// Note: We're using using express for the taint source in order to to test 'Response' +// Note: We're using express for the taint source in order to to test 'Response' // in isolation from the more complicated http frameworks. express().get('/foo', (req) => { const data = req.body; // $ Source - new Response(data); // $ Alert - new Response(data, {}); // $ Alert - new Response(data, { headers: null }); // $ Alert + new Response(data); + new Response(data, {}); + new Response(data, { headers: null }); new Response(data, { headers: { 'content-type': 'text/plain'}}); new Response(data, { headers: { 'content-type': 'text/html'}}); // $ Alert @@ -23,7 +23,7 @@ express().get('/foo', (req) => { new Response(data, { headers: headers2 }); // $ Alert const headers3 = new Headers(); - new Response(data, { headers: headers3 }); // $ Alert + new Response(data, { headers: headers3 }); const headers4 = new Headers(); headers4.set('content-type', 'text/plain'); @@ -35,5 +35,9 @@ express().get('/foo', (req) => { const headers6 = new Headers(); headers6.set('unrelated-header', 'text/plain'); - new Response(data, { headers: headers6 }); // $ Alert + new Response(data, { headers: headers6 }); + + const headers7 = new Headers(); + headers7.set('unrelated-header', 'text/html'); + new Response(data, { headers: headers7 }); }); From 818f4815dd1192cbcdf9f97ec9ea78d36e0e3278 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 26 Nov 2025 13:34:16 +0100 Subject: [PATCH 010/263] JS: Change note --- .../change-notes/2025-11-26-response-default-content-type.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md diff --git a/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md b/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md new file mode 100644 index 00000000000..d7b5116fe1e --- /dev/null +++ b/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* `new Response(x)` is not longer seen as a reflected XSS sink when no`content-type` header + is set, since the content type defaults to `text/plain`. From 7c0243fc6dd310eca2aaf62e18d8ad84feefb387 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 27 Nov 2025 13:18:11 +0100 Subject: [PATCH 011/263] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../change-notes/2025-11-26-response-default-content-type.md | 2 +- .../Security/CWE-079/ReflectedXss/response-object.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md b/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md index d7b5116fe1e..e39d82695de 100644 --- a/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md +++ b/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md @@ -1,5 +1,5 @@ --- category: minorAnalysis --- -* `new Response(x)` is not longer seen as a reflected XSS sink when no`content-type` header +* `new Response(x)` is not longer seen as a reflected XSS sink when no `content-type` header is set, since the content type defaults to `text/plain`. diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js index 5d802709410..87ed6d826a6 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/response-object.js @@ -1,6 +1,6 @@ const express = require('express'); -// Note: We're using express for the taint source in order to to test 'Response' +// Note: We're using express for the taint source in order to test 'Response' // in isolation from the more complicated http frameworks. express().get('/foo', (req) => { From bde983b66db137c10def2abbb5bfeaab4271fbc9 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 27 Nov 2025 13:18:56 +0100 Subject: [PATCH 012/263] Update 2025-11-26-response-default-content-type.md --- .../change-notes/2025-11-26-response-default-content-type.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md b/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md index e39d82695de..67ece0e5353 100644 --- a/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md +++ b/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md @@ -1,5 +1,5 @@ --- category: minorAnalysis --- -* `new Response(x)` is not longer seen as a reflected XSS sink when no `content-type` header +* `new Response(x)` is no longer seen as a reflected XSS sink when no `content-type` header is set, since the content type defaults to `text/plain`. From 969b0cf43951a05cfc474661bf9472d2b5281cdf Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 27 Nov 2025 23:44:35 +0000 Subject: [PATCH 013/263] Add SSRF sinks for `uriVariables` arguments of more methods on Spring RestTemplate --- .../frameworks/spring/SpringWebClient.qll | 94 ++-- .../security/CWE-918/RequestForgery.expected | 420 +++++++++++++----- .../security/CWE-918/SpringSSRF.java | 112 +++++ 3 files changed, 487 insertions(+), 139 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 0580415a344..3fafd0a6c55 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -31,50 +31,74 @@ class SpringWebClient extends Interface { } } -/** The method `getForObject` on `org.springframework.web.reactive.function.client.RestTemplate`. */ -class SpringRestTemplateGetForObjectMethod extends Method { - SpringRestTemplateGetForObjectMethod() { +/** + * A method on `org.springframework.web.reactive.function.client.RestTemplate` + * which has a parameter `uriVariables` (which can have type `Object..` or + * `Map`) which contains variables to be expanded into the URL + * template in parameter 0. + */ +private class SpringRestTemplateMethodWithUriVariablesParameter extends Method { + int pos; + + SpringRestTemplateMethodWithUriVariablesParameter() { this.getDeclaringType() instanceof SpringRestTemplate and - this.hasName("getForObject") - } -} - -/** A call to the method `getForObject` on `org.springframework.web.reactive.function.client.RestTemplate`. */ -class SpringRestTemplateGetForObjectMethodCall extends MethodCall { - SpringRestTemplateGetForObjectMethodCall() { - this.getMethod() instanceof SpringRestTemplateGetForObjectMethod - } - - /** Gets the first argument, if it is a compile time constant. */ - CompileTimeConstantExpr getConstantUrl() { result = this.getArgument(0) } - - /** - * Holds if the first argument is a compile time constant and it has a - * placeholder at offset `offset`, and there are `idx` placeholders that - * appear before it. - */ - predicate urlHasPlaceholderAtOffset(int idx, int offset) { - exists( - this.getConstantUrl() - .getStringValue() - .replaceAll("\\{", " ") - .replaceAll("\\}", " ") - .regexpFind("\\{[^}]*\\}", idx, offset) + ( + this.hasName("delete") and pos = 1 + or + this.hasName("exchange") and pos = 4 + or + this.hasName("execute") and pos = 4 + or + this.hasName("getForEntity") and pos = 2 + or + this.hasName("getForObject") and pos = 2 + or + this.hasName("headForHeaders") and pos = 1 + or + this.hasName("optionsForAllow") and pos = 1 + or + this.hasName("patchForObject") and pos = 3 + or + this.hasName("postForEntity") and pos = 3 + or + this.hasName("postForLocation") and pos = 2 + or + this.hasName("postForObject") and pos = 3 + or + this.hasName("put") and pos = 2 ) } + + int getUriVariablesPosition() { result = pos } +} + +/** Gets the first argument, if it is a compile time constant. */ +pragma[inline] +private CompileTimeConstantExpr getConstantUrl(MethodCall mc) { result = mc.getArgument(0) } + +pragma[inline] +private predicate urlHasPlaceholderAtOffset(MethodCall mc, int idx, int offset) { + exists( + getConstantUrl(mc) + .getStringValue() + .replaceAll("\\{", " ") + .replaceAll("\\}", " ") + .regexpFind("\\{[^}]*\\}", idx, offset) + ) } private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink { SpringWebClientRestTemplateGetForObject() { - exists(SpringRestTemplateGetForObjectMethodCall mc, int i | + exists(SpringRestTemplateMethodWithUriVariablesParameter m, MethodCall mc, int i | // Note that the first argument is modeled as a request forgery sink // separately. This model is for arguments beyond the first two. There // are two relevant overloads, one with third parameter type `Object...` // and one with third parameter type `Map`. For the latter we // cannot deal with MapValue content easily but there is a default // implicit taint read at sinks that will catch it. + mc.getMethod() = m and i >= 0 and - this.asExpr() = mc.getArgument(i + 2) + this.asExpr() = mc.getArgument(m.getUriVariablesPosition() + i) | // If we can determine that part of mc.getArgument(0) is a hostname // sanitizing prefix, then we count how many placeholders occur before it @@ -83,8 +107,8 @@ private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink // considering the map values as sinks if there is at least one // placeholder in the URL before the hostname sanitizing prefix. exists(int offset | - mc.urlHasPlaceholderAtOffset(i, offset) and - offset < mc.getConstantUrl().(HostnameSanitizingPrefix).getOffset() + urlHasPlaceholderAtOffset(mc, i, offset) and + offset < getConstantUrl(mc).(HostnameSanitizingPrefix).getOffset() ) or // If we cannot determine that part of mc.getArgument(0) is a hostname @@ -94,12 +118,12 @@ private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink // For the `Map` overload this has the effect of only // considering the map values as sinks if there is at least one // placeholder in the URL. - not mc.getConstantUrl() instanceof HostnameSanitizingPrefix and - mc.urlHasPlaceholderAtOffset(i, _) + not getConstantUrl(mc) instanceof HostnameSanitizingPrefix and + urlHasPlaceholderAtOffset(mc, i, _) or // If we cannot determine the string value of mc.getArgument(0), then we // conservatively consider all arguments as sinks. - not exists(mc.getConstantUrl().getStringValue()) + not exists(getConstantUrl(mc).getStringValue()) ) } } diff --git a/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected b/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected index b08273da0ca..c61fbdf81b8 100644 --- a/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected +++ b/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected @@ -253,35 +253,91 @@ | SanitizationTests.java:120:60:120:79 | new URI(...) | SanitizationTests.java:119:94:119:125 | getParameter(...) : String | SanitizationTests.java:120:60:120:79 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:119:94:119:125 | getParameter(...) | user-provided value | | SanitizationTests.java:121:25:121:33 | unsafer10 | SanitizationTests.java:119:94:119:125 | getParameter(...) : String | SanitizationTests.java:121:25:121:33 | unsafer10 | Potential server-side request forgery due to a $@. | SanitizationTests.java:119:94:119:125 | getParameter(...) | user-provided value | | SpringSSRF.java:32:39:32:59 | ... + ... | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:32:39:32:59 | ... + ... | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:33:35:33:48 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:35:33:48 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:34:34:34:47 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:34:34:47 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:35:39:35:52 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:39:35:52 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:36:69:36:82 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:36:69:36:82 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:37:73:37:86 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:37:73:37:86 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:40:69:40:97 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:69:40:97 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:42:69:42:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:42:69:42:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:44:41:44:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:41:44:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:45:40:45:62 | new URI(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:40:45:62 | new URI(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:46:42:46:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:46:42:46:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:47:40:47:53 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:47:40:47:53 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:48:30:48:43 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:48:30:48:43 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:49:33:49:46 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:49:33:49:46 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:50:41:50:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:50:41:50:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:51:42:51:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:51:42:51:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:56:44:56:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:56:44:56:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:58:35:58:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:58:35:58:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:59:35:59:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:59:35:59:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:60:38:60:40 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:60:38:60:40 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:61:39:61:41 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:61:39:61:41 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:62:37:62:39 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:62:37:62:39 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:63:36:63:38 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:63:36:63:38 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:64:44:64:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:64:44:64:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:70:49:70:51 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:70:49:70:51 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:71:58:71:60 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:71:58:71:60 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:72:57:72:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:72:57:72:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:73:66:73:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:73:66:73:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:74:57:74:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:74:57:74:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | -| SpringSSRF.java:75:66:75:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:75:66:75:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:33:69:33:82 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:69:33:82 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:34:73:34:86 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:73:34:86 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:35:87:35:100 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:87:35:100 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:38:69:38:97 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:38:69:38:97 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:40:69:40:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:69:40:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:43:35:43:48 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:43:35:43:48 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:44:91:44:104 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:91:44:104 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:45:95:45:108 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:95:45:108 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:46:109:46:122 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:46:109:46:122 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:49:91:49:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:49:91:49:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:51:91:51:141 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:51:91:51:141 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:54:34:54:47 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:54:34:54:47 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:55:79:55:92 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:55:79:55:92 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:56:83:56:96 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:56:83:56:96 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:57:97:57:110 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:57:97:57:110 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:60:79:60:107 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:60:79:60:107 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:62:79:62:129 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:62:79:62:129 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:65:39:65:52 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:65:39:65:52 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:66:69:66:82 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:66:69:66:82 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:67:73:67:86 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:67:73:67:86 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:68:87:68:100 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:68:87:68:100 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:71:69:71:97 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:71:69:71:97 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:73:69:73:119 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:73:69:73:119 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:76:41:76:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:76:41:76:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:77:93:77:106 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:77:93:77:106 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:78:97:78:110 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:78:97:78:110 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:79:111:79:124 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:79:111:79:124 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:82:93:82:121 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:82:93:82:121 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:84:93:84:143 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:84:93:84:143 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:87:40:87:62 | new URI(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:87:40:87:62 | new URI(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:88:92:88:105 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:88:92:88:105 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:89:96:89:109 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:89:96:89:109 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:90:110:90:123 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:90:110:90:123 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:93:92:93:120 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:93:92:93:120 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:95:92:95:142 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:95:92:95:142 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:98:42:98:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:98:42:98:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:99:80:99:93 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:99:80:99:93 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:100:84:100:97 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:100:84:100:97 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:101:98:101:111 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:101:98:101:111 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:104:80:104:108 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:104:80:104:108 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:106:80:106:130 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:106:80:106:130 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:109:40:109:53 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:109:40:109:53 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:110:92:110:105 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:110:92:110:105 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:111:96:111:109 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:111:96:111:109 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:112:110:112:123 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:112:110:112:123 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:115:92:115:120 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:115:92:115:120 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:117:92:117:142 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:117:92:117:142 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:120:30:120:43 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:120:30:120:43 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:121:68:121:81 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:121:68:121:81 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:122:72:122:85 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:122:72:122:85 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:123:86:123:99 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:123:86:123:99 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:126:68:126:96 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:126:68:126:96 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:128:68:128:118 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:128:68:128:118 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:131:33:131:46 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:131:33:131:46 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:132:49:132:62 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:132:49:132:62 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:133:53:133:66 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:133:53:133:66 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:134:67:134:80 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:134:67:134:80 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:137:49:137:77 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:137:49:137:77 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:139:49:139:99 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:139:49:139:99 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:142:41:142:54 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:142:41:142:54 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:143:57:143:70 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:143:57:143:70 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:144:61:144:74 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:144:61:144:74 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:145:75:145:88 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:145:75:145:88 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:148:57:148:85 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:148:57:148:85 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:150:57:150:107 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:150:57:150:107 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:153:42:153:55 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:153:42:153:55 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:154:58:154:71 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:154:58:154:71 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:155:62:155:75 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:155:62:155:75 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:156:76:156:89 | fooResourceUrl | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:156:76:156:89 | fooResourceUrl | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:159:58:159:86 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:159:58:159:86 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:161:58:161:108 | of(...) | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:161:58:161:108 | of(...) | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:168:44:168:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:168:44:168:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:170:35:170:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:170:35:170:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:171:35:171:37 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:171:35:171:37 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:172:38:172:40 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:172:38:172:40 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:173:39:173:41 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:173:39:173:41 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:174:37:174:39 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:174:37:174:39 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:175:36:175:38 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:175:36:175:38 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:176:44:176:46 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:176:44:176:46 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:182:49:182:51 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:182:49:182:51 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:183:58:183:60 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:183:58:183:60 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:184:57:184:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:184:57:184:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:185:66:185:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:185:66:185:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:186:57:186:59 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:186:57:186:59 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | +| SpringSSRF.java:187:66:187:68 | uri | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:187:66:187:68 | uri | Potential server-side request forgery due to a $@. | SpringSSRF.java:28:33:28:60 | getParameter(...) | user-provided value | | URLClassLoaderSSRF.java:18:64:18:85 | new URL[] | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) : String | URLClassLoaderSSRF.java:18:64:18:85 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) | user-provided value | | URLClassLoaderSSRF.java:30:64:30:85 | new URL[] | URLClassLoaderSSRF.java:28:26:28:52 | getParameter(...) : String | URLClassLoaderSSRF.java:30:64:30:85 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:28:26:28:52 | getParameter(...) | user-provided value | | URLClassLoaderSSRF.java:44:64:44:85 | new URL[] | URLClassLoaderSSRF.java:40:26:40:52 | getParameter(...) : String | URLClassLoaderSSRF.java:44:64:44:85 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:40:26:40:52 | getParameter(...) | user-provided value | @@ -778,45 +834,123 @@ edges | SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | SanitizationTests.java:120:60:120:79 | new URI(...) : URI | provenance | Config | | SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | SanitizationTests.java:120:60:120:79 | new URI(...) : URI | provenance | MaD:285 | | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:32:39:32:59 | ... + ... | provenance | Src:MaD:277 Sink:MaD:264 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:35:33:48 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:262 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:34:34:47 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:263 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:39:35:52 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:265 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:36:69:36:82 | fooResourceUrl | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:37:73:37:86 | fooResourceUrl | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:83:40:96 | fooResourceUrl : String | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:42:105:42:118 | fooResourceUrl : String | provenance | Src:MaD:277 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:41:44:54 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:268 | -| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | provenance | Src:MaD:277 | -| SpringSSRF.java:40:83:40:96 | fooResourceUrl : String | SpringSSRF.java:40:69:40:97 | of(...) | provenance | MaD:289 | -| SpringSSRF.java:42:105:42:118 | fooResourceUrl : String | SpringSSRF.java:42:69:42:119 | of(...) | provenance | MaD:290 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:45:40:45:62 | new URI(...) | provenance | Config Sink:MaD:269 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:45:40:45:62 | new URI(...) | provenance | MaD:285 Sink:MaD:269 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:46:42:46:55 | fooResourceUrl | provenance | Sink:MaD:270 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:47:40:47:53 | fooResourceUrl | provenance | Sink:MaD:271 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:48:30:48:43 | fooResourceUrl | provenance | Sink:MaD:272 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:49:33:49:46 | fooResourceUrl | provenance | Sink:MaD:261 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:50:41:50:54 | fooResourceUrl | provenance | Sink:MaD:266 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:51:42:51:55 | fooResourceUrl | provenance | Sink:MaD:267 | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | provenance | | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:56:44:56:46 | uri | provenance | Sink:MaD:255 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:58:35:58:37 | uri | provenance | Sink:MaD:250 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:59:35:59:37 | uri | provenance | Sink:MaD:256 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:60:38:60:40 | uri | provenance | Sink:MaD:249 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:61:39:61:41 | uri | provenance | Sink:MaD:253 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:62:37:62:39 | uri | provenance | Sink:MaD:254 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:63:36:63:38 | uri | provenance | Sink:MaD:251 | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | SpringSSRF.java:64:44:64:46 | uri | provenance | Sink:MaD:252 | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | SpringSSRF.java:54:27:54:49 | new URI(...) : URI | provenance | Config | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | SpringSSRF.java:54:27:54:49 | new URI(...) : URI | provenance | MaD:285 | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | provenance | | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:70:49:70:51 | uri | provenance | Sink:MaD:243 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:71:58:71:60 | uri | provenance | Sink:MaD:244 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:72:57:72:59 | uri | provenance | Sink:MaD:245 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:73:66:73:68 | uri | provenance | Sink:MaD:247 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:74:57:74:59 | uri | provenance | Sink:MaD:246 | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | SpringSSRF.java:75:66:75:68 | uri | provenance | Sink:MaD:248 | -| SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | SpringSSRF.java:67:27:67:49 | new URI(...) : URI | provenance | Config | -| SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | SpringSSRF.java:67:27:67:49 | new URI(...) : URI | provenance | MaD:285 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:33:69:33:82 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:34:73:34:86 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:35:87:35:100 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:38:83:38:96 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:40:105:40:118 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:43:35:43:48 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:262 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:44:91:44:104 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:45:95:45:108 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:46:109:46:122 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:49:105:49:118 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:51:127:51:140 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:54:34:54:47 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:263 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:55:79:55:92 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:56:83:56:96 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:57:97:57:110 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:60:93:60:106 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:62:115:62:128 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:65:39:65:52 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:265 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:66:69:66:82 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:67:73:67:86 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:68:87:68:100 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:71:83:71:96 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:73:105:73:118 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:76:41:76:54 | fooResourceUrl | provenance | Src:MaD:277 Sink:MaD:268 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:77:93:77:106 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:78:97:78:110 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:79:111:79:124 | fooResourceUrl | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:82:107:82:120 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:84:129:84:142 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:28:33:28:60 | getParameter(...) : String | SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | provenance | Src:MaD:277 | +| SpringSSRF.java:38:83:38:96 | fooResourceUrl : String | SpringSSRF.java:38:69:38:97 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:40:105:40:118 | fooResourceUrl : String | SpringSSRF.java:40:69:40:119 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:49:105:49:118 | fooResourceUrl : String | SpringSSRF.java:49:91:49:119 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:51:127:51:140 | fooResourceUrl : String | SpringSSRF.java:51:91:51:141 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:60:93:60:106 | fooResourceUrl : String | SpringSSRF.java:60:79:60:107 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:62:115:62:128 | fooResourceUrl : String | SpringSSRF.java:62:79:62:129 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:71:83:71:96 | fooResourceUrl : String | SpringSSRF.java:71:69:71:97 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:73:105:73:118 | fooResourceUrl : String | SpringSSRF.java:73:69:73:119 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:82:107:82:120 | fooResourceUrl : String | SpringSSRF.java:82:93:82:121 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:84:129:84:142 | fooResourceUrl : String | SpringSSRF.java:84:93:84:143 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:87:40:87:62 | new URI(...) | provenance | Config Sink:MaD:269 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:87:40:87:62 | new URI(...) | provenance | MaD:285 Sink:MaD:269 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:88:92:88:105 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:89:96:89:109 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:90:110:90:123 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:93:106:93:119 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:95:128:95:141 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:98:42:98:55 | fooResourceUrl | provenance | Sink:MaD:270 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:99:80:99:93 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:100:84:100:97 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:101:98:101:111 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:104:94:104:107 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:106:116:106:129 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:109:40:109:53 | fooResourceUrl | provenance | Sink:MaD:271 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:110:92:110:105 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:111:96:111:109 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:112:110:112:123 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:115:106:115:119 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:117:128:117:141 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:120:30:120:43 | fooResourceUrl | provenance | Sink:MaD:272 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:121:68:121:81 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:122:72:122:85 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:123:86:123:99 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:126:82:126:95 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:128:104:128:117 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:131:33:131:46 | fooResourceUrl | provenance | Sink:MaD:261 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:132:49:132:62 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:133:53:133:66 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:134:67:134:80 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:137:63:137:76 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:139:85:139:98 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:142:41:142:54 | fooResourceUrl | provenance | Sink:MaD:266 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:143:57:143:70 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:144:61:144:74 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:145:75:145:88 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:148:71:148:84 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:150:93:150:106 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:153:42:153:55 | fooResourceUrl | provenance | Sink:MaD:267 | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:154:58:154:71 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:155:62:155:75 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:156:76:156:89 | fooResourceUrl | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:159:72:159:85 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:161:94:161:107 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:93:106:93:119 | fooResourceUrl : String | SpringSSRF.java:93:92:93:120 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:95:128:95:141 | fooResourceUrl : String | SpringSSRF.java:95:92:95:142 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:104:94:104:107 | fooResourceUrl : String | SpringSSRF.java:104:80:104:108 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:106:116:106:129 | fooResourceUrl : String | SpringSSRF.java:106:80:106:130 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:115:106:115:119 | fooResourceUrl : String | SpringSSRF.java:115:92:115:120 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:117:128:117:141 | fooResourceUrl : String | SpringSSRF.java:117:92:117:142 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:126:82:126:95 | fooResourceUrl : String | SpringSSRF.java:126:68:126:96 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:128:104:128:117 | fooResourceUrl : String | SpringSSRF.java:128:68:128:118 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:137:63:137:76 | fooResourceUrl : String | SpringSSRF.java:137:49:137:77 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:139:85:139:98 | fooResourceUrl : String | SpringSSRF.java:139:49:139:99 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:148:71:148:84 | fooResourceUrl : String | SpringSSRF.java:148:57:148:85 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:150:93:150:106 | fooResourceUrl : String | SpringSSRF.java:150:57:150:107 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:159:72:159:85 | fooResourceUrl : String | SpringSSRF.java:159:58:159:86 | of(...) | provenance | MaD:289 | +| SpringSSRF.java:161:94:161:107 | fooResourceUrl : String | SpringSSRF.java:161:58:161:108 | of(...) | provenance | MaD:290 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:168:44:168:46 | uri | provenance | Sink:MaD:255 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:170:35:170:37 | uri | provenance | Sink:MaD:250 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:171:35:171:37 | uri | provenance | Sink:MaD:256 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:172:38:172:40 | uri | provenance | Sink:MaD:249 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:173:39:173:41 | uri | provenance | Sink:MaD:253 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:174:37:174:39 | uri | provenance | Sink:MaD:254 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:175:36:175:38 | uri | provenance | Sink:MaD:251 | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | SpringSSRF.java:176:44:176:46 | uri | provenance | Sink:MaD:252 | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | SpringSSRF.java:166:27:166:49 | new URI(...) : URI | provenance | Config | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | SpringSSRF.java:166:27:166:49 | new URI(...) : URI | provenance | MaD:285 | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | provenance | | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:182:49:182:51 | uri | provenance | Sink:MaD:243 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:183:58:183:60 | uri | provenance | Sink:MaD:244 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:184:57:184:59 | uri | provenance | Sink:MaD:245 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:185:66:185:68 | uri | provenance | Sink:MaD:247 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:186:57:186:59 | uri | provenance | Sink:MaD:246 | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | SpringSSRF.java:187:66:187:68 | uri | provenance | Sink:MaD:248 | +| SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | SpringSSRF.java:179:27:179:49 | new URI(...) : URI | provenance | Config | +| SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | SpringSSRF.java:179:27:179:49 | new URI(...) : URI | provenance | MaD:285 | | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) : String | URLClassLoaderSSRF.java:17:31:17:33 | url : String | provenance | Src:MaD:277 | | URLClassLoaderSSRF.java:17:23:17:34 | new URI(...) : URI | URLClassLoaderSSRF.java:18:74:18:76 | uri : URI | provenance | | | URLClassLoaderSSRF.java:17:31:17:33 | url : String | URLClassLoaderSSRF.java:17:23:17:34 | new URI(...) : URI | provenance | Config | @@ -1683,42 +1817,120 @@ nodes | SanitizationTests.java:121:25:121:33 | unsafer10 | semmle.label | unsafer10 | | SpringSSRF.java:28:33:28:60 | getParameter(...) : String | semmle.label | getParameter(...) : String | | SpringSSRF.java:32:39:32:59 | ... + ... | semmle.label | ... + ... | -| SpringSSRF.java:33:35:33:48 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:34:34:34:47 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:35:39:35:52 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:36:69:36:82 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:37:73:37:86 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:40:69:40:97 | of(...) | semmle.label | of(...) | -| SpringSSRF.java:40:83:40:96 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:42:69:42:119 | of(...) | semmle.label | of(...) | -| SpringSSRF.java:42:105:42:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:44:41:44:54 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:45:40:45:62 | new URI(...) | semmle.label | new URI(...) | -| SpringSSRF.java:45:48:45:61 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:46:42:46:55 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:47:40:47:53 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:48:30:48:43 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:49:33:49:46 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:50:41:50:54 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:51:42:51:55 | fooResourceUrl | semmle.label | fooResourceUrl | -| SpringSSRF.java:54:27:54:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| SpringSSRF.java:54:35:54:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:56:44:56:46 | uri | semmle.label | uri | -| SpringSSRF.java:58:35:58:37 | uri | semmle.label | uri | -| SpringSSRF.java:59:35:59:37 | uri | semmle.label | uri | -| SpringSSRF.java:60:38:60:40 | uri | semmle.label | uri | -| SpringSSRF.java:61:39:61:41 | uri | semmle.label | uri | -| SpringSSRF.java:62:37:62:39 | uri | semmle.label | uri | -| SpringSSRF.java:63:36:63:38 | uri | semmle.label | uri | -| SpringSSRF.java:64:44:64:46 | uri | semmle.label | uri | -| SpringSSRF.java:67:27:67:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| SpringSSRF.java:67:35:67:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | -| SpringSSRF.java:70:49:70:51 | uri | semmle.label | uri | -| SpringSSRF.java:71:58:71:60 | uri | semmle.label | uri | -| SpringSSRF.java:72:57:72:59 | uri | semmle.label | uri | -| SpringSSRF.java:73:66:73:68 | uri | semmle.label | uri | -| SpringSSRF.java:74:57:74:59 | uri | semmle.label | uri | -| SpringSSRF.java:75:66:75:68 | uri | semmle.label | uri | +| SpringSSRF.java:33:69:33:82 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:34:73:34:86 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:35:87:35:100 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:38:69:38:97 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:38:83:38:96 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:40:69:40:119 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:40:105:40:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:43:35:43:48 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:44:91:44:104 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:45:95:45:108 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:46:109:46:122 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:49:91:49:119 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:49:105:49:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:51:91:51:141 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:51:127:51:140 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:54:34:54:47 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:55:79:55:92 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:56:83:56:96 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:57:97:57:110 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:60:79:60:107 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:60:93:60:106 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:62:79:62:129 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:62:115:62:128 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:65:39:65:52 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:66:69:66:82 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:67:73:67:86 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:68:87:68:100 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:71:69:71:97 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:71:83:71:96 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:73:69:73:119 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:73:105:73:118 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:76:41:76:54 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:77:93:77:106 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:78:97:78:110 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:79:111:79:124 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:82:93:82:121 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:82:107:82:120 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:84:93:84:143 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:84:129:84:142 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:87:40:87:62 | new URI(...) | semmle.label | new URI(...) | +| SpringSSRF.java:87:48:87:61 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:88:92:88:105 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:89:96:89:109 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:90:110:90:123 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:93:92:93:120 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:93:106:93:119 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:95:92:95:142 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:95:128:95:141 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:98:42:98:55 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:99:80:99:93 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:100:84:100:97 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:101:98:101:111 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:104:80:104:108 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:104:94:104:107 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:106:80:106:130 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:106:116:106:129 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:109:40:109:53 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:110:92:110:105 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:111:96:111:109 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:112:110:112:123 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:115:92:115:120 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:115:106:115:119 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:117:92:117:142 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:117:128:117:141 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:120:30:120:43 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:121:68:121:81 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:122:72:122:85 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:123:86:123:99 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:126:68:126:96 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:126:82:126:95 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:128:68:128:118 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:128:104:128:117 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:131:33:131:46 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:132:49:132:62 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:133:53:133:66 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:134:67:134:80 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:137:49:137:77 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:137:63:137:76 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:139:49:139:99 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:139:85:139:98 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:142:41:142:54 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:143:57:143:70 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:144:61:144:74 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:145:75:145:88 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:148:57:148:85 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:148:71:148:84 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:150:57:150:107 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:150:93:150:106 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:153:42:153:55 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:154:58:154:71 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:155:62:155:75 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:156:76:156:89 | fooResourceUrl | semmle.label | fooResourceUrl | +| SpringSSRF.java:159:58:159:86 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:159:72:159:85 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:161:58:161:108 | of(...) | semmle.label | of(...) | +| SpringSSRF.java:161:94:161:107 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:166:27:166:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SpringSSRF.java:166:35:166:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:168:44:168:46 | uri | semmle.label | uri | +| SpringSSRF.java:170:35:170:37 | uri | semmle.label | uri | +| SpringSSRF.java:171:35:171:37 | uri | semmle.label | uri | +| SpringSSRF.java:172:38:172:40 | uri | semmle.label | uri | +| SpringSSRF.java:173:39:173:41 | uri | semmle.label | uri | +| SpringSSRF.java:174:37:174:39 | uri | semmle.label | uri | +| SpringSSRF.java:175:36:175:38 | uri | semmle.label | uri | +| SpringSSRF.java:176:44:176:46 | uri | semmle.label | uri | +| SpringSSRF.java:179:27:179:49 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SpringSSRF.java:179:35:179:48 | fooResourceUrl : String | semmle.label | fooResourceUrl : String | +| SpringSSRF.java:182:49:182:51 | uri | semmle.label | uri | +| SpringSSRF.java:183:58:183:60 | uri | semmle.label | uri | +| SpringSSRF.java:184:57:184:59 | uri | semmle.label | uri | +| SpringSSRF.java:185:66:185:68 | uri | semmle.label | uri | +| SpringSSRF.java:186:57:186:59 | uri | semmle.label | uri | +| SpringSSRF.java:187:66:187:68 | uri | semmle.label | uri | | URLClassLoaderSSRF.java:16:26:16:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | | URLClassLoaderSSRF.java:17:23:17:34 | new URI(...) : URI | semmle.label | new URI(...) : URI | | URLClassLoaderSSRF.java:17:31:17:33 | url : String | semmle.label | url : String | diff --git a/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java b/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java index 446e774214d..dd1ffd60367 100644 --- a/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java @@ -30,25 +30,137 @@ public class SpringSSRF extends HttpServlet { HttpEntity request = new HttpEntity<>(new String("bar")); try { restTemplate.getForEntity(fooResourceUrl + "/1", String.class); // $ Alert + restTemplate.getForEntity("http://{foo}", String.class, fooResourceUrl); // $ Alert + restTemplate.getForEntity("http://{foo}/a/b", String.class, fooResourceUrl); // $ Alert + restTemplate.getForEntity("{protocol}://{foo}/a/b", String.class, "http", fooResourceUrl); // $ Alert + restTemplate.getForEntity("http://safe.com/{foo}", String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.getForEntity("http://{foo}", String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.getForEntity("http://{foo}", String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.getForEntity("http://safe.com/{foo}", String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.getForEntity("http://{foo}", String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.getForEntity("http://{foo}", String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.exchange(fooResourceUrl, HttpMethod.POST, request, String.class); // $ Alert + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, fooResourceUrl); // $ Alert + restTemplate.exchange("http://{foo}/a/b", HttpMethod.POST, request, String.class, fooResourceUrl); // $ Alert + restTemplate.exchange("{protocol}://{foo}/a/b", HttpMethod.POST, request, String.class, "http", fooResourceUrl); // $ Alert + restTemplate.exchange("http://safe.com/{foo}", HttpMethod.POST, request, String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.exchange("http://safe.com/{foo}", HttpMethod.POST, request, String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.exchange("http://{foo}", HttpMethod.POST, request, String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.execute(fooResourceUrl, HttpMethod.POST, null, null, "test"); // $ Alert + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, fooResourceUrl); // $ Alert + restTemplate.execute("http://{foo}/a/b", HttpMethod.POST, null, null, fooResourceUrl); // $ Alert + restTemplate.execute("{protocol}://{foo}/a/b", HttpMethod.POST, null, null, "http", fooResourceUrl); // $ Alert + restTemplate.execute("http://safe.com/{foo}", HttpMethod.POST, null, null, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.execute("http://safe.com/{foo}", HttpMethod.POST, null, null, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.execute("http://{foo}", HttpMethod.POST, null, null, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.getForObject(fooResourceUrl, String.class, "test"); // $ Alert restTemplate.getForObject("http://{foo}", String.class, fooResourceUrl); // $ Alert restTemplate.getForObject("http://{foo}/a/b", String.class, fooResourceUrl); // $ Alert + restTemplate.getForObject("{protocol}://{foo}/a/b", String.class, "http", fooResourceUrl); // $ Alert restTemplate.getForObject("http://safe.com/{foo}", String.class, fooResourceUrl); // not bad - the tainted value does not affect the host restTemplate.getForObject("http://{foo}", String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused restTemplate.getForObject("http://{foo}", String.class, Map.of("foo", fooResourceUrl)); // $ Alert restTemplate.getForObject("http://safe.com/{foo}", String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host restTemplate.getForObject("http://{foo}", String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused restTemplate.getForObject("http://{foo}", String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.patchForObject(fooResourceUrl, new String("object"), String.class, "hi"); // $ Alert + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.patchForObject("http://{foo}/a/b", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.patchForObject("{protocol}://{foo}/a/b", new String("object"), String.class, "http", fooResourceUrl); // $ Alert + restTemplate.patchForObject("http://safe.com/{foo}", new String("object"), String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.patchForObject("http://safe.com/{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.patchForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.postForEntity(new URI(fooResourceUrl), new String("object"), String.class); // $ Alert + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForEntity("http://{foo}/a/b", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForEntity("{protocol}://{foo}/a/b", new String("object"), String.class, "http", fooResourceUrl); // $ Alert + restTemplate.postForEntity("http://safe.com/{foo}", new String("object"), String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.postForEntity("http://safe.com/{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.postForEntity("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.postForLocation(fooResourceUrl, new String("object")); // $ Alert + restTemplate.postForLocation("http://{foo}", new String("object"), fooResourceUrl); // $ Alert + restTemplate.postForLocation("http://{foo}/a/b", new String("object"), fooResourceUrl); // $ Alert + restTemplate.postForLocation("{protocol}://{foo}/a/b", new String("object"), "http", fooResourceUrl); // $ Alert + restTemplate.postForLocation("http://safe.com/{foo}", new String("object"), fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.postForLocation("http://{foo}", new String("object"), "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.postForLocation("http://{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.postForLocation("http://safe.com/{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.postForLocation("http://{foo}", new String("object"), Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.postForLocation("http://{foo}", new String("object"), Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.postForObject(fooResourceUrl, new String("object"), String.class); // $ Alert + restTemplate.postForObject("http://{foo}", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForObject("http://{foo}/a/b", new String("object"), String.class, fooResourceUrl); // $ Alert + restTemplate.postForObject("{protocol}://{foo}/a/b", new String("object"), String.class, "http", fooResourceUrl); // $ Alert + restTemplate.postForObject("http://safe.com/{foo}", new String("object"), String.class, fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.postForObject("http://{foo}", new String("object"), String.class, "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.postForObject("http://{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.postForObject("http://safe.com/{foo}", new String("object"), String.class, Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.postForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.postForObject("http://{foo}", new String("object"), String.class, Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.put(fooResourceUrl, new String("object")); // $ Alert + restTemplate.put("http://{foo}", new String("object"), fooResourceUrl); // $ Alert + restTemplate.put("http://{foo}/a/b", new String("object"), fooResourceUrl); // $ Alert + restTemplate.put("{protocol}://{foo}/a/b", new String("object"), "http", fooResourceUrl); // $ Alert + restTemplate.put("http://safe.com/{foo}", new String("object"), fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.put("http://{foo}", new String("object"), "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.put("http://{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.put("http://safe.com/{foo}", new String("object"), Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.put("http://{foo}", new String("object"), Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.put("http://{foo}", new String("object"), Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.delete(fooResourceUrl); // $ Alert + restTemplate.delete("http://{foo}", fooResourceUrl); // $ Alert + restTemplate.delete("http://{foo}/a/b", fooResourceUrl); // $ Alert + restTemplate.delete("{protocol}://{foo}/a/b", "http", fooResourceUrl); // $ Alert + restTemplate.delete("http://safe.com/{foo}", fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.delete("http://{foo}", "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.delete("http://{foo}", Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.delete("http://safe.com/{foo}", Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.delete("http://{foo}", Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.delete("http://{foo}", Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.headForHeaders(fooResourceUrl); // $ Alert + restTemplate.headForHeaders("http://{foo}", fooResourceUrl); // $ Alert + restTemplate.headForHeaders("http://{foo}/a/b", fooResourceUrl); // $ Alert + restTemplate.headForHeaders("{protocol}://{foo}/a/b", "http", fooResourceUrl); // $ Alert + restTemplate.headForHeaders("http://safe.com/{foo}", fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.headForHeaders("http://{foo}", "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.headForHeaders("http://{foo}", Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.headForHeaders("http://safe.com/{foo}", Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.headForHeaders("http://{foo}", Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.headForHeaders("http://{foo}", Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + restTemplate.optionsForAllow(fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("http://{foo}", fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("http://{foo}/a/b", fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("{protocol}://{foo}/a/b", "http", fooResourceUrl); // $ Alert + restTemplate.optionsForAllow("http://safe.com/{foo}", fooResourceUrl); // not bad - the tainted value does not affect the host + restTemplate.optionsForAllow("http://{foo}", "safe.com", fooResourceUrl); // not bad - the tainted value is unused + restTemplate.optionsForAllow("http://{foo}", Map.of("foo", fooResourceUrl)); // $ Alert + restTemplate.optionsForAllow("http://safe.com/{foo}", Map.of("foo", fooResourceUrl)); // not bad - the tainted value does not affect the host + restTemplate.optionsForAllow("http://{foo}", Map.of("foo", "safe.com", "unused", fooResourceUrl)); // $ SPURIOUS: Alert // not bad - the key for the tainted value is unused + restTemplate.optionsForAllow("http://{foo}", Map.of("foo", "safe.com", fooResourceUrl, "unused")); // not bad - the tainted value is in a map key + { String body = new String("body"); URI uri = new URI(fooResourceUrl); From 42c955ea62a187724e54d9eef75a51af1ecbf450 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 27 Nov 2025 23:49:28 +0000 Subject: [PATCH 014/263] Add change note --- .../2025-11-27-spring-rest-template-request-forgery-sinks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md diff --git a/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md b/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md new file mode 100644 index 00000000000..4a18b530472 --- /dev/null +++ b/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* URI template variables of all Spring `RestTemplate` methods are now considered as request forgery sinks. Previously only the `getForObject` method was considered. This may lead to more alerts for the query `java/ssrf`. From 8debe49563df862182dc27992040ba862defc209 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Fri, 28 Nov 2025 01:00:16 +0000 Subject: [PATCH 015/263] Correct mistake in qldoc Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../lib/semmle/code/java/frameworks/spring/SpringWebClient.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 3fafd0a6c55..42661ce9183 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -32,7 +32,7 @@ class SpringWebClient extends Interface { } /** - * A method on `org.springframework.web.reactive.function.client.RestTemplate` + * A method on `org.springframework.web.client.RestTemplate` * which has a parameter `uriVariables` (which can have type `Object..` or * `Map`) which contains variables to be expanded into the URL * template in parameter 0. From 89546cbc83806a69e4f13619e421e48d77f419ce Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 28 Nov 2025 01:09:07 +0000 Subject: [PATCH 016/263] Fix qldoc inaccuracies --- .../frameworks/spring/SpringWebClient.qll | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 42661ce9183..6f10cf3bad4 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -72,10 +72,14 @@ private class SpringRestTemplateMethodWithUriVariablesParameter extends Method { int getUriVariablesPosition() { result = pos } } -/** Gets the first argument, if it is a compile time constant. */ +/** Gets the first argument of `mc`, if it is a compile-time constant. */ pragma[inline] private CompileTimeConstantExpr getConstantUrl(MethodCall mc) { result = mc.getArgument(0) } +/** + * Holds if the first argument of `mc` is a compile-time constant URL template + * which has its `idx`-th placeholder at the offset `offset`. + */ pragma[inline] private predicate urlHasPlaceholderAtOffset(MethodCall mc, int idx, int offset) { exists( @@ -87,15 +91,16 @@ private predicate urlHasPlaceholderAtOffset(MethodCall mc, int idx, int offset) ) } -private class SpringWebClientRestTemplateGetForObject extends RequestForgerySink { - SpringWebClientRestTemplateGetForObject() { +private class SpringWebClientRestTemplateUriVariable extends RequestForgerySink { + SpringWebClientRestTemplateUriVariable() { exists(SpringRestTemplateMethodWithUriVariablesParameter m, MethodCall mc, int i | - // Note that the first argument is modeled as a request forgery sink - // separately. This model is for arguments beyond the first two. There - // are two relevant overloads, one with third parameter type `Object...` - // and one with third parameter type `Map`. For the latter we - // cannot deal with MapValue content easily but there is a default - // implicit taint read at sinks that will catch it. + // Note that the first argument of `m` is modeled as a request forgery + // sink separately. This model is for arguments corresponding to the + // `uriVariables` parameter. There are always two relevant overloads, one + // with parameter type `Object...` and one with parameter type + // `Map`. For the latter we cannot deal with MapValue content + // easily but there is a default implicit taint read at sinks that will + // catch it. mc.getMethod() = m and i >= 0 and this.asExpr() = mc.getArgument(m.getUriVariablesPosition() + i) From 9f2a7f712ab1034fbd9c72ccb101e86eeac36613 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Tue, 2 Dec 2025 15:52:01 +0000 Subject: [PATCH 017/263] Apply suggestion from @owen-mc --- .../lib/semmle/code/java/frameworks/spring/SpringWebClient.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 6f10cf3bad4..991a1c72981 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -33,7 +33,7 @@ class SpringWebClient extends Interface { /** * A method on `org.springframework.web.client.RestTemplate` - * which has a parameter `uriVariables` (which can have type `Object..` or + * which has a parameter `uriVariables` (which can have type `Object...` or * `Map`) which contains variables to be expanded into the URL * template in parameter 0. */ From 6fc963177cc48266b1f4ed6d7ac1f0c20ee2ebfb Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 16 Dec 2025 11:05:39 +0100 Subject: [PATCH 018/263] codegen: mention Rust in the README Updated README to reflect support for the Rust extractor and added details about Rust generated files. --- misc/codegen/README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/misc/codegen/README.md b/misc/codegen/README.md index 2d45ac67ac2..c4a1ebecdcc 100644 --- a/misc/codegen/README.md +++ b/misc/codegen/README.md @@ -1,14 +1,17 @@ # Code generation suite -This directory contains the code generation suite used by the Swift extractor and the QL library. This suite will use -the abstract class specification of `schema.py` to generate: +This directory contains the code generation suite used by the Swift and Rust extractors and QL library. This suite will use +the abstract class specification of a `schema` python module to generate: * the `dbscheme` file (see [`dbschemegen.py`](generators/dbschemegen.py)) * the QL generated code and when appropriate the corresponding stubs (see [`qlgen.py`](generators/qlgen.py)) -* C++ tags and trap entries (see [`trapgen.py`](generators/trapgen.py)) -* C++ structured classes (see [`cppgen.py`](generators/cppgen.py)) +* QL language tests for testing the extractors (see [`qlgen.py`](generators/qlgen.py)) +* [Swift] C++ tags and trap entries (see [`trapgen.py`](generators/trapgen.py)) +* [Swift] C++ structured classes (see [`cppgen.py`](generators/cppgen.py)) +* [Rust] Rust structured classes (see [`rustgen.py`](generators/rustgen.py)) +* [Rust] Rust sources for extractor language tests extracted from the documentation snippets (see [`rusttestgen.py`](generators/rusttestgen.py)) -An example `schema.py` [can be found in the Swift package](../../swift/schema.py). +Schemas [can be found in the Swift package](../../swift/schema.py) or [in the Rust one](../../rust/schema). ## Usage From ff0a0ed373be1b998b10d38b065d9eb511c2d9f6 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Tue, 16 Dec 2025 11:28:34 -0600 Subject: [PATCH 019/263] Adds changelog docs for 2.23.7 and 2.23.8 --- .../codeql-changelog/codeql-cli-2.23.1.rst | 4 +- .../codeql-changelog/codeql-cli-2.23.5.rst | 4 +- .../codeql-changelog/codeql-cli-2.23.6.rst | 2 +- .../codeql-changelog/codeql-cli-2.23.7.rst | 116 ++++++++++++++++++ .../codeql-changelog/codeql-cli-2.23.8.rst | 33 +++++ .../codeql-changelog/index.rst | 2 + 6 files changed, 156 insertions(+), 5 deletions(-) create mode 100644 docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.7.rst create mode 100644 docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.8.rst diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst index ff22a3f647c..27f1eee84ed 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst @@ -88,7 +88,7 @@ JavaScript/TypeScript * Data flow is now tracked through the :code:`Promise.try` and :code:`Array.prototype.with` functions. * Query :code:`js/index-out-of-bounds` no longer produces a false-positive when a strictly-less-than check overrides a previous less-than-or-equal test. * The query :code:`js/remote-property-injection` now detects property injection vulnerabilities through object enumeration patterns such as :code:`Object.keys()`. -* The query "Permissive CORS configuration" (:code:`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. Thank you to @maikypedia who `submitted the original experimental query `__! +* The query "Permissive CORS configuration" (:code:`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. Thank you to @maikypedia who `submitted the original experimental query `__\ ! Python """""" @@ -126,7 +126,7 @@ Golang """""" * The second argument of the :code:`CreateTemp` function, from the :code:`os` package, is no longer a path-injection sink due to proper sanitization by Go. -* The query "Uncontrolled data used in path expression" (:code:`go/path-injection`) now detects sanitizing a path by adding :code:`os.PathSeparator` or ``\`` to the beginning. +* The query "Uncontrolled data used in path expression" (:code:`go/path-injection`) now detects sanitizing a path by adding :code:`os.PathSeparator` or :code:`\` to the beginning. Java/Kotlin """"""""""" diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.5.rst index 9022a09444f..d317551d344 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.5.rst @@ -33,7 +33,7 @@ Minor Analysis Improvements C# "" -* the :code:`cs/web/missing-x-frame-options` query now correctly handles configuration nested in root :code:`` elements. +* The :code:`cs/web/missing-x-frame-options` query now correctly handles configuration nested in root :code:`` elements. Java/Kotlin """"""""""" @@ -80,7 +80,7 @@ Major Analysis Improvements C# "" -* The representation of the C# control-flow graph has been significantly changed. This has minor effects on a wide range of queries including both minor improvements and minor regressions, for example, improved precision has been observed for :code:`cs/inefficient-containskey` and :code:`cs/stringbuilder-creation-in-loop`. Two queries stand out as being significantly affected with great improvements: :code:`cs/dereferenced-value-may-be-null` has been completely rewritten which removes a very significant number of false positives. Furthermore, :code:`cs/constant-condition` has been updated to report many new results - these new results are primarily expected to be true positives, but a few new false positives are expected as well. As part of these changes, :code:`cs/dereferenced-value-may-be-null` has been changed from a :code:`path-problem` query to a :code:`problem` query, so paths are no longer reported for this query. +* The representation of the C# control-flow graph has been significantly changed. This has minor effects on a wide range of queries including both minor improvements and minor regressions. For example, improved precision has been observed for :code:`cs/inefficient-containskey` and :code:`cs/stringbuilder-creation-in-loop`. Two queries stand out as being significantly affected with great improvements: :code:`cs/dereferenced-value-may-be-null` has been completely rewritten which removes a very significant number of false positives. Furthermore, :code:`cs/constant-condition` has been updated to report many new results - these new results are primarily expected to be true positives, but a few new false positives are expected as well. As part of these changes, :code:`cs/dereferenced-value-may-be-null` has been changed from a :code:`path-problem` query to a :code:`problem` query, so paths are no longer reported for this query. Swift """"" diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.6.rst index 67fe1ed487f..dc0239a1f6c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.6.rst @@ -9,7 +9,7 @@ CodeQL 2.23.6 (2025-11-24) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.7.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.7.rst new file mode 100644 index 00000000000..01312548aaf --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.7.rst @@ -0,0 +1,116 @@ +.. _codeql-cli-2.23.7: + +========================== +CodeQL 2.23.7 (2025-12-05) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.23.7 runs a total of 491 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). 6 security queries have been added with this release. + +CodeQL CLI +---------- + +Deprecations +~~~~~~~~~~~~ + +* The :code:`--save-cache` flag to :code:`codeql database run-queries` and other commands that execute queries has been deprecated. This flag previously instructed the evaluator to aggressively write intermediate results to the disk cache, but now has no effect. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Java/Kotlin +""""""""""" + +* Operations that extract only a fixed-length prefix or suffix of a string (for example, :code:`substring` in Java or :code:`take` in Kotlin), when limited to a length of at most 7 characters, are now treated as sanitizers for the :code:`java/sensitive-log` query. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Fixed a bug in the Next.js model that would cause the analysis to miss server-side taint sources in the :code:`app/pages` folder. + +Rust +"""" + +* The :code:`rust/access-invalid-pointer` query has been improved with new flow sources and barriers. + +New Queries +~~~~~~~~~~~ + +Golang +"""""" + +* The :code:`go/cookie-http-only-not-set` query has been promoted from the experimental query pack. This query was originally contributed to the experimental query pack by @edvraa. +* A new query :code:`go/cookie-secure-not-set` has been added to detect cookies without the :code:`Secure` flag set. +* Added a new query, :code:`go/weak-crypto-algorithm`, to detect the use of a broken or weak cryptographic algorithm. A very simple version of this query was originally contributed as an `experimental query by @dilanbhalla `__. +* Added a new query, :code:`go/weak-sensitive-data-hashing`, to detect the use of a broken or weak cryptographic hash algorithm on sensitive data. + +Rust +"""" + +* Added a new query :code:`rust/xss`, to detect cross-site scripting security vulnerabilities. +* Added a new query :code:`rust/disabled-certificate-check`, to detect disabled TLS certificate checks. +* Added three example queries (:code:`rust/examples/empty-if`, :code:`rust/examples/simple-sql-injection` and :code:`rust/examples/simple-constant-password`) to help developers learn to write CodeQL queries for Rust. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +Python +"""""" + +* Fixed a bug in the Python extractor's import handling where failing to find an import in :code:`find_module` would cause a :code:`KeyError` to be raised. (Contributed by @akoeplinger.) + +Breaking Changes +~~~~~~~~~~~~~~~~ + +Rust +"""" + +* The type :code:`DataFlow::Node` is now based directly on the AST instead of the CFG, which means that predicates like :code:`asExpr()` return AST nodes instead of CFG nodes. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The class :code:`DataFlow::FieldContent` now covers both :code:`union` and :code:`struct`\ /\ :code:`class` types. A new predicate :code:`FieldContent.getAField` has been added to access the union members associated with the :code:`FieldContent`. The old :code:`FieldContent` has been renamed to :code:`NonUnionFieldContent`. + +C# +"" + +* Improved stability when downloading .NET versions by setting appropriate environment variables for :code:`dotnet` commands. The correct architecture-specific version of .NET is now downloaded on ARM runners. +* Compilation errors are now included in the debug log when using build-mode none. +* Added a new extractor option to specify a custom directory for dependency downloads in buildless mode. Use :code:`-O buildless_dependency_dir=` to configure the target directory. + +JavaScript/TypeScript +""""""""""""""""""""" + +* JavaScript :code:`DataFlow::globalVarRef` now recognizes :code:`document.defaultView` as an alias of :code:`window`, allowing flows such as :code:`document.defaultView.history.pushState(...)` to be modeled and found by queries relying on :code:`globalVarRef("history")`. + +Rust +"""" + +* Added more detailed models for :code:`std::fs` and :code:`std::path`. + +Deprecated APIs +~~~~~~~~~~~~~~~ + +Java/Kotlin +""""""""""" + +* The SSA interface has been updated and all classes and several predicates have been renamed. See the qldoc for more specific migration information. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.8.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.8.rst new file mode 100644 index 00000000000..be32da0df0e --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.8.rst @@ -0,0 +1,33 @@ +.. _codeql-cli-2.23.8: + +========================== +CodeQL 2.23.8 (2025-12-10) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.23.8 runs a total of 491 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). + +CodeQL CLI +---------- + +There are no user-facing CLI changes in this release. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Java/Kotlin +""""""""""" + +* Java analysis no longer forces :code:`--source` and :code:`--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index 195a9782088..8eb59792af4 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,8 @@ A list of queries for each suite and language `is available here Date: Tue, 16 Dec 2025 11:35:35 -0600 Subject: [PATCH 020/263] Minor revert to 2.23.1 rst --- .../codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst index 27f1eee84ed..78e5e367bce 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst @@ -88,7 +88,7 @@ JavaScript/TypeScript * Data flow is now tracked through the :code:`Promise.try` and :code:`Array.prototype.with` functions. * Query :code:`js/index-out-of-bounds` no longer produces a false-positive when a strictly-less-than check overrides a previous less-than-or-equal test. * The query :code:`js/remote-property-injection` now detects property injection vulnerabilities through object enumeration patterns such as :code:`Object.keys()`. -* The query "Permissive CORS configuration" (:code:`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. Thank you to @maikypedia who `submitted the original experimental query `__\ ! +* The query "Permissive CORS configuration" (:code:`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. Thank you to @maikypedia who `submitted the original experimental query `__ ! Python """""" @@ -126,7 +126,7 @@ Golang """""" * The second argument of the :code:`CreateTemp` function, from the :code:`os` package, is no longer a path-injection sink due to proper sanitization by Go. -* The query "Uncontrolled data used in path expression" (:code:`go/path-injection`) now detects sanitizing a path by adding :code:`os.PathSeparator` or :code:`\` to the beginning. +* The query "Uncontrolled data used in path expression" (:code:`go/path-injection`) now detects sanitizing a path by adding :code:`os.PathSeparator` or ``\`` to the beginning. Java/Kotlin """"""""""" From c7ec175e10a7e55d3cdfafc79e79fbb1478a8fb1 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Tue, 16 Dec 2025 11:36:34 -0600 Subject: [PATCH 021/263] Minor change to 2.23.1 rst --- .../codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst index 78e5e367bce..ff22a3f647c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst @@ -88,7 +88,7 @@ JavaScript/TypeScript * Data flow is now tracked through the :code:`Promise.try` and :code:`Array.prototype.with` functions. * Query :code:`js/index-out-of-bounds` no longer produces a false-positive when a strictly-less-than check overrides a previous less-than-or-equal test. * The query :code:`js/remote-property-injection` now detects property injection vulnerabilities through object enumeration patterns such as :code:`Object.keys()`. -* The query "Permissive CORS configuration" (:code:`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. Thank you to @maikypedia who `submitted the original experimental query `__ ! +* The query "Permissive CORS configuration" (:code:`js/cors-permissive-configuration`) has been promoted from experimental and is now part of the default security suite. Thank you to @maikypedia who `submitted the original experimental query `__! Python """""" From b22077c37123d253df0a8f6f2d174bea1ecae7e0 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Mon, 22 Dec 2025 20:22:20 +0100 Subject: [PATCH 022/263] Hardcoded credentials in CouchBase --- .../com.couchbase.client.core.env.model.yml | 12 ++++ .../ext/com.couchbase.client.java.model.yml | 9 +++ .../tests/HardcodedCouchBaseCredentials.java | 35 ++++++++++ .../security/CWE-798/semmle/tests/options | 2 +- .../client/core/env/Authenticator.java | 20 ++++++ .../core/env/CertificateAuthenticator.java | 42 ++++++++++++ .../core/env/PasswordAuthenticator.java | 65 +++++++++++++++++++ .../couchbase/client/core/env/SeedNode.java | 19 ++++++ .../client/core/env/UsernameAndPassword.java | 19 ++++++ .../couchbase/client/java/AsyncCluster.java | 30 +++++++++ .../com/couchbase/client/java/Cluster.java | 39 +++++++++++ .../couchbase/client/java/ClusterOptions.java | 28 ++++++++ 12 files changed, 319 insertions(+), 1 deletion(-) create mode 100644 java/ql/lib/ext/com.couchbase.client.core.env.model.yml create mode 100644 java/ql/lib/ext/com.couchbase.client.java.model.yml create mode 100644 java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java diff --git a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml new file mode 100644 index 00000000000..8222b8e88cd --- /dev/null +++ b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml @@ -0,0 +1,12 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[0]", "credentials-key", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(Path,String,Optional)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(KeyStore,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(String)", "", "Argument[0]", "credentials-password", "manual"] diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml new file mode 100644 index 00000000000..6796fcc524d --- /dev/null +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -0,0 +1,9 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[0]","credentials-username","manual"] + - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[1]","credentials-password","manual"] + - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[1]","credentials-username","manual"] + - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[2]","credentials-password","manual"] diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java new file mode 100644 index 00000000000..f46ff80ba52 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -0,0 +1,35 @@ +import static com.couchbase.client.java.ClusterOptions.clusterOptions; + +import com.couchbase.client.core.env.Authenticator; +import com.couchbase.client.core.env.CertificateAuthenticator; +import com.couchbase.client.core.env.PasswordAuthenticator; +import com.couchbase.client.java.Cluster; + +public class HardcodedCouchBaseCredentials { + public static void test() { + Cluster cluster1 = + Cluster.connect( + "127.0.0.1", + "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + "password"); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + Cluster cluster2 = + Cluster.connect( + "127.0.0.1", + clusterOptions( + "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + "password")); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + PasswordAuthenticator authenticator1 = + PasswordAuthenticator.builder() + .username( + "Administrator") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + .password("password") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall + .onlyEnablePlainSaslMechanism() + .build(); + + Authenticator authenticator2 = + CertificateAuthenticator.fromKeyStore( + null, + "keyStorePassword"); // $ HardcodedCredentialsApiCall + Cluster cluster = Cluster.connect("127.0.0.1", clusterOptions(authenticator2)); + } +} \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/options b/java/ql/test/query-tests/security/CWE-798/semmle/tests/options index 18ff7ebd8a9..209b6ec6a32 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/options +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/options @@ -1 +1 @@ -// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/amazon-aws-sdk-1.11.700:${testdir}/../../../../../stubs/azure-sdk-for-java:${testdir}/../../../../../stubs/shiro-core-1.4.0:${testdir}/../../../../../stubs/jsch-0.1.55:${testdir}/../../../../../stubs/ganymed-ssh-2-260:${testdir}/../../../../../stubs/apache-mina-sshd-2.8.0:${testdir}/../../../../../stubs/sshj-0.33.0:${testdir}/../../../../../stubs/j2ssh-1.5.5:${testdir}/../../../../../stubs/trilead-ssh2-212:${testdir}/../../../../../stubs/apache-commons-net-3.8.0:${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/mssql-jdbc-12.2.0:${testdir}/../../../../../stubs/auth0-jwt-2.3 +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/amazon-aws-sdk-1.11.700:${testdir}/../../../../../stubs/azure-sdk-for-java:${testdir}/../../../../../stubs/shiro-core-1.4.0:${testdir}/../../../../../stubs/jsch-0.1.55:${testdir}/../../../../../stubs/ganymed-ssh-2-260:${testdir}/../../../../../stubs/apache-mina-sshd-2.8.0:${testdir}/../../../../../stubs/sshj-0.33.0:${testdir}/../../../../../stubs/j2ssh-1.5.5:${testdir}/../../../../../stubs/trilead-ssh2-212:${testdir}/../../../../../stubs/apache-commons-net-3.8.0:${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/couchbaseClient:${testdir}/../../../../../stubs/mssql-jdbc-12.2.0:${testdir}/../../../../../stubs/auth0-jwt-2.3 diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java new file mode 100644 index 00000000000..2868d486698 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/Authenticator.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + + +public interface Authenticator {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java new file mode 100644 index 00000000000..eb837ab18fe --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/CertificateAuthenticator.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + +import java.nio.file.Path; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.security.cert.X509Certificate; +import java.util.List; +import java.util.Optional; + +public class CertificateAuthenticator implements Authenticator { + + public static CertificateAuthenticator fromKeyStore( + final Path keyStorePath, final String keyStorePassword, final Optional keyStoreType) { + return null; + } + + public static CertificateAuthenticator fromKeyStore( + final KeyStore keyStore, final String keyStorePassword) { + return null; + } + + public static CertificateAuthenticator fromKey( + final PrivateKey key, final String keyPassword, final List keyCertChain) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java new file mode 100644 index 00000000000..ec37e812463 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.core.env; + +import java.util.function.Supplier; + +public class PasswordAuthenticator implements Authenticator { + + public static PasswordAuthenticator.Builder builder() { + return null; + } + + public static PasswordAuthenticator create(final String username, final String password) { + return null; + } + + public static PasswordAuthenticator ldapCompatible(final String username, final String password) { + return null; + } + + private static String encodeAuthHttpHeader(UsernameAndPassword credentials) { + return null; + } + + public static class Builder { + + public Builder username(final String username) { + return null; + } + + public Builder username(final Supplier username) { + return null; + } + + public Builder password(final String password) { + + return null; + } + + public Builder password(final Supplier password) { + return null; + } + + public Builder onlyEnablePlainSaslMechanism() { + return null; + } + + public PasswordAuthenticator build() { + return null; + } + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java new file mode 100644 index 00000000000..fa8fcb4b6d2 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/SeedNode.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + +public class SeedNode {} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java new file mode 100644 index 00000000000..72d3ba0647b --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java @@ -0,0 +1,19 @@ +/* + * Copyright 2024 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.core.env; + +public class UsernameAndPassword {} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java new file mode 100644 index 00000000000..2dd340befec --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/AsyncCluster.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java; + + +public class AsyncCluster { + + public static AsyncCluster connect( + final String connectionString, final String username, final String password) { + return null; + } + + public static AsyncCluster connect(final String connectionString, final ClusterOptions options) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java new file mode 100644 index 00000000000..e59d04d52e6 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java; + +import com.couchbase.client.core.env.SeedNode; +import java.io.Closeable; +import java.util.Set; + +public class Cluster implements Closeable { + + public static Cluster connect( + final String connectionString, final String username, final String password) { + return null; + } + + public static Cluster connect(final String connectionString, final ClusterOptions options) { + return null; + } + + public static Cluster connect(final Set seedNodes, final ClusterOptions options) { + return null; + } + + @Override + public void close() {} +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java new file mode 100644 index 00000000000..7c506393ee3 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/ClusterOptions.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java; + +import com.couchbase.client.core.env.Authenticator; + +public class ClusterOptions { + public static ClusterOptions clusterOptions(final Authenticator authenticator) { + return null; + } + + public static ClusterOptions clusterOptions(final String username, final String password) { + return null; + } +} \ No newline at end of file From 15ee88ee24f4f76de550f7da25f39ff1c2374324 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 24 Dec 2025 20:21:54 +0100 Subject: [PATCH 023/263] SQLi test case --- .../ext/com.couchbase.client.java.model.yml | 43 ++++++- .../2025-23-23-couchbase-sinks.md | 4 + .../CWE-089/semmle/examples/CouchBase.java | 18 +++ .../semmle/examples/SqlTainted.expected | 113 ++++++++++-------- .../security/CWE-089/semmle/examples/options | 2 +- .../com/couchbase/client/java/Bucket.java | 23 ++++ .../com/couchbase/client/java/Cluster.java | 10 ++ .../com/couchbase/client/java/Collection.java | 50 ++++++++ .../couchbase/client/java/CommonOptions.java | 19 +++ .../client/java/json/JsonObject.java | 33 +++++ .../couchbase/client/java/json/JsonValue.java | 19 +++ .../java/kv/CommonDurabilityOptions.java | 22 ++++ .../client/java/kv/InsertOptions.java | 19 +++ .../client/java/kv/MutationResult.java | 24 ++++ .../client/java/kv/ReplaceOptions.java | 19 +++ .../client/java/kv/UpsertOptions.java | 26 ++++ .../client/java/query/QueryResult.java | 19 +++ 17 files changed, 411 insertions(+), 52 deletions(-) create mode 100644 java/ql/src/change-notes/2025-23-23-couchbase-sinks.md create mode 100644 java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 6796fcc524d..3d7015e86af 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -3,7 +3,42 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[0]","credentials-username","manual"] - - ["com.couchbase.client.java","ClusterOptions",true,"clusterOptions","(String,String)","","Argument[1]","credentials-password","manual"] - - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[1]","credentials-username","manual"] - - ["com.couchbase.client.java","Cluster",true,"connect","(String,String,String)","","Argument[2]","credentials-password","manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[1]", "credentials-username", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[2]", "credentials-password", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery,SearchOptions)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object,UpsertOptions)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object,ReplaceOptions)", "", "Argument[1]", "sql-injection", "manual"] + + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,long)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,number)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,double)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md b/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md new file mode 100644 index 00000000000..f6e8a97df9d --- /dev/null +++ b/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java new file mode 100644 index 00000000000..8a817aa9c11 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java @@ -0,0 +1,18 @@ +package com.example; + +import com.couchbase.client.java.Bucket; +import com.couchbase.client.java.Cluster; +import com.couchbase.client.java.Collection; +import com.couchbase.client.java.json.JsonObject; + +public class CouchBase { + public static void main(String[] args) { + Cluster cluster = Cluster.connect("192.168.0.158", "Administrator", "Administrator"); + Bucket bucket = cluster.bucket("travel-sample"); + cluster.query(args[1]); + + Collection collection = bucket.defaultCollection(); + collection.replace("airbnb_1", JsonObject.create().putNull(System.getenv("ITEM_CATEGORY"))); + collection.upsert("airbnb_1", JsonObject.create().put("country", args[1])); + } +} diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected index a45f58bd54d..4885e812e28 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected @@ -29,6 +29,9 @@ | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | +| CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | +| CouchBase.java:15:36:15:94 | putNull(...) | CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | This query depends on a $@. | CouchBase.java:15:64:15:93 | getenv(...) | user-provided value | +| CouchBase.java:16:35:16:77 | put(...) | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:35:16:77 | put(...) | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | | Mongo.java:17:45:17:67 | parse(...) | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:45:17:67 | parse(...) | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Mongo.java:21:49:21:52 | json | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Test.java:36:47:36:52 | query1 | Test.java:227:26:227:38 | args : String[] | Test.java:36:47:36:52 | query1 | This query depends on a $@. | Test.java:227:26:227:38 | args | user-provided value | @@ -48,21 +51,21 @@ edges | AllowListSanitizerWithJavaUtilList.java:51:13:51:16 | args : String[] | AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:54:23:54:26 | args : String[] | AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:55:14:55:17 | args : String[] | AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:4 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:7 | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:49:20:49:23 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | provenance | | @@ -71,36 +74,40 @@ edges | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:54:14:54:17 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:4 | -| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:4 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:7 | +| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:1 | +| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:70:16:76 | ...[...] : String | provenance | | +| CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | provenance | Src:MaD:9 MaD:11 Sink:MaD:2 | +| CouchBase.java:16:70:16:76 | ...[...] : String | CouchBase.java:16:35:16:77 | put(...) | provenance | MaD:10 Sink:MaD:3 | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | provenance | | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | provenance | | | Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | provenance | Config | -| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:4 | -| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:1 | -| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:2 | +| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:7 | +| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:4 | +| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:5 | | Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | provenance | | -| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:5 | -| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:3 | +| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:8 | +| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:6 | | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | provenance | | -| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:6 | -| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:7 | -| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:4 | -| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:4 | -| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:4 | +| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:12 | +| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:13 | +| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:7 | +| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:7 | +| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:7 | | Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | provenance | | @@ -108,13 +115,19 @@ edges | Test.java:232:14:232:17 | args : String[] | Test.java:183:33:183:45 | args : String[] | provenance | | | Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | provenance | | models -| 1 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | -| 2 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | -| 3 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | -| 4 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | -| 5 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | -| 6 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | -| 7 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 1 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | +| 2 | Sink: com.couchbase.client.java; Collection; true; replace; (String,Object); ; Argument[1]; sql-injection; manual | +| 3 | Sink: com.couchbase.client.java; Collection; true; upsert; (String,Object); ; Argument[1]; sql-injection; manual | +| 4 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | +| 5 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | +| 6 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | +| 7 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | +| 8 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | +| 9 | Source: java.lang; System; false; getenv; ; ; ReturnValue; environment; manual | +| 10 | Summary: com.couchbase.client.java.json; JsonObject; true; put; (String,Object); ; Argument[1]; ReturnValue; taint; manual | +| 11 | Summary: com.couchbase.client.java.json; JsonObject; true; putNull; (String); ; Argument[0]; ReturnValue; taint; manual | +| 12 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 13 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | nodes | AllowListSanitizerWithJavaUtilList.java:48:26:48:38 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilList.java:50:20:50:23 | args : String[] | semmle.label | args : String[] | @@ -164,6 +177,12 @@ nodes | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | semmle.label | query | | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | semmle.label | query | +| CouchBase.java:9:27:9:39 | args : String[] | semmle.label | args : String[] | +| CouchBase.java:12:19:12:25 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:15:36:15:94 | putNull(...) | semmle.label | putNull(...) | +| CouchBase.java:15:64:15:93 | getenv(...) : String | semmle.label | getenv(...) : String | +| CouchBase.java:16:35:16:77 | put(...) | semmle.label | put(...) | +| CouchBase.java:16:70:16:76 | ...[...] : String | semmle.label | ...[...] : String | | Mongo.java:10:29:10:41 | args : String[] | semmle.label | args : String[] | | Mongo.java:17:45:17:67 | parse(...) | semmle.label | parse(...) | | Mongo.java:17:56:17:66 | stringQuery : String | semmle.label | stringQuery : String | diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/options b/java/ql/test/query-tests/security/CWE-089/semmle/examples/options index 0252ff61ad3..8f5ee4913cc 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/options +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/springframework-5.8.x:${testdir}/../../../../../stubs/apache-hive:${testdir}/../../../../../stubs/jakarta-persistence-api-3.2.0 --release 21 +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../../stubs/mongodbClient:${testdir}/../../../../../stubs/couchbaseClient:${testdir}/../../../../../stubs/springframework-5.8.x:${testdir}/../../../../../stubs/apache-hive:${testdir}/../../../../../stubs/jakarta-persistence-api-3.2.0 --release 21 diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java new file mode 100644 index 00000000000..9edfff088bd --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java; + +public class Bucket { + + public Collection defaultCollection() { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java index e59d04d52e6..a6201b42992 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java @@ -13,14 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package com.couchbase.client.java; import com.couchbase.client.core.env.SeedNode; +import com.couchbase.client.java.query.QueryResult; import java.io.Closeable; import java.util.Set; public class Cluster implements Closeable { + public Bucket bucket(String bucketName) { + return null; + } + public static Cluster connect( final String connectionString, final String username, final String password) { return null; @@ -34,6 +40,10 @@ public class Cluster implements Closeable { return null; } + public QueryResult query(final String statement) { + return null; + } + @Override public void close() {} } \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java new file mode 100644 index 00000000000..7657c84703a --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java; + +import com.couchbase.client.java.kv.InsertOptions; +import com.couchbase.client.java.kv.MutationResult; +import com.couchbase.client.java.kv.ReplaceOptions; +import com.couchbase.client.java.kv.UpsertOptions; + +public class Collection { + + public MutationResult insert(final String id, final Object content) { + return null; + } + + public MutationResult insert(final String id, final Object content, final InsertOptions options) { + return null; + } + + public MutationResult upsert(final String id, final Object content) { + return null; + } + + public MutationResult upsert(final String id, final Object content, final UpsertOptions options) { + return null; + } + + public MutationResult replace(final String id, final Object content) { + return null; + } + + public MutationResult replace( + final String id, final Object content, final ReplaceOptions options) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java new file mode 100644 index 00000000000..fbef5a508e3 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/CommonOptions.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java; + +public abstract class CommonOptions> {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java new file mode 100644 index 00000000000..ff88c595f9c --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java.json; + +import java.io.Serializable; + +public class JsonObject extends JsonValue implements Serializable { + + public static JsonObject create() { + return null; + } + + public JsonObject put(final String name, final Object value) { + return null; + } + + public JsonObject putNull(final String name) { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java new file mode 100644 index 00000000000..e6c664ca9db --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2016 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.couchbase.client.java.json; + + +public abstract class JsonValue {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java new file mode 100644 index 00000000000..77d2272adf7 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/CommonDurabilityOptions.java @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +import com.couchbase.client.java.CommonOptions; + +public abstract class CommonDurabilityOptions> + extends CommonOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java new file mode 100644 index 00000000000..b5742246822 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/InsertOptions.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +public class InsertOptions extends CommonDurabilityOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java new file mode 100644 index 00000000000..ada739a2c4e --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/MutationResult.java @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +/** + * Result returned from all kinds of Key-Value mutation operations. + * + * @since 3.0.0 + */ +public class MutationResult {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java new file mode 100644 index 00000000000..db2cfae69a8 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/ReplaceOptions.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +public class ReplaceOptions extends CommonDurabilityOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java new file mode 100644 index 00000000000..de82b64290d --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/kv/UpsertOptions.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2018 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.kv; + +public class UpsertOptions extends CommonDurabilityOptions { + + private UpsertOptions() {} + + public static UpsertOptions upsertOptions() { + return null; + } +} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java new file mode 100644 index 00000000000..2796ffbb053 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2019 Couchbase, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.couchbase.client.java.query; + +public class QueryResult {} From cb341609e7a0aba71ff3fcd060dc53b289153aae Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 24 Dec 2025 20:41:11 +0100 Subject: [PATCH 024/263] Add change notes for Couchbase sinks --- ...5-23-23-couchbase-sinks.md => 2025-12-24-couchbase-sinks.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename java/ql/src/change-notes/{2025-23-23-couchbase-sinks.md => 2025-12-24-couchbase-sinks.md} (72%) diff --git a/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md b/java/ql/src/change-notes/2025-12-24-couchbase-sinks.md similarity index 72% rename from java/ql/src/change-notes/2025-23-23-couchbase-sinks.md rename to java/ql/src/change-notes/2025-12-24-couchbase-sinks.md index f6e8a97df9d..473c708dcfb 100644 --- a/java/ql/src/change-notes/2025-23-23-couchbase-sinks.md +++ b/java/ql/src/change-notes/2025-12-24-couchbase-sinks.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. \ No newline at end of file +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. From 1e1fb4353498822e082ea50ac7006964c6ee3dcb Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Fri, 2 Jan 2026 11:55:40 +0100 Subject: [PATCH 025/263] Update JsonObject put method signatures in YAML Use erased type --- java/ql/lib/ext/com.couchbase.client.java.model.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 3d7015e86af..1c64294dc55 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -35,10 +35,10 @@ extensions: - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] From c00663766e2f4a6e98123b39b38119d0ad5cd3ff Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 5 Jan 2026 11:57:06 +0000 Subject: [PATCH 026/263] Release preparation for version 2.23.9 --- actions/ql/lib/CHANGELOG.md | 4 ++++ actions/ql/lib/change-notes/released/0.4.25.md | 3 +++ actions/ql/lib/codeql-pack.release.yml | 2 +- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/CHANGELOG.md | 4 ++++ actions/ql/src/change-notes/released/0.6.17.md | 3 +++ actions/ql/src/codeql-pack.release.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/CHANGELOG.md | 4 ++++ cpp/ql/lib/change-notes/released/6.1.4.md | 3 +++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 4 ++++ cpp/ql/src/change-notes/released/1.5.8.md | 3 +++ cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../campaigns/Solorigate/lib/change-notes/released/1.7.56.md | 3 +++ csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../campaigns/Solorigate/src/change-notes/released/1.7.56.md | 3 +++ csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 4 ++++ csharp/ql/lib/change-notes/released/5.4.4.md | 3 +++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 4 ++++ csharp/ql/src/change-notes/released/1.5.4.md | 3 +++ csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ go/ql/consistency-queries/change-notes/released/1.0.39.md | 3 +++ go/ql/consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 4 ++++ go/ql/lib/change-notes/released/5.0.6.md | 3 +++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/1.5.3.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 4 ++++ java/ql/lib/change-notes/released/7.8.3.md | 3 +++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 4 ++++ java/ql/src/change-notes/released/1.10.4.md | 3 +++ java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 4 ++++ javascript/ql/lib/change-notes/released/2.6.19.md | 3 +++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 4 ++++ javascript/ql/src/change-notes/released/2.2.4.md | 3 +++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ misc/suite-helpers/change-notes/released/1.0.39.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 4 ++++ python/ql/lib/change-notes/released/5.0.4.md | 3 +++ python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 4 ++++ python/ql/src/change-notes/released/1.7.4.md | 3 +++ python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++++ ruby/ql/lib/change-notes/released/5.1.7.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 4 ++++ ruby/ql/src/change-notes/released/1.5.4.md | 3 +++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/CHANGELOG.md | 4 ++++ rust/ql/lib/change-notes/released/0.2.3.md | 3 +++ rust/ql/lib/codeql-pack.release.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/CHANGELOG.md | 4 ++++ rust/ql/src/change-notes/released/0.1.24.md | 3 +++ rust/ql/src/codeql-pack.release.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/CHANGELOG.md | 4 ++++ shared/concepts/change-notes/released/0.0.13.md | 3 +++ shared/concepts/codeql-pack.release.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ shared/controlflow/change-notes/released/2.0.23.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/2.0.23.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/1.0.39.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/CHANGELOG.md | 4 ++++ shared/quantum/change-notes/released/0.0.17.md | 3 +++ shared/quantum/codeql-pack.release.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ shared/rangeanalysis/change-notes/released/1.0.39.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/1.0.39.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/2.0.15.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ shared/threat-models/change-notes/released/1.0.39.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/1.0.39.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/CHANGELOG.md | 4 ++++ shared/typeflow/change-notes/released/1.0.39.md | 3 +++ shared/typeflow/codeql-pack.release.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/CHANGELOG.md | 4 ++++ shared/typeinference/change-notes/released/0.0.20.md | 3 +++ shared/typeinference/codeql-pack.release.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ shared/typetracking/change-notes/released/2.0.23.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/1.0.39.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/2.0.26.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/CHANGELOG.md | 4 ++++ shared/xml/change-notes/released/1.0.39.md | 3 +++ shared/xml/codeql-pack.release.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/1.0.39.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 4 ++++ swift/ql/lib/change-notes/released/6.1.4.md | 3 +++ swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/1.2.13.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 164 files changed, 369 insertions(+), 82 deletions(-) create mode 100644 actions/ql/lib/change-notes/released/0.4.25.md create mode 100644 actions/ql/src/change-notes/released/0.6.17.md create mode 100644 cpp/ql/lib/change-notes/released/6.1.4.md create mode 100644 cpp/ql/src/change-notes/released/1.5.8.md create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.56.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.56.md create mode 100644 csharp/ql/lib/change-notes/released/5.4.4.md create mode 100644 csharp/ql/src/change-notes/released/1.5.4.md create mode 100644 go/ql/consistency-queries/change-notes/released/1.0.39.md create mode 100644 go/ql/lib/change-notes/released/5.0.6.md create mode 100644 go/ql/src/change-notes/released/1.5.3.md create mode 100644 java/ql/lib/change-notes/released/7.8.3.md create mode 100644 java/ql/src/change-notes/released/1.10.4.md create mode 100644 javascript/ql/lib/change-notes/released/2.6.19.md create mode 100644 javascript/ql/src/change-notes/released/2.2.4.md create mode 100644 misc/suite-helpers/change-notes/released/1.0.39.md create mode 100644 python/ql/lib/change-notes/released/5.0.4.md create mode 100644 python/ql/src/change-notes/released/1.7.4.md create mode 100644 ruby/ql/lib/change-notes/released/5.1.7.md create mode 100644 ruby/ql/src/change-notes/released/1.5.4.md create mode 100644 rust/ql/lib/change-notes/released/0.2.3.md create mode 100644 rust/ql/src/change-notes/released/0.1.24.md create mode 100644 shared/concepts/change-notes/released/0.0.13.md create mode 100644 shared/controlflow/change-notes/released/2.0.23.md create mode 100644 shared/dataflow/change-notes/released/2.0.23.md create mode 100644 shared/mad/change-notes/released/1.0.39.md create mode 100644 shared/quantum/change-notes/released/0.0.17.md create mode 100644 shared/rangeanalysis/change-notes/released/1.0.39.md create mode 100644 shared/regex/change-notes/released/1.0.39.md create mode 100644 shared/ssa/change-notes/released/2.0.15.md create mode 100644 shared/threat-models/change-notes/released/1.0.39.md create mode 100644 shared/tutorial/change-notes/released/1.0.39.md create mode 100644 shared/typeflow/change-notes/released/1.0.39.md create mode 100644 shared/typeinference/change-notes/released/0.0.20.md create mode 100644 shared/typetracking/change-notes/released/2.0.23.md create mode 100644 shared/typos/change-notes/released/1.0.39.md create mode 100644 shared/util/change-notes/released/2.0.26.md create mode 100644 shared/xml/change-notes/released/1.0.39.md create mode 100644 shared/yaml/change-notes/released/1.0.39.md create mode 100644 swift/ql/lib/change-notes/released/6.1.4.md create mode 100644 swift/ql/src/change-notes/released/1.2.13.md diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 4713be3d4f5..4dfbb8413e2 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.25 + +No user-facing changes. + ## 0.4.24 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.25.md b/actions/ql/lib/change-notes/released/0.4.25.md new file mode 100644 index 00000000000..b6bf0f1e3ab --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.25.md @@ -0,0 +1,3 @@ +## 0.4.25 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index b26f62aec37..7b212c2605f 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.24 +lastReleaseVersion: 0.4.25 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 2ef4b7765bf..704515053ef 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.25-dev +version: 0.4.25 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 9a9f8964755..1e5d2cab0e7 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.17 + +No user-facing changes. + ## 0.6.16 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.17.md b/actions/ql/src/change-notes/released/0.6.17.md new file mode 100644 index 00000000000..8f59252451e --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.17.md @@ -0,0 +1,3 @@ +## 0.6.17 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index 169788bff08..e1ac143badf 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.16 +lastReleaseVersion: 0.6.17 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 51286147674..a505bc0044a 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.17-dev +version: 0.6.17 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index e0c8b287adc..3a543c0da92 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.1.4 + +No user-facing changes. + ## 6.1.3 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/released/6.1.4.md b/cpp/ql/lib/change-notes/released/6.1.4.md new file mode 100644 index 00000000000..7c4728fafa4 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/6.1.4.md @@ -0,0 +1,3 @@ +## 6.1.4 + +No user-facing changes. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index e641a874973..7dbbf7fb553 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.3 +lastReleaseVersion: 6.1.4 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 76f68c8b83e..1b9c6981712 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 6.1.4-dev +version: 6.1.4 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index a6caf3c6a6b..6747d616b43 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.8 + +No user-facing changes. + ## 1.5.7 No user-facing changes. diff --git a/cpp/ql/src/change-notes/released/1.5.8.md b/cpp/ql/src/change-notes/released/1.5.8.md new file mode 100644 index 00000000000..ec8f84e657f --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.5.8.md @@ -0,0 +1,3 @@ +## 1.5.8 + +No user-facing changes. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 227ac5febef..d26e0a52764 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.7 +lastReleaseVersion: 1.5.8 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 9161494a401..3381fb5c5f2 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.8-dev +version: 1.5.8 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 73990a2c6fd..6f9460e613c 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.56 + +No user-facing changes. + ## 1.7.55 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.56.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.56.md new file mode 100644 index 00000000000..495cde9379d --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.56.md @@ -0,0 +1,3 @@ +## 1.7.56 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 26e02fb41f4..c228b5e0e71 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.55 +lastReleaseVersion: 1.7.56 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 46f964a1bae..bf4562a749b 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.56-dev +version: 1.7.56 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 73990a2c6fd..6f9460e613c 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.56 + +No user-facing changes. + ## 1.7.55 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.56.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.56.md new file mode 100644 index 00000000000..495cde9379d --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.56.md @@ -0,0 +1,3 @@ +## 1.7.56 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 26e02fb41f4..c228b5e0e71 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.55 +lastReleaseVersion: 1.7.56 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index cb91019ff14..4dab4381520 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.56-dev +version: 1.7.56 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 59eb2a98cf0..346d48fca29 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.4 + +No user-facing changes. + ## 5.4.3 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/released/5.4.4.md b/csharp/ql/lib/change-notes/released/5.4.4.md new file mode 100644 index 00000000000..88aaa5cc6bd --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.4.4.md @@ -0,0 +1,3 @@ +## 5.4.4 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index dc2d3dec96c..cb0e3d32e76 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.3 +lastReleaseVersion: 5.4.4 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 527e890f47b..02ad4f6d63a 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.4-dev +version: 5.4.4 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index e91f882b9ed..3ac11a9af34 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.4 + +No user-facing changes. + ## 1.5.3 No user-facing changes. diff --git a/csharp/ql/src/change-notes/released/1.5.4.md b/csharp/ql/src/change-notes/released/1.5.4.md new file mode 100644 index 00000000000..5ff5ac8ebb7 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.5.4.md @@ -0,0 +1,3 @@ +## 1.5.4 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 232224b0e26..c216828ee1c 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.3 +lastReleaseVersion: 1.5.4 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index efe787aaae5..f72e5118a0e 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.5.4-dev +version: 1.5.4 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 00273047253..dd213e111b4 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.39.md b/go/ql/consistency-queries/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 8bb3c230c3e..e6cd6f4e4d2 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.39-dev +version: 1.0.39 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 5f0fda7c3e6..53eac41e696 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.6 + +No user-facing changes. + ## 5.0.5 No user-facing changes. diff --git a/go/ql/lib/change-notes/released/5.0.6.md b/go/ql/lib/change-notes/released/5.0.6.md new file mode 100644 index 00000000000..3281a876281 --- /dev/null +++ b/go/ql/lib/change-notes/released/5.0.6.md @@ -0,0 +1,3 @@ +## 5.0.6 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 02e5f00fa9e..cc6fded2554 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.5 +lastReleaseVersion: 5.0.6 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 64cb6fbf98c..3232d8c570e 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 5.0.6-dev +version: 5.0.6 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 126e2b8583c..1f4ae4f3a57 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.3 + +No user-facing changes. + ## 1.5.2 No user-facing changes. diff --git a/go/ql/src/change-notes/released/1.5.3.md b/go/ql/src/change-notes/released/1.5.3.md new file mode 100644 index 00000000000..2e9bcb5e663 --- /dev/null +++ b/go/ql/src/change-notes/released/1.5.3.md @@ -0,0 +1,3 @@ +## 1.5.3 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 7eb901bae56..232224b0e26 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.2 +lastReleaseVersion: 1.5.3 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index d0c0874c987..05ee93b3bbe 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.3-dev +version: 1.5.3 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index ee076ba77a7..1180f563d23 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 7.8.3 + +No user-facing changes. + ## 7.8.2 No user-facing changes. diff --git a/java/ql/lib/change-notes/released/7.8.3.md b/java/ql/lib/change-notes/released/7.8.3.md new file mode 100644 index 00000000000..1e36fb05f08 --- /dev/null +++ b/java/ql/lib/change-notes/released/7.8.3.md @@ -0,0 +1,3 @@ +## 7.8.3 + +No user-facing changes. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 40a3d24f296..41a48ad0ff8 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.8.2 +lastReleaseVersion: 7.8.3 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index f0f57e7150d..9bad2e0bff3 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.3-dev +version: 7.8.3 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index a30e72bfaef..be5a172bb6c 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.10.4 + +No user-facing changes. + ## 1.10.3 ### Minor Analysis Improvements diff --git a/java/ql/src/change-notes/released/1.10.4.md b/java/ql/src/change-notes/released/1.10.4.md new file mode 100644 index 00000000000..b7255ea60f7 --- /dev/null +++ b/java/ql/src/change-notes/released/1.10.4.md @@ -0,0 +1,3 @@ +## 1.10.4 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index d3e15295550..35049ec188b 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.10.3 +lastReleaseVersion: 1.10.4 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index d5ab0a6cc4a..9375d72097c 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.4-dev +version: 1.10.4 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index b36b8f521a0..88fd8b8ea01 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.6.19 + +No user-facing changes. + ## 2.6.18 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/released/2.6.19.md b/javascript/ql/lib/change-notes/released/2.6.19.md new file mode 100644 index 00000000000..f4f993bfa15 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.19.md @@ -0,0 +1,3 @@ +## 2.6.19 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index ce85aee60d1..679db550b20 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.18 +lastReleaseVersion: 2.6.19 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 88072819279..20f63559731 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.19-dev +version: 2.6.19 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 11b27f044cf..8c7ad99925a 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.4 + +No user-facing changes. + ## 2.2.3 No user-facing changes. diff --git a/javascript/ql/src/change-notes/released/2.2.4.md b/javascript/ql/src/change-notes/released/2.2.4.md new file mode 100644 index 00000000000..cfdc1fea47f --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.2.4.md @@ -0,0 +1,3 @@ +## 2.2.4 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 5ee5c5be7fc..5d34f486fd4 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.2.3 +lastReleaseVersion: 2.2.4 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 1ef59ad1834..893712630ba 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.2.4-dev +version: 2.2.4 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 5e5c3c37bae..61f60bfdac2 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.39.md b/misc/suite-helpers/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 3a79aea9f46..aee41f431ee 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.39-dev +version: 1.0.39 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 17da65f262d..c18a0cc83d1 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.4 + +No user-facing changes. + ## 5.0.3 No user-facing changes. diff --git a/python/ql/lib/change-notes/released/5.0.4.md b/python/ql/lib/change-notes/released/5.0.4.md new file mode 100644 index 00000000000..5c625c33d52 --- /dev/null +++ b/python/ql/lib/change-notes/released/5.0.4.md @@ -0,0 +1,3 @@ +## 5.0.4 + +No user-facing changes. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 6997554f6dd..8cb0167caf0 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.3 +lastReleaseVersion: 5.0.4 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 43e09a9cd09..c34712d22ea 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 5.0.4-dev +version: 5.0.4 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 43e0f12a212..5293d4c00a4 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.4 + +No user-facing changes. + ## 1.7.3 No user-facing changes. diff --git a/python/ql/src/change-notes/released/1.7.4.md b/python/ql/src/change-notes/released/1.7.4.md new file mode 100644 index 00000000000..801ed5f5e71 --- /dev/null +++ b/python/ql/src/change-notes/released/1.7.4.md @@ -0,0 +1,3 @@ +## 1.7.4 + +No user-facing changes. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 9f9661b1e77..f4f3a4d5120 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.3 +lastReleaseVersion: 1.7.4 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index cc3a6b25740..19df2afa9b5 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.4-dev +version: 1.7.4 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 7c3ccd16c8a..5a83b32807a 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.7 + +No user-facing changes. + ## 5.1.6 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.1.7.md b/ruby/ql/lib/change-notes/released/5.1.7.md new file mode 100644 index 00000000000..89048f7b019 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.7.md @@ -0,0 +1,3 @@ +## 5.1.7 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 5ddeeed69fc..f26524e1fd9 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.6 +lastReleaseVersion: 5.1.7 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 6cc2814827c..042e69662a7 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.7-dev +version: 5.1.7 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index ab000feb4a3..3968418c40b 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.4 + +No user-facing changes. + ## 1.5.3 No user-facing changes. diff --git a/ruby/ql/src/change-notes/released/1.5.4.md b/ruby/ql/src/change-notes/released/1.5.4.md new file mode 100644 index 00000000000..5ff5ac8ebb7 --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.5.4.md @@ -0,0 +1,3 @@ +## 1.5.4 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 232224b0e26..c216828ee1c 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.3 +lastReleaseVersion: 1.5.4 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 833f85894e3..55bb3cfae12 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.4-dev +version: 1.5.4 groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index e2aeb59f40b..6dd2293abeb 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.3 + +No user-facing changes. + ## 0.2.2 No user-facing changes. diff --git a/rust/ql/lib/change-notes/released/0.2.3.md b/rust/ql/lib/change-notes/released/0.2.3.md new file mode 100644 index 00000000000..873fbbfa89b --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.3.md @@ -0,0 +1,3 @@ +## 0.2.3 + +No user-facing changes. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index 16a06790aa8..0b605901b42 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.2 +lastReleaseVersion: 0.2.3 diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 551f2cd20cf..6e86b6bee95 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.3-dev +version: 0.2.3 groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index f5e2fdb6407..36aec92674d 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.24 + +No user-facing changes. + ## 0.1.23 No user-facing changes. diff --git a/rust/ql/src/change-notes/released/0.1.24.md b/rust/ql/src/change-notes/released/0.1.24.md new file mode 100644 index 00000000000..e94e0c402f0 --- /dev/null +++ b/rust/ql/src/change-notes/released/0.1.24.md @@ -0,0 +1,3 @@ +## 0.1.24 + +No user-facing changes. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 484c6d90798..561fd0bfe38 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.23 +lastReleaseVersion: 0.1.24 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 2162add3f35..5f89e3fde76 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.24-dev +version: 0.1.24 groups: - rust - queries diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index e2c7978d2b6..48b330cf5a1 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.13 + +No user-facing changes. + ## 0.0.12 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.13.md b/shared/concepts/change-notes/released/0.0.13.md new file mode 100644 index 00000000000..f679eaf0313 --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.13.md @@ -0,0 +1,3 @@ +## 0.0.13 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index 997fb8da83c..044e54e4f7e 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.12 +lastReleaseVersion: 0.0.13 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 8c44a51ff93..e16325bc876 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.13-dev +version: 0.0.13 groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 523f7667b24..f5521a1d403 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.23 + +No user-facing changes. + ## 2.0.22 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.23.md b/shared/controlflow/change-notes/released/2.0.23.md new file mode 100644 index 00000000000..ab6f6f171ed --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.23.md @@ -0,0 +1,3 @@ +## 2.0.23 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 980bdfe195b..1bd7e296a34 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.22 +lastReleaseVersion: 2.0.23 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 37ae8d21aaf..2f934084e5a 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.23-dev +version: 2.0.23 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index 8ade6c20ef4..b8f8111a341 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.23 + +No user-facing changes. + ## 2.0.22 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.0.23.md b/shared/dataflow/change-notes/released/2.0.23.md new file mode 100644 index 00000000000..ab6f6f171ed --- /dev/null +++ b/shared/dataflow/change-notes/released/2.0.23.md @@ -0,0 +1,3 @@ +## 2.0.23 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 980bdfe195b..1bd7e296a34 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.22 +lastReleaseVersion: 2.0.23 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 33335ec904f..18bb07678f3 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.23-dev +version: 2.0.23 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 27e5fb03dfa..799b76d1aad 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.39.md b/shared/mad/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 271e93b5c0b..da2879c8fe9 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index 28235d47f61..96dafca5768 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.17 + +No user-facing changes. + ## 0.0.16 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.17.md b/shared/quantum/change-notes/released/0.0.17.md new file mode 100644 index 00000000000..62cc89030a6 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.17.md @@ -0,0 +1,3 @@ +## 0.0.17 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index a49f7be4cff..cbc3d3cd493 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.16 +lastReleaseVersion: 0.0.17 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 1f08c524321..648bf8b9de2 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.17-dev +version: 0.0.17 groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index c1a36a57de3..c9073a6a0d3 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.39.md b/shared/rangeanalysis/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index f69da48d3fe..6e44134bb49 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index 0002bcde38e..bd4172a6f24 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.39.md b/shared/regex/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 522248c9f30..dee5f3cf38d 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 1dfec3daacc..e37d98b1dc1 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.15 + +No user-facing changes. + ## 2.0.14 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.15.md b/shared/ssa/change-notes/released/2.0.15.md new file mode 100644 index 00000000000..3b59db4224a --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.15.md @@ -0,0 +1,3 @@ +## 2.0.15 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 23aa0864b29..0377ae283a3 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.14 +lastReleaseVersion: 2.0.15 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 30854239413..ebd2da3638c 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.15-dev +version: 2.0.15 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index 00273047253..dd213e111b4 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.39.md b/shared/threat-models/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 6b972def924..860a53c69ed 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.39-dev +version: 1.0.39 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index ad2c71497db..1e813c59b63 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.39.md b/shared/tutorial/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index a1ea6bd35cf..0e16b4e3d5e 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 38e81a0275d..e937ff6cb9e 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.39.md b/shared/typeflow/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index e2e41e87b79..b35e76a613b 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index d5252bfc0c4..7ac497bdb32 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.20 + +No user-facing changes. + ## 0.0.19 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.20.md b/shared/typeinference/change-notes/released/0.0.20.md new file mode 100644 index 00000000000..98daf20a59a --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.20.md @@ -0,0 +1,3 @@ +## 0.0.20 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index f406319f372..d2e86745bca 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.19 +lastReleaseVersion: 0.0.20 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 0a5b99e7f11..dc588b8aced 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.20-dev +version: 0.0.20 groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 81415ed396f..7f86f9e8166 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.23 + +No user-facing changes. + ## 2.0.22 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.23.md b/shared/typetracking/change-notes/released/2.0.23.md new file mode 100644 index 00000000000..ab6f6f171ed --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.23.md @@ -0,0 +1,3 @@ +## 2.0.23 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 980bdfe195b..1bd7e296a34 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.22 +lastReleaseVersion: 2.0.23 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index e657f74f636..eb9c3a0344d 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.23-dev +version: 2.0.23 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 6c9dced04a3..c553f4c1f63 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.39.md b/shared/typos/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 31dfb14955f..201e7c4a5e3 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 30fd964656d..3578e000170 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.26 + +No user-facing changes. + ## 2.0.25 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.26.md b/shared/util/change-notes/released/2.0.26.md new file mode 100644 index 00000000000..9b1fe95f577 --- /dev/null +++ b/shared/util/change-notes/released/2.0.26.md @@ -0,0 +1,3 @@ +## 2.0.26 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index f54d8620118..63d57bef481 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.25 +lastReleaseVersion: 2.0.26 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index fed06829e33..c332de6a909 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.26-dev +version: 2.0.26 groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index 5c7447a15dd..5bb981adb8c 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.39.md b/shared/xml/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 079ebe8518c..4059b49beb7 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 073ffd8edae..dd850460279 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.39 + +No user-facing changes. + ## 1.0.38 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.39.md b/shared/yaml/change-notes/released/1.0.39.md new file mode 100644 index 00000000000..cf832bc49f9 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.39.md @@ -0,0 +1,3 @@ +## 1.0.39 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index b14e9763a8d..c310c9f1e78 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.38 +lastReleaseVersion: 1.0.39 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 1e60008ca44..5958da33772 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.39-dev +version: 1.0.39 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index da1d658ad02..d1fa9e09fdd 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.1.4 + +No user-facing changes. + ## 6.1.3 No user-facing changes. diff --git a/swift/ql/lib/change-notes/released/6.1.4.md b/swift/ql/lib/change-notes/released/6.1.4.md new file mode 100644 index 00000000000..7c4728fafa4 --- /dev/null +++ b/swift/ql/lib/change-notes/released/6.1.4.md @@ -0,0 +1,3 @@ +## 6.1.4 + +No user-facing changes. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index e641a874973..7dbbf7fb553 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.3 +lastReleaseVersion: 6.1.4 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 3e1437148de..45b6c78b681 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.1.4-dev +version: 6.1.4 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index d3fc5577d26..093bfc1c99a 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.2.13 + +No user-facing changes. + ## 1.2.12 No user-facing changes. diff --git a/swift/ql/src/change-notes/released/1.2.13.md b/swift/ql/src/change-notes/released/1.2.13.md new file mode 100644 index 00000000000..09ae7c67ca6 --- /dev/null +++ b/swift/ql/src/change-notes/released/1.2.13.md @@ -0,0 +1,3 @@ +## 1.2.13 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 3f5f457c354..f95a122f916 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.12 +lastReleaseVersion: 1.2.13 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 82f916cc3cc..23d97691bcb 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.13-dev +version: 1.2.13 groups: - swift - queries From 0465dbe02b38d1384738327dd90e806bb67d2a5d Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 6 Jan 2026 12:15:50 +0000 Subject: [PATCH 027/263] Fix header link color and hover effect in query help documentation Fix from Oscar, who wrote: The Alabaster theme's global `a { color: #2F1695 }` rule was overriding header link colors, rendering them purple instead of white. --- docs/codeql/_static/custom.css_t | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/codeql/_static/custom.css_t b/docs/codeql/_static/custom.css_t index b05c5120398..6a7fadc8d41 100644 --- a/docs/codeql/_static/custom.css_t +++ b/docs/codeql/_static/custom.css_t @@ -14,6 +14,18 @@ code { font-size: 0.9em !important; /* makes code snippets in headings the correct size */ } +/* -- HEADER ------------------------------------------------------------------------------- */ + +/* Override alabaster.css purple link color for header links to match the rest of the site */ +.Header .Header-link { + color: #fff; +} + +.Header .Header-link:hover, +.Header .Header-link:focus { + color: rgba(255, 255, 255, 0.7); +} + /* -- MAIN BODY ---------------------------------------------------------------------------- */ main { From 2380bfd459196551b1e40df28fb650c5712d657f Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 8 Dec 2025 17:09:40 +0000 Subject: [PATCH 028/263] Python: Add support for PEP-758 exception syntax See https://peps.python.org/pep-0758/ for more details. We implement this by extending the syntax for exceptions and exception groups so that the `type` field can now contain either an expression (which matches the old behaviour), or a comma-separated list of at least two elements (representing the new behaviour). We model the latter case using a new node type `exception_list`, which in `tsg-python` is simply mapped to a tuple. This means it matches the existing behaviour (when the tuple is surrounded by parentheses) exactly, hence we don't need to change any other code. As a consequence of this, however, we cannot directly parse the Python 2.7 syntax `except Foo, e: ...` as `except Foo as e: ...`, as this would introduce an ambiguity in the grammar. Thus, we have removed support for the (deprecated) 2.7-style syntax, and only allow `as` to indicate binding of the exception. The syntax `except Foo, e: ...` continues to be parsed (in particular, it's not suddenly a syntax error), but it will be parsed as if it were `except (Foo, e): ...`, which may not give the correct results. In principle we could extend the QL libraries to account for this case (specifically when analysing Python 2 code). In practice, however, I expect this to have a minor impact on results, and not worth the additional investment at this time. --- python/extractor/tsg-python/python.tsg | 6 +++++- python/extractor/tsg-python/tsp/grammar.js | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/python/extractor/tsg-python/python.tsg b/python/extractor/tsg-python/python.tsg index 8cd3bc50743..dd11814753d 100644 --- a/python/extractor/tsg-python/python.tsg +++ b/python/extractor/tsg-python/python.tsg @@ -12,7 +12,7 @@ (assignment !type) @assign { let @assign.node = (ast-node @assign "Assign") } -[ (expression_list) (tuple) (tuple_pattern) (pattern_list) (index_expression_list) ] @tuple +[ (expression_list) (tuple) (tuple_pattern) (pattern_list) (index_expression_list) (exception_list)] @tuple { let @tuple.node = (ast-node @tuple "Tuple") } (list_pattern) @list @@ -3445,6 +3445,9 @@ (tuple element: (_) @elt) @parent (tuple_pattern element: (_) @elt) @parent + + ; An exception list, as in `except A, B, C: ...` + (exception_list element: (_) @elt) @parent ] { edge @parent.node -> @elt.node @@ -3480,6 +3483,7 @@ (parenthesized_expression inner: (_) @elt) (set element: (_) @elt) (match_sequence_pattern (_) @elt) + (exception_list element: (_) @elt) ] @seq { attr (@elt.node) _inherited_ctx = @seq.node diff --git a/python/extractor/tsg-python/tsp/grammar.js b/python/extractor/tsg-python/tsp/grammar.js index 145fa6a4b9a..a30ddb9f0a0 100644 --- a/python/extractor/tsg-python/tsp/grammar.js +++ b/python/extractor/tsg-python/tsp/grammar.js @@ -297,12 +297,21 @@ module.exports = grammar({ ) ), + exception_list: $ => seq( + field('element', $.expression), + repeat1( + seq( + ',', + field('element', $.expression)) + ) + ), + except_clause: $ => seq( 'except', optional(seq( - field('type', $.expression), + field('type', choice($.expression, $.exception_list)), optional(seq( - choice('as', ','), + 'as', field('alias', $.expression) )) )), @@ -314,7 +323,7 @@ module.exports = grammar({ 'except', '*', seq( - field('type', $.expression), + field('type', choice($.expression, $.exception_list)), optional(seq( 'as', field('alias', $.expression) From 4db60df9ddfe7f4b3ad9dcd7b66a74aab5803d3e Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 8 Dec 2025 17:11:30 +0000 Subject: [PATCH 029/263] Python: Regenerate parser files --- .../extractor/tsg-python/tsp/src/grammar.json | 72 +- .../tsg-python/tsp/src/node-types.json | 24 + python/extractor/tsg-python/tsp/src/parser.c | 91724 ++++++++-------- 3 files changed, 46040 insertions(+), 45780 deletions(-) diff --git a/python/extractor/tsg-python/tsp/src/grammar.json b/python/extractor/tsg-python/tsp/src/grammar.json index 7d43a3ca6ad..e413f91b085 100644 --- a/python/extractor/tsg-python/tsp/src/grammar.json +++ b/python/extractor/tsg-python/tsp/src/grammar.json @@ -1087,6 +1087,39 @@ } ] }, + "exception_list": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "element", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "REPEAT1", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "element", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + } + ] + }, "except_clause": { "type": "SEQ", "members": [ @@ -1104,8 +1137,17 @@ "type": "FIELD", "name": "type", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "exception_list" + } + ] } }, { @@ -1115,17 +1157,8 @@ "type": "SEQ", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "as" - }, - { - "type": "STRING", - "value": "," - } - ] + "type": "STRING", + "value": "as" }, { "type": "FIELD", @@ -1181,8 +1214,17 @@ "type": "FIELD", "name": "type", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "exception_list" + } + ] } }, { diff --git a/python/extractor/tsg-python/tsp/src/node-types.json b/python/extractor/tsg-python/tsp/src/node-types.json index abb7cf17292..a718a48aab6 100644 --- a/python/extractor/tsg-python/tsp/src/node-types.json +++ b/python/extractor/tsg-python/tsp/src/node-types.json @@ -1309,6 +1309,10 @@ "multiple": false, "required": false, "types": [ + { + "type": "exception_list", + "named": true + }, { "type": "expression", "named": true @@ -1344,6 +1348,26 @@ "type": { "multiple": false, "required": true, + "types": [ + { + "type": "exception_list", + "named": true + }, + { + "type": "expression", + "named": true + } + ] + } + } + }, + { + "type": "exception_list", + "named": true, + "fields": { + "element": { + "multiple": true, + "required": true, "types": [ { "type": "expression", diff --git a/python/extractor/tsg-python/tsp/src/parser.c b/python/extractor/tsg-python/tsp/src/parser.c index 0d535e87adc..e275c1316a0 100644 --- a/python/extractor/tsg-python/tsp/src/parser.c +++ b/python/extractor/tsg-python/tsp/src/parser.c @@ -6,9 +6,9 @@ #endif #define LANGUAGE_VERSION 13 -#define STATE_COUNT 1502 +#define STATE_COUNT 1510 #define LARGE_STATE_COUNT 152 -#define SYMBOL_COUNT 286 +#define SYMBOL_COUNT 288 #define ALIAS_COUNT 3 #define TOKEN_COUNT 108 #define EXTERNAL_TOKEN_COUNT 7 @@ -152,159 +152,161 @@ enum { sym_for_statement = 133, sym_while_statement = 134, sym_try_statement = 135, - sym_except_clause = 136, - sym_except_group_clause = 137, - sym_finally_clause = 138, - sym_with_statement = 139, - sym_with_clause = 140, - sym_with_item = 141, - sym_match_statement = 142, - sym_cases = 143, - sym_case_block = 144, - sym__match_patterns = 145, - sym_open_sequence_match_pattern = 146, - sym__match_pattern = 147, - sym_match_as_pattern = 148, - sym__match_or_pattern = 149, - sym_match_or_pattern = 150, - sym__closed_pattern = 151, - sym_match_literal_pattern = 152, - sym_match_capture_pattern = 153, - sym_match_value_pattern = 154, - sym_match_group_pattern = 155, - sym_match_sequence_pattern = 156, - sym__match_maybe_star_pattern = 157, - sym_match_star_pattern = 158, - sym_match_mapping_pattern = 159, - sym_match_double_star_pattern = 160, - sym_match_key_value_pattern = 161, - sym_match_class_pattern = 162, - sym_pattern_class_name = 163, - sym_match_positional_pattern = 164, - sym_match_keyword_pattern = 165, - sym_guard = 166, - sym_function_definition = 167, - sym_parameters = 168, - sym_lambda_parameters = 169, - sym_list_splat = 170, - sym_dictionary_splat = 171, - sym_global_statement = 172, - sym_nonlocal_statement = 173, - sym_exec_statement = 174, - sym_type_alias_statement = 175, - sym_class_definition = 176, - sym_type_parameters = 177, - sym__type_bound = 178, - sym_typevar_parameter = 179, - sym_typevartuple_parameter = 180, - sym_paramspec_parameter = 181, - sym__type_parameter = 182, - sym__type_param_default = 183, - sym_parenthesized_list_splat = 184, - sym_argument_list = 185, - sym_decorated_definition = 186, - sym_decorator = 187, - sym_block = 188, - sym_expression_list = 189, - sym_dotted_name = 190, - sym__parameters = 191, - sym__patterns = 192, - sym_parameter = 193, - sym_pattern = 194, - sym_tuple_pattern = 195, - sym_list_pattern = 196, - sym_default_parameter = 197, - sym_typed_default_parameter = 198, - sym_list_splat_pattern = 199, - sym_dictionary_splat_pattern = 200, - sym__expression_within_for_in_clause = 201, - sym_expression = 202, - sym_primary_expression = 203, - sym_not_operator = 204, - sym_boolean_operator = 205, - sym_binary_operator = 206, - sym_unary_operator = 207, - sym_comparison_operator = 208, - sym_lambda = 209, - sym_lambda_within_for_in_clause = 210, - sym_assignment = 211, - sym_augmented_assignment = 212, - sym_pattern_list = 213, - sym__right_hand_side = 214, - sym_yield = 215, - sym_attribute = 216, - sym__index_expression = 217, - sym_index_expression_list = 218, - sym_subscript = 219, - sym_slice = 220, - sym_call = 221, - sym_typed_parameter = 222, - sym_type = 223, - sym_keyword_argument = 224, - sym_list = 225, - sym_set = 226, - sym_tuple = 227, - sym_dictionary = 228, - sym_pair = 229, - sym_list_comprehension = 230, - sym_dictionary_comprehension = 231, - sym_set_comprehension = 232, - sym_generator_expression = 233, - sym__comprehension_clauses = 234, - sym_parenthesized_expression = 235, - sym__collection_elements = 236, - sym_for_in_clause = 237, - sym_if_clause = 238, - sym_conditional_expression = 239, - sym_concatenated_string = 240, - sym_string = 241, - sym_concatenated_template_string = 242, - sym_template_string = 243, - sym_string_content = 244, - sym_interpolation = 245, - sym__f_expression = 246, - sym_format_specifier = 247, - sym_await = 248, - sym_positional_separator = 249, - sym_keyword_separator = 250, - aux_sym_module_repeat1 = 251, - aux_sym__simple_statements_repeat1 = 252, - aux_sym_import_prefix_repeat1 = 253, - aux_sym__import_list_repeat1 = 254, - aux_sym_print_statement_repeat1 = 255, - aux_sym_assert_statement_repeat1 = 256, - aux_sym_if_statement_repeat1 = 257, - aux_sym_try_statement_repeat1 = 258, - aux_sym_try_statement_repeat2 = 259, - aux_sym_with_clause_repeat1 = 260, - aux_sym_cases_repeat1 = 261, - aux_sym_open_sequence_match_pattern_repeat1 = 262, - aux_sym_match_or_pattern_repeat1 = 263, - aux_sym_match_value_pattern_repeat1 = 264, - aux_sym_match_mapping_pattern_repeat1 = 265, - aux_sym_match_class_pattern_repeat1 = 266, - aux_sym_match_class_pattern_repeat2 = 267, - aux_sym_global_statement_repeat1 = 268, - aux_sym_type_parameters_repeat1 = 269, - aux_sym_argument_list_repeat1 = 270, - aux_sym_decorated_definition_repeat1 = 271, - aux_sym_expression_list_repeat1 = 272, - aux_sym__parameters_repeat1 = 273, - aux_sym__patterns_repeat1 = 274, - aux_sym_comparison_operator_repeat1 = 275, - aux_sym_index_expression_list_repeat1 = 276, - aux_sym_dictionary_repeat1 = 277, - aux_sym__comprehension_clauses_repeat1 = 278, - aux_sym__collection_elements_repeat1 = 279, - aux_sym_for_in_clause_repeat1 = 280, - aux_sym_concatenated_string_repeat1 = 281, - aux_sym_string_repeat1 = 282, - aux_sym_concatenated_template_string_repeat1 = 283, - aux_sym_string_content_repeat1 = 284, - aux_sym_format_specifier_repeat1 = 285, - alias_sym_format_expression = 286, - anon_alias_sym_isnot = 287, - anon_alias_sym_notin = 288, + sym_exception_list = 136, + sym_except_clause = 137, + sym_except_group_clause = 138, + sym_finally_clause = 139, + sym_with_statement = 140, + sym_with_clause = 141, + sym_with_item = 142, + sym_match_statement = 143, + sym_cases = 144, + sym_case_block = 145, + sym__match_patterns = 146, + sym_open_sequence_match_pattern = 147, + sym__match_pattern = 148, + sym_match_as_pattern = 149, + sym__match_or_pattern = 150, + sym_match_or_pattern = 151, + sym__closed_pattern = 152, + sym_match_literal_pattern = 153, + sym_match_capture_pattern = 154, + sym_match_value_pattern = 155, + sym_match_group_pattern = 156, + sym_match_sequence_pattern = 157, + sym__match_maybe_star_pattern = 158, + sym_match_star_pattern = 159, + sym_match_mapping_pattern = 160, + sym_match_double_star_pattern = 161, + sym_match_key_value_pattern = 162, + sym_match_class_pattern = 163, + sym_pattern_class_name = 164, + sym_match_positional_pattern = 165, + sym_match_keyword_pattern = 166, + sym_guard = 167, + sym_function_definition = 168, + sym_parameters = 169, + sym_lambda_parameters = 170, + sym_list_splat = 171, + sym_dictionary_splat = 172, + sym_global_statement = 173, + sym_nonlocal_statement = 174, + sym_exec_statement = 175, + sym_type_alias_statement = 176, + sym_class_definition = 177, + sym_type_parameters = 178, + sym__type_bound = 179, + sym_typevar_parameter = 180, + sym_typevartuple_parameter = 181, + sym_paramspec_parameter = 182, + sym__type_parameter = 183, + sym__type_param_default = 184, + sym_parenthesized_list_splat = 185, + sym_argument_list = 186, + sym_decorated_definition = 187, + sym_decorator = 188, + sym_block = 189, + sym_expression_list = 190, + sym_dotted_name = 191, + sym__parameters = 192, + sym__patterns = 193, + sym_parameter = 194, + sym_pattern = 195, + sym_tuple_pattern = 196, + sym_list_pattern = 197, + sym_default_parameter = 198, + sym_typed_default_parameter = 199, + sym_list_splat_pattern = 200, + sym_dictionary_splat_pattern = 201, + sym__expression_within_for_in_clause = 202, + sym_expression = 203, + sym_primary_expression = 204, + sym_not_operator = 205, + sym_boolean_operator = 206, + sym_binary_operator = 207, + sym_unary_operator = 208, + sym_comparison_operator = 209, + sym_lambda = 210, + sym_lambda_within_for_in_clause = 211, + sym_assignment = 212, + sym_augmented_assignment = 213, + sym_pattern_list = 214, + sym__right_hand_side = 215, + sym_yield = 216, + sym_attribute = 217, + sym__index_expression = 218, + sym_index_expression_list = 219, + sym_subscript = 220, + sym_slice = 221, + sym_call = 222, + sym_typed_parameter = 223, + sym_type = 224, + sym_keyword_argument = 225, + sym_list = 226, + sym_set = 227, + sym_tuple = 228, + sym_dictionary = 229, + sym_pair = 230, + sym_list_comprehension = 231, + sym_dictionary_comprehension = 232, + sym_set_comprehension = 233, + sym_generator_expression = 234, + sym__comprehension_clauses = 235, + sym_parenthesized_expression = 236, + sym__collection_elements = 237, + sym_for_in_clause = 238, + sym_if_clause = 239, + sym_conditional_expression = 240, + sym_concatenated_string = 241, + sym_string = 242, + sym_concatenated_template_string = 243, + sym_template_string = 244, + sym_string_content = 245, + sym_interpolation = 246, + sym__f_expression = 247, + sym_format_specifier = 248, + sym_await = 249, + sym_positional_separator = 250, + sym_keyword_separator = 251, + aux_sym_module_repeat1 = 252, + aux_sym__simple_statements_repeat1 = 253, + aux_sym_import_prefix_repeat1 = 254, + aux_sym__import_list_repeat1 = 255, + aux_sym_print_statement_repeat1 = 256, + aux_sym_assert_statement_repeat1 = 257, + aux_sym_if_statement_repeat1 = 258, + aux_sym_try_statement_repeat1 = 259, + aux_sym_try_statement_repeat2 = 260, + aux_sym_exception_list_repeat1 = 261, + aux_sym_with_clause_repeat1 = 262, + aux_sym_cases_repeat1 = 263, + aux_sym_open_sequence_match_pattern_repeat1 = 264, + aux_sym_match_or_pattern_repeat1 = 265, + aux_sym_match_value_pattern_repeat1 = 266, + aux_sym_match_mapping_pattern_repeat1 = 267, + aux_sym_match_class_pattern_repeat1 = 268, + aux_sym_match_class_pattern_repeat2 = 269, + aux_sym_global_statement_repeat1 = 270, + aux_sym_type_parameters_repeat1 = 271, + aux_sym_argument_list_repeat1 = 272, + aux_sym_decorated_definition_repeat1 = 273, + aux_sym_expression_list_repeat1 = 274, + aux_sym__parameters_repeat1 = 275, + aux_sym__patterns_repeat1 = 276, + aux_sym_comparison_operator_repeat1 = 277, + aux_sym_index_expression_list_repeat1 = 278, + aux_sym_dictionary_repeat1 = 279, + aux_sym__comprehension_clauses_repeat1 = 280, + aux_sym__collection_elements_repeat1 = 281, + aux_sym_for_in_clause_repeat1 = 282, + aux_sym_concatenated_string_repeat1 = 283, + aux_sym_string_repeat1 = 284, + aux_sym_concatenated_template_string_repeat1 = 285, + aux_sym_string_content_repeat1 = 286, + aux_sym_format_specifier_repeat1 = 287, + alias_sym_format_expression = 288, + anon_alias_sym_isnot = 289, + anon_alias_sym_notin = 290, }; static const char * const ts_symbol_names[] = { @@ -444,6 +446,7 @@ static const char * const ts_symbol_names[] = { [sym_for_statement] = "for_statement", [sym_while_statement] = "while_statement", [sym_try_statement] = "try_statement", + [sym_exception_list] = "exception_list", [sym_except_clause] = "except_clause", [sym_except_group_clause] = "except_group_clause", [sym_finally_clause] = "finally_clause", @@ -568,6 +571,7 @@ static const char * const ts_symbol_names[] = { [aux_sym_if_statement_repeat1] = "if_statement_repeat1", [aux_sym_try_statement_repeat1] = "try_statement_repeat1", [aux_sym_try_statement_repeat2] = "try_statement_repeat2", + [aux_sym_exception_list_repeat1] = "exception_list_repeat1", [aux_sym_with_clause_repeat1] = "with_clause_repeat1", [aux_sym_cases_repeat1] = "cases_repeat1", [aux_sym_open_sequence_match_pattern_repeat1] = "open_sequence_match_pattern_repeat1", @@ -736,6 +740,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_for_statement] = sym_for_statement, [sym_while_statement] = sym_while_statement, [sym_try_statement] = sym_try_statement, + [sym_exception_list] = sym_exception_list, [sym_except_clause] = sym_except_clause, [sym_except_group_clause] = sym_except_group_clause, [sym_finally_clause] = sym_finally_clause, @@ -860,6 +865,7 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_if_statement_repeat1] = aux_sym_if_statement_repeat1, [aux_sym_try_statement_repeat1] = aux_sym_try_statement_repeat1, [aux_sym_try_statement_repeat2] = aux_sym_try_statement_repeat2, + [aux_sym_exception_list_repeat1] = aux_sym_exception_list_repeat1, [aux_sym_with_clause_repeat1] = aux_sym_with_clause_repeat1, [aux_sym_cases_repeat1] = aux_sym_cases_repeat1, [aux_sym_open_sequence_match_pattern_repeat1] = aux_sym_open_sequence_match_pattern_repeat1, @@ -1436,6 +1442,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_exception_list] = { + .visible = true, + .named = true, + }, [sym_except_clause] = { .visible = true, .named = true, @@ -1936,6 +1946,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_exception_list_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_with_clause_repeat1] = { .visible = false, .named = false, @@ -6181,12 +6195,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [57] = {.lex_state = 50, .external_lex_state = 3}, [58] = {.lex_state = 50, .external_lex_state = 3}, [59] = {.lex_state = 50, .external_lex_state = 3}, - [60] = {.lex_state = 50, .external_lex_state = 2}, + [60] = {.lex_state = 50, .external_lex_state = 3}, [61] = {.lex_state = 50, .external_lex_state = 3}, - [62] = {.lex_state = 50, .external_lex_state = 2}, + [62] = {.lex_state = 50, .external_lex_state = 3}, [63] = {.lex_state = 50, .external_lex_state = 3}, - [64] = {.lex_state = 50, .external_lex_state = 3}, - [65] = {.lex_state = 50, .external_lex_state = 3}, + [64] = {.lex_state = 50, .external_lex_state = 2}, + [65] = {.lex_state = 50, .external_lex_state = 2}, [66] = {.lex_state = 50, .external_lex_state = 4}, [67] = {.lex_state = 50, .external_lex_state = 4}, [68] = {.lex_state = 50, .external_lex_state = 5}, @@ -6205,7 +6219,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [81] = {.lex_state = 50, .external_lex_state = 5}, [82] = {.lex_state = 50, .external_lex_state = 5}, [83] = {.lex_state = 50, .external_lex_state = 5}, - [84] = {.lex_state = 50, .external_lex_state = 4}, + [84] = {.lex_state = 50, .external_lex_state = 5}, [85] = {.lex_state = 50, .external_lex_state = 5}, [86] = {.lex_state = 50, .external_lex_state = 5}, [87] = {.lex_state = 50, .external_lex_state = 5}, @@ -6232,7 +6246,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [108] = {.lex_state = 50, .external_lex_state = 5}, [109] = {.lex_state = 50, .external_lex_state = 5}, [110] = {.lex_state = 50, .external_lex_state = 5}, - [111] = {.lex_state = 50, .external_lex_state = 5}, + [111] = {.lex_state = 50, .external_lex_state = 4}, [112] = {.lex_state = 50, .external_lex_state = 5}, [113] = {.lex_state = 50, .external_lex_state = 5}, [114] = {.lex_state = 50, .external_lex_state = 5}, @@ -6261,12 +6275,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [137] = {.lex_state = 14, .external_lex_state = 2}, [138] = {.lex_state = 50, .external_lex_state = 2}, [139] = {.lex_state = 14, .external_lex_state = 2}, - [140] = {.lex_state = 14, .external_lex_state = 2}, - [141] = {.lex_state = 50, .external_lex_state = 4}, + [140] = {.lex_state = 50, .external_lex_state = 4}, + [141] = {.lex_state = 14, .external_lex_state = 2}, [142] = {.lex_state = 14, .external_lex_state = 2}, - [143] = {.lex_state = 50, .external_lex_state = 4}, + [143] = {.lex_state = 50, .external_lex_state = 2}, [144] = {.lex_state = 50, .external_lex_state = 2}, - [145] = {.lex_state = 50, .external_lex_state = 2}, + [145] = {.lex_state = 50, .external_lex_state = 4}, [146] = {.lex_state = 50, .external_lex_state = 2}, [147] = {.lex_state = 14, .external_lex_state = 2}, [148] = {.lex_state = 50, .external_lex_state = 2}, @@ -6275,21 +6289,21 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [151] = {.lex_state = 50, .external_lex_state = 2}, [152] = {.lex_state = 14, .external_lex_state = 2}, [153] = {.lex_state = 50, .external_lex_state = 2}, - [154] = {.lex_state = 14, .external_lex_state = 2}, + [154] = {.lex_state = 50, .external_lex_state = 2}, [155] = {.lex_state = 50, .external_lex_state = 2}, [156] = {.lex_state = 50, .external_lex_state = 2}, [157] = {.lex_state = 50, .external_lex_state = 2}, [158] = {.lex_state = 14, .external_lex_state = 2}, [159] = {.lex_state = 50, .external_lex_state = 2}, - [160] = {.lex_state = 50, .external_lex_state = 2}, - [161] = {.lex_state = 14, .external_lex_state = 2}, - [162] = {.lex_state = 50, .external_lex_state = 2}, + [160] = {.lex_state = 14, .external_lex_state = 2}, + [161] = {.lex_state = 50, .external_lex_state = 2}, + [162] = {.lex_state = 14, .external_lex_state = 2}, [163] = {.lex_state = 14, .external_lex_state = 2}, [164] = {.lex_state = 50, .external_lex_state = 2}, [165] = {.lex_state = 14, .external_lex_state = 2}, [166] = {.lex_state = 50, .external_lex_state = 2}, [167] = {.lex_state = 50, .external_lex_state = 2}, - [168] = {.lex_state = 50, .external_lex_state = 4}, + [168] = {.lex_state = 50, .external_lex_state = 2}, [169] = {.lex_state = 50, .external_lex_state = 2}, [170] = {.lex_state = 50, .external_lex_state = 2}, [171] = {.lex_state = 50, .external_lex_state = 2}, @@ -6298,20 +6312,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [174] = {.lex_state = 50, .external_lex_state = 2}, [175] = {.lex_state = 50, .external_lex_state = 2}, [176] = {.lex_state = 50, .external_lex_state = 2}, - [177] = {.lex_state = 50, .external_lex_state = 2}, + [177] = {.lex_state = 50, .external_lex_state = 4}, [178] = {.lex_state = 50, .external_lex_state = 4}, [179] = {.lex_state = 50, .external_lex_state = 2}, [180] = {.lex_state = 50, .external_lex_state = 2}, [181] = {.lex_state = 50, .external_lex_state = 2}, [182] = {.lex_state = 50, .external_lex_state = 2}, - [183] = {.lex_state = 50, .external_lex_state = 4}, + [183] = {.lex_state = 50, .external_lex_state = 2}, [184] = {.lex_state = 50, .external_lex_state = 2}, - [185] = {.lex_state = 50, .external_lex_state = 4}, + [185] = {.lex_state = 50, .external_lex_state = 2}, [186] = {.lex_state = 50, .external_lex_state = 4}, [187] = {.lex_state = 50, .external_lex_state = 2}, - [188] = {.lex_state = 50, .external_lex_state = 2}, + [188] = {.lex_state = 50, .external_lex_state = 4}, [189] = {.lex_state = 50, .external_lex_state = 2}, - [190] = {.lex_state = 50, .external_lex_state = 2}, + [190] = {.lex_state = 50, .external_lex_state = 4}, [191] = {.lex_state = 50, .external_lex_state = 2}, [192] = {.lex_state = 50, .external_lex_state = 2}, [193] = {.lex_state = 50, .external_lex_state = 2}, @@ -6320,7 +6334,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [196] = {.lex_state = 50, .external_lex_state = 2}, [197] = {.lex_state = 50, .external_lex_state = 2}, [198] = {.lex_state = 50, .external_lex_state = 2}, - [199] = {.lex_state = 50, .external_lex_state = 4}, + [199] = {.lex_state = 50, .external_lex_state = 2}, [200] = {.lex_state = 50, .external_lex_state = 2}, [201] = {.lex_state = 50, .external_lex_state = 2}, [202] = {.lex_state = 50, .external_lex_state = 2}, @@ -6331,24 +6345,24 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [207] = {.lex_state = 50, .external_lex_state = 2}, [208] = {.lex_state = 50, .external_lex_state = 2}, [209] = {.lex_state = 50, .external_lex_state = 2}, - [210] = {.lex_state = 50, .external_lex_state = 2}, + [210] = {.lex_state = 50, .external_lex_state = 4}, [211] = {.lex_state = 50, .external_lex_state = 2}, [212] = {.lex_state = 50, .external_lex_state = 2}, - [213] = {.lex_state = 50, .external_lex_state = 2}, + [213] = {.lex_state = 14, .external_lex_state = 2}, [214] = {.lex_state = 14, .external_lex_state = 2}, - [215] = {.lex_state = 50, .external_lex_state = 2}, + [215] = {.lex_state = 14, .external_lex_state = 2}, [216] = {.lex_state = 14, .external_lex_state = 2}, - [217] = {.lex_state = 14, .external_lex_state = 2}, + [217] = {.lex_state = 50, .external_lex_state = 2}, [218] = {.lex_state = 14, .external_lex_state = 2}, - [219] = {.lex_state = 14, .external_lex_state = 2}, + [219] = {.lex_state = 50, .external_lex_state = 2}, [220] = {.lex_state = 14, .external_lex_state = 2}, [221] = {.lex_state = 50, .external_lex_state = 2}, [222] = {.lex_state = 50, .external_lex_state = 2}, [223] = {.lex_state = 50, .external_lex_state = 2}, [224] = {.lex_state = 50, .external_lex_state = 2}, [225] = {.lex_state = 50, .external_lex_state = 2}, - [226] = {.lex_state = 50, .external_lex_state = 2}, - [227] = {.lex_state = 14, .external_lex_state = 2}, + [226] = {.lex_state = 14, .external_lex_state = 2}, + [227] = {.lex_state = 50, .external_lex_state = 2}, [228] = {.lex_state = 50, .external_lex_state = 2}, [229] = {.lex_state = 50, .external_lex_state = 2}, [230] = {.lex_state = 50, .external_lex_state = 2}, @@ -6361,80 +6375,80 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [237] = {.lex_state = 50, .external_lex_state = 2}, [238] = {.lex_state = 50, .external_lex_state = 2}, [239] = {.lex_state = 50, .external_lex_state = 2}, - [240] = {.lex_state = 50, .external_lex_state = 3}, + [240] = {.lex_state = 50, .external_lex_state = 2}, [241] = {.lex_state = 50, .external_lex_state = 2}, [242] = {.lex_state = 50, .external_lex_state = 2}, - [243] = {.lex_state = 16}, - [244] = {.lex_state = 50, .external_lex_state = 3}, - [245] = {.lex_state = 50, .external_lex_state = 2}, - [246] = {.lex_state = 16}, + [243] = {.lex_state = 14, .external_lex_state = 2}, + [244] = {.lex_state = 16}, + [245] = {.lex_state = 16}, + [246] = {.lex_state = 14, .external_lex_state = 2}, [247] = {.lex_state = 50, .external_lex_state = 2}, [248] = {.lex_state = 50, .external_lex_state = 2}, - [249] = {.lex_state = 14, .external_lex_state = 2}, - [250] = {.lex_state = 50, .external_lex_state = 2}, + [249] = {.lex_state = 50, .external_lex_state = 2}, + [250] = {.lex_state = 50, .external_lex_state = 3}, [251] = {.lex_state = 50, .external_lex_state = 2}, - [252] = {.lex_state = 50, .external_lex_state = 2}, + [252] = {.lex_state = 50, .external_lex_state = 3}, [253] = {.lex_state = 50, .external_lex_state = 2}, - [254] = {.lex_state = 14, .external_lex_state = 2}, - [255] = {.lex_state = 50, .external_lex_state = 2}, + [254] = {.lex_state = 50, .external_lex_state = 2}, + [255] = {.lex_state = 50, .external_lex_state = 3}, [256] = {.lex_state = 50, .external_lex_state = 2}, - [257] = {.lex_state = 50, .external_lex_state = 2}, + [257] = {.lex_state = 50, .external_lex_state = 3}, [258] = {.lex_state = 50, .external_lex_state = 2}, - [259] = {.lex_state = 50, .external_lex_state = 3}, - [260] = {.lex_state = 50, .external_lex_state = 3}, + [259] = {.lex_state = 50, .external_lex_state = 2}, + [260] = {.lex_state = 50, .external_lex_state = 2}, [261] = {.lex_state = 50, .external_lex_state = 2}, - [262] = {.lex_state = 50, .external_lex_state = 2}, - [263] = {.lex_state = 50, .external_lex_state = 2}, + [262] = {.lex_state = 14, .external_lex_state = 2}, + [263] = {.lex_state = 14, .external_lex_state = 2}, [264] = {.lex_state = 50, .external_lex_state = 2}, - [265] = {.lex_state = 50, .external_lex_state = 2}, + [265] = {.lex_state = 50, .external_lex_state = 4}, [266] = {.lex_state = 50, .external_lex_state = 2}, - [267] = {.lex_state = 50, .external_lex_state = 2}, + [267] = {.lex_state = 14, .external_lex_state = 2}, [268] = {.lex_state = 50, .external_lex_state = 2}, - [269] = {.lex_state = 50, .external_lex_state = 4}, + [269] = {.lex_state = 50, .external_lex_state = 2}, [270] = {.lex_state = 50, .external_lex_state = 2}, [271] = {.lex_state = 50, .external_lex_state = 4}, - [272] = {.lex_state = 50, .external_lex_state = 2}, + [272] = {.lex_state = 50, .external_lex_state = 4}, [273] = {.lex_state = 50, .external_lex_state = 2}, [274] = {.lex_state = 50, .external_lex_state = 2}, [275] = {.lex_state = 50, .external_lex_state = 2}, [276] = {.lex_state = 50, .external_lex_state = 2}, - [277] = {.lex_state = 50, .external_lex_state = 2}, - [278] = {.lex_state = 50, .external_lex_state = 4}, - [279] = {.lex_state = 50, .external_lex_state = 4}, + [277] = {.lex_state = 14, .external_lex_state = 2}, + [278] = {.lex_state = 50, .external_lex_state = 2}, + [279] = {.lex_state = 50, .external_lex_state = 2}, [280] = {.lex_state = 50, .external_lex_state = 2}, [281] = {.lex_state = 50, .external_lex_state = 2}, - [282] = {.lex_state = 14, .external_lex_state = 2}, - [283] = {.lex_state = 14, .external_lex_state = 2}, + [282] = {.lex_state = 50, .external_lex_state = 2}, + [283] = {.lex_state = 50, .external_lex_state = 2}, [284] = {.lex_state = 50, .external_lex_state = 2}, [285] = {.lex_state = 50, .external_lex_state = 2}, - [286] = {.lex_state = 50, .external_lex_state = 3}, - [287] = {.lex_state = 15, .external_lex_state = 6}, + [286] = {.lex_state = 50, .external_lex_state = 4}, + [287] = {.lex_state = 50, .external_lex_state = 2}, [288] = {.lex_state = 50, .external_lex_state = 2}, [289] = {.lex_state = 50, .external_lex_state = 2}, [290] = {.lex_state = 50, .external_lex_state = 2}, - [291] = {.lex_state = 50, .external_lex_state = 3}, - [292] = {.lex_state = 50, .external_lex_state = 2}, + [291] = {.lex_state = 50, .external_lex_state = 2}, + [292] = {.lex_state = 50, .external_lex_state = 3}, [293] = {.lex_state = 50, .external_lex_state = 3}, - [294] = {.lex_state = 50, .external_lex_state = 3}, - [295] = {.lex_state = 50, .external_lex_state = 3}, + [294] = {.lex_state = 50, .external_lex_state = 2}, + [295] = {.lex_state = 50, .external_lex_state = 2}, [296] = {.lex_state = 50, .external_lex_state = 3}, - [297] = {.lex_state = 50, .external_lex_state = 3}, - [298] = {.lex_state = 50, .external_lex_state = 3}, - [299] = {.lex_state = 50, .external_lex_state = 3}, - [300] = {.lex_state = 15, .external_lex_state = 6}, - [301] = {.lex_state = 50, .external_lex_state = 2}, + [297] = {.lex_state = 50, .external_lex_state = 2}, + [298] = {.lex_state = 15, .external_lex_state = 6}, + [299] = {.lex_state = 15, .external_lex_state = 6}, + [300] = {.lex_state = 50, .external_lex_state = 3}, + [301] = {.lex_state = 50, .external_lex_state = 3}, [302] = {.lex_state = 50, .external_lex_state = 2}, - [303] = {.lex_state = 50, .external_lex_state = 3}, - [304] = {.lex_state = 14, .external_lex_state = 2}, + [303] = {.lex_state = 50, .external_lex_state = 2}, + [304] = {.lex_state = 50, .external_lex_state = 3}, [305] = {.lex_state = 50, .external_lex_state = 2}, - [306] = {.lex_state = 50, .external_lex_state = 2}, - [307] = {.lex_state = 50, .external_lex_state = 2}, - [308] = {.lex_state = 50, .external_lex_state = 3}, + [306] = {.lex_state = 50, .external_lex_state = 3}, + [307] = {.lex_state = 50, .external_lex_state = 3}, + [308] = {.lex_state = 50, .external_lex_state = 2}, [309] = {.lex_state = 50, .external_lex_state = 2}, - [310] = {.lex_state = 50, .external_lex_state = 2}, - [311] = {.lex_state = 14, .external_lex_state = 2}, - [312] = {.lex_state = 50, .external_lex_state = 2}, - [313] = {.lex_state = 50, .external_lex_state = 2}, + [310] = {.lex_state = 50, .external_lex_state = 3}, + [311] = {.lex_state = 50, .external_lex_state = 2}, + [312] = {.lex_state = 50, .external_lex_state = 3}, + [313] = {.lex_state = 50, .external_lex_state = 3}, [314] = {.lex_state = 50, .external_lex_state = 2}, [315] = {.lex_state = 50, .external_lex_state = 2}, [316] = {.lex_state = 50, .external_lex_state = 2}, @@ -6474,7 +6488,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [350] = {.lex_state = 50, .external_lex_state = 2}, [351] = {.lex_state = 50, .external_lex_state = 2}, [352] = {.lex_state = 50, .external_lex_state = 2}, - [353] = {.lex_state = 15, .external_lex_state = 7}, + [353] = {.lex_state = 50, .external_lex_state = 2}, [354] = {.lex_state = 50, .external_lex_state = 2}, [355] = {.lex_state = 50, .external_lex_state = 2}, [356] = {.lex_state = 50, .external_lex_state = 2}, @@ -6490,7 +6504,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [366] = {.lex_state = 50, .external_lex_state = 2}, [367] = {.lex_state = 50, .external_lex_state = 2}, [368] = {.lex_state = 50, .external_lex_state = 2}, - [369] = {.lex_state = 50, .external_lex_state = 2}, + [369] = {.lex_state = 50, .external_lex_state = 3}, [370] = {.lex_state = 50, .external_lex_state = 2}, [371] = {.lex_state = 50, .external_lex_state = 2}, [372] = {.lex_state = 50, .external_lex_state = 2}, @@ -6502,156 +6516,156 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [378] = {.lex_state = 50, .external_lex_state = 2}, [379] = {.lex_state = 50, .external_lex_state = 2}, [380] = {.lex_state = 50, .external_lex_state = 2}, - [381] = {.lex_state = 50, .external_lex_state = 2}, + [381] = {.lex_state = 15, .external_lex_state = 7}, [382] = {.lex_state = 50, .external_lex_state = 2}, [383] = {.lex_state = 50, .external_lex_state = 2}, - [384] = {.lex_state = 50, .external_lex_state = 3}, + [384] = {.lex_state = 50, .external_lex_state = 2}, [385] = {.lex_state = 50, .external_lex_state = 2}, [386] = {.lex_state = 50, .external_lex_state = 2}, [387] = {.lex_state = 50, .external_lex_state = 2}, [388] = {.lex_state = 50, .external_lex_state = 2}, - [389] = {.lex_state = 50, .external_lex_state = 3}, - [390] = {.lex_state = 50, .external_lex_state = 2}, - [391] = {.lex_state = 50, .external_lex_state = 3}, + [389] = {.lex_state = 50, .external_lex_state = 2}, + [390] = {.lex_state = 50, .external_lex_state = 3}, + [391] = {.lex_state = 50, .external_lex_state = 2}, [392] = {.lex_state = 50, .external_lex_state = 3}, - [393] = {.lex_state = 50, .external_lex_state = 2}, + [393] = {.lex_state = 50, .external_lex_state = 3}, [394] = {.lex_state = 50, .external_lex_state = 2}, - [395] = {.lex_state = 50, .external_lex_state = 3}, + [395] = {.lex_state = 50, .external_lex_state = 2}, [396] = {.lex_state = 50, .external_lex_state = 2}, - [397] = {.lex_state = 50, .external_lex_state = 2}, - [398] = {.lex_state = 50, .external_lex_state = 3}, + [397] = {.lex_state = 15, .external_lex_state = 6}, + [398] = {.lex_state = 50, .external_lex_state = 2}, [399] = {.lex_state = 50, .external_lex_state = 2}, - [400] = {.lex_state = 50, .external_lex_state = 3}, + [400] = {.lex_state = 50, .external_lex_state = 2}, [401] = {.lex_state = 50, .external_lex_state = 3}, - [402] = {.lex_state = 50, .external_lex_state = 2}, - [403] = {.lex_state = 50, .external_lex_state = 2}, + [402] = {.lex_state = 50, .external_lex_state = 3}, + [403] = {.lex_state = 50, .external_lex_state = 3}, [404] = {.lex_state = 50, .external_lex_state = 3}, [405] = {.lex_state = 50, .external_lex_state = 2}, [406] = {.lex_state = 50, .external_lex_state = 3}, - [407] = {.lex_state = 50, .external_lex_state = 3}, - [408] = {.lex_state = 50, .external_lex_state = 2}, - [409] = {.lex_state = 15, .external_lex_state = 6}, - [410] = {.lex_state = 50, .external_lex_state = 2}, - [411] = {.lex_state = 50, .external_lex_state = 3}, - [412] = {.lex_state = 50, .external_lex_state = 2}, + [407] = {.lex_state = 50, .external_lex_state = 2}, + [408] = {.lex_state = 50, .external_lex_state = 3}, + [409] = {.lex_state = 50, .external_lex_state = 2}, + [410] = {.lex_state = 50, .external_lex_state = 3}, + [411] = {.lex_state = 50, .external_lex_state = 2}, + [412] = {.lex_state = 50, .external_lex_state = 3}, [413] = {.lex_state = 50, .external_lex_state = 3}, - [414] = {.lex_state = 15, .external_lex_state = 6}, + [414] = {.lex_state = 50, .external_lex_state = 2}, [415] = {.lex_state = 50, .external_lex_state = 2}, - [416] = {.lex_state = 16, .external_lex_state = 6}, - [417] = {.lex_state = 50, .external_lex_state = 3}, - [418] = {.lex_state = 50, .external_lex_state = 2}, - [419] = {.lex_state = 50, .external_lex_state = 2}, + [416] = {.lex_state = 15}, + [417] = {.lex_state = 50, .external_lex_state = 2}, + [418] = {.lex_state = 50, .external_lex_state = 3}, + [419] = {.lex_state = 50, .external_lex_state = 3}, [420] = {.lex_state = 50, .external_lex_state = 2}, - [421] = {.lex_state = 50, .external_lex_state = 2}, - [422] = {.lex_state = 50, .external_lex_state = 3}, + [421] = {.lex_state = 50, .external_lex_state = 3}, + [422] = {.lex_state = 16, .external_lex_state = 6}, [423] = {.lex_state = 50, .external_lex_state = 2}, [424] = {.lex_state = 50, .external_lex_state = 3}, [425] = {.lex_state = 50, .external_lex_state = 3}, - [426] = {.lex_state = 50, .external_lex_state = 3}, - [427] = {.lex_state = 50, .external_lex_state = 2}, + [426] = {.lex_state = 50, .external_lex_state = 2}, + [427] = {.lex_state = 50, .external_lex_state = 3}, [428] = {.lex_state = 50, .external_lex_state = 2}, - [429] = {.lex_state = 16, .external_lex_state = 6}, + [429] = {.lex_state = 15, .external_lex_state = 6}, [430] = {.lex_state = 50, .external_lex_state = 3}, - [431] = {.lex_state = 50, .external_lex_state = 2}, - [432] = {.lex_state = 50, .external_lex_state = 3}, + [431] = {.lex_state = 50, .external_lex_state = 3}, + [432] = {.lex_state = 50, .external_lex_state = 2}, [433] = {.lex_state = 50, .external_lex_state = 3}, - [434] = {.lex_state = 50, .external_lex_state = 3}, - [435] = {.lex_state = 15, .external_lex_state = 6}, - [436] = {.lex_state = 50, .external_lex_state = 2}, - [437] = {.lex_state = 15}, - [438] = {.lex_state = 15}, - [439] = {.lex_state = 50, .external_lex_state = 2}, - [440] = {.lex_state = 50, .external_lex_state = 3}, + [434] = {.lex_state = 50, .external_lex_state = 2}, + [435] = {.lex_state = 50, .external_lex_state = 2}, + [436] = {.lex_state = 50, .external_lex_state = 3}, + [437] = {.lex_state = 50, .external_lex_state = 2}, + [438] = {.lex_state = 50, .external_lex_state = 2}, + [439] = {.lex_state = 50, .external_lex_state = 3}, + [440] = {.lex_state = 15, .external_lex_state = 6}, [441] = {.lex_state = 50, .external_lex_state = 2}, - [442] = {.lex_state = 50, .external_lex_state = 3}, - [443] = {.lex_state = 50, .external_lex_state = 2}, + [442] = {.lex_state = 15}, + [443] = {.lex_state = 16, .external_lex_state = 6}, [444] = {.lex_state = 50, .external_lex_state = 2}, [445] = {.lex_state = 50, .external_lex_state = 2}, - [446] = {.lex_state = 50, .external_lex_state = 2}, + [446] = {.lex_state = 16, .external_lex_state = 6}, [447] = {.lex_state = 50, .external_lex_state = 2}, [448] = {.lex_state = 50, .external_lex_state = 2}, - [449] = {.lex_state = 50, .external_lex_state = 3}, + [449] = {.lex_state = 50, .external_lex_state = 2}, [450] = {.lex_state = 50, .external_lex_state = 2}, - [451] = {.lex_state = 50, .external_lex_state = 3}, - [452] = {.lex_state = 50, .external_lex_state = 2}, + [451] = {.lex_state = 16, .external_lex_state = 6}, + [452] = {.lex_state = 16}, [453] = {.lex_state = 50, .external_lex_state = 2}, - [454] = {.lex_state = 16, .external_lex_state = 6}, - [455] = {.lex_state = 16}, - [456] = {.lex_state = 16, .external_lex_state = 6}, - [457] = {.lex_state = 50, .external_lex_state = 3}, + [454] = {.lex_state = 50, .external_lex_state = 2}, + [455] = {.lex_state = 50, .external_lex_state = 3}, + [456] = {.lex_state = 50, .external_lex_state = 2}, + [457] = {.lex_state = 50, .external_lex_state = 2}, [458] = {.lex_state = 50, .external_lex_state = 2}, - [459] = {.lex_state = 50, .external_lex_state = 3}, - [460] = {.lex_state = 50, .external_lex_state = 2}, + [459] = {.lex_state = 16, .external_lex_state = 6}, + [460] = {.lex_state = 50, .external_lex_state = 3}, [461] = {.lex_state = 50, .external_lex_state = 2}, [462] = {.lex_state = 50, .external_lex_state = 3}, - [463] = {.lex_state = 16, .external_lex_state = 6}, - [464] = {.lex_state = 50, .external_lex_state = 2}, - [465] = {.lex_state = 50, .external_lex_state = 3}, - [466] = {.lex_state = 50, .external_lex_state = 2}, - [467] = {.lex_state = 50, .external_lex_state = 3}, - [468] = {.lex_state = 50, .external_lex_state = 2}, - [469] = {.lex_state = 50, .external_lex_state = 3}, + [463] = {.lex_state = 50, .external_lex_state = 3}, + [464] = {.lex_state = 50, .external_lex_state = 3}, + [465] = {.lex_state = 50, .external_lex_state = 2}, + [466] = {.lex_state = 50, .external_lex_state = 3}, + [467] = {.lex_state = 50, .external_lex_state = 2}, + [468] = {.lex_state = 50, .external_lex_state = 3}, + [469] = {.lex_state = 50, .external_lex_state = 2}, [470] = {.lex_state = 50, .external_lex_state = 3}, - [471] = {.lex_state = 50, .external_lex_state = 2}, - [472] = {.lex_state = 50, .external_lex_state = 3}, + [471] = {.lex_state = 50, .external_lex_state = 3}, + [472] = {.lex_state = 50, .external_lex_state = 2}, [473] = {.lex_state = 50, .external_lex_state = 3}, - [474] = {.lex_state = 50, .external_lex_state = 2}, + [474] = {.lex_state = 50, .external_lex_state = 3}, [475] = {.lex_state = 50, .external_lex_state = 3}, - [476] = {.lex_state = 50, .external_lex_state = 3}, - [477] = {.lex_state = 50, .external_lex_state = 2}, - [478] = {.lex_state = 50, .external_lex_state = 2}, - [479] = {.lex_state = 50, .external_lex_state = 2}, - [480] = {.lex_state = 50, .external_lex_state = 2}, - [481] = {.lex_state = 50, .external_lex_state = 2}, - [482] = {.lex_state = 50, .external_lex_state = 3}, - [483] = {.lex_state = 50, .external_lex_state = 3}, - [484] = {.lex_state = 50, .external_lex_state = 3}, - [485] = {.lex_state = 50, .external_lex_state = 3}, + [476] = {.lex_state = 50, .external_lex_state = 2}, + [477] = {.lex_state = 50, .external_lex_state = 3}, + [478] = {.lex_state = 50, .external_lex_state = 3}, + [479] = {.lex_state = 50, .external_lex_state = 3}, + [480] = {.lex_state = 50, .external_lex_state = 3}, + [481] = {.lex_state = 50, .external_lex_state = 3}, + [482] = {.lex_state = 50, .external_lex_state = 2}, + [483] = {.lex_state = 50, .external_lex_state = 2}, + [484] = {.lex_state = 50, .external_lex_state = 2}, + [485] = {.lex_state = 50, .external_lex_state = 2}, [486] = {.lex_state = 50, .external_lex_state = 3}, - [487] = {.lex_state = 50, .external_lex_state = 3}, + [487] = {.lex_state = 50, .external_lex_state = 2}, [488] = {.lex_state = 50, .external_lex_state = 3}, [489] = {.lex_state = 50, .external_lex_state = 3}, - [490] = {.lex_state = 50, .external_lex_state = 3}, - [491] = {.lex_state = 50, .external_lex_state = 3}, + [490] = {.lex_state = 50, .external_lex_state = 2}, + [491] = {.lex_state = 50, .external_lex_state = 2}, [492] = {.lex_state = 50, .external_lex_state = 3}, [493] = {.lex_state = 50, .external_lex_state = 3}, [494] = {.lex_state = 50, .external_lex_state = 3}, [495] = {.lex_state = 50, .external_lex_state = 3}, [496] = {.lex_state = 50, .external_lex_state = 3}, - [497] = {.lex_state = 50, .external_lex_state = 3}, - [498] = {.lex_state = 50, .external_lex_state = 2}, - [499] = {.lex_state = 50, .external_lex_state = 2}, - [500] = {.lex_state = 50, .external_lex_state = 2}, + [497] = {.lex_state = 50, .external_lex_state = 2}, + [498] = {.lex_state = 50, .external_lex_state = 3}, + [499] = {.lex_state = 50, .external_lex_state = 3}, + [500] = {.lex_state = 50, .external_lex_state = 3}, [501] = {.lex_state = 50, .external_lex_state = 3}, [502] = {.lex_state = 50, .external_lex_state = 2}, - [503] = {.lex_state = 50, .external_lex_state = 2}, + [503] = {.lex_state = 50, .external_lex_state = 3}, [504] = {.lex_state = 50, .external_lex_state = 2}, [505] = {.lex_state = 50, .external_lex_state = 3}, [506] = {.lex_state = 50, .external_lex_state = 2}, - [507] = {.lex_state = 50, .external_lex_state = 3}, + [507] = {.lex_state = 50, .external_lex_state = 2}, [508] = {.lex_state = 50, .external_lex_state = 2}, - [509] = {.lex_state = 50, .external_lex_state = 2}, - [510] = {.lex_state = 50, .external_lex_state = 3}, + [509] = {.lex_state = 50, .external_lex_state = 3}, + [510] = {.lex_state = 50, .external_lex_state = 2}, [511] = {.lex_state = 50, .external_lex_state = 3}, [512] = {.lex_state = 50, .external_lex_state = 3}, - [513] = {.lex_state = 50, .external_lex_state = 3}, - [514] = {.lex_state = 50, .external_lex_state = 2}, + [513] = {.lex_state = 50, .external_lex_state = 2}, + [514] = {.lex_state = 50, .external_lex_state = 3}, [515] = {.lex_state = 50, .external_lex_state = 2}, - [516] = {.lex_state = 50, .external_lex_state = 2}, - [517] = {.lex_state = 50, .external_lex_state = 2}, - [518] = {.lex_state = 50, .external_lex_state = 3}, - [519] = {.lex_state = 50, .external_lex_state = 3}, - [520] = {.lex_state = 50, .external_lex_state = 3}, + [516] = {.lex_state = 50, .external_lex_state = 3}, + [517] = {.lex_state = 50, .external_lex_state = 3}, + [518] = {.lex_state = 50, .external_lex_state = 2}, + [519] = {.lex_state = 50, .external_lex_state = 2}, + [520] = {.lex_state = 50, .external_lex_state = 2}, [521] = {.lex_state = 50, .external_lex_state = 2}, - [522] = {.lex_state = 50, .external_lex_state = 2}, - [523] = {.lex_state = 50, .external_lex_state = 3}, - [524] = {.lex_state = 50, .external_lex_state = 3}, - [525] = {.lex_state = 50, .external_lex_state = 2}, - [526] = {.lex_state = 50, .external_lex_state = 2}, + [522] = {.lex_state = 50, .external_lex_state = 3}, + [523] = {.lex_state = 50, .external_lex_state = 2}, + [524] = {.lex_state = 50, .external_lex_state = 2}, + [525] = {.lex_state = 50, .external_lex_state = 3}, + [526] = {.lex_state = 50, .external_lex_state = 3}, [527] = {.lex_state = 50, .external_lex_state = 2}, [528] = {.lex_state = 50, .external_lex_state = 2}, [529] = {.lex_state = 50, .external_lex_state = 3}, - [530] = {.lex_state = 50, .external_lex_state = 2}, + [530] = {.lex_state = 50, .external_lex_state = 3}, [531] = {.lex_state = 50, .external_lex_state = 2}, [532] = {.lex_state = 50, .external_lex_state = 2}, [533] = {.lex_state = 50, .external_lex_state = 2}, @@ -6668,47 +6682,47 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [544] = {.lex_state = 50, .external_lex_state = 2}, [545] = {.lex_state = 50, .external_lex_state = 2}, [546] = {.lex_state = 50, .external_lex_state = 2}, - [547] = {.lex_state = 50, .external_lex_state = 3}, - [548] = {.lex_state = 50, .external_lex_state = 2}, - [549] = {.lex_state = 50, .external_lex_state = 3}, - [550] = {.lex_state = 50, .external_lex_state = 2}, - [551] = {.lex_state = 50, .external_lex_state = 2}, + [547] = {.lex_state = 50, .external_lex_state = 2}, + [548] = {.lex_state = 50, .external_lex_state = 3}, + [549] = {.lex_state = 50, .external_lex_state = 2}, + [550] = {.lex_state = 50, .external_lex_state = 3}, + [551] = {.lex_state = 50, .external_lex_state = 3}, [552] = {.lex_state = 50, .external_lex_state = 2}, [553] = {.lex_state = 50, .external_lex_state = 3}, [554] = {.lex_state = 50, .external_lex_state = 2}, [555] = {.lex_state = 50, .external_lex_state = 3}, - [556] = {.lex_state = 50, .external_lex_state = 3}, + [556] = {.lex_state = 50, .external_lex_state = 2}, [557] = {.lex_state = 50, .external_lex_state = 2}, [558] = {.lex_state = 50, .external_lex_state = 2}, [559] = {.lex_state = 50, .external_lex_state = 3}, - [560] = {.lex_state = 50, .external_lex_state = 2}, - [561] = {.lex_state = 50, .external_lex_state = 2}, + [560] = {.lex_state = 50, .external_lex_state = 3}, + [561] = {.lex_state = 50, .external_lex_state = 3}, [562] = {.lex_state = 50, .external_lex_state = 2}, - [563] = {.lex_state = 50, .external_lex_state = 3}, - [564] = {.lex_state = 50, .external_lex_state = 3}, + [563] = {.lex_state = 50, .external_lex_state = 2}, + [564] = {.lex_state = 50, .external_lex_state = 2}, [565] = {.lex_state = 50, .external_lex_state = 2}, [566] = {.lex_state = 50, .external_lex_state = 2}, - [567] = {.lex_state = 14, .external_lex_state = 2}, - [568] = {.lex_state = 16, .external_lex_state = 8}, - [569] = {.lex_state = 16, .external_lex_state = 9}, - [570] = {.lex_state = 16, .external_lex_state = 8}, + [567] = {.lex_state = 50, .external_lex_state = 2}, + [568] = {.lex_state = 14, .external_lex_state = 2}, + [569] = {.lex_state = 16, .external_lex_state = 8}, + [570] = {.lex_state = 16, .external_lex_state = 9}, [571] = {.lex_state = 16, .external_lex_state = 9}, - [572] = {.lex_state = 16, .external_lex_state = 8}, - [573] = {.lex_state = 16, .external_lex_state = 9}, - [574] = {.lex_state = 50, .external_lex_state = 2}, + [572] = {.lex_state = 16, .external_lex_state = 9}, + [573] = {.lex_state = 16, .external_lex_state = 8}, + [574] = {.lex_state = 16, .external_lex_state = 8}, [575] = {.lex_state = 50, .external_lex_state = 2}, [576] = {.lex_state = 50, .external_lex_state = 2}, [577] = {.lex_state = 50, .external_lex_state = 2}, [578] = {.lex_state = 50, .external_lex_state = 2}, [579] = {.lex_state = 50, .external_lex_state = 2}, - [580] = {.lex_state = 50, .external_lex_state = 2}, - [581] = {.lex_state = 16, .external_lex_state = 8}, - [582] = {.lex_state = 16, .external_lex_state = 9}, + [580] = {.lex_state = 16, .external_lex_state = 8}, + [581] = {.lex_state = 16, .external_lex_state = 9}, + [582] = {.lex_state = 50, .external_lex_state = 2}, [583] = {.lex_state = 50, .external_lex_state = 2}, - [584] = {.lex_state = 50, .external_lex_state = 2}, + [584] = {.lex_state = 16, .external_lex_state = 8}, [585] = {.lex_state = 50, .external_lex_state = 2}, [586] = {.lex_state = 50, .external_lex_state = 2}, - [587] = {.lex_state = 16, .external_lex_state = 9}, + [587] = {.lex_state = 50, .external_lex_state = 2}, [588] = {.lex_state = 50, .external_lex_state = 2}, [589] = {.lex_state = 50, .external_lex_state = 2}, [590] = {.lex_state = 50, .external_lex_state = 2}, @@ -6723,7 +6737,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [599] = {.lex_state = 50, .external_lex_state = 2}, [600] = {.lex_state = 50, .external_lex_state = 2}, [601] = {.lex_state = 50, .external_lex_state = 2}, - [602] = {.lex_state = 16, .external_lex_state = 8}, + [602] = {.lex_state = 50, .external_lex_state = 2}, [603] = {.lex_state = 50, .external_lex_state = 2}, [604] = {.lex_state = 50, .external_lex_state = 2}, [605] = {.lex_state = 50, .external_lex_state = 2}, @@ -6745,11 +6759,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [621] = {.lex_state = 50, .external_lex_state = 2}, [622] = {.lex_state = 50, .external_lex_state = 2}, [623] = {.lex_state = 50, .external_lex_state = 2}, - [624] = {.lex_state = 50, .external_lex_state = 2}, + [624] = {.lex_state = 16, .external_lex_state = 9}, [625] = {.lex_state = 50, .external_lex_state = 2}, [626] = {.lex_state = 50, .external_lex_state = 2}, [627] = {.lex_state = 50, .external_lex_state = 2}, - [628] = {.lex_state = 16}, + [628] = {.lex_state = 50, .external_lex_state = 2}, [629] = {.lex_state = 16}, [630] = {.lex_state = 16}, [631] = {.lex_state = 16}, @@ -6806,147 +6820,147 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [682] = {.lex_state = 16}, [683] = {.lex_state = 16}, [684] = {.lex_state = 16}, - [685] = {.lex_state = 15}, + [685] = {.lex_state = 16}, [686] = {.lex_state = 16, .external_lex_state = 9}, - [687] = {.lex_state = 16}, - [688] = {.lex_state = 15}, - [689] = {.lex_state = 16, .external_lex_state = 8}, - [690] = {.lex_state = 15}, - [691] = {.lex_state = 16, .external_lex_state = 9}, - [692] = {.lex_state = 16}, - [693] = {.lex_state = 16, .external_lex_state = 8}, + [687] = {.lex_state = 15}, + [688] = {.lex_state = 16, .external_lex_state = 8}, + [689] = {.lex_state = 16, .external_lex_state = 9}, + [690] = {.lex_state = 16}, + [691] = {.lex_state = 16, .external_lex_state = 8}, + [692] = {.lex_state = 15}, + [693] = {.lex_state = 15}, [694] = {.lex_state = 15}, - [695] = {.lex_state = 16, .external_lex_state = 10}, - [696] = {.lex_state = 16, .external_lex_state = 7}, - [697] = {.lex_state = 16, .external_lex_state = 6}, + [695] = {.lex_state = 16}, + [696] = {.lex_state = 16, .external_lex_state = 10}, + [697] = {.lex_state = 16}, [698] = {.lex_state = 16, .external_lex_state = 7}, - [699] = {.lex_state = 16, .external_lex_state = 10}, - [700] = {.lex_state = 16}, + [699] = {.lex_state = 16, .external_lex_state = 7}, + [700] = {.lex_state = 16, .external_lex_state = 10}, [701] = {.lex_state = 16, .external_lex_state = 10}, - [702] = {.lex_state = 16, .external_lex_state = 7}, + [702] = {.lex_state = 16, .external_lex_state = 6}, [703] = {.lex_state = 16}, - [704] = {.lex_state = 16, .external_lex_state = 8}, + [704] = {.lex_state = 16, .external_lex_state = 7}, [705] = {.lex_state = 16, .external_lex_state = 6}, - [706] = {.lex_state = 16, .external_lex_state = 9}, - [707] = {.lex_state = 16, .external_lex_state = 8}, + [706] = {.lex_state = 16, .external_lex_state = 6}, + [707] = {.lex_state = 16, .external_lex_state = 6}, [708] = {.lex_state = 16, .external_lex_state = 6}, - [709] = {.lex_state = 16, .external_lex_state = 6}, + [709] = {.lex_state = 16, .external_lex_state = 8}, [710] = {.lex_state = 16, .external_lex_state = 6}, [711] = {.lex_state = 16, .external_lex_state = 6}, [712] = {.lex_state = 16, .external_lex_state = 6}, [713] = {.lex_state = 16, .external_lex_state = 6}, [714] = {.lex_state = 16, .external_lex_state = 6}, - [715] = {.lex_state = 16, .external_lex_state = 6}, + [715] = {.lex_state = 16, .external_lex_state = 9}, [716] = {.lex_state = 16, .external_lex_state = 8}, [717] = {.lex_state = 16, .external_lex_state = 6}, - [718] = {.lex_state = 16, .external_lex_state = 9}, + [718] = {.lex_state = 16}, [719] = {.lex_state = 16, .external_lex_state = 9}, - [720] = {.lex_state = 16, .external_lex_state = 6}, + [720] = {.lex_state = 16, .external_lex_state = 8}, [721] = {.lex_state = 16, .external_lex_state = 6}, - [722] = {.lex_state = 16}, - [723] = {.lex_state = 16}, + [722] = {.lex_state = 16, .external_lex_state = 9}, + [723] = {.lex_state = 16, .external_lex_state = 6}, [724] = {.lex_state = 16}, - [725] = {.lex_state = 50, .external_lex_state = 2}, - [726] = {.lex_state = 16, .external_lex_state = 7}, - [727] = {.lex_state = 15}, - [728] = {.lex_state = 16}, - [729] = {.lex_state = 16}, - [730] = {.lex_state = 16, .external_lex_state = 7}, - [731] = {.lex_state = 14, .external_lex_state = 2}, + [725] = {.lex_state = 16, .external_lex_state = 10}, + [726] = {.lex_state = 16, .external_lex_state = 10}, + [727] = {.lex_state = 15, .external_lex_state = 6}, + [728] = {.lex_state = 50, .external_lex_state = 2}, + [729] = {.lex_state = 15}, + [730] = {.lex_state = 15, .external_lex_state = 6}, + [731] = {.lex_state = 16}, [732] = {.lex_state = 16}, - [733] = {.lex_state = 15}, - [734] = {.lex_state = 16, .external_lex_state = 10}, - [735] = {.lex_state = 16, .external_lex_state = 10}, - [736] = {.lex_state = 15}, - [737] = {.lex_state = 15}, + [733] = {.lex_state = 50, .external_lex_state = 2}, + [734] = {.lex_state = 16}, + [735] = {.lex_state = 16}, + [736] = {.lex_state = 16}, + [737] = {.lex_state = 14, .external_lex_state = 2}, [738] = {.lex_state = 16}, [739] = {.lex_state = 16}, [740] = {.lex_state = 16}, - [741] = {.lex_state = 15, .external_lex_state = 6}, + [741] = {.lex_state = 16}, [742] = {.lex_state = 16}, - [743] = {.lex_state = 15, .external_lex_state = 6}, + [743] = {.lex_state = 16, .external_lex_state = 7}, [744] = {.lex_state = 16}, [745] = {.lex_state = 16}, - [746] = {.lex_state = 50, .external_lex_state = 2}, - [747] = {.lex_state = 16}, + [746] = {.lex_state = 16}, + [747] = {.lex_state = 15}, [748] = {.lex_state = 16}, - [749] = {.lex_state = 16}, - [750] = {.lex_state = 16}, + [749] = {.lex_state = 15}, + [750] = {.lex_state = 14, .external_lex_state = 2}, [751] = {.lex_state = 16}, [752] = {.lex_state = 16}, - [753] = {.lex_state = 14, .external_lex_state = 2}, - [754] = {.lex_state = 16}, - [755] = {.lex_state = 16, .external_lex_state = 6}, - [756] = {.lex_state = 16, .external_lex_state = 6}, + [753] = {.lex_state = 16}, + [754] = {.lex_state = 15}, + [755] = {.lex_state = 16, .external_lex_state = 7}, + [756] = {.lex_state = 16}, [757] = {.lex_state = 16, .external_lex_state = 6}, [758] = {.lex_state = 16, .external_lex_state = 6}, [759] = {.lex_state = 16, .external_lex_state = 6}, [760] = {.lex_state = 16, .external_lex_state = 6}, [761] = {.lex_state = 16, .external_lex_state = 6}, - [762] = {.lex_state = 16, .external_lex_state = 6}, + [762] = {.lex_state = 15}, [763] = {.lex_state = 16, .external_lex_state = 6}, - [764] = {.lex_state = 15}, - [765] = {.lex_state = 16, .external_lex_state = 6}, - [766] = {.lex_state = 16, .external_lex_state = 6}, + [764] = {.lex_state = 16, .external_lex_state = 6}, + [765] = {.lex_state = 50, .external_lex_state = 2}, + [766] = {.lex_state = 50, .external_lex_state = 2}, [767] = {.lex_state = 16, .external_lex_state = 6}, [768] = {.lex_state = 50, .external_lex_state = 2}, - [769] = {.lex_state = 16}, - [770] = {.lex_state = 50, .external_lex_state = 2}, - [771] = {.lex_state = 16, .external_lex_state = 6}, + [769] = {.lex_state = 16, .external_lex_state = 6}, + [770] = {.lex_state = 16}, + [771] = {.lex_state = 50, .external_lex_state = 2}, [772] = {.lex_state = 16, .external_lex_state = 6}, - [773] = {.lex_state = 16, .external_lex_state = 6}, - [774] = {.lex_state = 16, .external_lex_state = 6}, + [773] = {.lex_state = 50, .external_lex_state = 2}, + [774] = {.lex_state = 50, .external_lex_state = 2}, [775] = {.lex_state = 16, .external_lex_state = 6}, [776] = {.lex_state = 16, .external_lex_state = 6}, - [777] = {.lex_state = 16}, - [778] = {.lex_state = 16, .external_lex_state = 6}, + [777] = {.lex_state = 16, .external_lex_state = 6}, + [778] = {.lex_state = 15}, [779] = {.lex_state = 16, .external_lex_state = 6}, - [780] = {.lex_state = 15}, + [780] = {.lex_state = 16, .external_lex_state = 6}, [781] = {.lex_state = 16, .external_lex_state = 6}, [782] = {.lex_state = 16, .external_lex_state = 6}, - [783] = {.lex_state = 50, .external_lex_state = 2}, + [783] = {.lex_state = 16, .external_lex_state = 6}, [784] = {.lex_state = 16, .external_lex_state = 6}, [785] = {.lex_state = 16, .external_lex_state = 6}, [786] = {.lex_state = 16, .external_lex_state = 6}, [787] = {.lex_state = 16, .external_lex_state = 6}, - [788] = {.lex_state = 50, .external_lex_state = 2}, - [789] = {.lex_state = 50, .external_lex_state = 2}, + [788] = {.lex_state = 16, .external_lex_state = 6}, + [789] = {.lex_state = 16, .external_lex_state = 6}, [790] = {.lex_state = 16, .external_lex_state = 6}, - [791] = {.lex_state = 16}, + [791] = {.lex_state = 16, .external_lex_state = 6}, [792] = {.lex_state = 16, .external_lex_state = 6}, [793] = {.lex_state = 16, .external_lex_state = 6}, [794] = {.lex_state = 16, .external_lex_state = 6}, [795] = {.lex_state = 16, .external_lex_state = 6}, - [796] = {.lex_state = 16, .external_lex_state = 6}, + [796] = {.lex_state = 16}, [797] = {.lex_state = 16, .external_lex_state = 6}, - [798] = {.lex_state = 50, .external_lex_state = 2}, - [799] = {.lex_state = 16}, - [800] = {.lex_state = 50, .external_lex_state = 2}, - [801] = {.lex_state = 15}, - [802] = {.lex_state = 50, .external_lex_state = 2}, + [798] = {.lex_state = 16, .external_lex_state = 6}, + [799] = {.lex_state = 16, .external_lex_state = 6}, + [800] = {.lex_state = 16}, + [801] = {.lex_state = 16}, + [802] = {.lex_state = 16}, [803] = {.lex_state = 15}, - [804] = {.lex_state = 16}, + [804] = {.lex_state = 50, .external_lex_state = 2}, [805] = {.lex_state = 16}, [806] = {.lex_state = 16}, - [807] = {.lex_state = 16}, + [807] = {.lex_state = 50, .external_lex_state = 2}, [808] = {.lex_state = 16}, [809] = {.lex_state = 16}, - [810] = {.lex_state = 16}, + [810] = {.lex_state = 50, .external_lex_state = 2}, [811] = {.lex_state = 16}, [812] = {.lex_state = 16}, [813] = {.lex_state = 16}, [814] = {.lex_state = 16}, [815] = {.lex_state = 16}, [816] = {.lex_state = 16}, - [817] = {.lex_state = 50, .external_lex_state = 2}, + [817] = {.lex_state = 16}, [818] = {.lex_state = 16}, [819] = {.lex_state = 16}, [820] = {.lex_state = 16}, [821] = {.lex_state = 16}, [822] = {.lex_state = 16}, - [823] = {.lex_state = 16}, + [823] = {.lex_state = 50, .external_lex_state = 2}, [824] = {.lex_state = 16}, - [825] = {.lex_state = 50, .external_lex_state = 2}, + [825] = {.lex_state = 15}, [826] = {.lex_state = 16}, [827] = {.lex_state = 16}, [828] = {.lex_state = 16}, @@ -6959,103 +6973,103 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [835] = {.lex_state = 16}, [836] = {.lex_state = 16}, [837] = {.lex_state = 16}, - [838] = {.lex_state = 50, .external_lex_state = 2}, + [838] = {.lex_state = 16}, [839] = {.lex_state = 50, .external_lex_state = 2}, [840] = {.lex_state = 50, .external_lex_state = 2}, [841] = {.lex_state = 50, .external_lex_state = 2}, [842] = {.lex_state = 50, .external_lex_state = 2}, - [843] = {.lex_state = 14}, + [843] = {.lex_state = 50, .external_lex_state = 2}, [844] = {.lex_state = 14}, [845] = {.lex_state = 14}, [846] = {.lex_state = 14}, [847] = {.lex_state = 14}, - [848] = {.lex_state = 50, .external_lex_state = 2}, + [848] = {.lex_state = 14}, [849] = {.lex_state = 14}, - [850] = {.lex_state = 50, .external_lex_state = 2}, + [850] = {.lex_state = 0, .external_lex_state = 6}, [851] = {.lex_state = 50, .external_lex_state = 2}, - [852] = {.lex_state = 0, .external_lex_state = 6}, + [852] = {.lex_state = 16}, [853] = {.lex_state = 14}, [854] = {.lex_state = 14}, - [855] = {.lex_state = 14}, - [856] = {.lex_state = 16}, - [857] = {.lex_state = 0, .external_lex_state = 6}, - [858] = {.lex_state = 16}, - [859] = {.lex_state = 14}, + [855] = {.lex_state = 50, .external_lex_state = 2}, + [856] = {.lex_state = 0, .external_lex_state = 6}, + [857] = {.lex_state = 14}, + [858] = {.lex_state = 50, .external_lex_state = 2}, + [859] = {.lex_state = 16}, [860] = {.lex_state = 14}, - [861] = {.lex_state = 16}, - [862] = {.lex_state = 14}, + [861] = {.lex_state = 14}, + [862] = {.lex_state = 16}, [863] = {.lex_state = 14}, [864] = {.lex_state = 14}, [865] = {.lex_state = 14}, [866] = {.lex_state = 14}, [867] = {.lex_state = 14}, [868] = {.lex_state = 14}, - [869] = {.lex_state = 50, .external_lex_state = 2}, - [870] = {.lex_state = 0}, + [869] = {.lex_state = 14}, + [870] = {.lex_state = 50, .external_lex_state = 2}, [871] = {.lex_state = 0}, - [872] = {.lex_state = 14}, + [872] = {.lex_state = 0}, [873] = {.lex_state = 0}, [874] = {.lex_state = 14}, [875] = {.lex_state = 14}, [876] = {.lex_state = 14}, [877] = {.lex_state = 0}, - [878] = {.lex_state = 14}, - [879] = {.lex_state = 0}, - [880] = {.lex_state = 16}, - [881] = {.lex_state = 14}, - [882] = {.lex_state = 14}, - [883] = {.lex_state = 0}, - [884] = {.lex_state = 16}, + [878] = {.lex_state = 0}, + [879] = {.lex_state = 14}, + [880] = {.lex_state = 14}, + [881] = {.lex_state = 16}, + [882] = {.lex_state = 16}, + [883] = {.lex_state = 14}, + [884] = {.lex_state = 14}, [885] = {.lex_state = 14}, - [886] = {.lex_state = 16}, + [886] = {.lex_state = 14}, [887] = {.lex_state = 14}, [888] = {.lex_state = 14}, [889] = {.lex_state = 14}, [890] = {.lex_state = 14}, - [891] = {.lex_state = 14}, - [892] = {.lex_state = 14}, + [891] = {.lex_state = 14, .external_lex_state = 9}, + [892] = {.lex_state = 14, .external_lex_state = 8}, [893] = {.lex_state = 14}, - [894] = {.lex_state = 14}, + [894] = {.lex_state = 16}, [895] = {.lex_state = 14}, [896] = {.lex_state = 14}, - [897] = {.lex_state = 14, .external_lex_state = 8}, - [898] = {.lex_state = 14, .external_lex_state = 9}, + [897] = {.lex_state = 14}, + [898] = {.lex_state = 14}, [899] = {.lex_state = 14}, [900] = {.lex_state = 14}, [901] = {.lex_state = 14}, - [902] = {.lex_state = 14}, - [903] = {.lex_state = 16}, + [902] = {.lex_state = 16}, + [903] = {.lex_state = 0}, [904] = {.lex_state = 14}, - [905] = {.lex_state = 18, .external_lex_state = 11}, + [905] = {.lex_state = 14}, [906] = {.lex_state = 18, .external_lex_state = 11}, [907] = {.lex_state = 18, .external_lex_state = 11}, - [908] = {.lex_state = 14}, - [909] = {.lex_state = 18, .external_lex_state = 11}, - [910] = {.lex_state = 0}, + [908] = {.lex_state = 0}, + [909] = {.lex_state = 0}, + [910] = {.lex_state = 14}, [911] = {.lex_state = 0}, [912] = {.lex_state = 0}, - [913] = {.lex_state = 0}, - [914] = {.lex_state = 14}, - [915] = {.lex_state = 0}, - [916] = {.lex_state = 0}, - [917] = {.lex_state = 18, .external_lex_state = 11}, - [918] = {.lex_state = 14}, + [913] = {.lex_state = 18, .external_lex_state = 11}, + [914] = {.lex_state = 18, .external_lex_state = 11}, + [915] = {.lex_state = 18, .external_lex_state = 11}, + [916] = {.lex_state = 18, .external_lex_state = 11}, + [917] = {.lex_state = 14}, + [918] = {.lex_state = 18, .external_lex_state = 11}, [919] = {.lex_state = 18, .external_lex_state = 11}, [920] = {.lex_state = 18, .external_lex_state = 11}, - [921] = {.lex_state = 14}, + [921] = {.lex_state = 0}, [922] = {.lex_state = 18, .external_lex_state = 11}, [923] = {.lex_state = 18, .external_lex_state = 11}, - [924] = {.lex_state = 0}, - [925] = {.lex_state = 14}, - [926] = {.lex_state = 14}, - [927] = {.lex_state = 18, .external_lex_state = 11}, + [924] = {.lex_state = 14}, + [925] = {.lex_state = 18, .external_lex_state = 11}, + [926] = {.lex_state = 18, .external_lex_state = 11}, + [927] = {.lex_state = 14}, [928] = {.lex_state = 0}, [929] = {.lex_state = 18, .external_lex_state = 11}, - [930] = {.lex_state = 18, .external_lex_state = 11}, - [931] = {.lex_state = 18, .external_lex_state = 11}, - [932] = {.lex_state = 0}, - [933] = {.lex_state = 18, .external_lex_state = 11}, - [934] = {.lex_state = 18, .external_lex_state = 11}, + [930] = {.lex_state = 0}, + [931] = {.lex_state = 14}, + [932] = {.lex_state = 18, .external_lex_state = 11}, + [933] = {.lex_state = 0}, + [934] = {.lex_state = 14}, [935] = {.lex_state = 0}, [936] = {.lex_state = 0}, [937] = {.lex_state = 0}, @@ -7063,450 +7077,450 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [939] = {.lex_state = 14}, [940] = {.lex_state = 14}, [941] = {.lex_state = 0}, - [942] = {.lex_state = 14}, + [942] = {.lex_state = 0}, [943] = {.lex_state = 0}, - [944] = {.lex_state = 0}, - [945] = {.lex_state = 0, .external_lex_state = 6}, + [944] = {.lex_state = 14}, + [945] = {.lex_state = 0}, [946] = {.lex_state = 14}, - [947] = {.lex_state = 0, .external_lex_state = 6}, - [948] = {.lex_state = 0, .external_lex_state = 6}, - [949] = {.lex_state = 0, .external_lex_state = 6}, + [947] = {.lex_state = 14}, + [948] = {.lex_state = 14}, + [949] = {.lex_state = 14}, [950] = {.lex_state = 14}, - [951] = {.lex_state = 14}, + [951] = {.lex_state = 0, .external_lex_state = 6}, [952] = {.lex_state = 14}, [953] = {.lex_state = 0, .external_lex_state = 6}, [954] = {.lex_state = 14}, - [955] = {.lex_state = 14}, - [956] = {.lex_state = 0, .external_lex_state = 6}, + [955] = {.lex_state = 0, .external_lex_state = 6}, + [956] = {.lex_state = 14}, [957] = {.lex_state = 14}, [958] = {.lex_state = 14}, [959] = {.lex_state = 14}, [960] = {.lex_state = 0}, - [961] = {.lex_state = 14}, + [961] = {.lex_state = 0}, [962] = {.lex_state = 14}, - [963] = {.lex_state = 14}, - [964] = {.lex_state = 0}, - [965] = {.lex_state = 0, .external_lex_state = 6}, - [966] = {.lex_state = 0, .external_lex_state = 6}, - [967] = {.lex_state = 16}, - [968] = {.lex_state = 0}, - [969] = {.lex_state = 0}, - [970] = {.lex_state = 0}, + [963] = {.lex_state = 0, .external_lex_state = 6}, + [964] = {.lex_state = 14}, + [965] = {.lex_state = 14}, + [966] = {.lex_state = 14}, + [967] = {.lex_state = 0}, + [968] = {.lex_state = 14}, + [969] = {.lex_state = 0, .external_lex_state = 6}, + [970] = {.lex_state = 0, .external_lex_state = 6}, [971] = {.lex_state = 14}, - [972] = {.lex_state = 0}, - [973] = {.lex_state = 14}, + [972] = {.lex_state = 0, .external_lex_state = 6}, + [973] = {.lex_state = 0}, [974] = {.lex_state = 14}, [975] = {.lex_state = 14}, - [976] = {.lex_state = 14}, - [977] = {.lex_state = 0, .external_lex_state = 6}, - [978] = {.lex_state = 0, .external_lex_state = 6}, - [979] = {.lex_state = 14}, - [980] = {.lex_state = 0}, - [981] = {.lex_state = 14}, + [976] = {.lex_state = 0}, + [977] = {.lex_state = 14}, + [978] = {.lex_state = 0}, + [979] = {.lex_state = 0, .external_lex_state = 6}, + [980] = {.lex_state = 14}, + [981] = {.lex_state = 16}, [982] = {.lex_state = 14}, - [983] = {.lex_state = 0, .external_lex_state = 6}, - [984] = {.lex_state = 14}, - [985] = {.lex_state = 0}, + [983] = {.lex_state = 14}, + [984] = {.lex_state = 0, .external_lex_state = 6}, + [985] = {.lex_state = 0, .external_lex_state = 6}, [986] = {.lex_state = 14}, - [987] = {.lex_state = 14}, - [988] = {.lex_state = 14}, - [989] = {.lex_state = 14}, + [987] = {.lex_state = 0}, + [988] = {.lex_state = 0}, + [989] = {.lex_state = 0, .external_lex_state = 6}, [990] = {.lex_state = 14}, - [991] = {.lex_state = 0, .external_lex_state = 6}, + [991] = {.lex_state = 14}, [992] = {.lex_state = 0}, - [993] = {.lex_state = 0}, - [994] = {.lex_state = 18, .external_lex_state = 11}, - [995] = {.lex_state = 14}, - [996] = {.lex_state = 16}, - [997] = {.lex_state = 0, .external_lex_state = 6}, - [998] = {.lex_state = 14}, + [993] = {.lex_state = 14}, + [994] = {.lex_state = 14}, + [995] = {.lex_state = 0}, + [996] = {.lex_state = 14}, + [997] = {.lex_state = 0}, + [998] = {.lex_state = 0}, [999] = {.lex_state = 14}, - [1000] = {.lex_state = 0, .external_lex_state = 6}, - [1001] = {.lex_state = 0}, - [1002] = {.lex_state = 14}, - [1003] = {.lex_state = 14}, + [1000] = {.lex_state = 14}, + [1001] = {.lex_state = 14}, + [1002] = {.lex_state = 0, .external_lex_state = 6}, + [1003] = {.lex_state = 0, .external_lex_state = 6}, [1004] = {.lex_state = 0}, - [1005] = {.lex_state = 14}, - [1006] = {.lex_state = 0, .external_lex_state = 6}, - [1007] = {.lex_state = 14}, - [1008] = {.lex_state = 14}, - [1009] = {.lex_state = 14}, + [1005] = {.lex_state = 0, .external_lex_state = 6}, + [1006] = {.lex_state = 0}, + [1007] = {.lex_state = 0}, + [1008] = {.lex_state = 0, .external_lex_state = 6}, + [1009] = {.lex_state = 0, .external_lex_state = 6}, [1010] = {.lex_state = 14}, [1011] = {.lex_state = 0}, - [1012] = {.lex_state = 0}, - [1013] = {.lex_state = 0}, - [1014] = {.lex_state = 0}, - [1015] = {.lex_state = 0}, - [1016] = {.lex_state = 14}, - [1017] = {.lex_state = 18, .external_lex_state = 11}, + [1012] = {.lex_state = 0, .external_lex_state = 6}, + [1013] = {.lex_state = 16}, + [1014] = {.lex_state = 14}, + [1015] = {.lex_state = 14}, + [1016] = {.lex_state = 0}, + [1017] = {.lex_state = 0}, [1018] = {.lex_state = 0}, [1019] = {.lex_state = 14}, [1020] = {.lex_state = 0}, - [1021] = {.lex_state = 0}, + [1021] = {.lex_state = 14}, [1022] = {.lex_state = 14}, - [1023] = {.lex_state = 14}, - [1024] = {.lex_state = 0, .external_lex_state = 6}, - [1025] = {.lex_state = 0, .external_lex_state = 6}, - [1026] = {.lex_state = 0}, - [1027] = {.lex_state = 0}, - [1028] = {.lex_state = 0, .external_lex_state = 6}, - [1029] = {.lex_state = 0}, + [1023] = {.lex_state = 0}, + [1024] = {.lex_state = 14}, + [1025] = {.lex_state = 0}, + [1026] = {.lex_state = 0, .external_lex_state = 6}, + [1027] = {.lex_state = 14}, + [1028] = {.lex_state = 0}, + [1029] = {.lex_state = 14}, [1030] = {.lex_state = 0, .external_lex_state = 6}, [1031] = {.lex_state = 0, .external_lex_state = 6}, [1032] = {.lex_state = 0, .external_lex_state = 6}, - [1033] = {.lex_state = 0, .external_lex_state = 6}, - [1034] = {.lex_state = 16, .external_lex_state = 6}, - [1035] = {.lex_state = 14}, - [1036] = {.lex_state = 18, .external_lex_state = 11}, - [1037] = {.lex_state = 14}, - [1038] = {.lex_state = 14}, - [1039] = {.lex_state = 14}, - [1040] = {.lex_state = 18, .external_lex_state = 11}, - [1041] = {.lex_state = 14}, + [1033] = {.lex_state = 14}, + [1034] = {.lex_state = 14}, + [1035] = {.lex_state = 18, .external_lex_state = 11}, + [1036] = {.lex_state = 14}, + [1037] = {.lex_state = 18, .external_lex_state = 11}, + [1038] = {.lex_state = 16, .external_lex_state = 6}, + [1039] = {.lex_state = 16}, + [1040] = {.lex_state = 14}, + [1041] = {.lex_state = 16, .external_lex_state = 6}, [1042] = {.lex_state = 14}, - [1043] = {.lex_state = 14}, + [1043] = {.lex_state = 0}, [1044] = {.lex_state = 18, .external_lex_state = 11}, - [1045] = {.lex_state = 14}, - [1046] = {.lex_state = 16}, + [1045] = {.lex_state = 0}, + [1046] = {.lex_state = 18, .external_lex_state = 11}, [1047] = {.lex_state = 16, .external_lex_state = 6}, - [1048] = {.lex_state = 14}, + [1048] = {.lex_state = 18, .external_lex_state = 11}, [1049] = {.lex_state = 14}, [1050] = {.lex_state = 14}, [1051] = {.lex_state = 16}, [1052] = {.lex_state = 14}, [1053] = {.lex_state = 0, .external_lex_state = 6}, - [1054] = {.lex_state = 14}, - [1055] = {.lex_state = 0}, - [1056] = {.lex_state = 0, .external_lex_state = 6}, - [1057] = {.lex_state = 0, .external_lex_state = 6}, - [1058] = {.lex_state = 18, .external_lex_state = 11}, - [1059] = {.lex_state = 18, .external_lex_state = 11}, + [1054] = {.lex_state = 18, .external_lex_state = 11}, + [1055] = {.lex_state = 14}, + [1056] = {.lex_state = 18, .external_lex_state = 11}, + [1057] = {.lex_state = 14}, + [1058] = {.lex_state = 14}, + [1059] = {.lex_state = 14}, [1060] = {.lex_state = 0}, [1061] = {.lex_state = 14}, [1062] = {.lex_state = 14}, - [1063] = {.lex_state = 14}, - [1064] = {.lex_state = 0}, + [1063] = {.lex_state = 0, .external_lex_state = 6}, + [1064] = {.lex_state = 14}, [1065] = {.lex_state = 14}, - [1066] = {.lex_state = 16, .external_lex_state = 6}, + [1066] = {.lex_state = 14}, [1067] = {.lex_state = 18, .external_lex_state = 11}, - [1068] = {.lex_state = 0}, - [1069] = {.lex_state = 0}, - [1070] = {.lex_state = 0}, - [1071] = {.lex_state = 0}, - [1072] = {.lex_state = 0}, - [1073] = {.lex_state = 0}, - [1074] = {.lex_state = 14}, + [1068] = {.lex_state = 0, .external_lex_state = 6}, + [1069] = {.lex_state = 0, .external_lex_state = 6}, + [1070] = {.lex_state = 14}, + [1071] = {.lex_state = 14}, + [1072] = {.lex_state = 8}, + [1073] = {.lex_state = 0, .external_lex_state = 6}, + [1074] = {.lex_state = 0}, [1075] = {.lex_state = 0}, - [1076] = {.lex_state = 0, .external_lex_state = 6}, - [1077] = {.lex_state = 0, .external_lex_state = 6}, + [1076] = {.lex_state = 14}, + [1077] = {.lex_state = 0}, [1078] = {.lex_state = 0, .external_lex_state = 6}, [1079] = {.lex_state = 0}, - [1080] = {.lex_state = 14}, - [1081] = {.lex_state = 14}, + [1080] = {.lex_state = 0, .external_lex_state = 6}, + [1081] = {.lex_state = 0, .external_lex_state = 6}, [1082] = {.lex_state = 0, .external_lex_state = 6}, [1083] = {.lex_state = 0}, - [1084] = {.lex_state = 0, .external_lex_state = 6}, - [1085] = {.lex_state = 0, .external_lex_state = 6}, + [1084] = {.lex_state = 14}, + [1085] = {.lex_state = 0}, [1086] = {.lex_state = 14}, [1087] = {.lex_state = 0}, - [1088] = {.lex_state = 0, .external_lex_state = 6}, - [1089] = {.lex_state = 0, .external_lex_state = 6}, + [1088] = {.lex_state = 14}, + [1089] = {.lex_state = 14}, [1090] = {.lex_state = 0}, - [1091] = {.lex_state = 14}, - [1092] = {.lex_state = 14}, - [1093] = {.lex_state = 0}, - [1094] = {.lex_state = 8}, - [1095] = {.lex_state = 0, .external_lex_state = 6}, - [1096] = {.lex_state = 14}, - [1097] = {.lex_state = 0}, - [1098] = {.lex_state = 0}, - [1099] = {.lex_state = 14}, - [1100] = {.lex_state = 0, .external_lex_state = 6}, - [1101] = {.lex_state = 8}, - [1102] = {.lex_state = 0, .external_lex_state = 6}, - [1103] = {.lex_state = 0, .external_lex_state = 6}, + [1091] = {.lex_state = 0, .external_lex_state = 6}, + [1092] = {.lex_state = 0}, + [1093] = {.lex_state = 0, .external_lex_state = 6}, + [1094] = {.lex_state = 0, .external_lex_state = 6}, + [1095] = {.lex_state = 0}, + [1096] = {.lex_state = 0, .external_lex_state = 6}, + [1097] = {.lex_state = 0, .external_lex_state = 6}, + [1098] = {.lex_state = 8}, + [1099] = {.lex_state = 0}, + [1100] = {.lex_state = 0}, + [1101] = {.lex_state = 0, .external_lex_state = 6}, + [1102] = {.lex_state = 0}, + [1103] = {.lex_state = 14}, [1104] = {.lex_state = 8}, - [1105] = {.lex_state = 16, .external_lex_state = 6}, - [1106] = {.lex_state = 0, .external_lex_state = 6}, - [1107] = {.lex_state = 0}, + [1105] = {.lex_state = 0, .external_lex_state = 6}, + [1106] = {.lex_state = 0}, + [1107] = {.lex_state = 16, .external_lex_state = 6}, [1108] = {.lex_state = 0}, - [1109] = {.lex_state = 0}, - [1110] = {.lex_state = 14, .external_lex_state = 8}, - [1111] = {.lex_state = 0}, - [1112] = {.lex_state = 14, .external_lex_state = 9}, - [1113] = {.lex_state = 0, .external_lex_state = 6}, - [1114] = {.lex_state = 0, .external_lex_state = 6}, - [1115] = {.lex_state = 0}, - [1116] = {.lex_state = 0, .external_lex_state = 6}, + [1109] = {.lex_state = 0, .external_lex_state = 6}, + [1110] = {.lex_state = 0, .external_lex_state = 6}, + [1111] = {.lex_state = 0, .external_lex_state = 6}, + [1112] = {.lex_state = 14}, + [1113] = {.lex_state = 0}, + [1114] = {.lex_state = 16}, + [1115] = {.lex_state = 14}, + [1116] = {.lex_state = 0}, [1117] = {.lex_state = 14}, - [1118] = {.lex_state = 0, .external_lex_state = 6}, - [1119] = {.lex_state = 0, .external_lex_state = 6}, - [1120] = {.lex_state = 14}, - [1121] = {.lex_state = 0, .external_lex_state = 6}, - [1122] = {.lex_state = 14}, + [1118] = {.lex_state = 0}, + [1119] = {.lex_state = 14, .external_lex_state = 9}, + [1120] = {.lex_state = 14, .external_lex_state = 8}, + [1121] = {.lex_state = 14}, + [1122] = {.lex_state = 0}, [1123] = {.lex_state = 0}, - [1124] = {.lex_state = 0}, - [1125] = {.lex_state = 0}, - [1126] = {.lex_state = 0}, + [1124] = {.lex_state = 0, .external_lex_state = 6}, + [1125] = {.lex_state = 14}, + [1126] = {.lex_state = 14}, [1127] = {.lex_state = 0}, [1128] = {.lex_state = 14}, - [1129] = {.lex_state = 16}, - [1130] = {.lex_state = 0}, - [1131] = {.lex_state = 0}, - [1132] = {.lex_state = 0}, - [1133] = {.lex_state = 0}, - [1134] = {.lex_state = 0}, - [1135] = {.lex_state = 0}, - [1136] = {.lex_state = 14}, + [1129] = {.lex_state = 0}, + [1130] = {.lex_state = 0, .external_lex_state = 6}, + [1131] = {.lex_state = 0, .external_lex_state = 6}, + [1132] = {.lex_state = 0, .external_lex_state = 6}, + [1133] = {.lex_state = 0, .external_lex_state = 6}, + [1134] = {.lex_state = 0, .external_lex_state = 6}, + [1135] = {.lex_state = 0, .external_lex_state = 6}, + [1136] = {.lex_state = 0}, [1137] = {.lex_state = 0}, - [1138] = {.lex_state = 14}, + [1138] = {.lex_state = 0}, [1139] = {.lex_state = 14}, - [1140] = {.lex_state = 14}, + [1140] = {.lex_state = 0, .external_lex_state = 6}, [1141] = {.lex_state = 14}, - [1142] = {.lex_state = 14}, - [1143] = {.lex_state = 0}, - [1144] = {.lex_state = 0}, - [1145] = {.lex_state = 0}, - [1146] = {.lex_state = 0, .external_lex_state = 6}, - [1147] = {.lex_state = 0, .external_lex_state = 6}, - [1148] = {.lex_state = 16}, + [1142] = {.lex_state = 0}, + [1143] = {.lex_state = 0, .external_lex_state = 6}, + [1144] = {.lex_state = 0, .external_lex_state = 6}, + [1145] = {.lex_state = 0, .external_lex_state = 6}, + [1146] = {.lex_state = 0}, + [1147] = {.lex_state = 0}, + [1148] = {.lex_state = 0}, [1149] = {.lex_state = 0}, - [1150] = {.lex_state = 0}, + [1150] = {.lex_state = 14}, [1151] = {.lex_state = 14}, - [1152] = {.lex_state = 0}, - [1153] = {.lex_state = 0, .external_lex_state = 6}, - [1154] = {.lex_state = 0}, - [1155] = {.lex_state = 14}, + [1152] = {.lex_state = 14}, + [1153] = {.lex_state = 0}, + [1154] = {.lex_state = 14}, + [1155] = {.lex_state = 0, .external_lex_state = 6}, [1156] = {.lex_state = 0, .external_lex_state = 6}, [1157] = {.lex_state = 14}, - [1158] = {.lex_state = 0}, - [1159] = {.lex_state = 14}, - [1160] = {.lex_state = 0, .external_lex_state = 6}, - [1161] = {.lex_state = 0, .external_lex_state = 6}, + [1158] = {.lex_state = 14}, + [1159] = {.lex_state = 0, .external_lex_state = 6}, + [1160] = {.lex_state = 0}, + [1161] = {.lex_state = 14}, [1162] = {.lex_state = 14}, - [1163] = {.lex_state = 14}, - [1164] = {.lex_state = 0, .external_lex_state = 6}, - [1165] = {.lex_state = 0, .external_lex_state = 6}, - [1166] = {.lex_state = 0}, - [1167] = {.lex_state = 14}, - [1168] = {.lex_state = 0}, + [1163] = {.lex_state = 0}, + [1164] = {.lex_state = 0}, + [1165] = {.lex_state = 0}, + [1166] = {.lex_state = 14}, + [1167] = {.lex_state = 0, .external_lex_state = 6}, + [1168] = {.lex_state = 0, .external_lex_state = 6}, [1169] = {.lex_state = 14}, - [1170] = {.lex_state = 0, .external_lex_state = 6}, - [1171] = {.lex_state = 0, .external_lex_state = 6}, - [1172] = {.lex_state = 0, .external_lex_state = 6}, + [1170] = {.lex_state = 0}, + [1171] = {.lex_state = 16}, + [1172] = {.lex_state = 0}, [1173] = {.lex_state = 0}, - [1174] = {.lex_state = 0, .external_lex_state = 6}, - [1175] = {.lex_state = 14}, + [1174] = {.lex_state = 0}, + [1175] = {.lex_state = 0}, [1176] = {.lex_state = 0}, [1177] = {.lex_state = 0}, - [1178] = {.lex_state = 0}, - [1179] = {.lex_state = 8}, + [1178] = {.lex_state = 14}, + [1179] = {.lex_state = 14}, [1180] = {.lex_state = 0}, - [1181] = {.lex_state = 0}, + [1181] = {.lex_state = 0, .external_lex_state = 6}, [1182] = {.lex_state = 0}, - [1183] = {.lex_state = 0}, - [1184] = {.lex_state = 0, .external_lex_state = 6}, - [1185] = {.lex_state = 8}, - [1186] = {.lex_state = 0, .external_lex_state = 6}, + [1183] = {.lex_state = 14}, + [1184] = {.lex_state = 14}, + [1185] = {.lex_state = 0, .external_lex_state = 6}, + [1186] = {.lex_state = 14}, [1187] = {.lex_state = 0}, [1188] = {.lex_state = 0}, [1189] = {.lex_state = 0}, [1190] = {.lex_state = 0}, - [1191] = {.lex_state = 0}, - [1192] = {.lex_state = 0, .external_lex_state = 6}, + [1191] = {.lex_state = 8}, + [1192] = {.lex_state = 0}, [1193] = {.lex_state = 0}, - [1194] = {.lex_state = 14}, - [1195] = {.lex_state = 14}, - [1196] = {.lex_state = 14}, - [1197] = {.lex_state = 14}, + [1194] = {.lex_state = 0}, + [1195] = {.lex_state = 0, .external_lex_state = 6}, + [1196] = {.lex_state = 0, .external_lex_state = 6}, + [1197] = {.lex_state = 0}, [1198] = {.lex_state = 14}, - [1199] = {.lex_state = 0}, + [1199] = {.lex_state = 0, .external_lex_state = 6}, [1200] = {.lex_state = 0}, [1201] = {.lex_state = 0}, [1202] = {.lex_state = 0}, - [1203] = {.lex_state = 0, .external_lex_state = 6}, - [1204] = {.lex_state = 0, .external_lex_state = 6}, - [1205] = {.lex_state = 14}, - [1206] = {.lex_state = 14}, - [1207] = {.lex_state = 0, .external_lex_state = 6}, - [1208] = {.lex_state = 8}, - [1209] = {.lex_state = 0}, + [1203] = {.lex_state = 0}, + [1204] = {.lex_state = 0}, + [1205] = {.lex_state = 0}, + [1206] = {.lex_state = 0}, + [1207] = {.lex_state = 0}, + [1208] = {.lex_state = 0}, + [1209] = {.lex_state = 14}, [1210] = {.lex_state = 14}, - [1211] = {.lex_state = 0}, - [1212] = {.lex_state = 14}, + [1211] = {.lex_state = 0, .external_lex_state = 6}, + [1212] = {.lex_state = 0, .external_lex_state = 6}, [1213] = {.lex_state = 0}, - [1214] = {.lex_state = 0, .external_lex_state = 6}, + [1214] = {.lex_state = 0}, [1215] = {.lex_state = 0}, [1216] = {.lex_state = 0}, - [1217] = {.lex_state = 0}, + [1217] = {.lex_state = 0, .external_lex_state = 6}, [1218] = {.lex_state = 0}, - [1219] = {.lex_state = 16}, + [1219] = {.lex_state = 0}, [1220] = {.lex_state = 0}, [1221] = {.lex_state = 0}, - [1222] = {.lex_state = 0}, + [1222] = {.lex_state = 14}, [1223] = {.lex_state = 0}, - [1224] = {.lex_state = 0}, + [1224] = {.lex_state = 16}, [1225] = {.lex_state = 0}, [1226] = {.lex_state = 0}, - [1227] = {.lex_state = 0}, - [1228] = {.lex_state = 0}, + [1227] = {.lex_state = 0, .external_lex_state = 6}, + [1228] = {.lex_state = 0, .external_lex_state = 6}, [1229] = {.lex_state = 0}, - [1230] = {.lex_state = 0, .external_lex_state = 6}, - [1231] = {.lex_state = 0}, + [1230] = {.lex_state = 0}, + [1231] = {.lex_state = 0, .external_lex_state = 6}, [1232] = {.lex_state = 0}, [1233] = {.lex_state = 0}, [1234] = {.lex_state = 0}, [1235] = {.lex_state = 0}, - [1236] = {.lex_state = 0, .external_lex_state = 6}, - [1237] = {.lex_state = 14}, - [1238] = {.lex_state = 8}, - [1239] = {.lex_state = 0}, + [1236] = {.lex_state = 0}, + [1237] = {.lex_state = 0}, + [1238] = {.lex_state = 14}, + [1239] = {.lex_state = 14}, [1240] = {.lex_state = 0}, - [1241] = {.lex_state = 0}, + [1241] = {.lex_state = 8}, [1242] = {.lex_state = 0}, [1243] = {.lex_state = 0}, [1244] = {.lex_state = 0}, - [1245] = {.lex_state = 0}, + [1245] = {.lex_state = 8}, [1246] = {.lex_state = 0}, [1247] = {.lex_state = 0}, [1248] = {.lex_state = 0}, - [1249] = {.lex_state = 0, .external_lex_state = 6}, + [1249] = {.lex_state = 0}, [1250] = {.lex_state = 0}, [1251] = {.lex_state = 0}, - [1252] = {.lex_state = 0}, + [1252] = {.lex_state = 14}, [1253] = {.lex_state = 0}, - [1254] = {.lex_state = 0}, - [1255] = {.lex_state = 0}, - [1256] = {.lex_state = 0}, + [1254] = {.lex_state = 8}, + [1255] = {.lex_state = 8}, + [1256] = {.lex_state = 0, .external_lex_state = 6}, [1257] = {.lex_state = 0}, - [1258] = {.lex_state = 0, .external_lex_state = 6}, + [1258] = {.lex_state = 0}, [1259] = {.lex_state = 0}, - [1260] = {.lex_state = 14}, + [1260] = {.lex_state = 0}, [1261] = {.lex_state = 0}, - [1262] = {.lex_state = 0}, + [1262] = {.lex_state = 0, .external_lex_state = 6}, [1263] = {.lex_state = 0}, [1264] = {.lex_state = 0}, [1265] = {.lex_state = 0}, [1266] = {.lex_state = 14}, - [1267] = {.lex_state = 14}, - [1268] = {.lex_state = 0}, + [1267] = {.lex_state = 0}, + [1268] = {.lex_state = 14}, [1269] = {.lex_state = 0}, - [1270] = {.lex_state = 0}, - [1271] = {.lex_state = 0}, - [1272] = {.lex_state = 0}, - [1273] = {.lex_state = 14}, + [1270] = {.lex_state = 14}, + [1271] = {.lex_state = 14}, + [1272] = {.lex_state = 14}, + [1273] = {.lex_state = 0}, [1274] = {.lex_state = 0}, [1275] = {.lex_state = 0}, [1276] = {.lex_state = 14}, - [1277] = {.lex_state = 0}, + [1277] = {.lex_state = 14}, [1278] = {.lex_state = 14}, [1279] = {.lex_state = 0}, [1280] = {.lex_state = 0}, - [1281] = {.lex_state = 14}, + [1281] = {.lex_state = 0}, [1282] = {.lex_state = 14}, - [1283] = {.lex_state = 8}, + [1283] = {.lex_state = 0}, [1284] = {.lex_state = 14}, - [1285] = {.lex_state = 0, .external_lex_state = 6}, + [1285] = {.lex_state = 0}, [1286] = {.lex_state = 0}, - [1287] = {.lex_state = 0}, - [1288] = {.lex_state = 0, .external_lex_state = 6}, + [1287] = {.lex_state = 14}, + [1288] = {.lex_state = 14}, [1289] = {.lex_state = 0, .external_lex_state = 6}, [1290] = {.lex_state = 0, .external_lex_state = 6}, [1291] = {.lex_state = 0}, - [1292] = {.lex_state = 0}, + [1292] = {.lex_state = 14}, [1293] = {.lex_state = 0}, - [1294] = {.lex_state = 14}, - [1295] = {.lex_state = 14}, - [1296] = {.lex_state = 14}, + [1294] = {.lex_state = 0}, + [1295] = {.lex_state = 0}, + [1296] = {.lex_state = 0}, [1297] = {.lex_state = 0}, - [1298] = {.lex_state = 0}, - [1299] = {.lex_state = 14}, + [1298] = {.lex_state = 14}, + [1299] = {.lex_state = 0, .external_lex_state = 6}, [1300] = {.lex_state = 0}, [1301] = {.lex_state = 0}, - [1302] = {.lex_state = 0, .external_lex_state = 6}, - [1303] = {.lex_state = 14}, + [1302] = {.lex_state = 0}, + [1303] = {.lex_state = 0}, [1304] = {.lex_state = 0}, - [1305] = {.lex_state = 14}, - [1306] = {.lex_state = 17}, - [1307] = {.lex_state = 0}, - [1308] = {.lex_state = 0, .external_lex_state = 6}, - [1309] = {.lex_state = 0, .external_lex_state = 6}, + [1305] = {.lex_state = 0}, + [1306] = {.lex_state = 0}, + [1307] = {.lex_state = 14}, + [1308] = {.lex_state = 0}, + [1309] = {.lex_state = 0}, [1310] = {.lex_state = 0}, [1311] = {.lex_state = 0, .external_lex_state = 6}, [1312] = {.lex_state = 0}, - [1313] = {.lex_state = 16}, - [1314] = {.lex_state = 0}, + [1313] = {.lex_state = 0}, + [1314] = {.lex_state = 0, .external_lex_state = 6}, [1315] = {.lex_state = 0, .external_lex_state = 6}, - [1316] = {.lex_state = 0}, - [1317] = {.lex_state = 0, .external_lex_state = 6}, - [1318] = {.lex_state = 0, .external_lex_state = 6}, + [1316] = {.lex_state = 0, .external_lex_state = 6}, + [1317] = {.lex_state = 0}, + [1318] = {.lex_state = 0}, [1319] = {.lex_state = 0}, - [1320] = {.lex_state = 0}, + [1320] = {.lex_state = 17}, [1321] = {.lex_state = 0}, [1322] = {.lex_state = 0}, [1323] = {.lex_state = 0}, - [1324] = {.lex_state = 0, .external_lex_state = 6}, - [1325] = {.lex_state = 14}, + [1324] = {.lex_state = 0}, + [1325] = {.lex_state = 0}, [1326] = {.lex_state = 0}, [1327] = {.lex_state = 0}, [1328] = {.lex_state = 0}, - [1329] = {.lex_state = 0}, + [1329] = {.lex_state = 0, .external_lex_state = 6}, [1330] = {.lex_state = 0, .external_lex_state = 6}, - [1331] = {.lex_state = 0, .external_lex_state = 6}, - [1332] = {.lex_state = 0, .external_lex_state = 6}, - [1333] = {.lex_state = 0, .external_lex_state = 6}, + [1331] = {.lex_state = 14}, + [1332] = {.lex_state = 0}, + [1333] = {.lex_state = 0}, [1334] = {.lex_state = 17}, - [1335] = {.lex_state = 0}, - [1336] = {.lex_state = 0, .external_lex_state = 6}, + [1335] = {.lex_state = 0, .external_lex_state = 6}, + [1336] = {.lex_state = 0}, [1337] = {.lex_state = 0}, - [1338] = {.lex_state = 0}, + [1338] = {.lex_state = 0, .external_lex_state = 6}, [1339] = {.lex_state = 0}, [1340] = {.lex_state = 0, .external_lex_state = 6}, - [1341] = {.lex_state = 0}, - [1342] = {.lex_state = 17}, - [1343] = {.lex_state = 0}, - [1344] = {.lex_state = 0, .external_lex_state = 6}, - [1345] = {.lex_state = 0}, - [1346] = {.lex_state = 0, .external_lex_state = 6}, - [1347] = {.lex_state = 0}, - [1348] = {.lex_state = 0}, + [1341] = {.lex_state = 16}, + [1342] = {.lex_state = 0}, + [1343] = {.lex_state = 0, .external_lex_state = 6}, + [1344] = {.lex_state = 0}, + [1345] = {.lex_state = 14}, + [1346] = {.lex_state = 14}, + [1347] = {.lex_state = 17}, + [1348] = {.lex_state = 17}, [1349] = {.lex_state = 17}, [1350] = {.lex_state = 17}, - [1351] = {.lex_state = 17}, - [1352] = {.lex_state = 0}, - [1353] = {.lex_state = 0}, - [1354] = {.lex_state = 17}, - [1355] = {.lex_state = 0}, - [1356] = {.lex_state = 17}, + [1351] = {.lex_state = 0}, + [1352] = {.lex_state = 0, .external_lex_state = 6}, + [1353] = {.lex_state = 17}, + [1354] = {.lex_state = 14}, + [1355] = {.lex_state = 17}, + [1356] = {.lex_state = 0, .external_lex_state = 6}, [1357] = {.lex_state = 0, .external_lex_state = 6}, - [1358] = {.lex_state = 0, .external_lex_state = 6}, - [1359] = {.lex_state = 0}, + [1358] = {.lex_state = 0}, + [1359] = {.lex_state = 17}, [1360] = {.lex_state = 0}, [1361] = {.lex_state = 0}, [1362] = {.lex_state = 0}, - [1363] = {.lex_state = 0}, + [1363] = {.lex_state = 17}, [1364] = {.lex_state = 0}, - [1365] = {.lex_state = 0}, + [1365] = {.lex_state = 0, .external_lex_state = 6}, [1366] = {.lex_state = 0}, - [1367] = {.lex_state = 17}, + [1367] = {.lex_state = 0}, [1368] = {.lex_state = 0}, - [1369] = {.lex_state = 0}, + [1369] = {.lex_state = 0, .external_lex_state = 6}, [1370] = {.lex_state = 0}, [1371] = {.lex_state = 0}, [1372] = {.lex_state = 0}, [1373] = {.lex_state = 0}, [1374] = {.lex_state = 0}, - [1375] = {.lex_state = 0, .external_lex_state = 6}, - [1376] = {.lex_state = 17}, - [1377] = {.lex_state = 14}, - [1378] = {.lex_state = 14}, - [1379] = {.lex_state = 0}, - [1380] = {.lex_state = 0}, - [1381] = {.lex_state = 0}, + [1375] = {.lex_state = 0}, + [1376] = {.lex_state = 0}, + [1377] = {.lex_state = 0, .external_lex_state = 6}, + [1378] = {.lex_state = 0}, + [1379] = {.lex_state = 14}, + [1380] = {.lex_state = 0, .external_lex_state = 6}, + [1381] = {.lex_state = 0, .external_lex_state = 6}, [1382] = {.lex_state = 0}, - [1383] = {.lex_state = 14}, + [1383] = {.lex_state = 0}, [1384] = {.lex_state = 0}, - [1385] = {.lex_state = 0}, + [1385] = {.lex_state = 14}, [1386] = {.lex_state = 0}, [1387] = {.lex_state = 0}, [1388] = {.lex_state = 0}, @@ -7516,9 +7530,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1392] = {.lex_state = 0}, [1393] = {.lex_state = 0}, [1394] = {.lex_state = 0}, - [1395] = {.lex_state = 0}, + [1395] = {.lex_state = 14}, [1396] = {.lex_state = 0}, - [1397] = {.lex_state = 0}, + [1397] = {.lex_state = 14}, [1398] = {.lex_state = 0}, [1399] = {.lex_state = 0}, [1400] = {.lex_state = 0}, @@ -7527,80 +7541,80 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1403] = {.lex_state = 0}, [1404] = {.lex_state = 0}, [1405] = {.lex_state = 0}, - [1406] = {.lex_state = 0}, + [1406] = {.lex_state = 14}, [1407] = {.lex_state = 0}, [1408] = {.lex_state = 0}, [1409] = {.lex_state = 0}, [1410] = {.lex_state = 0}, [1411] = {.lex_state = 0}, - [1412] = {.lex_state = 14}, + [1412] = {.lex_state = 0}, [1413] = {.lex_state = 14}, [1414] = {.lex_state = 0}, - [1415] = {.lex_state = 0}, + [1415] = {.lex_state = 14}, [1416] = {.lex_state = 0}, - [1417] = {.lex_state = 14}, + [1417] = {.lex_state = 0}, [1418] = {.lex_state = 0}, [1419] = {.lex_state = 0}, [1420] = {.lex_state = 0}, [1421] = {.lex_state = 0}, [1422] = {.lex_state = 0}, - [1423] = {.lex_state = 0}, - [1424] = {.lex_state = 14}, - [1425] = {.lex_state = 0}, - [1426] = {.lex_state = 14}, - [1427] = {.lex_state = 14}, + [1423] = {.lex_state = 14}, + [1424] = {.lex_state = 0}, + [1425] = {.lex_state = 14}, + [1426] = {.lex_state = 0}, + [1427] = {.lex_state = 0}, [1428] = {.lex_state = 0}, [1429] = {.lex_state = 0}, [1430] = {.lex_state = 14}, [1431] = {.lex_state = 14}, - [1432] = {.lex_state = 0}, + [1432] = {.lex_state = 14}, [1433] = {.lex_state = 14}, - [1434] = {.lex_state = 14}, + [1434] = {.lex_state = 0}, [1435] = {.lex_state = 14}, [1436] = {.lex_state = 0}, [1437] = {.lex_state = 14}, - [1438] = {.lex_state = 14}, - [1439] = {.lex_state = 0}, - [1440] = {.lex_state = 0}, - [1441] = {.lex_state = 14}, - [1442] = {.lex_state = 14}, - [1443] = {.lex_state = 14}, - [1444] = {.lex_state = 0}, - [1445] = {.lex_state = 14}, + [1438] = {.lex_state = 0}, + [1439] = {.lex_state = 14}, + [1440] = {.lex_state = 14}, + [1441] = {.lex_state = 0}, + [1442] = {.lex_state = 0}, + [1443] = {.lex_state = 0}, + [1444] = {.lex_state = 14}, + [1445] = {.lex_state = 0}, [1446] = {.lex_state = 14}, - [1447] = {.lex_state = 14}, - [1448] = {.lex_state = 0}, + [1447] = {.lex_state = 0}, + [1448] = {.lex_state = 14}, [1449] = {.lex_state = 14}, - [1450] = {.lex_state = 0}, - [1451] = {.lex_state = 0}, + [1450] = {.lex_state = 14}, + [1451] = {.lex_state = 14}, [1452] = {.lex_state = 14}, [1453] = {.lex_state = 14}, - [1454] = {.lex_state = 14}, + [1454] = {.lex_state = 0}, [1455] = {.lex_state = 0}, - [1456] = {.lex_state = 14}, - [1457] = {.lex_state = 14}, - [1458] = {.lex_state = 14}, - [1459] = {.lex_state = 0}, - [1460] = {.lex_state = 14}, + [1456] = {.lex_state = 0}, + [1457] = {.lex_state = 0}, + [1458] = {.lex_state = 0}, + [1459] = {.lex_state = 14}, + [1460] = {.lex_state = 0}, [1461] = {.lex_state = 14}, [1462] = {.lex_state = 0}, [1463] = {.lex_state = 0}, - [1464] = {.lex_state = 0}, - [1465] = {.lex_state = 0}, - [1466] = {.lex_state = 0}, + [1464] = {.lex_state = 14}, + [1465] = {.lex_state = 14}, + [1466] = {.lex_state = 14}, [1467] = {.lex_state = 0}, [1468] = {.lex_state = 0}, [1469] = {.lex_state = 0}, - [1470] = {.lex_state = 14}, + [1470] = {.lex_state = 0}, [1471] = {.lex_state = 14}, - [1472] = {.lex_state = 0}, + [1472] = {.lex_state = 14}, [1473] = {.lex_state = 0}, - [1474] = {.lex_state = 0}, - [1475] = {.lex_state = 14}, - [1476] = {.lex_state = 14}, + [1474] = {.lex_state = 14}, + [1475] = {.lex_state = 0}, + [1476] = {.lex_state = 0}, [1477] = {.lex_state = 0}, - [1478] = {.lex_state = 0}, - [1479] = {.lex_state = 0}, + [1478] = {.lex_state = 14}, + [1479] = {.lex_state = 14}, [1480] = {.lex_state = 0}, [1481] = {.lex_state = 0}, [1482] = {.lex_state = 0}, @@ -7609,20 +7623,28 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1485] = {.lex_state = 0}, [1486] = {.lex_state = 0}, [1487] = {.lex_state = 0}, - [1488] = {.lex_state = 14}, + [1488] = {.lex_state = 0}, [1489] = {.lex_state = 0}, - [1490] = {.lex_state = 0}, + [1490] = {.lex_state = 14}, [1491] = {.lex_state = 0}, [1492] = {.lex_state = 0}, [1493] = {.lex_state = 0}, [1494] = {.lex_state = 0}, [1495] = {.lex_state = 0}, - [1496] = {.lex_state = 0}, + [1496] = {.lex_state = 14}, [1497] = {.lex_state = 0}, - [1498] = {.lex_state = 14}, + [1498] = {.lex_state = 0}, [1499] = {.lex_state = 0}, - [1500] = {.lex_state = 14}, - [1501] = {.lex_state = 14}, + [1500] = {.lex_state = 0}, + [1501] = {.lex_state = 0}, + [1502] = {.lex_state = 0}, + [1503] = {.lex_state = 14}, + [1504] = {.lex_state = 0}, + [1505] = {.lex_state = 0}, + [1506] = {.lex_state = 14}, + [1507] = {.lex_state = 0}, + [1508] = {.lex_state = 14}, + [1509] = {.lex_state = 0}, }; enum { @@ -7683,10 +7705,10 @@ static const bool ts_external_scanner_states[12][EXTERNAL_TOKEN_COUNT] = { [ts_external_token__string_start] = true, }, [8] = { - [ts_external_token__template_string_start] = true, + [ts_external_token__string_start] = true, }, [9] = { - [ts_external_token__string_start] = true, + [ts_external_token__template_string_start] = true, }, [10] = { [ts_external_token__newline] = true, @@ -7806,75 +7828,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(1), }, [1] = { - [sym_module] = STATE(1480), - [sym__statement] = STATE(60), - [sym__simple_statements] = STATE(60), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_if_statement] = STATE(60), - [sym_for_statement] = STATE(60), - [sym_while_statement] = STATE(60), - [sym_try_statement] = STATE(60), - [sym_with_statement] = STATE(60), - [sym_match_statement] = STATE(60), - [sym_function_definition] = STATE(60), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_class_definition] = STATE(60), - [sym_decorated_definition] = STATE(60), - [sym_decorator] = STATE(970), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_module] = STATE(1488), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(960), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(60), - [aux_sym_decorated_definition_repeat1] = STATE(970), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(960), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), @@ -7924,75 +7946,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [2] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(468), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(535), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8042,75 +8064,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [3] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(491), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(517), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8160,75 +8182,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [4] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(535), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(407), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8278,75 +8300,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [5] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(510), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(392), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8396,75 +8418,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [6] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(505), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(403), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8514,75 +8536,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [7] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(462), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(485), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8627,80 +8649,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [8] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(424), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(291), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8745,80 +8767,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [9] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(400), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(427), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8870,19 +8892,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [10] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -8890,53 +8912,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(450), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(304), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -8981,26 +9003,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [11] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -9008,53 +9030,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(565), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(516), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9099,80 +9121,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [12] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(444), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(435), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9222,75 +9244,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [13] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(504), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(497), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9340,75 +9362,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [14] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(488), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(450), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9453,80 +9475,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [15] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(391), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(528), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9571,80 +9593,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [16] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(434), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(398), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9689,80 +9711,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [17] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(419), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(562), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9812,75 +9834,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [18] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(399), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(544), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -9930,75 +9952,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [19] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(307), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(444), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10048,75 +10070,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [20] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(413), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(514), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10166,75 +10188,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [21] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(465), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(462), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10286,19 +10308,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [22] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -10306,53 +10328,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(522), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(406), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10397,26 +10419,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [23] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -10424,53 +10446,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(446), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(503), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10515,80 +10537,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [24] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(417), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(543), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10638,75 +10660,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [25] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(519), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(961), + [sym_block] = STATE(998), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10751,80 +10773,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(107), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [26] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(406), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(419), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -10874,193 +10896,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [27] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(457), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(519), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [28] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(554), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), - [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -11109,76 +11013,194 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [29] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(523), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [28] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(512), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), + [sym_identifier] = ACTIONS(7), + [anon_sym_import] = ACTIONS(9), + [anon_sym_from] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_print] = ACTIONS(17), + [anon_sym_assert] = ACTIONS(19), + [anon_sym_return] = ACTIONS(21), + [anon_sym_del] = ACTIONS(23), + [anon_sym_raise] = ACTIONS(25), + [anon_sym_pass] = ACTIONS(27), + [anon_sym_break] = ACTIONS(29), + [anon_sym_continue] = ACTIONS(31), + [anon_sym_if] = ACTIONS(85), + [anon_sym_async] = ACTIONS(87), + [anon_sym_for] = ACTIONS(89), + [anon_sym_while] = ACTIONS(91), + [anon_sym_try] = ACTIONS(93), + [anon_sym_with] = ACTIONS(95), + [anon_sym_match] = ACTIONS(97), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_LBRACK] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_STAR_STAR] = ACTIONS(53), + [anon_sym_def] = ACTIONS(99), + [anon_sym_global] = ACTIONS(57), + [anon_sym_nonlocal] = ACTIONS(59), + [anon_sym_exec] = ACTIONS(61), + [anon_sym_type] = ACTIONS(63), + [anon_sym_class] = ACTIONS(101), + [anon_sym_AT] = ACTIONS(67), + [anon_sym_not] = ACTIONS(69), + [anon_sym_TILDE] = ACTIONS(47), + [anon_sym_lambda] = ACTIONS(71), + [anon_sym_yield] = ACTIONS(73), + [sym_ellipsis] = ACTIONS(75), + [sym_integer] = ACTIONS(77), + [sym_float] = ACTIONS(75), + [anon_sym_await] = ACTIONS(79), + [sym_true] = ACTIONS(77), + [sym_false] = ACTIONS(77), + [sym_none] = ACTIONS(77), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(81), + [sym__template_string_start] = ACTIONS(83), + }, + [29] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(460), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), + [sym_string] = STATE(698), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -11228,75 +11250,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [30] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(551), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(454), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -11346,75 +11368,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [31] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(467), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(565), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -11459,80 +11481,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [32] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(392), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(496), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -11582,193 +11604,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [33] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(297), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(395), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [34] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(527), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), - [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -11817,76 +11721,76 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [35] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(985), - [sym_block] = STATE(1004), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [34] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(402), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -11931,80 +11835,198 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(81), + [sym__template_string_start] = ACTIONS(83), + }, + [35] = { + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(546), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), + [sym_string] = STATE(698), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), + [sym_identifier] = ACTIONS(7), + [anon_sym_import] = ACTIONS(9), + [anon_sym_from] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_print] = ACTIONS(17), + [anon_sym_assert] = ACTIONS(19), + [anon_sym_return] = ACTIONS(21), + [anon_sym_del] = ACTIONS(23), + [anon_sym_raise] = ACTIONS(25), + [anon_sym_pass] = ACTIONS(27), + [anon_sym_break] = ACTIONS(29), + [anon_sym_continue] = ACTIONS(31), + [anon_sym_if] = ACTIONS(85), + [anon_sym_async] = ACTIONS(87), + [anon_sym_for] = ACTIONS(89), + [anon_sym_while] = ACTIONS(91), + [anon_sym_try] = ACTIONS(93), + [anon_sym_with] = ACTIONS(95), + [anon_sym_match] = ACTIONS(97), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_LBRACK] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_STAR_STAR] = ACTIONS(53), + [anon_sym_def] = ACTIONS(99), + [anon_sym_global] = ACTIONS(57), + [anon_sym_nonlocal] = ACTIONS(59), + [anon_sym_exec] = ACTIONS(61), + [anon_sym_type] = ACTIONS(63), + [anon_sym_class] = ACTIONS(101), + [anon_sym_AT] = ACTIONS(67), + [anon_sym_not] = ACTIONS(69), + [anon_sym_TILDE] = ACTIONS(47), + [anon_sym_lambda] = ACTIONS(71), + [anon_sym_yield] = ACTIONS(73), + [sym_ellipsis] = ACTIONS(75), + [sym_integer] = ACTIONS(77), + [sym_float] = ACTIONS(75), + [anon_sym_await] = ACTIONS(79), + [sym_true] = ACTIONS(77), + [sym_false] = ACTIONS(77), + [sym_none] = ACTIONS(77), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [36] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(487), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(470), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12054,75 +12076,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [37] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(481), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(556), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12174,19 +12196,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [38] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -12194,53 +12216,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(541), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(538), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12285,80 +12307,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [39] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(469), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(494), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12408,75 +12430,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [40] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(482), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(436), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12526,75 +12548,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [41] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(420), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(432), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12644,75 +12666,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [42] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(430), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(466), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12762,75 +12784,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [43] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(436), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(457), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12882,19 +12904,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [44] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -12902,53 +12924,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(394), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(474), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -12993,80 +13015,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [45] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(484), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(492), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13118,19 +13140,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [46] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -13138,53 +13160,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(532), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(475), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13229,80 +13251,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [47] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(478), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(490), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13352,75 +13374,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [48] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(486), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(488), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13470,75 +13492,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [49] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(402), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(400), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13588,75 +13610,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [50] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(516), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(554), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13706,75 +13728,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [51] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(408), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(540), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13824,75 +13846,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [52] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(460), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(506), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -13942,75 +13964,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [53] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(985), - [sym_block] = STATE(1026), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(480), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14055,80 +14077,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [54] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(474), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(426), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14180,19 +14202,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [55] = { [sym__statement] = STATE(63), [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), [sym_if_statement] = STATE(63), [sym_for_statement] = STATE(63), [sym_while_statement] = STATE(63), @@ -14200,53 +14222,53 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(63), [sym_match_statement] = STATE(63), [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), [sym_class_definition] = STATE(63), [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(405), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_decorator] = STATE(961), + [sym_block] = STATE(421), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14291,80 +14313,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), + [sym__dedent] = ACTIONS(105), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [56] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(513), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(961), + [sym_block] = STATE(408), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14414,75 +14436,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [57] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(538), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(405), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14527,80 +14549,80 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(103), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [58] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(985), - [sym_block] = STATE(471), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(961), + [sym_block] = STATE(534), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14650,75 +14672,75 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [59] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(985), - [sym_block] = STATE(543), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(961), + [sym_block] = STATE(1011), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(985), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(961), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14763,80 +14785,548 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), + [sym__dedent] = ACTIONS(107), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [60] = { - [sym__statement] = STATE(62), - [sym__simple_statements] = STATE(62), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_if_statement] = STATE(62), - [sym_for_statement] = STATE(62), - [sym_while_statement] = STATE(62), - [sym_try_statement] = STATE(62), - [sym_with_statement] = STATE(62), - [sym_match_statement] = STATE(62), - [sym_function_definition] = STATE(62), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_class_definition] = STATE(62), - [sym_decorated_definition] = STATE(62), - [sym_decorator] = STATE(970), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(961), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(62), - [aux_sym_decorated_definition_repeat1] = STATE(970), - [ts_builtin_sym_end] = ACTIONS(109), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(961), + [sym_identifier] = ACTIONS(109), + [anon_sym_import] = ACTIONS(112), + [anon_sym_from] = ACTIONS(115), + [anon_sym_LPAREN] = ACTIONS(118), + [anon_sym_STAR] = ACTIONS(121), + [anon_sym_print] = ACTIONS(124), + [anon_sym_assert] = ACTIONS(127), + [anon_sym_return] = ACTIONS(130), + [anon_sym_del] = ACTIONS(133), + [anon_sym_raise] = ACTIONS(136), + [anon_sym_pass] = ACTIONS(139), + [anon_sym_break] = ACTIONS(142), + [anon_sym_continue] = ACTIONS(145), + [anon_sym_if] = ACTIONS(148), + [anon_sym_async] = ACTIONS(151), + [anon_sym_for] = ACTIONS(154), + [anon_sym_while] = ACTIONS(157), + [anon_sym_try] = ACTIONS(160), + [anon_sym_with] = ACTIONS(163), + [anon_sym_match] = ACTIONS(166), + [anon_sym_DASH] = ACTIONS(169), + [anon_sym_PLUS] = ACTIONS(169), + [anon_sym_LBRACK] = ACTIONS(172), + [anon_sym_LBRACE] = ACTIONS(175), + [anon_sym_STAR_STAR] = ACTIONS(178), + [anon_sym_def] = ACTIONS(181), + [anon_sym_global] = ACTIONS(184), + [anon_sym_nonlocal] = ACTIONS(187), + [anon_sym_exec] = ACTIONS(190), + [anon_sym_type] = ACTIONS(193), + [anon_sym_class] = ACTIONS(196), + [anon_sym_AT] = ACTIONS(199), + [anon_sym_not] = ACTIONS(202), + [anon_sym_TILDE] = ACTIONS(169), + [anon_sym_lambda] = ACTIONS(205), + [anon_sym_yield] = ACTIONS(208), + [sym_ellipsis] = ACTIONS(211), + [sym_integer] = ACTIONS(214), + [sym_float] = ACTIONS(211), + [anon_sym_await] = ACTIONS(217), + [sym_true] = ACTIONS(214), + [sym_false] = ACTIONS(214), + [sym_none] = ACTIONS(214), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(220), + [sym__string_start] = ACTIONS(222), + [sym__template_string_start] = ACTIONS(225), + }, + [61] = { + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(961), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), + [sym_string] = STATE(698), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(961), + [sym_identifier] = ACTIONS(7), + [anon_sym_import] = ACTIONS(9), + [anon_sym_from] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_print] = ACTIONS(17), + [anon_sym_assert] = ACTIONS(19), + [anon_sym_return] = ACTIONS(21), + [anon_sym_del] = ACTIONS(23), + [anon_sym_raise] = ACTIONS(25), + [anon_sym_pass] = ACTIONS(27), + [anon_sym_break] = ACTIONS(29), + [anon_sym_continue] = ACTIONS(31), + [anon_sym_if] = ACTIONS(85), + [anon_sym_async] = ACTIONS(87), + [anon_sym_for] = ACTIONS(89), + [anon_sym_while] = ACTIONS(91), + [anon_sym_try] = ACTIONS(93), + [anon_sym_with] = ACTIONS(95), + [anon_sym_match] = ACTIONS(97), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_LBRACK] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_STAR_STAR] = ACTIONS(53), + [anon_sym_def] = ACTIONS(99), + [anon_sym_global] = ACTIONS(57), + [anon_sym_nonlocal] = ACTIONS(59), + [anon_sym_exec] = ACTIONS(61), + [anon_sym_type] = ACTIONS(63), + [anon_sym_class] = ACTIONS(101), + [anon_sym_AT] = ACTIONS(67), + [anon_sym_not] = ACTIONS(69), + [anon_sym_TILDE] = ACTIONS(47), + [anon_sym_lambda] = ACTIONS(71), + [anon_sym_yield] = ACTIONS(73), + [sym_ellipsis] = ACTIONS(75), + [sym_integer] = ACTIONS(77), + [sym_float] = ACTIONS(75), + [anon_sym_await] = ACTIONS(79), + [sym_true] = ACTIONS(77), + [sym_false] = ACTIONS(77), + [sym_none] = ACTIONS(77), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(228), + [sym__string_start] = ACTIONS(81), + [sym__template_string_start] = ACTIONS(83), + }, + [62] = { + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(961), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), + [sym_string] = STATE(698), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(961), + [sym_identifier] = ACTIONS(7), + [anon_sym_import] = ACTIONS(9), + [anon_sym_from] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_print] = ACTIONS(17), + [anon_sym_assert] = ACTIONS(19), + [anon_sym_return] = ACTIONS(21), + [anon_sym_del] = ACTIONS(23), + [anon_sym_raise] = ACTIONS(25), + [anon_sym_pass] = ACTIONS(27), + [anon_sym_break] = ACTIONS(29), + [anon_sym_continue] = ACTIONS(31), + [anon_sym_if] = ACTIONS(85), + [anon_sym_async] = ACTIONS(87), + [anon_sym_for] = ACTIONS(89), + [anon_sym_while] = ACTIONS(91), + [anon_sym_try] = ACTIONS(93), + [anon_sym_with] = ACTIONS(95), + [anon_sym_match] = ACTIONS(97), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_LBRACK] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_STAR_STAR] = ACTIONS(53), + [anon_sym_def] = ACTIONS(99), + [anon_sym_global] = ACTIONS(57), + [anon_sym_nonlocal] = ACTIONS(59), + [anon_sym_exec] = ACTIONS(61), + [anon_sym_type] = ACTIONS(63), + [anon_sym_class] = ACTIONS(101), + [anon_sym_AT] = ACTIONS(67), + [anon_sym_not] = ACTIONS(69), + [anon_sym_TILDE] = ACTIONS(47), + [anon_sym_lambda] = ACTIONS(71), + [anon_sym_yield] = ACTIONS(73), + [sym_ellipsis] = ACTIONS(75), + [sym_integer] = ACTIONS(77), + [sym_float] = ACTIONS(75), + [anon_sym_await] = ACTIONS(79), + [sym_true] = ACTIONS(77), + [sym_false] = ACTIONS(77), + [sym_none] = ACTIONS(77), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(230), + [sym__string_start] = ACTIONS(81), + [sym__template_string_start] = ACTIONS(83), + }, + [63] = { + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(961), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), + [sym_string] = STATE(698), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(961), + [sym_identifier] = ACTIONS(7), + [anon_sym_import] = ACTIONS(9), + [anon_sym_from] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_print] = ACTIONS(17), + [anon_sym_assert] = ACTIONS(19), + [anon_sym_return] = ACTIONS(21), + [anon_sym_del] = ACTIONS(23), + [anon_sym_raise] = ACTIONS(25), + [anon_sym_pass] = ACTIONS(27), + [anon_sym_break] = ACTIONS(29), + [anon_sym_continue] = ACTIONS(31), + [anon_sym_if] = ACTIONS(85), + [anon_sym_async] = ACTIONS(87), + [anon_sym_for] = ACTIONS(89), + [anon_sym_while] = ACTIONS(91), + [anon_sym_try] = ACTIONS(93), + [anon_sym_with] = ACTIONS(95), + [anon_sym_match] = ACTIONS(97), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_LBRACK] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_STAR_STAR] = ACTIONS(53), + [anon_sym_def] = ACTIONS(99), + [anon_sym_global] = ACTIONS(57), + [anon_sym_nonlocal] = ACTIONS(59), + [anon_sym_exec] = ACTIONS(61), + [anon_sym_type] = ACTIONS(63), + [anon_sym_class] = ACTIONS(101), + [anon_sym_AT] = ACTIONS(67), + [anon_sym_not] = ACTIONS(69), + [anon_sym_TILDE] = ACTIONS(47), + [anon_sym_lambda] = ACTIONS(71), + [anon_sym_yield] = ACTIONS(73), + [sym_ellipsis] = ACTIONS(75), + [sym_integer] = ACTIONS(77), + [sym_float] = ACTIONS(75), + [anon_sym_await] = ACTIONS(79), + [sym_true] = ACTIONS(77), + [sym_false] = ACTIONS(77), + [sym_none] = ACTIONS(77), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(232), + [sym__string_start] = ACTIONS(81), + [sym__template_string_start] = ACTIONS(83), + }, + [64] = { + [sym__statement] = STATE(65), + [sym__simple_statements] = STATE(65), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_if_statement] = STATE(65), + [sym_for_statement] = STATE(65), + [sym_while_statement] = STATE(65), + [sym_try_statement] = STATE(65), + [sym_with_statement] = STATE(65), + [sym_match_statement] = STATE(65), + [sym_function_definition] = STATE(65), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_class_definition] = STATE(65), + [sym_decorated_definition] = STATE(65), + [sym_decorator] = STATE(960), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), + [sym_string] = STATE(698), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(65), + [aux_sym_decorated_definition_repeat1] = STATE(960), + [ts_builtin_sym_end] = ACTIONS(234), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -14884,622 +15374,154 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [61] = { - [sym__statement] = STATE(61), - [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(61), - [sym_for_statement] = STATE(61), - [sym_while_statement] = STATE(61), - [sym_try_statement] = STATE(61), - [sym_with_statement] = STATE(61), - [sym_match_statement] = STATE(61), - [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(61), - [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(985), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), - [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(985), - [sym_identifier] = ACTIONS(111), - [anon_sym_import] = ACTIONS(114), - [anon_sym_from] = ACTIONS(117), - [anon_sym_LPAREN] = ACTIONS(120), - [anon_sym_STAR] = ACTIONS(123), - [anon_sym_print] = ACTIONS(126), - [anon_sym_assert] = ACTIONS(129), - [anon_sym_return] = ACTIONS(132), - [anon_sym_del] = ACTIONS(135), - [anon_sym_raise] = ACTIONS(138), - [anon_sym_pass] = ACTIONS(141), - [anon_sym_break] = ACTIONS(144), - [anon_sym_continue] = ACTIONS(147), - [anon_sym_if] = ACTIONS(150), - [anon_sym_async] = ACTIONS(153), - [anon_sym_for] = ACTIONS(156), - [anon_sym_while] = ACTIONS(159), - [anon_sym_try] = ACTIONS(162), - [anon_sym_with] = ACTIONS(165), - [anon_sym_match] = ACTIONS(168), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_LBRACK] = ACTIONS(174), - [anon_sym_LBRACE] = ACTIONS(177), - [anon_sym_STAR_STAR] = ACTIONS(180), - [anon_sym_def] = ACTIONS(183), - [anon_sym_global] = ACTIONS(186), - [anon_sym_nonlocal] = ACTIONS(189), - [anon_sym_exec] = ACTIONS(192), - [anon_sym_type] = ACTIONS(195), - [anon_sym_class] = ACTIONS(198), - [anon_sym_AT] = ACTIONS(201), - [anon_sym_not] = ACTIONS(204), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_lambda] = ACTIONS(207), - [anon_sym_yield] = ACTIONS(210), - [sym_ellipsis] = ACTIONS(213), - [sym_integer] = ACTIONS(216), - [sym_float] = ACTIONS(213), - [anon_sym_await] = ACTIONS(219), - [sym_true] = ACTIONS(216), - [sym_false] = ACTIONS(216), - [sym_none] = ACTIONS(216), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(222), - [sym__string_start] = ACTIONS(224), - [sym__template_string_start] = ACTIONS(227), - }, - [62] = { - [sym__statement] = STATE(62), - [sym__simple_statements] = STATE(62), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_if_statement] = STATE(62), - [sym_for_statement] = STATE(62), - [sym_while_statement] = STATE(62), - [sym_try_statement] = STATE(62), - [sym_with_statement] = STATE(62), - [sym_match_statement] = STATE(62), - [sym_function_definition] = STATE(62), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_class_definition] = STATE(62), - [sym_decorated_definition] = STATE(62), - [sym_decorator] = STATE(970), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), - [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(62), - [aux_sym_decorated_definition_repeat1] = STATE(970), - [ts_builtin_sym_end] = ACTIONS(222), - [sym_identifier] = ACTIONS(111), - [anon_sym_import] = ACTIONS(114), - [anon_sym_from] = ACTIONS(117), - [anon_sym_LPAREN] = ACTIONS(120), - [anon_sym_STAR] = ACTIONS(123), - [anon_sym_print] = ACTIONS(126), - [anon_sym_assert] = ACTIONS(129), - [anon_sym_return] = ACTIONS(132), - [anon_sym_del] = ACTIONS(135), - [anon_sym_raise] = ACTIONS(138), - [anon_sym_pass] = ACTIONS(141), - [anon_sym_break] = ACTIONS(144), - [anon_sym_continue] = ACTIONS(147), - [anon_sym_if] = ACTIONS(230), - [anon_sym_async] = ACTIONS(233), - [anon_sym_for] = ACTIONS(236), - [anon_sym_while] = ACTIONS(239), - [anon_sym_try] = ACTIONS(242), - [anon_sym_with] = ACTIONS(245), - [anon_sym_match] = ACTIONS(248), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_LBRACK] = ACTIONS(174), - [anon_sym_LBRACE] = ACTIONS(177), - [anon_sym_STAR_STAR] = ACTIONS(180), - [anon_sym_def] = ACTIONS(251), - [anon_sym_global] = ACTIONS(186), - [anon_sym_nonlocal] = ACTIONS(189), - [anon_sym_exec] = ACTIONS(192), - [anon_sym_type] = ACTIONS(195), - [anon_sym_class] = ACTIONS(254), - [anon_sym_AT] = ACTIONS(201), - [anon_sym_not] = ACTIONS(204), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_lambda] = ACTIONS(207), - [anon_sym_yield] = ACTIONS(210), - [sym_ellipsis] = ACTIONS(213), - [sym_integer] = ACTIONS(216), - [sym_float] = ACTIONS(213), - [anon_sym_await] = ACTIONS(219), - [sym_true] = ACTIONS(216), - [sym_false] = ACTIONS(216), - [sym_none] = ACTIONS(216), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(224), - [sym__template_string_start] = ACTIONS(227), - }, - [63] = { - [sym__statement] = STATE(61), - [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(61), - [sym_for_statement] = STATE(61), - [sym_while_statement] = STATE(61), - [sym_try_statement] = STATE(61), - [sym_with_statement] = STATE(61), - [sym_match_statement] = STATE(61), - [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(61), - [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(985), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), - [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(985), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(257), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [64] = { - [sym__statement] = STATE(61), - [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(61), - [sym_for_statement] = STATE(61), - [sym_while_statement] = STATE(61), - [sym_try_statement] = STATE(61), - [sym_with_statement] = STATE(61), - [sym_match_statement] = STATE(61), - [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(61), - [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(985), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), - [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(985), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(259), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, [65] = { - [sym__statement] = STATE(61), - [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_if_statement] = STATE(61), - [sym_for_statement] = STATE(61), - [sym_while_statement] = STATE(61), - [sym_try_statement] = STATE(61), - [sym_with_statement] = STATE(61), - [sym_match_statement] = STATE(61), - [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_class_definition] = STATE(61), - [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(985), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__statement] = STATE(65), + [sym__simple_statements] = STATE(65), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_if_statement] = STATE(65), + [sym_for_statement] = STATE(65), + [sym_while_statement] = STATE(65), + [sym_try_statement] = STATE(65), + [sym_with_statement] = STATE(65), + [sym_match_statement] = STATE(65), + [sym_function_definition] = STATE(65), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_class_definition] = STATE(65), + [sym_decorated_definition] = STATE(65), + [sym_decorator] = STATE(960), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(985), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [aux_sym_module_repeat1] = STATE(65), + [aux_sym_decorated_definition_repeat1] = STATE(960), + [ts_builtin_sym_end] = ACTIONS(220), + [sym_identifier] = ACTIONS(109), + [anon_sym_import] = ACTIONS(112), + [anon_sym_from] = ACTIONS(115), + [anon_sym_LPAREN] = ACTIONS(118), + [anon_sym_STAR] = ACTIONS(121), + [anon_sym_print] = ACTIONS(124), + [anon_sym_assert] = ACTIONS(127), + [anon_sym_return] = ACTIONS(130), + [anon_sym_del] = ACTIONS(133), + [anon_sym_raise] = ACTIONS(136), + [anon_sym_pass] = ACTIONS(139), + [anon_sym_break] = ACTIONS(142), + [anon_sym_continue] = ACTIONS(145), + [anon_sym_if] = ACTIONS(236), + [anon_sym_async] = ACTIONS(239), + [anon_sym_for] = ACTIONS(242), + [anon_sym_while] = ACTIONS(245), + [anon_sym_try] = ACTIONS(248), + [anon_sym_with] = ACTIONS(251), + [anon_sym_match] = ACTIONS(254), + [anon_sym_DASH] = ACTIONS(169), + [anon_sym_PLUS] = ACTIONS(169), + [anon_sym_LBRACK] = ACTIONS(172), + [anon_sym_LBRACE] = ACTIONS(175), + [anon_sym_STAR_STAR] = ACTIONS(178), + [anon_sym_def] = ACTIONS(257), + [anon_sym_global] = ACTIONS(184), + [anon_sym_nonlocal] = ACTIONS(187), + [anon_sym_exec] = ACTIONS(190), + [anon_sym_type] = ACTIONS(193), + [anon_sym_class] = ACTIONS(260), + [anon_sym_AT] = ACTIONS(199), + [anon_sym_not] = ACTIONS(202), + [anon_sym_TILDE] = ACTIONS(169), + [anon_sym_lambda] = ACTIONS(205), + [anon_sym_yield] = ACTIONS(208), + [sym_ellipsis] = ACTIONS(211), + [sym_integer] = ACTIONS(214), + [sym_float] = ACTIONS(211), + [anon_sym_await] = ACTIONS(217), + [sym_true] = ACTIONS(214), + [sym_false] = ACTIONS(214), + [sym_none] = ACTIONS(214), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(261), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(222), + [sym__template_string_start] = ACTIONS(225), }, [66] = { - [sym_named_expression] = STATE(876), - [sym_list_splat] = STATE(1365), - [sym_dictionary_splat] = STATE(1365), - [sym_expression_list] = STATE(1427), - [sym_expression] = STATE(1043), - [sym_primary_expression] = STATE(634), - [sym_not_operator] = STATE(876), - [sym_boolean_operator] = STATE(876), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_comparison_operator] = STATE(876), - [sym_lambda] = STATE(876), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_conditional_expression] = STATE(876), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_named_expression] = STATE(880), + [sym_list_splat] = STATE(1375), + [sym_dictionary_splat] = STATE(1375), + [sym_expression_list] = STATE(1430), + [sym_expression] = STATE(1066), + [sym_primary_expression] = STATE(652), + [sym_not_operator] = STATE(880), + [sym_boolean_operator] = STATE(880), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_comparison_operator] = STATE(880), + [sym_lambda] = STATE(880), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_conditional_expression] = STATE(880), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(263), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(267), @@ -15569,36 +15591,36 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [67] = { - [sym_named_expression] = STATE(876), - [sym_list_splat] = STATE(1365), - [sym_dictionary_splat] = STATE(1365), - [sym_expression_list] = STATE(1449), - [sym_expression] = STATE(1050), - [sym_primary_expression] = STATE(634), - [sym_not_operator] = STATE(876), - [sym_boolean_operator] = STATE(876), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_comparison_operator] = STATE(876), - [sym_lambda] = STATE(876), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_conditional_expression] = STATE(876), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_named_expression] = STATE(880), + [sym_list_splat] = STATE(1375), + [sym_dictionary_splat] = STATE(1375), + [sym_expression_list] = STATE(1433), + [sym_expression] = STATE(1052), + [sym_primary_expression] = STATE(652), + [sym_not_operator] = STATE(880), + [sym_boolean_operator] = STATE(880), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_comparison_operator] = STATE(880), + [sym_lambda] = STATE(880), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_conditional_expression] = STATE(880), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(263), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(267), @@ -15668,61 +15690,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [68] = { - [sym__simple_statements] = STATE(428), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(536), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -15765,61 +15787,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [69] = { - [sym__simple_statements] = STATE(309), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(439), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -15862,61 +15884,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [70] = { - [sym__simple_statements] = STATE(530), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(533), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -15959,61 +15981,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [71] = { - [sym__simple_statements] = STATE(410), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(424), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16056,61 +16078,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [72] = { - [sym__simple_statements] = STATE(545), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(418), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16153,61 +16175,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [73] = { - [sym__simple_statements] = STATE(401), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(413), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16250,61 +16272,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [74] = { - [sym__simple_statements] = STATE(1014), - [sym_import_statement] = STATE(1214), - [sym_future_import_statement] = STATE(1214), - [sym_import_from_statement] = STATE(1214), - [sym_print_statement] = STATE(1214), - [sym_assert_statement] = STATE(1214), - [sym_expression_statement] = STATE(1214), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1214), - [sym_delete_statement] = STATE(1214), - [sym_raise_statement] = STATE(1214), - [sym_pass_statement] = STATE(1214), - [sym_break_statement] = STATE(1214), - [sym_continue_statement] = STATE(1214), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1214), - [sym_nonlocal_statement] = STATE(1214), - [sym_exec_statement] = STATE(1214), - [sym_type_alias_statement] = STATE(1214), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(463), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16347,61 +16369,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [75] = { - [sym__simple_statements] = STATE(459), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(437), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16444,61 +16466,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [76] = { - [sym__simple_statements] = STATE(296), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(461), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16541,61 +16563,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [77] = { - [sym__simple_statements] = STATE(473), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(428), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16638,61 +16660,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [78] = { - [sym__simple_statements] = STATE(422), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(455), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16735,61 +16757,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [79] = { - [sym__simple_statements] = STATE(441), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(539), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16832,61 +16854,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [80] = { - [sym__simple_statements] = STATE(426), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(493), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -16929,61 +16951,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [81] = { - [sym__simple_statements] = STATE(555), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(487), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17026,61 +17048,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [82] = { - [sym__simple_statements] = STATE(549), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(393), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17123,61 +17145,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [83] = { - [sym__simple_statements] = STATE(526), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(471), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17220,158 +17242,255 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [84] = { - [sym_chevron] = STATE(1116), - [sym_named_expression] = STATE(977), + [sym__simple_statements] = STATE(550), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), [sym_expression] = STATE(1032), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_attribute] = STATE(795), - [sym_subscript] = STATE(795), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [sym_identifier] = ACTIONS(380), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(382), - [anon_sym_GT_GT] = ACTIONS(384), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(382), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(382), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(265), - [anon_sym_PLUS] = ACTIONS(265), - [anon_sym_LBRACK] = ACTIONS(298), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [sym_identifier] = ACTIONS(7), + [anon_sym_import] = ACTIONS(9), + [anon_sym_from] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_print] = ACTIONS(17), + [anon_sym_assert] = ACTIONS(19), + [anon_sym_return] = ACTIONS(21), + [anon_sym_del] = ACTIONS(23), + [anon_sym_raise] = ACTIONS(25), + [anon_sym_pass] = ACTIONS(27), + [anon_sym_break] = ACTIONS(29), + [anon_sym_continue] = ACTIONS(31), + [anon_sym_async] = ACTIONS(314), + [anon_sym_match] = ACTIONS(314), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_LBRACK] = ACTIONS(49), [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(382), - [anon_sym_type] = ACTIONS(382), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), + [anon_sym_STAR_STAR] = ACTIONS(53), + [anon_sym_global] = ACTIONS(57), + [anon_sym_nonlocal] = ACTIONS(59), + [anon_sym_exec] = ACTIONS(61), + [anon_sym_type] = ACTIONS(63), + [anon_sym_not] = ACTIONS(69), [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), [anon_sym_lambda] = ACTIONS(71), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), + [anon_sym_yield] = ACTIONS(73), [sym_ellipsis] = ACTIONS(75), [sym_integer] = ACTIONS(77), [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(386), + [anon_sym_await] = ACTIONS(79), [sym_true] = ACTIONS(77), [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__semicolon] = ACTIONS(298), - [sym__newline] = ACTIONS(298), + [sym__newline] = ACTIONS(380), + [sym__indent] = ACTIONS(382), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [85] = { - [sym__simple_statements] = STATE(546), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(476), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [sym_identifier] = ACTIONS(7), + [anon_sym_import] = ACTIONS(9), + [anon_sym_from] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_STAR] = ACTIONS(15), + [anon_sym_print] = ACTIONS(17), + [anon_sym_assert] = ACTIONS(19), + [anon_sym_return] = ACTIONS(21), + [anon_sym_del] = ACTIONS(23), + [anon_sym_raise] = ACTIONS(25), + [anon_sym_pass] = ACTIONS(27), + [anon_sym_break] = ACTIONS(29), + [anon_sym_continue] = ACTIONS(31), + [anon_sym_async] = ACTIONS(314), + [anon_sym_match] = ACTIONS(314), + [anon_sym_DASH] = ACTIONS(47), + [anon_sym_PLUS] = ACTIONS(47), + [anon_sym_LBRACK] = ACTIONS(49), + [anon_sym_LBRACE] = ACTIONS(51), + [anon_sym_STAR_STAR] = ACTIONS(53), + [anon_sym_global] = ACTIONS(57), + [anon_sym_nonlocal] = ACTIONS(59), + [anon_sym_exec] = ACTIONS(61), + [anon_sym_type] = ACTIONS(63), + [anon_sym_not] = ACTIONS(69), + [anon_sym_TILDE] = ACTIONS(47), + [anon_sym_lambda] = ACTIONS(71), + [anon_sym_yield] = ACTIONS(73), + [sym_ellipsis] = ACTIONS(75), + [sym_integer] = ACTIONS(77), + [sym_float] = ACTIONS(75), + [anon_sym_await] = ACTIONS(79), + [sym_true] = ACTIONS(77), + [sym_false] = ACTIONS(77), + [sym_none] = ACTIONS(77), + [sym_comment] = ACTIONS(3), + [sym__newline] = ACTIONS(384), + [sym__indent] = ACTIONS(386), + [sym__string_start] = ACTIONS(81), + [sym__template_string_start] = ACTIONS(83), + }, + [86] = { + [sym__simple_statements] = STATE(495), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), + [sym_pattern_list] = STATE(874), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), + [sym_string] = STATE(698), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17413,62 +17532,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [86] = { - [sym__simple_statements] = STATE(564), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [87] = { + [sym__simple_statements] = STATE(430), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17510,62 +17629,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [87] = { - [sym__simple_statements] = STATE(514), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [88] = { + [sym__simple_statements] = STATE(300), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17607,62 +17726,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [88] = { - [sym__simple_statements] = STATE(566), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [89] = { + [sym__simple_statements] = STATE(420), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17704,62 +17823,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [89] = { - [sym__simple_statements] = STATE(490), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [90] = { + [sym__simple_statements] = STATE(558), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17801,62 +17920,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [90] = { - [sym__simple_statements] = STATE(539), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [91] = { + [sym__simple_statements] = STATE(391), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17898,62 +18017,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [91] = { - [sym__simple_statements] = STATE(558), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [92] = { + [sym__simple_statements] = STATE(500), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -17995,62 +18114,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [92] = { - [sym__simple_statements] = STATE(506), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [93] = { + [sym__simple_statements] = STATE(401), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18092,62 +18211,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [93] = { - [sym__simple_statements] = STATE(415), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [94] = { + [sym__simple_statements] = STATE(396), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18189,62 +18308,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [94] = { - [sym__simple_statements] = STATE(562), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [95] = { + [sym__simple_statements] = STATE(394), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18286,62 +18405,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [95] = { - [sym__simple_statements] = STATE(537), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [96] = { + [sym__simple_statements] = STATE(465), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18383,62 +18502,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [96] = { - [sym__simple_statements] = STATE(503), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [97] = { + [sym__simple_statements] = STATE(525), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18480,62 +18599,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [97] = { - [sym__simple_statements] = STATE(540), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [98] = { + [sym__simple_statements] = STATE(453), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18577,62 +18696,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [98] = { - [sym__simple_statements] = STATE(536), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [99] = { + [sym__simple_statements] = STATE(547), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18674,62 +18793,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [99] = { - [sym__simple_statements] = STATE(412), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [100] = { + [sym__simple_statements] = STATE(567), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18771,62 +18890,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [100] = { - [sym__simple_statements] = STATE(396), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [101] = { + [sym__simple_statements] = STATE(997), + [sym_import_statement] = STATE(1212), + [sym_future_import_statement] = STATE(1212), + [sym_import_from_statement] = STATE(1212), + [sym_print_statement] = STATE(1212), + [sym_assert_statement] = STATE(1212), + [sym_expression_statement] = STATE(1212), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1212), + [sym_delete_statement] = STATE(1212), + [sym_raise_statement] = STATE(1212), + [sym_pass_statement] = STATE(1212), + [sym_break_statement] = STATE(1212), + [sym_continue_statement] = STATE(1212), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1212), + [sym_nonlocal_statement] = STATE(1212), + [sym_exec_statement] = STATE(1212), + [sym_type_alias_statement] = STATE(1212), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18868,62 +18987,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [101] = { - [sym__simple_statements] = STATE(411), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [102] = { + [sym__simple_statements] = STATE(477), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -18965,62 +19084,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [102] = { - [sym__simple_statements] = STATE(451), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [103] = { + [sym__simple_statements] = STATE(472), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19062,62 +19181,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [103] = { - [sym__simple_statements] = STATE(470), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [104] = { + [sym__simple_statements] = STATE(411), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19159,62 +19278,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [104] = { - [sym__simple_statements] = STATE(507), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [105] = { + [sym__simple_statements] = STATE(438), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19256,62 +19375,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [105] = { - [sym__simple_statements] = STATE(425), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [106] = { + [sym__simple_statements] = STATE(518), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19353,62 +19472,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [106] = { - [sym__simple_statements] = STATE(520), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [107] = { + [sym__simple_statements] = STATE(464), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19450,62 +19569,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [107] = { - [sym__simple_statements] = STATE(404), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [108] = { + [sym__simple_statements] = STATE(302), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19547,62 +19666,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [108] = { - [sym__simple_statements] = STATE(395), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [109] = { + [sym__simple_statements] = STATE(509), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19644,62 +19763,62 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [109] = { + [110] = { [sym__simple_statements] = STATE(552), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -19741,256 +19860,159 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [110] = { - [sym__simple_statements] = STATE(493), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), - [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(314), - [anon_sym_match] = ACTIONS(314), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(488), - [sym__indent] = ACTIONS(490), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, [111] = { - [sym__simple_statements] = STATE(403), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), - [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_chevron] = STATE(1109), + [sym_named_expression] = STATE(955), + [sym_expression] = STATE(1012), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_attribute] = STATE(760), + [sym_subscript] = STATE(760), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(314), - [anon_sym_match] = ACTIONS(314), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), + [sym_identifier] = ACTIONS(488), + [anon_sym_DOT] = ACTIONS(265), + [anon_sym_LPAREN] = ACTIONS(298), + [anon_sym_COMMA] = ACTIONS(270), + [anon_sym_STAR] = ACTIONS(265), + [anon_sym_print] = ACTIONS(490), + [anon_sym_GT_GT] = ACTIONS(492), + [anon_sym_COLON_EQ] = ACTIONS(278), + [anon_sym_if] = ACTIONS(265), + [anon_sym_COLON] = ACTIONS(280), + [anon_sym_async] = ACTIONS(490), + [anon_sym_in] = ACTIONS(265), + [anon_sym_match] = ACTIONS(490), + [anon_sym_PIPE] = ACTIONS(265), + [anon_sym_DASH] = ACTIONS(265), + [anon_sym_PLUS] = ACTIONS(265), + [anon_sym_LBRACK] = ACTIONS(298), [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), + [anon_sym_STAR_STAR] = ACTIONS(265), + [anon_sym_EQ] = ACTIONS(280), + [anon_sym_exec] = ACTIONS(490), + [anon_sym_type] = ACTIONS(490), + [anon_sym_AT] = ACTIONS(265), + [anon_sym_not] = ACTIONS(265), + [anon_sym_and] = ACTIONS(265), + [anon_sym_or] = ACTIONS(265), + [anon_sym_SLASH] = ACTIONS(265), + [anon_sym_PERCENT] = ACTIONS(265), + [anon_sym_SLASH_SLASH] = ACTIONS(265), + [anon_sym_AMP] = ACTIONS(265), + [anon_sym_CARET] = ACTIONS(265), + [anon_sym_LT_LT] = ACTIONS(265), [anon_sym_TILDE] = ACTIONS(47), + [anon_sym_LT] = ACTIONS(265), + [anon_sym_LT_EQ] = ACTIONS(298), + [anon_sym_EQ_EQ] = ACTIONS(298), + [anon_sym_BANG_EQ] = ACTIONS(298), + [anon_sym_GT_EQ] = ACTIONS(298), + [anon_sym_GT] = ACTIONS(265), + [anon_sym_LT_GT] = ACTIONS(298), + [anon_sym_is] = ACTIONS(265), [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), + [anon_sym_PLUS_EQ] = ACTIONS(302), + [anon_sym_DASH_EQ] = ACTIONS(302), + [anon_sym_STAR_EQ] = ACTIONS(302), + [anon_sym_SLASH_EQ] = ACTIONS(302), + [anon_sym_AT_EQ] = ACTIONS(302), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), + [anon_sym_PERCENT_EQ] = ACTIONS(302), + [anon_sym_STAR_STAR_EQ] = ACTIONS(302), + [anon_sym_GT_GT_EQ] = ACTIONS(302), + [anon_sym_LT_LT_EQ] = ACTIONS(302), + [anon_sym_AMP_EQ] = ACTIONS(302), + [anon_sym_CARET_EQ] = ACTIONS(302), + [anon_sym_PIPE_EQ] = ACTIONS(302), [sym_ellipsis] = ACTIONS(75), [sym_integer] = ACTIONS(77), [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), + [anon_sym_await] = ACTIONS(494), [sym_true] = ACTIONS(77), [sym_false] = ACTIONS(77), [sym_none] = ACTIONS(77), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(492), - [sym__indent] = ACTIONS(494), + [sym__semicolon] = ACTIONS(298), + [sym__newline] = ACTIONS(298), [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, [112] = { - [sym__simple_statements] = STATE(550), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(501), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20033,61 +20055,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [113] = { - [sym__simple_statements] = STATE(389), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(486), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20130,61 +20152,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [114] = { - [sym__simple_statements] = STATE(1029), - [sym_import_statement] = STATE(1214), - [sym_future_import_statement] = STATE(1214), - [sym_import_from_statement] = STATE(1214), - [sym_print_statement] = STATE(1214), - [sym_assert_statement] = STATE(1214), - [sym_expression_statement] = STATE(1214), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1214), - [sym_delete_statement] = STATE(1214), - [sym_raise_statement] = STATE(1214), - [sym_pass_statement] = STATE(1214), - [sym_break_statement] = STATE(1214), - [sym_continue_statement] = STATE(1214), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1214), - [sym_nonlocal_statement] = STATE(1214), - [sym_exec_statement] = STATE(1214), - [sym_type_alias_statement] = STATE(1214), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(995), + [sym_import_statement] = STATE(1212), + [sym_future_import_statement] = STATE(1212), + [sym_import_from_statement] = STATE(1212), + [sym_print_statement] = STATE(1212), + [sym_assert_statement] = STATE(1212), + [sym_expression_statement] = STATE(1212), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1212), + [sym_delete_statement] = STATE(1212), + [sym_raise_statement] = STATE(1212), + [sym_pass_statement] = STATE(1212), + [sym_break_statement] = STATE(1212), + [sym_continue_statement] = STATE(1212), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1212), + [sym_nonlocal_statement] = STATE(1212), + [sym_exec_statement] = STATE(1212), + [sym_type_alias_statement] = STATE(1212), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20227,61 +20249,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [115] = { - [sym__simple_statements] = STATE(461), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(404), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20324,61 +20346,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [116] = { - [sym__simple_statements] = STATE(477), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(561), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20421,61 +20443,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [117] = { - [sym__simple_statements] = STATE(466), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(511), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20518,61 +20540,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [118] = { - [sym__simple_statements] = STATE(485), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(468), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20615,61 +20637,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [119] = { - [sym__simple_statements] = STATE(423), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(564), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20712,61 +20734,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [120] = { - [sym__simple_statements] = STATE(393), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(563), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20809,61 +20831,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [121] = { - [sym__simple_statements] = STATE(483), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(515), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -20906,61 +20928,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [122] = { - [sym__simple_statements] = STATE(452), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(557), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21003,61 +21025,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [123] = { - [sym__simple_statements] = STATE(480), - [sym_import_statement] = STATE(1184), - [sym_future_import_statement] = STATE(1184), - [sym_import_from_statement] = STATE(1184), - [sym_print_statement] = STATE(1184), - [sym_assert_statement] = STATE(1184), - [sym_expression_statement] = STATE(1184), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1184), - [sym_delete_statement] = STATE(1184), - [sym_raise_statement] = STATE(1184), - [sym_pass_statement] = STATE(1184), - [sym_break_statement] = STATE(1184), - [sym_continue_statement] = STATE(1184), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1184), - [sym_nonlocal_statement] = STATE(1184), - [sym_exec_statement] = STATE(1184), - [sym_type_alias_statement] = STATE(1184), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(399), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21100,61 +21122,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [124] = { - [sym__simple_statements] = STATE(511), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(410), + [sym_import_statement] = STATE(1227), + [sym_future_import_statement] = STATE(1227), + [sym_import_from_statement] = STATE(1227), + [sym_print_statement] = STATE(1227), + [sym_assert_statement] = STATE(1227), + [sym_expression_statement] = STATE(1227), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1227), + [sym_delete_statement] = STATE(1227), + [sym_raise_statement] = STATE(1227), + [sym_pass_statement] = STATE(1227), + [sym_break_statement] = STATE(1227), + [sym_continue_statement] = STATE(1227), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1227), + [sym_nonlocal_statement] = STATE(1227), + [sym_exec_statement] = STATE(1227), + [sym_type_alias_statement] = STATE(1227), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21197,61 +21219,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [125] = { - [sym__simple_statements] = STATE(449), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(508), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21294,61 +21316,61 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [126] = { - [sym__simple_statements] = STATE(442), - [sym_import_statement] = STATE(1249), - [sym_future_import_statement] = STATE(1249), - [sym_import_from_statement] = STATE(1249), - [sym_print_statement] = STATE(1249), - [sym_assert_statement] = STATE(1249), - [sym_expression_statement] = STATE(1249), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1249), - [sym_delete_statement] = STATE(1249), - [sym_raise_statement] = STATE(1249), - [sym_pass_statement] = STATE(1249), - [sym_break_statement] = STATE(1249), - [sym_continue_statement] = STATE(1249), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1249), - [sym_nonlocal_statement] = STATE(1249), - [sym_exec_statement] = STATE(1249), - [sym_type_alias_statement] = STATE(1249), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym__simple_statements] = STATE(507), + [sym_import_statement] = STATE(1181), + [sym_future_import_statement] = STATE(1181), + [sym_import_from_statement] = STATE(1181), + [sym_print_statement] = STATE(1181), + [sym_assert_statement] = STATE(1181), + [sym_expression_statement] = STATE(1181), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1181), + [sym_delete_statement] = STATE(1181), + [sym_raise_statement] = STATE(1181), + [sym_pass_statement] = STATE(1181), + [sym_break_statement] = STATE(1181), + [sym_continue_statement] = STATE(1181), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1181), + [sym_nonlocal_statement] = STATE(1181), + [sym_exec_statement] = STATE(1181), + [sym_type_alias_statement] = STATE(1181), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21391,60 +21413,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [127] = { - [sym_import_statement] = STATE(1357), - [sym_future_import_statement] = STATE(1357), - [sym_import_from_statement] = STATE(1357), - [sym_print_statement] = STATE(1357), - [sym_assert_statement] = STATE(1357), - [sym_expression_statement] = STATE(1357), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1357), - [sym_delete_statement] = STATE(1357), - [sym_raise_statement] = STATE(1357), - [sym_pass_statement] = STATE(1357), - [sym_break_statement] = STATE(1357), - [sym_continue_statement] = STATE(1357), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1357), - [sym_nonlocal_statement] = STATE(1357), - [sym_exec_statement] = STATE(1357), - [sym_type_alias_statement] = STATE(1357), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1369), + [sym_future_import_statement] = STATE(1369), + [sym_import_from_statement] = STATE(1369), + [sym_print_statement] = STATE(1369), + [sym_assert_statement] = STATE(1369), + [sym_expression_statement] = STATE(1369), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1369), + [sym_delete_statement] = STATE(1369), + [sym_raise_statement] = STATE(1369), + [sym_pass_statement] = STATE(1369), + [sym_break_statement] = STATE(1369), + [sym_continue_statement] = STATE(1369), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1369), + [sym_nonlocal_statement] = STATE(1369), + [sym_exec_statement] = STATE(1369), + [sym_type_alias_statement] = STATE(1369), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21486,60 +21508,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [128] = { - [sym_import_statement] = STATE(1357), - [sym_future_import_statement] = STATE(1357), - [sym_import_from_statement] = STATE(1357), - [sym_print_statement] = STATE(1357), - [sym_assert_statement] = STATE(1357), - [sym_expression_statement] = STATE(1357), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1357), - [sym_delete_statement] = STATE(1357), - [sym_raise_statement] = STATE(1357), - [sym_pass_statement] = STATE(1357), - [sym_break_statement] = STATE(1357), - [sym_continue_statement] = STATE(1357), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1357), - [sym_nonlocal_statement] = STATE(1357), - [sym_exec_statement] = STATE(1357), - [sym_type_alias_statement] = STATE(1357), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1369), + [sym_future_import_statement] = STATE(1369), + [sym_import_from_statement] = STATE(1369), + [sym_print_statement] = STATE(1369), + [sym_assert_statement] = STATE(1369), + [sym_expression_statement] = STATE(1369), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1369), + [sym_delete_statement] = STATE(1369), + [sym_raise_statement] = STATE(1369), + [sym_pass_statement] = STATE(1369), + [sym_break_statement] = STATE(1369), + [sym_continue_statement] = STATE(1369), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1369), + [sym_nonlocal_statement] = STATE(1369), + [sym_exec_statement] = STATE(1369), + [sym_type_alias_statement] = STATE(1369), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21581,60 +21603,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [129] = { - [sym_import_statement] = STATE(1357), - [sym_future_import_statement] = STATE(1357), - [sym_import_from_statement] = STATE(1357), - [sym_print_statement] = STATE(1357), - [sym_assert_statement] = STATE(1357), - [sym_expression_statement] = STATE(1357), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1357), - [sym_delete_statement] = STATE(1357), - [sym_raise_statement] = STATE(1357), - [sym_pass_statement] = STATE(1357), - [sym_break_statement] = STATE(1357), - [sym_continue_statement] = STATE(1357), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1357), - [sym_nonlocal_statement] = STATE(1357), - [sym_exec_statement] = STATE(1357), - [sym_type_alias_statement] = STATE(1357), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1369), + [sym_future_import_statement] = STATE(1369), + [sym_import_from_statement] = STATE(1369), + [sym_print_statement] = STATE(1369), + [sym_assert_statement] = STATE(1369), + [sym_expression_statement] = STATE(1369), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1369), + [sym_delete_statement] = STATE(1369), + [sym_raise_statement] = STATE(1369), + [sym_pass_statement] = STATE(1369), + [sym_break_statement] = STATE(1369), + [sym_continue_statement] = STATE(1369), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1369), + [sym_nonlocal_statement] = STATE(1369), + [sym_exec_statement] = STATE(1369), + [sym_type_alias_statement] = STATE(1369), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21676,60 +21698,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [130] = { - [sym_import_statement] = STATE(1357), - [sym_future_import_statement] = STATE(1357), - [sym_import_from_statement] = STATE(1357), - [sym_print_statement] = STATE(1357), - [sym_assert_statement] = STATE(1357), - [sym_expression_statement] = STATE(1357), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1357), - [sym_delete_statement] = STATE(1357), - [sym_raise_statement] = STATE(1357), - [sym_pass_statement] = STATE(1357), - [sym_break_statement] = STATE(1357), - [sym_continue_statement] = STATE(1357), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1357), - [sym_nonlocal_statement] = STATE(1357), - [sym_exec_statement] = STATE(1357), - [sym_type_alias_statement] = STATE(1357), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1369), + [sym_future_import_statement] = STATE(1369), + [sym_import_from_statement] = STATE(1369), + [sym_print_statement] = STATE(1369), + [sym_assert_statement] = STATE(1369), + [sym_expression_statement] = STATE(1369), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1369), + [sym_delete_statement] = STATE(1369), + [sym_raise_statement] = STATE(1369), + [sym_pass_statement] = STATE(1369), + [sym_break_statement] = STATE(1369), + [sym_continue_statement] = STATE(1369), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1369), + [sym_nonlocal_statement] = STATE(1369), + [sym_exec_statement] = STATE(1369), + [sym_type_alias_statement] = STATE(1369), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21771,60 +21793,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [131] = { - [sym_import_statement] = STATE(1357), - [sym_future_import_statement] = STATE(1357), - [sym_import_from_statement] = STATE(1357), - [sym_print_statement] = STATE(1357), - [sym_assert_statement] = STATE(1357), - [sym_expression_statement] = STATE(1357), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1357), - [sym_delete_statement] = STATE(1357), - [sym_raise_statement] = STATE(1357), - [sym_pass_statement] = STATE(1357), - [sym_break_statement] = STATE(1357), - [sym_continue_statement] = STATE(1357), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1357), - [sym_nonlocal_statement] = STATE(1357), - [sym_exec_statement] = STATE(1357), - [sym_type_alias_statement] = STATE(1357), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1369), + [sym_future_import_statement] = STATE(1369), + [sym_import_from_statement] = STATE(1369), + [sym_print_statement] = STATE(1369), + [sym_assert_statement] = STATE(1369), + [sym_expression_statement] = STATE(1369), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1369), + [sym_delete_statement] = STATE(1369), + [sym_raise_statement] = STATE(1369), + [sym_pass_statement] = STATE(1369), + [sym_break_statement] = STATE(1369), + [sym_continue_statement] = STATE(1369), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1369), + [sym_nonlocal_statement] = STATE(1369), + [sym_exec_statement] = STATE(1369), + [sym_type_alias_statement] = STATE(1369), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21866,60 +21888,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [132] = { - [sym_import_statement] = STATE(1357), - [sym_future_import_statement] = STATE(1357), - [sym_import_from_statement] = STATE(1357), - [sym_print_statement] = STATE(1357), - [sym_assert_statement] = STATE(1357), - [sym_expression_statement] = STATE(1357), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1357), - [sym_delete_statement] = STATE(1357), - [sym_raise_statement] = STATE(1357), - [sym_pass_statement] = STATE(1357), - [sym_break_statement] = STATE(1357), - [sym_continue_statement] = STATE(1357), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1357), - [sym_nonlocal_statement] = STATE(1357), - [sym_exec_statement] = STATE(1357), - [sym_type_alias_statement] = STATE(1357), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1369), + [sym_future_import_statement] = STATE(1369), + [sym_import_from_statement] = STATE(1369), + [sym_print_statement] = STATE(1369), + [sym_assert_statement] = STATE(1369), + [sym_expression_statement] = STATE(1369), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1369), + [sym_delete_statement] = STATE(1369), + [sym_raise_statement] = STATE(1369), + [sym_pass_statement] = STATE(1369), + [sym_break_statement] = STATE(1369), + [sym_continue_statement] = STATE(1369), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1369), + [sym_nonlocal_statement] = STATE(1369), + [sym_exec_statement] = STATE(1369), + [sym_type_alias_statement] = STATE(1369), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -21961,60 +21983,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [133] = { - [sym_import_statement] = STATE(1357), - [sym_future_import_statement] = STATE(1357), - [sym_import_from_statement] = STATE(1357), - [sym_print_statement] = STATE(1357), - [sym_assert_statement] = STATE(1357), - [sym_expression_statement] = STATE(1357), - [sym_named_expression] = STATE(977), - [sym_return_statement] = STATE(1357), - [sym_delete_statement] = STATE(1357), - [sym_raise_statement] = STATE(1357), - [sym_pass_statement] = STATE(1357), - [sym_break_statement] = STATE(1357), - [sym_continue_statement] = STATE(1357), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_global_statement] = STATE(1357), - [sym_nonlocal_statement] = STATE(1357), - [sym_exec_statement] = STATE(1357), - [sym_type_alias_statement] = STATE(1357), - [sym_expression_list] = STATE(1333), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(1000), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1333), - [sym_augmented_assignment] = STATE(1333), + [sym_import_statement] = STATE(1369), + [sym_future_import_statement] = STATE(1369), + [sym_import_from_statement] = STATE(1369), + [sym_print_statement] = STATE(1369), + [sym_assert_statement] = STATE(1369), + [sym_expression_statement] = STATE(1369), + [sym_named_expression] = STATE(955), + [sym_return_statement] = STATE(1369), + [sym_delete_statement] = STATE(1369), + [sym_raise_statement] = STATE(1369), + [sym_pass_statement] = STATE(1369), + [sym_break_statement] = STATE(1369), + [sym_continue_statement] = STATE(1369), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_global_statement] = STATE(1369), + [sym_nonlocal_statement] = STATE(1369), + [sym_exec_statement] = STATE(1369), + [sym_type_alias_statement] = STATE(1369), + [sym_expression_list] = STATE(1329), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1032), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1329), + [sym_augmented_assignment] = STATE(1329), [sym_pattern_list] = STATE(874), - [sym_yield] = STATE(1333), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym_yield] = STATE(1329), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_import] = ACTIONS(9), [anon_sym_from] = ACTIONS(11), @@ -22055,26 +22077,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [134] = { - [sym_primary_expression] = STATE(715), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_attribute] = STATE(795), - [sym_subscript] = STATE(795), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_concatenated_string] = STATE(795), + [sym_primary_expression] = STATE(711), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_attribute] = STATE(760), + [sym_subscript] = STATE(760), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(77), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(568), @@ -22143,26 +22165,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [135] = { - [sym_primary_expression] = STATE(671), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(669), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(578), @@ -22231,26 +22253,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [136] = { - [sym_primary_expression] = STATE(671), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(669), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(578), @@ -22309,26 +22331,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [137] = { - [sym_primary_expression] = STATE(671), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(669), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(578), @@ -22386,26 +22408,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [138] = { - [sym_primary_expression] = STATE(666), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(675), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(597), @@ -22463,26 +22485,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [139] = { - [sym_primary_expression] = STATE(666), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(675), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(597), @@ -22539,101 +22561,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [140] = { - [sym_primary_expression] = STATE(671), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(302), - [anon_sym_COMMA] = ACTIONS(302), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(302), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(280), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(589), - [anon_sym_PLUS] = ACTIONS(589), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(302), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(302), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), - }, - [141] = { - [sym_primary_expression] = STATE(715), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_attribute] = STATE(795), - [sym_subscript] = STATE(795), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_concatenated_string] = STATE(795), + [sym_primary_expression] = STATE(711), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_attribute] = STATE(760), + [sym_subscript] = STATE(760), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(77), [anon_sym_DOT] = ACTIONS(265), [anon_sym_from] = ACTIONS(265), @@ -22688,27 +22635,102 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, + [141] = { + [sym_primary_expression] = STATE(669), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), + [sym_identifier] = ACTIONS(306), + [anon_sym_DOT] = ACTIONS(265), + [anon_sym_LPAREN] = ACTIONS(578), + [anon_sym_RPAREN] = ACTIONS(302), + [anon_sym_COMMA] = ACTIONS(302), + [anon_sym_STAR] = ACTIONS(265), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(265), + [anon_sym_COLON] = ACTIONS(302), + [anon_sym_async] = ACTIONS(583), + [anon_sym_in] = ACTIONS(280), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(265), + [anon_sym_DASH] = ACTIONS(589), + [anon_sym_PLUS] = ACTIONS(589), + [anon_sym_LBRACK] = ACTIONS(591), + [anon_sym_RBRACK] = ACTIONS(302), + [anon_sym_LBRACE] = ACTIONS(288), + [anon_sym_STAR_STAR] = ACTIONS(265), + [anon_sym_EQ] = ACTIONS(302), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(265), + [anon_sym_SLASH] = ACTIONS(265), + [anon_sym_PERCENT] = ACTIONS(265), + [anon_sym_SLASH_SLASH] = ACTIONS(265), + [anon_sym_AMP] = ACTIONS(265), + [anon_sym_CARET] = ACTIONS(265), + [anon_sym_LT_LT] = ACTIONS(265), + [anon_sym_TILDE] = ACTIONS(296), + [anon_sym_PLUS_EQ] = ACTIONS(302), + [anon_sym_DASH_EQ] = ACTIONS(302), + [anon_sym_STAR_EQ] = ACTIONS(302), + [anon_sym_SLASH_EQ] = ACTIONS(302), + [anon_sym_AT_EQ] = ACTIONS(302), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), + [anon_sym_PERCENT_EQ] = ACTIONS(302), + [anon_sym_STAR_STAR_EQ] = ACTIONS(302), + [anon_sym_GT_GT_EQ] = ACTIONS(302), + [anon_sym_LT_LT_EQ] = ACTIONS(302), + [anon_sym_AMP_EQ] = ACTIONS(302), + [anon_sym_CARET_EQ] = ACTIONS(302), + [anon_sym_PIPE_EQ] = ACTIONS(302), + [sym_ellipsis] = ACTIONS(304), + [sym_integer] = ACTIONS(306), + [sym_float] = ACTIONS(304), + [anon_sym_await] = ACTIONS(595), + [sym_true] = ACTIONS(306), + [sym_false] = ACTIONS(306), + [sym_none] = ACTIONS(306), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(310), + [sym__template_string_start] = ACTIONS(312), + }, [142] = { - [sym_primary_expression] = STATE(671), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(669), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(578), @@ -22764,26 +22786,174 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [143] = { - [sym_primary_expression] = STATE(715), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_attribute] = STATE(795), - [sym_subscript] = STATE(795), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_concatenated_string] = STATE(795), + [sym_primary_expression] = STATE(748), + [sym_binary_operator] = STATE(809), + [sym_unary_operator] = STATE(809), + [sym_attribute] = STATE(809), + [sym_subscript] = STATE(809), + [sym_call] = STATE(809), + [sym_list] = STATE(809), + [sym_set] = STATE(809), + [sym_tuple] = STATE(809), + [sym_dictionary] = STATE(809), + [sym_list_comprehension] = STATE(809), + [sym_dictionary_comprehension] = STATE(809), + [sym_set_comprehension] = STATE(809), + [sym_generator_expression] = STATE(809), + [sym_parenthesized_expression] = STATE(809), + [sym_concatenated_string] = STATE(809), + [sym_string] = STATE(720), + [sym_concatenated_template_string] = STATE(809), + [sym_template_string] = STATE(722), + [sym_await] = STATE(809), + [sym_identifier] = ACTIONS(607), + [anon_sym_DOT] = ACTIONS(265), + [anon_sym_LPAREN] = ACTIONS(609), + [anon_sym_RPAREN] = ACTIONS(298), + [anon_sym_COMMA] = ACTIONS(298), + [anon_sym_as] = ACTIONS(265), + [anon_sym_STAR] = ACTIONS(265), + [anon_sym_print] = ACTIONS(611), + [anon_sym_GT_GT] = ACTIONS(298), + [anon_sym_COLON_EQ] = ACTIONS(613), + [anon_sym_if] = ACTIONS(265), + [anon_sym_COLON] = ACTIONS(265), + [anon_sym_async] = ACTIONS(611), + [anon_sym_in] = ACTIONS(265), + [anon_sym_match] = ACTIONS(611), + [anon_sym_PIPE] = ACTIONS(298), + [anon_sym_DASH] = ACTIONS(615), + [anon_sym_PLUS] = ACTIONS(615), + [anon_sym_LBRACK] = ACTIONS(617), + [anon_sym_LBRACE] = ACTIONS(619), + [anon_sym_STAR_STAR] = ACTIONS(298), + [anon_sym_exec] = ACTIONS(611), + [anon_sym_type] = ACTIONS(611), + [anon_sym_AT] = ACTIONS(298), + [anon_sym_not] = ACTIONS(265), + [anon_sym_and] = ACTIONS(265), + [anon_sym_or] = ACTIONS(265), + [anon_sym_SLASH] = ACTIONS(265), + [anon_sym_PERCENT] = ACTIONS(298), + [anon_sym_SLASH_SLASH] = ACTIONS(298), + [anon_sym_AMP] = ACTIONS(298), + [anon_sym_CARET] = ACTIONS(298), + [anon_sym_LT_LT] = ACTIONS(298), + [anon_sym_TILDE] = ACTIONS(615), + [anon_sym_LT] = ACTIONS(265), + [anon_sym_LT_EQ] = ACTIONS(298), + [anon_sym_EQ_EQ] = ACTIONS(298), + [anon_sym_BANG_EQ] = ACTIONS(298), + [anon_sym_GT_EQ] = ACTIONS(298), + [anon_sym_GT] = ACTIONS(265), + [anon_sym_LT_GT] = ACTIONS(298), + [anon_sym_is] = ACTIONS(265), + [sym_ellipsis] = ACTIONS(621), + [sym_integer] = ACTIONS(607), + [sym_float] = ACTIONS(621), + [anon_sym_await] = ACTIONS(623), + [sym_true] = ACTIONS(607), + [sym_false] = ACTIONS(607), + [sym_none] = ACTIONS(607), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(625), + [sym__template_string_start] = ACTIONS(627), + }, + [144] = { + [sym_primary_expression] = STATE(675), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), + [sym_identifier] = ACTIONS(306), + [anon_sym_DOT] = ACTIONS(265), + [anon_sym_LPAREN] = ACTIONS(597), + [anon_sym_RPAREN] = ACTIONS(298), + [anon_sym_COMMA] = ACTIONS(298), + [anon_sym_STAR] = ACTIONS(265), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(298), + [anon_sym_COLON_EQ] = ACTIONS(599), + [anon_sym_if] = ACTIONS(265), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(265), + [anon_sym_in] = ACTIONS(265), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(298), + [anon_sym_DASH] = ACTIONS(601), + [anon_sym_PLUS] = ACTIONS(601), + [anon_sym_LBRACK] = ACTIONS(603), + [anon_sym_LBRACE] = ACTIONS(288), + [anon_sym_STAR_STAR] = ACTIONS(298), + [anon_sym_EQ] = ACTIONS(629), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(298), + [anon_sym_not] = ACTIONS(265), + [anon_sym_and] = ACTIONS(265), + [anon_sym_or] = ACTIONS(265), + [anon_sym_SLASH] = ACTIONS(265), + [anon_sym_PERCENT] = ACTIONS(298), + [anon_sym_SLASH_SLASH] = ACTIONS(298), + [anon_sym_AMP] = ACTIONS(298), + [anon_sym_CARET] = ACTIONS(298), + [anon_sym_LT_LT] = ACTIONS(298), + [anon_sym_TILDE] = ACTIONS(601), + [anon_sym_LT] = ACTIONS(265), + [anon_sym_LT_EQ] = ACTIONS(298), + [anon_sym_EQ_EQ] = ACTIONS(298), + [anon_sym_BANG_EQ] = ACTIONS(298), + [anon_sym_GT_EQ] = ACTIONS(298), + [anon_sym_GT] = ACTIONS(265), + [anon_sym_LT_GT] = ACTIONS(298), + [anon_sym_is] = ACTIONS(265), + [sym_ellipsis] = ACTIONS(304), + [sym_integer] = ACTIONS(306), + [sym_float] = ACTIONS(304), + [anon_sym_await] = ACTIONS(605), + [sym_true] = ACTIONS(306), + [sym_false] = ACTIONS(306), + [sym_none] = ACTIONS(306), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(310), + [sym__template_string_start] = ACTIONS(312), + }, + [145] = { + [sym_primary_expression] = STATE(711), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_attribute] = STATE(760), + [sym_subscript] = STATE(760), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(77), [anon_sym_DOT] = ACTIONS(265), [anon_sym_from] = ACTIONS(265), @@ -22837,175 +23007,27 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__string_start] = ACTIONS(81), [sym__template_string_start] = ACTIONS(83), }, - [144] = { - [sym_primary_expression] = STATE(666), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(599), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(607), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), - }, - [145] = { - [sym_primary_expression] = STATE(723), - [sym_binary_operator] = STATE(805), - [sym_unary_operator] = STATE(805), - [sym_attribute] = STATE(805), - [sym_subscript] = STATE(805), - [sym_call] = STATE(805), - [sym_list] = STATE(805), - [sym_set] = STATE(805), - [sym_tuple] = STATE(805), - [sym_dictionary] = STATE(805), - [sym_list_comprehension] = STATE(805), - [sym_dictionary_comprehension] = STATE(805), - [sym_set_comprehension] = STATE(805), - [sym_generator_expression] = STATE(805), - [sym_parenthesized_expression] = STATE(805), - [sym_concatenated_string] = STATE(805), - [sym_string] = STATE(706), - [sym_concatenated_template_string] = STATE(805), - [sym_template_string] = STATE(704), - [sym_await] = STATE(805), - [sym_identifier] = ACTIONS(609), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(611), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(613), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(615), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(265), - [anon_sym_async] = ACTIONS(613), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(613), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(617), - [anon_sym_PLUS] = ACTIONS(617), - [anon_sym_LBRACK] = ACTIONS(619), - [anon_sym_LBRACE] = ACTIONS(621), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(613), - [anon_sym_type] = ACTIONS(613), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(617), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(623), - [sym_integer] = ACTIONS(609), - [sym_float] = ACTIONS(623), - [anon_sym_await] = ACTIONS(625), - [sym_true] = ACTIONS(609), - [sym_false] = ACTIONS(609), - [sym_none] = ACTIONS(609), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(627), - [sym__template_string_start] = ACTIONS(629), - }, [146] = { - [sym_primary_expression] = STATE(666), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(675), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(597), @@ -23060,48 +23082,48 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [147] = { - [sym_primary_expression] = STATE(723), - [sym_binary_operator] = STATE(805), - [sym_unary_operator] = STATE(805), - [sym_attribute] = STATE(805), - [sym_subscript] = STATE(805), - [sym_call] = STATE(805), - [sym_list] = STATE(805), - [sym_set] = STATE(805), - [sym_tuple] = STATE(805), - [sym_dictionary] = STATE(805), - [sym_list_comprehension] = STATE(805), - [sym_dictionary_comprehension] = STATE(805), - [sym_set_comprehension] = STATE(805), - [sym_generator_expression] = STATE(805), - [sym_parenthesized_expression] = STATE(805), - [sym_concatenated_string] = STATE(805), - [sym_string] = STATE(706), - [sym_concatenated_template_string] = STATE(805), - [sym_template_string] = STATE(704), - [sym_await] = STATE(805), - [sym_identifier] = ACTIONS(609), + [sym_primary_expression] = STATE(748), + [sym_binary_operator] = STATE(809), + [sym_unary_operator] = STATE(809), + [sym_attribute] = STATE(809), + [sym_subscript] = STATE(809), + [sym_call] = STATE(809), + [sym_list] = STATE(809), + [sym_set] = STATE(809), + [sym_tuple] = STATE(809), + [sym_dictionary] = STATE(809), + [sym_list_comprehension] = STATE(809), + [sym_dictionary_comprehension] = STATE(809), + [sym_set_comprehension] = STATE(809), + [sym_generator_expression] = STATE(809), + [sym_parenthesized_expression] = STATE(809), + [sym_concatenated_string] = STATE(809), + [sym_string] = STATE(720), + [sym_concatenated_template_string] = STATE(809), + [sym_template_string] = STATE(722), + [sym_await] = STATE(809), + [sym_identifier] = ACTIONS(607), [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(611), + [anon_sym_LPAREN] = ACTIONS(609), [anon_sym_RPAREN] = ACTIONS(298), [anon_sym_COMMA] = ACTIONS(298), [anon_sym_as] = ACTIONS(265), [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(613), + [anon_sym_print] = ACTIONS(611), [anon_sym_GT_GT] = ACTIONS(298), [anon_sym_if] = ACTIONS(265), [anon_sym_COLON] = ACTIONS(298), - [anon_sym_async] = ACTIONS(613), + [anon_sym_async] = ACTIONS(611), [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(613), + [anon_sym_match] = ACTIONS(611), [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(617), - [anon_sym_PLUS] = ACTIONS(617), - [anon_sym_LBRACK] = ACTIONS(619), - [anon_sym_LBRACE] = ACTIONS(621), + [anon_sym_DASH] = ACTIONS(615), + [anon_sym_PLUS] = ACTIONS(615), + [anon_sym_LBRACK] = ACTIONS(617), + [anon_sym_LBRACE] = ACTIONS(619), [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(613), - [anon_sym_type] = ACTIONS(613), + [anon_sym_exec] = ACTIONS(611), + [anon_sym_type] = ACTIONS(611), [anon_sym_AT] = ACTIONS(298), [anon_sym_not] = ACTIONS(265), [anon_sym_and] = ACTIONS(265), @@ -23112,7 +23134,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_AMP] = ACTIONS(298), [anon_sym_CARET] = ACTIONS(298), [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(617), + [anon_sym_TILDE] = ACTIONS(615), [anon_sym_LT] = ACTIONS(265), [anon_sym_LT_EQ] = ACTIONS(298), [anon_sym_EQ_EQ] = ACTIONS(298), @@ -23121,38 +23143,38 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_GT] = ACTIONS(265), [anon_sym_LT_GT] = ACTIONS(298), [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(623), - [sym_integer] = ACTIONS(609), - [sym_float] = ACTIONS(623), - [anon_sym_await] = ACTIONS(625), - [sym_true] = ACTIONS(609), - [sym_false] = ACTIONS(609), - [sym_none] = ACTIONS(609), + [sym_ellipsis] = ACTIONS(621), + [sym_integer] = ACTIONS(607), + [sym_float] = ACTIONS(621), + [anon_sym_await] = ACTIONS(623), + [sym_true] = ACTIONS(607), + [sym_false] = ACTIONS(607), + [sym_none] = ACTIONS(607), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(627), - [sym__template_string_start] = ACTIONS(629), + [sym__string_start] = ACTIONS(625), + [sym__template_string_start] = ACTIONS(627), }, [148] = { - [sym_primary_expression] = STATE(671), - [sym_binary_operator] = STATE(658), - [sym_unary_operator] = STATE(658), - [sym_attribute] = STATE(658), - [sym_subscript] = STATE(658), - [sym_call] = STATE(658), - [sym_list] = STATE(658), - [sym_set] = STATE(658), - [sym_tuple] = STATE(658), - [sym_dictionary] = STATE(658), - [sym_list_comprehension] = STATE(658), - [sym_dictionary_comprehension] = STATE(658), - [sym_set_comprehension] = STATE(658), - [sym_generator_expression] = STATE(658), - [sym_parenthesized_expression] = STATE(658), - [sym_concatenated_string] = STATE(658), - [sym_string] = STATE(573), - [sym_concatenated_template_string] = STATE(658), - [sym_template_string] = STATE(572), - [sym_await] = STATE(658), + [sym_primary_expression] = STATE(669), + [sym_binary_operator] = STATE(649), + [sym_unary_operator] = STATE(649), + [sym_attribute] = STATE(649), + [sym_subscript] = STATE(649), + [sym_call] = STATE(649), + [sym_list] = STATE(649), + [sym_set] = STATE(649), + [sym_tuple] = STATE(649), + [sym_dictionary] = STATE(649), + [sym_list_comprehension] = STATE(649), + [sym_dictionary_comprehension] = STATE(649), + [sym_set_comprehension] = STATE(649), + [sym_generator_expression] = STATE(649), + [sym_parenthesized_expression] = STATE(649), + [sym_concatenated_string] = STATE(649), + [sym_string] = STATE(569), + [sym_concatenated_template_string] = STATE(649), + [sym_template_string] = STATE(570), + [sym_await] = STATE(649), [sym_identifier] = ACTIONS(306), [anon_sym_DOT] = ACTIONS(265), [anon_sym_LPAREN] = ACTIONS(578), @@ -23172,7 +23194,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACK] = ACTIONS(591), [anon_sym_LBRACE] = ACTIONS(288), [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(607), + [anon_sym_EQ] = ACTIONS(629), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), [anon_sym_AT] = ACTIONS(298), @@ -23206,45 +23228,45 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(312), }, [149] = { - [sym_named_expression] = STATE(977), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_expression_list] = STATE(1340), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(991), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1340), - [sym_augmented_assignment] = STATE(1340), + [sym_named_expression] = STATE(955), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_expression_list] = STATE(1357), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1026), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1357), + [sym_augmented_assignment] = STATE(1357), [sym_pattern_list] = STATE(874), - [sym__right_hand_side] = STATE(1340), - [sym_yield] = STATE(1340), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym__right_hand_side] = STATE(1357), + [sym_yield] = STATE(1357), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_STAR] = ACTIONS(15), @@ -23274,45 +23296,45 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [150] = { - [sym_named_expression] = STATE(977), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_expression_list] = STATE(1311), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(991), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1311), - [sym_augmented_assignment] = STATE(1311), + [sym_named_expression] = STATE(955), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_expression_list] = STATE(1356), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1026), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1356), + [sym_augmented_assignment] = STATE(1356), [sym_pattern_list] = STATE(874), - [sym__right_hand_side] = STATE(1311), - [sym_yield] = STATE(1311), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym__right_hand_side] = STATE(1356), + [sym_yield] = STATE(1356), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_STAR] = ACTIONS(15), @@ -23342,45 +23364,45 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(83), }, [151] = { - [sym_named_expression] = STATE(977), - [sym_list_splat] = STATE(1329), - [sym_dictionary_splat] = STATE(1329), - [sym_expression_list] = STATE(1309), - [sym_pattern] = STATE(864), - [sym_tuple_pattern] = STATE(855), - [sym_list_pattern] = STATE(855), - [sym_list_splat_pattern] = STATE(855), - [sym_expression] = STATE(991), - [sym_primary_expression] = STATE(697), - [sym_not_operator] = STATE(977), - [sym_boolean_operator] = STATE(977), - [sym_binary_operator] = STATE(795), - [sym_unary_operator] = STATE(795), - [sym_comparison_operator] = STATE(977), - [sym_lambda] = STATE(977), - [sym_assignment] = STATE(1309), - [sym_augmented_assignment] = STATE(1309), + [sym_named_expression] = STATE(955), + [sym_list_splat] = STATE(1328), + [sym_dictionary_splat] = STATE(1328), + [sym_expression_list] = STATE(1365), + [sym_pattern] = STATE(867), + [sym_tuple_pattern] = STATE(853), + [sym_list_pattern] = STATE(853), + [sym_list_splat_pattern] = STATE(853), + [sym_expression] = STATE(1026), + [sym_primary_expression] = STATE(702), + [sym_not_operator] = STATE(955), + [sym_boolean_operator] = STATE(955), + [sym_binary_operator] = STATE(760), + [sym_unary_operator] = STATE(760), + [sym_comparison_operator] = STATE(955), + [sym_lambda] = STATE(955), + [sym_assignment] = STATE(1365), + [sym_augmented_assignment] = STATE(1365), [sym_pattern_list] = STATE(874), - [sym__right_hand_side] = STATE(1309), - [sym_yield] = STATE(1309), - [sym_attribute] = STATE(463), - [sym_subscript] = STATE(463), - [sym_call] = STATE(795), - [sym_list] = STATE(795), - [sym_set] = STATE(795), - [sym_tuple] = STATE(795), - [sym_dictionary] = STATE(795), - [sym_list_comprehension] = STATE(795), - [sym_dictionary_comprehension] = STATE(795), - [sym_set_comprehension] = STATE(795), - [sym_generator_expression] = STATE(795), - [sym_parenthesized_expression] = STATE(795), - [sym_conditional_expression] = STATE(977), - [sym_concatenated_string] = STATE(795), + [sym__right_hand_side] = STATE(1365), + [sym_yield] = STATE(1365), + [sym_attribute] = STATE(459), + [sym_subscript] = STATE(459), + [sym_call] = STATE(760), + [sym_list] = STATE(760), + [sym_set] = STATE(760), + [sym_tuple] = STATE(760), + [sym_dictionary] = STATE(760), + [sym_list_comprehension] = STATE(760), + [sym_dictionary_comprehension] = STATE(760), + [sym_set_comprehension] = STATE(760), + [sym_generator_expression] = STATE(760), + [sym_parenthesized_expression] = STATE(760), + [sym_conditional_expression] = STATE(955), + [sym_concatenated_string] = STATE(760), [sym_string] = STATE(698), - [sym_concatenated_template_string] = STATE(795), - [sym_template_string] = STATE(699), - [sym_await] = STATE(795), + [sym_concatenated_template_string] = STATE(760), + [sym_template_string] = STATE(700), + [sym_await] = STATE(760), [sym_identifier] = ACTIONS(7), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_STAR] = ACTIONS(15), @@ -23439,20 +23461,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(885), 1, sym_expression, - STATE(1023), 1, + STATE(1001), 1, sym_expression_list, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1365), 2, + STATE(1375), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(296), 3, @@ -23470,7 +23492,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, @@ -23485,7 +23507,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -23530,36 +23552,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_yield, ACTIONS(657), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(932), 1, + STATE(935), 1, sym_expression, - STATE(1123), 1, + STATE(1177), 1, sym_pattern, - STATE(1220), 1, + STATE(1197), 1, sym_yield, STATE(1409), 1, sym__collection_elements, - STATE(1410), 1, + STATE(1416), 1, sym__patterns, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(769), 2, + STATE(770), 2, sym_attribute, sym_subscript, - STATE(1098), 2, + STATE(1095), 2, sym_list_splat, sym_parenthesized_list_splat, ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(855), 3, + STATE(853), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -23574,14 +23596,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 15, + STATE(649), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -23597,7 +23619,382 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [241] = 23, + [241] = 31, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(639), 1, + sym_identifier, + ACTIONS(641), 1, + anon_sym_LPAREN, + ACTIONS(645), 1, + anon_sym_STAR, + ACTIONS(649), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(657), 1, + anon_sym_await, + ACTIONS(659), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(930), 1, + sym_expression, + STATE(1177), 1, + sym_pattern, + STATE(1218), 1, + sym_yield, + STATE(1303), 1, + sym_parenthesized_list_splat, + STATE(1304), 1, + sym_list_splat, + STATE(1416), 1, + sym__patterns, + STATE(1480), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(770), 2, + sym_attribute, + sym_subscript, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(647), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [367] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(639), 1, + sym_identifier, + ACTIONS(641), 1, + anon_sym_LPAREN, + ACTIONS(645), 1, + anon_sym_STAR, + ACTIONS(649), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(657), 1, + anon_sym_await, + ACTIONS(661), 1, + anon_sym_RBRACK, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(908), 1, + sym_expression, + STATE(1177), 1, + sym_pattern, + STATE(1434), 1, + sym__patterns, + STATE(1438), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(770), 2, + sym_attribute, + sym_subscript, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + STATE(1095), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(647), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [489] = 30, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(639), 1, + sym_identifier, + ACTIONS(641), 1, + anon_sym_LPAREN, + ACTIONS(645), 1, + anon_sym_STAR, + ACTIONS(649), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(657), 1, + anon_sym_await, + ACTIONS(663), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(930), 1, + sym_expression, + STATE(1177), 1, + sym_pattern, + STATE(1218), 1, + sym_yield, + STATE(1416), 1, + sym__patterns, + STATE(1480), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(770), 2, + sym_attribute, + sym_subscript, + STATE(1095), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(647), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [613] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(639), 1, + sym_identifier, + ACTIONS(641), 1, + anon_sym_LPAREN, + ACTIONS(645), 1, + anon_sym_STAR, + ACTIONS(649), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(657), 1, + anon_sym_await, + ACTIONS(665), 1, + anon_sym_RBRACK, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(912), 1, + sym_expression, + STATE(1177), 1, + sym_pattern, + STATE(1390), 1, + sym__collection_elements, + STATE(1434), 1, + sym__patterns, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(770), 2, + sym_attribute, + sym_subscript, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + STATE(1095), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(647), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [735] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -23608,25 +24005,25 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(659), 1, + ACTIONS(667), 1, sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(663), 1, - anon_sym_STAR, ACTIONS(669), 1, - anon_sym_in, + anon_sym_LPAREN, ACTIONS(671), 1, + anon_sym_STAR, + ACTIONS(677), 1, + anon_sym_in, + ACTIONS(679), 1, anon_sym_LBRACK, - ACTIONS(673), 1, + ACTIONS(681), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(849), 1, + STATE(570), 1, + sym_template_string, + STATE(854), 1, sym_pattern, - STATE(861), 1, + STATE(862), 1, sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, @@ -23634,10 +24031,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(589), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(742), 2, + STATE(735), 2, sym_attribute, sym_subscript, - STATE(855), 3, + STATE(853), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -23646,13 +24043,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(665), 5, + ACTIONS(673), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - ACTIONS(667), 15, + ACTIONS(675), 15, anon_sym_COLON, anon_sym_EQ, anon_sym_PLUS_EQ, @@ -23668,7 +24065,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - STATE(658), 15, + STATE(649), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -23684,7 +24081,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [351] = 30, + [845] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -23709,293 +24106,104 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_yield, ACTIONS(657), 1, anon_sym_await, - ACTIONS(675), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(928), 1, - sym_expression, - STATE(1123), 1, - sym_pattern, - STATE(1224), 1, - sym_yield, - STATE(1403), 1, - sym__collection_elements, - STATE(1410), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(769), 2, - sym_attribute, - sym_subscript, - STATE(1098), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(647), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [475] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(639), 1, - sym_identifier, - ACTIONS(641), 1, - anon_sym_LPAREN, - ACTIONS(645), 1, - anon_sym_STAR, - ACTIONS(649), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(657), 1, - anon_sym_await, - ACTIONS(677), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(916), 1, - sym_expression, - STATE(1123), 1, - sym_pattern, - STATE(1407), 1, - sym__collection_elements, - STATE(1451), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(769), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - STATE(1098), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(647), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [597] = 31, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(639), 1, - sym_identifier, - ACTIONS(641), 1, - anon_sym_LPAREN, - ACTIONS(645), 1, - anon_sym_STAR, - ACTIONS(649), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(657), 1, - anon_sym_await, - ACTIONS(679), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(932), 1, - sym_expression, - STATE(1123), 1, - sym_pattern, - STATE(1220), 1, - sym_yield, - STATE(1297), 1, - sym_parenthesized_list_splat, - STATE(1298), 1, - sym_list_splat, - STATE(1409), 1, - sym__collection_elements, - STATE(1410), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(769), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(647), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [723] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(296), 1, - anon_sym_TILDE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(663), 1, - anon_sym_STAR, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, ACTIONS(683), 1, - anon_sym_in, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + anon_sym_RBRACK, + STATE(569), 1, sym_string, - STATE(849), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(912), 1, + sym_expression, + STATE(1177), 1, sym_pattern, - STATE(861), 1, + STATE(1390), 1, + sym__collection_elements, + STATE(1434), 1, + sym__patterns, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(770), 2, + sym_attribute, + sym_subscript, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + STATE(1095), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(647), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [967] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(296), 1, + anon_sym_TILDE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(671), 1, + anon_sym_STAR, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(687), 1, + anon_sym_in, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(854), 1, + sym_pattern, + STATE(862), 1, sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, @@ -24003,10 +24211,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(589), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(742), 2, + STATE(735), 2, sym_attribute, sym_subscript, - STATE(855), 3, + STATE(853), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -24015,13 +24223,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(665), 5, + ACTIONS(673), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - ACTIONS(681), 15, + ACTIONS(685), 15, anon_sym_COLON, anon_sym_EQ, anon_sym_PLUS_EQ, @@ -24037,7 +24245,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - STATE(658), 15, + STATE(649), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24053,62 +24261,59 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [833] = 29, + [1077] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, ACTIONS(288), 1, anon_sym_LBRACE, ACTIONS(310), 1, sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(639), 1, - sym_identifier, - ACTIONS(641), 1, - anon_sym_LPAREN, - ACTIONS(645), 1, - anon_sym_STAR, - ACTIONS(649), 1, + ACTIONS(603), 1, anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, ACTIONS(651), 1, anon_sym_not, ACTIONS(653), 1, anon_sym_lambda, ACTIONS(655), 1, anon_sym_yield, - ACTIONS(657), 1, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(693), 1, + anon_sym_COMMA, + ACTIONS(697), 1, + anon_sym_RBRACE, + ACTIONS(699), 1, anon_sym_await, - ACTIONS(685), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(916), 1, + STATE(905), 1, sym_expression, - STATE(1123), 1, - sym_pattern, - STATE(1407), 1, + STATE(1017), 1, + sym_pair, + STATE(1259), 1, + sym_dictionary_splat, + STATE(1456), 1, sym__collection_elements, - STATE(1451), 1, - sym__patterns, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(769), 2, - sym_attribute, - sym_subscript, ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - STATE(1098), 3, + STATE(1095), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -24117,115 +24322,24 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(647), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 15, + STATE(649), 17, sym_binary_operator, sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [955] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(639), 1, - sym_identifier, - ACTIONS(641), 1, - anon_sym_LPAREN, - ACTIONS(645), 1, - anon_sym_STAR, - ACTIONS(649), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(657), 1, - anon_sym_await, - ACTIONS(687), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(911), 1, - sym_expression, - STATE(1123), 1, - sym_pattern, - STATE(1451), 1, - sym__patterns, - STATE(1455), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(769), 2, sym_attribute, sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - STATE(1098), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(647), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, sym_call, sym_list, sym_set, @@ -24239,7 +24353,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [1077] = 24, + [1198] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -24264,18 +24378,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(925), 1, + STATE(931), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1002), 2, + STATE(1010), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(296), 3, @@ -24293,14 +24407,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - ACTIONS(689), 7, + ACTIONS(701), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -24308,99 +24422,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1188] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(695), 1, - anon_sym_COMMA, - ACTIONS(699), 1, - anon_sym_RBRACE, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(899), 1, - sym_expression, - STATE(1027), 1, - sym_pair, - STATE(1239), 1, - sym_dictionary_splat, - STATE(1382), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1098), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -24443,18 +24465,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(925), 1, + STATE(931), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1002), 2, + STATE(1010), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(296), 3, @@ -24472,7 +24494,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, @@ -24487,7 +24509,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -24526,29 +24548,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(655), 1, anon_sym_yield, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(693), 1, + ACTIONS(691), 1, anon_sym_LPAREN, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, ACTIONS(705), 1, anon_sym_COMMA, ACTIONS(707), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(901), 1, + STATE(887), 1, sym_expression, - STATE(1015), 1, + STATE(1006), 1, sym_pair, - STATE(1225), 1, + STATE(1215), 1, sym_dictionary_splat, - STATE(1404), 1, + STATE(1396), 1, sym__collection_elements, ACTIONS(304), 2, sym_ellipsis, @@ -24557,7 +24579,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1098), 3, + STATE(1095), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -24566,20 +24588,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -24622,18 +24644,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(925), 1, + STATE(931), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1002), 2, + STATE(1010), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(296), 3, @@ -24651,14 +24673,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - ACTIONS(689), 7, + ACTIONS(703), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -24666,7 +24688,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -24705,29 +24727,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(655), 1, anon_sym_yield, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(693), 1, + ACTIONS(691), 1, anon_sym_LPAREN, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, ACTIONS(709), 1, anon_sym_COMMA, ACTIONS(711), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(882), 1, + STATE(886), 1, sym_expression, - STATE(1001), 1, + STATE(1025), 1, sym_pair, - STATE(1253), 1, + STATE(1225), 1, sym_dictionary_splat, - STATE(1462), 1, + STATE(1387), 1, sym__collection_elements, ACTIONS(304), 2, sym_ellipsis, @@ -24736,7 +24758,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1098), 3, + STATE(1095), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -24745,20 +24767,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -24801,13 +24823,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1020), 1, + STATE(992), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -24820,7 +24842,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1132), 3, + STATE(1118), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -24835,14 +24857,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -24861,138 +24883,52 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_template_string, sym_await, [1881] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(719), 1, - anon_sym_from, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(956), 1, - sym_expression, - STATE(1258), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(721), 2, - sym__newline, - sym__semicolon, - STATE(1329), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1993] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, anon_sym_STAR_STAR, ACTIONS(288), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, ACTIONS(310), 1, sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(603), 1, anon_sym_LBRACK, ACTIONS(635), 1, anon_sym_STAR, - ACTIONS(637), 1, + ACTIONS(651), 1, anon_sym_not, - ACTIONS(713), 1, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(691), 1, anon_sym_LPAREN, - ACTIONS(723), 1, + ACTIONS(719), 1, sym_identifier, - ACTIONS(725), 1, + ACTIONS(721), 1, anon_sym_RPAREN, - ACTIONS(727), 1, + ACTIONS(723), 1, anon_sym_COMMA, - ACTIONS(731), 1, + ACTIONS(727), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(1055), 1, + STATE(911), 1, sym_expression, - STATE(1255), 1, + STATE(1261), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1254), 3, + STATE(1260), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -25001,20 +24937,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(725), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25032,91 +24968,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2105] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1020), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(733), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1132), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2213] = 27, + [1993] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -25133,34 +24985,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(655), 1, anon_sym_yield, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(693), 1, + ACTIONS(691), 1, anon_sym_LPAREN, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, ACTIONS(717), 1, anon_sym_STAR, - ACTIONS(735), 1, + ACTIONS(729), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(883), 1, + STATE(903), 1, sym_expression, - STATE(1243), 1, + STATE(1220), 1, sym_yield, - STATE(1268), 1, + STATE(1274), 1, sym_with_item, - STATE(1416), 1, + STATE(1391), 1, sym__collection_elements, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1098), 2, + STATE(1095), 2, sym_list_splat, sym_parenthesized_list_splat, ACTIONS(601), 3, @@ -25172,20 +25024,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25203,179 +25055,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2327] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(737), 1, - sym_identifier, - ACTIONS(739), 1, - anon_sym_RPAREN, - ACTIONS(741), 1, - anon_sym_COMMA, - ACTIONS(745), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(912), 1, - sym_expression, - STATE(1231), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1232), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(743), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2439] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(737), 1, - sym_identifier, - ACTIONS(745), 1, - anon_sym_await, - ACTIONS(747), 1, - anon_sym_RPAREN, - ACTIONS(749), 1, - anon_sym_COMMA, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(910), 1, - sym_expression, - STATE(1259), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1256), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(743), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2551] = 24, + [2107] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -25400,13 +25080,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1020), 1, + STATE(992), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -25419,7 +25099,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(1132), 3, + STATE(1118), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -25434,14 +25114,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25459,7 +25139,93 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2659] = 25, + [2215] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(721), 1, + anon_sym_RPAREN, + ACTIONS(723), 1, + anon_sym_COMMA, + ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1060), 1, + sym_expression, + STATE(1261), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1260), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(733), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2327] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -25486,25 +25252,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(655), 1, anon_sym_yield, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(942), 1, + STATE(940), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1365), 2, + STATE(1375), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1092), 3, + STATE(1076), 3, sym_expression_list, sym_yield, sym__f_expression, @@ -25519,14 +25285,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25544,7 +25310,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [2769] = 25, + [2437] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -25571,25 +25337,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(655), 1, anon_sym_yield, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(942), 1, + STATE(940), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1365), 2, + STATE(1375), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1080), 3, + STATE(1088), 3, sym_expression_list, sym_yield, sym__f_expression, @@ -25604,14 +25370,270 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2547] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(719), 1, + sym_identifier, + ACTIONS(727), 1, + anon_sym_await, + ACTIONS(737), 1, + anon_sym_RPAREN, + ACTIONS(739), 1, + anon_sym_COMMA, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(933), 1, + sym_expression, + STATE(1204), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1205), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(725), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2659] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(719), 1, + sym_identifier, + ACTIONS(727), 1, + anon_sym_await, + ACTIONS(741), 1, + anon_sym_RPAREN, + ACTIONS(743), 1, + anon_sym_COMMA, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(909), 1, + sym_expression, + STATE(1230), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1223), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(725), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2771] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(992), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(745), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1118), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25632,72 +25654,72 @@ static const uint16_t ts_small_parse_table[] = { [2879] = 26, ACTIONS(3), 1, sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, ACTIONS(53), 1, anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(83), 1, sym__template_string_start, - ACTIONS(603), 1, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, anon_sym_LBRACK, ACTIONS(635), 1, anon_sym_STAR, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(725), 1, - anon_sym_RPAREN, - ACTIONS(727), 1, - anon_sym_COMMA, - ACTIONS(737), 1, - sym_identifier, - ACTIONS(745), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + ACTIONS(747), 1, + anon_sym_from, + STATE(698), 1, sym_string, - STATE(648), 1, + STATE(700), 1, + sym_template_string, + STATE(702), 1, sym_primary_expression, - STATE(913), 1, + STATE(989), 1, sym_expression, - STATE(1255), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, + STATE(1228), 1, + sym_expression_list, + ACTIONS(75), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(749), 2, + sym__newline, + sym__semicolon, + STATE(1328), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(47), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1254), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, + ACTIONS(77), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(743), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25730,9 +25752,9 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(83), 1, sym__template_string_start, - ACTIONS(380), 1, + ACTIONS(488), 1, sym_identifier, - ACTIONS(386), 1, + ACTIONS(494), 1, anon_sym_await, ACTIONS(568), 1, anon_sym_LPAREN, @@ -25742,15 +25764,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(751), 1, anon_sym_from, - STATE(697), 1, - sym_primary_expression, STATE(698), 1, sym_string, - STATE(699), 1, + STATE(700), 1, sym_template_string, - STATE(1031), 1, + STATE(702), 1, + sym_primary_expression, + STATE(1030), 1, sym_expression, - STATE(1324), 1, + STATE(1330), 1, sym_expression_list, ACTIONS(75), 2, sym_ellipsis, @@ -25758,7 +25780,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(633), 2, sym__newline, sym__semicolon, - STATE(1329), 2, + STATE(1328), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(47), 3, @@ -25770,20 +25792,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25822,21 +25844,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, ACTIONS(753), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -25845,7 +25867,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -25854,20 +25876,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25906,21 +25928,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, ACTIONS(755), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -25929,7 +25951,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -25938,20 +25960,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -25969,596 +25991,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [3321] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(757), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(916), 1, - sym_expression, - STATE(1407), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1098), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3430] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(759), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(932), 1, - sym_expression, - STATE(1220), 1, - sym_yield, - STATE(1409), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1098), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3541] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(761), 1, - anon_sym_from, - ACTIONS(763), 1, - anon_sym_STAR, - ACTIONS(765), 1, - anon_sym_STAR_STAR, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(997), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(689), 2, - sym__newline, - sym__semicolon, - STATE(1147), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3650] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, - ACTIONS(731), 1, - anon_sym_await, - ACTIONS(767), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1072), 1, - sym_expression, - STATE(1314), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1326), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(729), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3759] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(761), 1, - anon_sym_from, - ACTIONS(763), 1, - anon_sym_STAR, - ACTIONS(765), 1, - anon_sym_STAR_STAR, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(997), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(689), 2, - sym__newline, - sym__semicolon, - STATE(1147), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3868] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(763), 1, - anon_sym_STAR, - ACTIONS(765), 1, - anon_sym_STAR_STAR, - ACTIONS(769), 1, - anon_sym_from, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(997), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(703), 2, - sym__newline, - sym__semicolon, - STATE(1147), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3977] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, - ACTIONS(731), 1, - anon_sym_await, - ACTIONS(771), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1072), 1, - sym_expression, - STATE(1314), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1326), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(729), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4086] = 23, + [3321] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -26573,35 +26006,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(651), 1, anon_sym_not, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - ACTIONS(777), 1, + ACTIONS(761), 1, anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(941), 1, + STATE(945), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1013), 2, + STATE(1020), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(773), 3, + ACTIONS(757), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - ACTIONS(775), 3, + ACTIONS(759), 3, anon_sym_if, anon_sym_async, anon_sym_for, @@ -26610,19 +26043,19 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 4, + ACTIONS(695), 4, anon_sym_print, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -26640,7 +26073,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4191] = 25, + [3426] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -26661,391 +26094,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, - anon_sym_await, - ACTIONS(779), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1072), 1, - sym_expression, - STATE(1314), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1326), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(729), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4300] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(723), 1, sym_identifier, - ACTIONS(731), 1, - anon_sym_await, - ACTIONS(781), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1072), 1, - sym_expression, - STATE(1314), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1326), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(729), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4409] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(783), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(928), 1, - sym_expression, - STATE(1224), 1, - sym_yield, - STATE(1403), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1098), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4520] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(785), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(911), 1, - sym_expression, - STATE(1455), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1098), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4629] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, ACTIONS(735), 1, + anon_sym_await, + ACTIONS(763), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(932), 1, + STATE(1102), 1, sym_expression, - STATE(1220), 1, - sym_yield, - STATE(1297), 1, + STATE(1368), 1, sym_parenthesized_list_splat, - STATE(1298), 1, - sym_list_splat, - STATE(1409), 1, - sym__collection_elements, ACTIONS(304), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, + STATE(1310), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, ACTIONS(306), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27063,7 +26157,764 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4742] = 23, + [3535] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, + anon_sym_await, + ACTIONS(765), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1102), 1, + sym_expression, + STATE(1368), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1310), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(733), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3644] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, + anon_sym_await, + ACTIONS(767), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1102), 1, + sym_expression, + STATE(1368), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1310), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(733), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3753] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, + anon_sym_await, + ACTIONS(769), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1102), 1, + sym_expression, + STATE(1368), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1310), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(733), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3862] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1031), 1, + sym_expression, + STATE(1377), 1, + sym_expression_list, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(771), 2, + sym__newline, + sym__semicolon, + STATE(1328), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3971] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, + anon_sym_await, + ACTIONS(773), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1102), 1, + sym_expression, + STATE(1368), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1310), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(733), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4080] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(775), 1, + anon_sym_from, + ACTIONS(777), 1, + anon_sym_STAR, + ACTIONS(779), 1, + anon_sym_STAR_STAR, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1002), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(703), 2, + sym__newline, + sym__semicolon, + STATE(1168), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4189] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(781), 1, + anon_sym_RBRACK, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(912), 1, + sym_expression, + STATE(1390), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1095), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4298] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(775), 1, + anon_sym_from, + ACTIONS(777), 1, + anon_sym_STAR, + ACTIONS(779), 1, + anon_sym_STAR_STAR, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1002), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(703), 2, + sym__newline, + sym__semicolon, + STATE(1168), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4407] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(729), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(930), 1, + sym_expression, + STATE(1218), 1, + sym_yield, + STATE(1480), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1095), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4518] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -27078,24 +26929,106 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(651), 1, anon_sym_not, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - ACTIONS(777), 1, + ACTIONS(761), 1, anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(941), 1, + STATE(945), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1013), 2, + STATE(1020), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(783), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(785), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 4, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4623] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(761), 1, + anon_sym_lambda, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(945), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1020), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(601), 3, @@ -27115,19 +27048,19 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 4, + ACTIONS(695), 4, anon_sym_print, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27145,176 +27078,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [4847] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(791), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(915), 1, - sym_expression, - STATE(1440), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1098), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4956] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(735), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(924), 1, - sym_expression, - STATE(1243), 1, - sym_yield, - STATE(1416), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1098), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5067] = 25, + [4728] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -27335,21 +27099,105 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, + anon_sym_await, + ACTIONS(791), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1102), 1, + sym_expression, + STATE(1368), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1310), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(733), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4837] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, ACTIONS(793), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -27358,7 +27206,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -27367,20 +27215,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27398,175 +27246,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5176] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, - ACTIONS(731), 1, - anon_sym_await, - ACTIONS(795), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1072), 1, - sym_expression, - STATE(1314), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1326), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(729), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5285] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1028), 1, - sym_expression, - STATE(1375), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(797), 2, - sym__newline, - sym__semicolon, - STATE(1329), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5394] = 23, + [4946] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -27581,35 +27261,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(651), 1, anon_sym_not, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - ACTIONS(777), 1, + ACTIONS(761), 1, anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(941), 1, + STATE(945), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1013), 2, + STATE(1020), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(799), 3, + ACTIONS(795), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - ACTIONS(801), 3, + ACTIONS(797), 3, anon_sym_if, anon_sym_async, anon_sym_for, @@ -27618,19 +27298,19 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 4, + ACTIONS(695), 4, anon_sym_print, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27648,7 +27328,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5499] = 25, + [5051] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -27669,21 +27349,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, - ACTIONS(803), 1, + ACTIONS(799), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -27692,7 +27372,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -27701,20 +27381,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27732,7 +27412,91 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5608] = 25, + [5160] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, + anon_sym_await, + ACTIONS(801), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1102), 1, + sym_expression, + STATE(1368), 1, + sym_parenthesized_list_splat, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1310), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(733), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5269] = 27, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -27749,25 +27513,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(655), 1, anon_sym_yield, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(693), 1, + ACTIONS(691), 1, anon_sym_LPAREN, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, ACTIONS(717), 1, anon_sym_STAR, - ACTIONS(791), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + ACTIONS(803), 1, + anon_sym_RPAREN, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(916), 1, + STATE(930), 1, sym_expression, - STATE(1407), 1, + STATE(1218), 1, + sym_yield, + STATE(1303), 1, + sym_parenthesized_list_splat, + STATE(1304), 1, + sym_list_splat, + STATE(1480), 1, sym__collection_elements, ACTIONS(304), 2, sym_ellipsis, @@ -27776,29 +27546,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1098), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, ACTIONS(306), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27816,7 +27582,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5717] = 25, + [5382] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -27837,21 +27603,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, ACTIONS(805), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -27860,7 +27626,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -27869,20 +27635,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27900,73 +27666,73 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5826] = 25, + [5491] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, ACTIONS(288), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, ACTIONS(310), 1, sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(603), 1, anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, + ACTIONS(651), 1, anon_sym_not, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(723), 1, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, sym_identifier, - ACTIONS(731), 1, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, ACTIONS(807), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + anon_sym_RBRACK, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(1072), 1, + STATE(908), 1, sym_expression, - STATE(1314), 1, - sym_parenthesized_list_splat, + STATE(1438), 1, + sym__collection_elements, ACTIONS(304), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1095), 3, sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(306), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -27984,7 +27750,176 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [5935] = 25, + [5600] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(729), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(921), 1, + sym_expression, + STATE(1220), 1, + sym_yield, + STATE(1391), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1095), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5711] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(781), 1, + anon_sym_RBRACK, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(928), 1, + sym_expression, + STATE(1393), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1095), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5820] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -28005,21 +27940,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, ACTIONS(809), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -28028,7 +27963,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -28037,20 +27972,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28068,7 +28003,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [6044] = 26, + [5929] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -28085,225 +28020,312 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(655), 1, anon_sym_yield, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(693), 1, + ACTIONS(691), 1, anon_sym_LPAREN, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, ACTIONS(717), 1, anon_sym_STAR, - ACTIONS(735), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(932), 1, - sym_expression, - STATE(1220), 1, - sym_yield, - STATE(1409), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1098), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6155] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(693), 1, - anon_sym_LPAREN, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(759), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(932), 1, - sym_expression, - STATE(1220), 1, - sym_yield, - STATE(1297), 1, - sym_parenthesized_list_splat, - STATE(1298), 1, - sym_list_splat, - STATE(1409), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6268] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(777), 1, - anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(941), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1013), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(811), 3, - anon_sym_RPAREN, + ACTIONS(811), 1, anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(813), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(912), 1, + sym_expression, + STATE(1390), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1095), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(306), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(697), 4, + ACTIONS(695), 5, anon_sym_print, + anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6038] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(813), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(935), 1, + sym_expression, + STATE(1197), 1, + sym_yield, + STATE(1409), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1095), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6149] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(803), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(930), 1, + sym_expression, + STATE(1218), 1, + sym_yield, + STATE(1480), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1095), 2, + sym_list_splat, + sym_parenthesized_list_splat, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6260] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(691), 1, + anon_sym_LPAREN, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(729), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(930), 1, + sym_expression, + STATE(1218), 1, + sym_yield, + STATE(1303), 1, + sym_parenthesized_list_splat, + STATE(1304), 1, + sym_list_splat, + STATE(1480), 1, + sym__collection_elements, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28342,21 +28364,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, ACTIONS(815), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -28365,7 +28387,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -28374,20 +28396,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28408,70 +28430,70 @@ static const uint16_t ts_small_parse_table[] = { [6482] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, + ACTIONS(51), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, + ACTIONS(69), 1, anon_sym_not, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(723), 1, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, sym_identifier, - ACTIONS(731), 1, + ACTIONS(494), 1, anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(777), 1, + anon_sym_STAR, + ACTIONS(779), 1, + anon_sym_STAR_STAR, ACTIONS(817), 1, - anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + anon_sym_from, + STATE(698), 1, sym_string, - STATE(634), 1, + STATE(700), 1, + sym_template_string, + STATE(702), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1002), 1, sym_expression, - STATE(1314), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, + ACTIONS(75), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(701), 2, + sym__newline, + sym__semicolon, + STATE(1168), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(47), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, + ACTIONS(77), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28510,21 +28532,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, ACTIONS(819), 1, anon_sym_RPAREN, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -28533,7 +28555,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -28542,20 +28564,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28594,19 +28616,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(713), 1, anon_sym_LPAREN, - ACTIONS(723), 1, - sym_identifier, ACTIONS(731), 1, + sym_identifier, + ACTIONS(735), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1072), 1, + STATE(1102), 1, sym_expression, - STATE(1314), 1, + STATE(1368), 1, sym_parenthesized_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -28615,7 +28637,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1326), 3, + STATE(1310), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, @@ -28624,20 +28646,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(729), 5, + ACTIONS(733), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28670,25 +28692,25 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(312), 1, sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, ACTIONS(591), 1, anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(715), 1, - anon_sym_RPAREN, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + ACTIONS(821), 1, + anon_sym_COLON, + ACTIONS(823), 1, + anon_sym_RBRACK, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1020), 1, + STATE(1042), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -28697,10 +28719,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1132), 3, + STATE(1371), 3, sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, + sym__index_expression, + sym_slice, ACTIONS(306), 4, sym_integer, sym_true, @@ -28712,14 +28734,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28762,16 +28784,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(821), 1, anon_sym_COLON, - ACTIONS(823), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(1042), 1, sym_expression, + STATE(1454), 1, + sym_index_expression_list, ACTIONS(304), 2, sym_ellipsis, sym_float, @@ -28779,7 +28801,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1373), 3, + STATE(1243), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -28794,14 +28816,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -28820,88 +28842,6 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_template_string, sym_await, [7018] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(655), 1, - anon_sym_yield, - ACTIONS(713), 1, - anon_sym_LPAREN, - ACTIONS(715), 1, - anon_sym_RPAREN, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1020), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1132), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7124] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -28926,97 +28866,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(821), 1, anon_sym_COLON, - ACTIONS(825), 1, - anon_sym_RBRACK, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(1042), 1, sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1373), 3, - sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7230] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - ACTIONS(821), 1, - anon_sym_COLON, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1042), 1, - sym_expression, - STATE(1425), 1, + STATE(1407), 1, sym_index_expression_list, ACTIONS(304), 2, sym_ellipsis, @@ -29025,7 +28883,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1257), 3, + STATE(1203), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -29040,14 +28898,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29065,7 +28923,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7336] = 18, + [7124] = 18, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -29080,11 +28938,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(595), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(671), 1, + STATE(570), 1, + sym_template_string, + STATE(669), 1, sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, @@ -29097,7 +28955,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(827), 3, + ACTIONS(825), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -29123,7 +28981,171 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - STATE(658), 17, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7218] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(715), 1, + anon_sym_RPAREN, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(992), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1118), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7324] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + ACTIONS(821), 1, + anon_sym_COLON, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1042), 1, + sym_expression, + STATE(1469), 1, + sym_index_expression_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1263), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29156,26 +29178,26 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, ACTIONS(591), 1, anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, + ACTIONS(655), 1, + anon_sym_yield, + ACTIONS(713), 1, + anon_sym_LPAREN, + ACTIONS(715), 1, + anon_sym_RPAREN, ACTIONS(717), 1, anon_sym_STAR, - ACTIONS(821), 1, - anon_sym_COLON, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1042), 1, + STATE(992), 1, sym_expression, - STATE(1400), 1, - sym_index_expression_list, ACTIONS(304), 2, sym_ellipsis, sym_float, @@ -29183,10 +29205,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1227), 3, + STATE(1118), 3, sym_list_splat, - sym__index_expression, - sym_slice, + sym_parenthesized_list_splat, + sym_yield, ACTIONS(306), 4, sym_integer, sym_true, @@ -29198,14 +29220,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29248,16 +29270,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(821), 1, anon_sym_COLON, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + ACTIONS(827), 1, + anon_sym_RBRACK, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(1042), 1, sym_expression, - STATE(1432), 1, - sym_index_expression_list, ACTIONS(304), 2, sym_ellipsis, sym_float, @@ -29265,7 +29287,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1265), 3, + STATE(1371), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -29280,14 +29302,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29330,20 +29352,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1037), 1, + STATE(1055), 1, sym_expression, - STATE(1413), 1, + STATE(1453), 1, sym_expression_list, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1365), 2, + STATE(1375), 2, sym_list_splat, sym_dictionary_splat, ACTIONS(296), 3, @@ -29361,14 +29383,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29386,7 +29408,169 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [7747] = 23, + [7747] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1065), 1, + sym_expression, + STATE(1490), 1, + sym_expression_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1375), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7852] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1040), 1, + sym_expression, + STATE(1446), 1, + sym_expression_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1375), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7957] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -29411,13 +29595,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1020), 1, + STATE(992), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -29426,7 +29610,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1132), 3, + STATE(1118), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, @@ -29441,176 +29625,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7850] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1049), 1, - sym_expression, - STATE(1447), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1365), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7955] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1024), 1, - sym_expression, - STATE(1344), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - STATE(1329), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29631,67 +29653,67 @@ static const uint16_t ts_small_parse_table[] = { [8060] = 24, ACTIONS(3), 1, sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, ACTIONS(53), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(81), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(83), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(574), 1, anon_sym_LBRACK, ACTIONS(635), 1, anon_sym_STAR, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(698), 1, sym_string, - STATE(634), 1, + STATE(700), 1, + sym_template_string, + STATE(702), 1, sym_primary_expression, - STATE(1063), 1, + STATE(1005), 1, sym_expression, - STATE(1501), 1, + STATE(1380), 1, sym_expression_list, - ACTIONS(304), 2, + ACTIONS(75), 2, sym_ellipsis, sym_float, - STATE(1365), 2, + STATE(1328), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(47), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(77), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29709,88 +29731,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8165] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1048), 1, - sym_expression, - STATE(1378), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1365), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8270] = 23, + [8165] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -29815,11 +29756,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(821), 1, anon_sym_COLON, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(1042), 1, sym_expression, @@ -29830,7 +29771,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1373), 3, + STATE(1371), 3, sym_list_splat, sym__index_expression, sym_slice, @@ -29845,14 +29786,95 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8268] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_STAR_STAR, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1050), 1, + sym_expression, + STATE(1437), 1, + sym_expression_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1375), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29895,18 +29917,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(829), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -29924,14 +29946,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -29974,18 +29996,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(831), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -30003,14 +30025,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30031,65 +30053,65 @@ static const uint16_t ts_small_parse_table[] = { [8577] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(51), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(635), 1, - anon_sym_STAR, - ACTIONS(637), 1, + ACTIONS(69), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(777), 1, + anon_sym_STAR, + ACTIONS(779), 1, + anon_sym_STAR_STAR, + STATE(698), 1, sym_string, - STATE(634), 1, + STATE(700), 1, + sym_template_string, + STATE(702), 1, sym_primary_expression, - STATE(925), 1, + STATE(1002), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(75), 2, sym_ellipsis, sym_float, - STATE(1002), 2, + STATE(1168), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(47), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(77), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30132,18 +30154,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(833), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -30161,14 +30183,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30211,18 +30233,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(835), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -30240,14 +30262,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30290,18 +30312,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(837), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -30319,14 +30341,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30347,65 +30369,65 @@ static const uint16_t ts_small_parse_table[] = { [8985] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(763), 1, - anon_sym_STAR, - ACTIONS(765), 1, + ACTIONS(53), 1, anon_sym_STAR_STAR, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(839), 1, + anon_sym_RBRACE, + STATE(569), 1, sym_string, - STATE(699), 1, + STATE(570), 1, sym_template_string, - STATE(997), 1, + STATE(652), 1, + sym_primary_expression, + STATE(1112), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1147), 2, - sym_list_splat, + STATE(1378), 2, sym_dictionary_splat, - ACTIONS(47), 3, + sym_pair, + ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(306), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(276), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30444,24 +30466,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(591), 1, anon_sym_LBRACK, + ACTIONS(635), 1, + anon_sym_STAR, ACTIONS(637), 1, anon_sym_not, - ACTIONS(839), 1, - anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(931), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1010), 2, + sym_list_splat, sym_dictionary_splat, - sym_pair, ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, @@ -30477,14 +30499,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30527,18 +30549,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(841), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -30556,14 +30578,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30606,18 +30628,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(843), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -30635,14 +30657,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30685,18 +30707,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(845), 1, anon_sym_RBRACE, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -30714,14 +30736,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30739,85 +30761,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9495] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1007), 1, - sym_expression, - STATE(1162), 1, - sym_list_splat, - STATE(1452), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9596] = 9, + [9495] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(851), 1, @@ -30826,17 +30770,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_except, ACTIONS(855), 1, anon_sym_finally, - STATE(432), 1, + STATE(445), 1, sym_else_clause, - STATE(556), 1, + STATE(520), 1, sym_finally_clause, - STATE(303), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(849), 13, - sym__dedent, + STATE(308), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(847), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -30847,7 +30791,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(847), 33, + ACTIONS(849), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -30881,6 +30825,84 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, + [9568] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1022), 1, + sym_expression, + STATE(1117), 1, + sym_list_splat, + STATE(1459), 1, + sym_type, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, [9669] = 23, ACTIONS(3), 1, sym_comment, @@ -30904,17 +30926,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1007), 1, + STATE(1022), 1, sym_expression, - STATE(1162), 1, + STATE(1117), 1, sym_list_splat, - STATE(1437), 1, + STATE(1466), 1, sym_type, ACTIONS(304), 2, sym_ellipsis, @@ -30934,14 +30956,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30959,74 +30981,165 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9770] = 9, + [9770] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(863), 1, - anon_sym_except, - ACTIONS(865), 1, - anon_sym_finally, - STATE(418), 1, - sym_else_clause, - STATE(560), 1, - sym_finally_clause, - STATE(301), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(857), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1022), 1, + sym_expression, + STATE(1117), 1, + sym_list_splat, + STATE(1415), 1, + sym_type, + ACTIONS(304), 2, sym_ellipsis, sym_float, - ACTIONS(859), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, sym_integer, - sym_identifier, - anon_sym_await, sym_true, sym_false, sym_none, - [9843] = 3, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9871] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(869), 17, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(859), 1, + anon_sym_COLON, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1049), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(857), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9970] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(863), 17, anon_sym_as, anon_sym_STAR, anon_sym_GT_GT, @@ -31044,7 +31157,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(867), 36, + ACTIONS(861), 36, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -31081,23 +31194,392 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET_EQ, anon_sym_PIPE_EQ, sym_type_conversion, - [9904] = 9, + [10031] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(851), 1, + ACTIONS(867), 17, + anon_sym_as, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(865), 36, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, anon_sym_else, - ACTIONS(855), 1, - anon_sym_finally, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + sym_type_conversion, + [10092] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, ACTIONS(871), 1, + anon_sym_COLON, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1071), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(869), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10191] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1022), 1, + sym_expression, + STATE(1117), 1, + sym_list_splat, + STATE(1465), 1, + sym_type, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10292] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1022), 1, + sym_expression, + STATE(1117), 1, + sym_list_splat, + STATE(1450), 1, + sym_type, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10393] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1022), 1, + sym_expression, + STATE(1117), 1, + sym_list_splat, + STATE(1282), 1, + sym_type, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10494] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(877), 1, + anon_sym_else, + ACTIONS(879), 1, anon_sym_except, - STATE(432), 1, + ACTIONS(881), 1, + anon_sym_finally, + STATE(431), 1, sym_else_clause, - STATE(556), 1, + STATE(498), 1, sym_finally_clause, - STATE(298), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(849), 13, + STATE(293), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(875), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -31111,7 +31593,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(847), 33, + ACTIONS(873), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -31145,7 +31627,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [9977] = 23, + [10567] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -31168,17 +31650,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1007), 1, + STATE(1022), 1, sym_expression, - STATE(1162), 1, + STATE(1117), 1, sym_list_splat, - STATE(1457), 1, + STATE(1121), 1, sym_type, ACTIONS(304), 2, sym_ellipsis, @@ -31198,14 +31680,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31223,770 +31705,26 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [10078] = 3, + [10668] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(875), 17, - anon_sym_as, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(873), 36, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - sym_type_conversion, - [10139] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1007), 1, - sym_expression, - STATE(1162), 1, - sym_list_splat, - STATE(1458), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10240] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(865), 1, - anon_sym_finally, ACTIONS(877), 1, - anon_sym_except, - STATE(418), 1, - sym_else_clause, - STATE(560), 1, - sym_finally_clause, - STATE(305), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(857), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(859), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [10313] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, + anon_sym_else, ACTIONS(881), 1, - anon_sym_COLON, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1061), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(879), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10412] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1007), 1, - sym_expression, - STATE(1162), 1, - sym_list_splat, - STATE(1460), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10513] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1007), 1, - sym_expression, - STATE(1162), 1, - sym_list_splat, - STATE(1442), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10614] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1007), 1, - sym_expression, - STATE(1162), 1, - sym_list_splat, - STATE(1273), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10715] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1007), 1, - sym_expression, - STATE(1151), 1, - sym_type, - STATE(1162), 1, - sym_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10816] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(885), 1, - anon_sym_COLON, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1045), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(883), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10915] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(887), 1, - anon_sym_STAR, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1057), 1, - sym_expression, - STATE(1186), 1, - sym_type, - STATE(1192), 1, - sym_list_splat, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11016] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(865), 1, anon_sym_finally, - ACTIONS(877), 1, + ACTIONS(883), 1, anon_sym_except, - STATE(427), 1, + STATE(431), 1, sym_else_clause, - STATE(517), 1, + STATE(498), 1, sym_finally_clause, - STATE(305), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(849), 13, + STATE(292), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(875), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -31997,7 +31735,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(847), 33, + ACTIONS(873), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -32031,85 +31769,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [11089] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(717), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1007), 1, - sym_expression, - STATE(1162), 1, - sym_list_splat, - STATE(1454), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11190] = 22, + [10741] = 22, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, @@ -32132,18 +31792,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1169), 1, + STATE(1112), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1323), 2, + STATE(1378), 2, sym_dictionary_splat, sym_pair, ACTIONS(296), 3, @@ -32161,14 +31821,376 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10840] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(885), 1, + anon_sym_STAR, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1063), 1, + sym_expression, + STATE(1185), 1, + sym_list_splat, + STATE(1217), 1, + sym_type, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10941] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(877), 1, + anon_sym_else, + ACTIONS(879), 1, + anon_sym_except, + ACTIONS(881), 1, + anon_sym_finally, + STATE(425), 1, + sym_else_clause, + STATE(555), 1, + sym_finally_clause, + STATE(293), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(847), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(849), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [11014] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1022), 1, + sym_expression, + STATE(1117), 1, + sym_list_splat, + STATE(1461), 1, + sym_type, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11115] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(877), 1, + anon_sym_else, + ACTIONS(881), 1, + anon_sym_finally, + ACTIONS(883), 1, + anon_sym_except, + STATE(425), 1, + sym_else_clause, + STATE(555), 1, + sym_finally_clause, + STATE(292), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(847), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(849), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [11188] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(717), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1022), 1, + sym_expression, + STATE(1117), 1, + sym_list_splat, + STATE(1406), 1, + sym_type, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32191,21 +32213,21 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(851), 1, anon_sym_else, - ACTIONS(853), 1, - anon_sym_except, ACTIONS(855), 1, anon_sym_finally, - STATE(440), 1, + ACTIONS(887), 1, + anon_sym_except, + STATE(445), 1, sym_else_clause, - STATE(489), 1, + STATE(520), 1, sym_finally_clause, - STATE(303), 2, + STATE(289), 2, sym_except_clause, aux_sym_try_statement_repeat1, - ACTIONS(857), 13, - sym__dedent, + ACTIONS(847), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -32216,7 +32238,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(859), 33, + ACTIONS(849), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -32255,21 +32277,21 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(851), 1, anon_sym_else, + ACTIONS(853), 1, + anon_sym_except, ACTIONS(855), 1, anon_sym_finally, - ACTIONS(871), 1, - anon_sym_except, - STATE(440), 1, + STATE(415), 1, sym_else_clause, - STATE(489), 1, + STATE(542), 1, sym_finally_clause, - STATE(298), 2, + STATE(308), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(857), 13, - sym__dedent, + ACTIONS(875), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -32280,7 +32302,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(859), 33, + ACTIONS(873), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -32314,7 +32336,227 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [11435] = 23, + [11435] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(851), 1, + anon_sym_else, + ACTIONS(855), 1, + anon_sym_finally, + ACTIONS(887), 1, + anon_sym_except, + STATE(415), 1, + sym_else_clause, + STATE(542), 1, + sym_finally_clause, + STATE(289), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(875), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(873), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [11508] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(891), 1, + anon_sym_STAR, + ACTIONS(895), 1, + anon_sym_COLON, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1000), 1, + sym_expression, + STATE(1354), 1, + sym_exception_list, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11609] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + ACTIONS(903), 1, + anon_sym_STAR, + ACTIONS(905), 1, + anon_sym_COLON, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1034), 1, + sym_expression, + STATE(1346), 1, + sym_exception_list, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11710] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -32337,15 +32579,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1007), 1, + STATE(1022), 1, sym_expression, - STATE(1162), 1, + STATE(1117), 1, sym_list_splat, STATE(1431), 1, sym_type, @@ -32367,14 +32609,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32392,71 +32634,82 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11536] = 9, + [11811] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(863), 1, - anon_sym_except, - ACTIONS(865), 1, - anon_sym_finally, - STATE(427), 1, - sym_else_clause, - STATE(517), 1, - sym_finally_clause, - STATE(301), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(849), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(51), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1069), 1, + sym_expression, + ACTIONS(75), 2, sym_ellipsis, sym_float, - ACTIONS(847), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, + ACTIONS(907), 2, + sym__newline, + sym__semicolon, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, sym_integer, - sym_identifier, - anon_sym_await, sym_true, sym_false, sym_none, - [11609] = 21, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11907] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -32471,24 +32724,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(651), 1, anon_sym_not, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - ACTIONS(777), 1, + ACTIONS(761), 1, anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(941), 1, + STATE(945), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(1013), 2, + STATE(973), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(601), 3, @@ -32500,20 +32753,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32531,64 +32784,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11705] = 21, + [12003] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(609), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(617), 1, anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(691), 1, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(777), 1, + ACTIONS(895), 1, + anon_sym_COLON, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, sym_primary_expression, - STATE(941), 1, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1000), 1, sym_expression, - ACTIONS(304), 2, + STATE(1354), 1, + sym_exception_list, + ACTIONS(621), 2, sym_ellipsis, sym_float, - STATE(968), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32606,7 +32860,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11801] = 21, + [12101] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -32627,18 +32881,394 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1085), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(909), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12197] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + ACTIONS(911), 1, + anon_sym_LPAREN, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(999), 1, + sym_expression, + STATE(1238), 1, + sym_with_item, + STATE(1432), 1, + sym_with_clause, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12295] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(761), 1, + anon_sym_lambda, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(945), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1020), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12391] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1069), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(913), 2, + sym__newline, + sym__semicolon, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12487] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1069), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(915), 2, + sym__newline, + sym__semicolon, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12583] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(1087), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - ACTIONS(889), 2, + ACTIONS(917), 2, anon_sym_COMMA, anon_sym_RBRACK, ACTIONS(296), 3, @@ -32656,14 +33286,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -32681,762 +33311,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [11897] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(893), 1, - anon_sym_LPAREN, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1016), 1, - sym_expression, - STATE(1276), 1, - sym_with_item, - STATE(1441), 1, - sym_with_clause, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11995] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1075), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(903), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12091] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(893), 1, - anon_sym_LPAREN, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1016), 1, - sym_expression, - STATE(1276), 1, - sym_with_item, - STATE(1434), 1, - sym_with_clause, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12189] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1053), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(905), 2, - sym__newline, - sym__semicolon, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12285] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1070), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(907), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12381] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1053), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(909), 2, - sym__newline, - sym__semicolon, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12477] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1071), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(911), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12573] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(893), 1, - anon_sym_LPAREN, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1016), 1, - sym_expression, - STATE(1276), 1, - sym_with_item, - STATE(1426), 1, - sym_with_clause, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12671] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(893), 1, - anon_sym_LPAREN, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1016), 1, - sym_expression, - STATE(1276), 1, - sym_with_item, - STATE(1435), 1, - sym_with_clause, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12769] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - ACTIONS(913), 1, - anon_sym_RPAREN, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1016), 1, - sym_expression, - STATE(1305), 1, - sym_with_item, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12867] = 21, + [12679] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -33451,24 +33326,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(651), 1, anon_sym_not, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - ACTIONS(777), 1, + ACTIONS(761), 1, anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(941), 1, + STATE(945), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(969), 2, + STATE(987), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, ACTIONS(601), 3, @@ -33480,20 +33355,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33511,20 +33386,18 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [12963] = 22, + [12775] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, + ACTIONS(617), 1, anon_sym_LBRACK, - ACTIONS(621), 1, + ACTIONS(619), 1, anon_sym_LBRACE, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, - ACTIONS(891), 1, + ACTIONS(889), 1, sym_identifier, ACTIONS(897), 1, anon_sym_not, @@ -33532,44 +33405,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(901), 1, anon_sym_await, - ACTIONS(915), 1, - anon_sym_RPAREN, - STATE(704), 1, - sym_template_string, - STATE(706), 1, + ACTIONS(911), 1, + anon_sym_LPAREN, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, sym_string, STATE(722), 1, - sym_primary_expression, - STATE(1016), 1, + sym_template_string, + STATE(999), 1, sym_expression, - STATE(1305), 1, + STATE(1238), 1, sym_with_item, - ACTIONS(623), 2, + STATE(1478), 1, + sym_with_clause, + ACTIONS(621), 2, sym_ellipsis, sym_float, - ACTIONS(617), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(609), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(895), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(998), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(805), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33587,64 +33462,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13061] = 21, + [12873] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(617), 1, anon_sym_LBRACK, - STATE(697), 1, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + ACTIONS(911), 1, + anon_sym_LPAREN, + STATE(718), 1, sym_primary_expression, - STATE(698), 1, + STATE(720), 1, sym_string, - STATE(699), 1, + STATE(722), 1, sym_template_string, - STATE(1053), 1, + STATE(999), 1, sym_expression, - ACTIONS(75), 2, + STATE(1238), 1, + sym_with_item, + STATE(1440), 1, + sym_with_clause, + ACTIONS(621), 2, sym_ellipsis, sym_float, - ACTIONS(917), 2, - sym__newline, - sym__semicolon, - ACTIONS(47), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33662,64 +33538,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13157] = 21, + [12971] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, + ACTIONS(609), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(617), 1, anon_sym_LBRACK, - STATE(697), 1, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + ACTIONS(905), 1, + anon_sym_COLON, + STATE(718), 1, sym_primary_expression, - STATE(698), 1, + STATE(720), 1, sym_string, - STATE(699), 1, + STATE(722), 1, sym_template_string, - STATE(1053), 1, + STATE(1034), 1, sym_expression, - ACTIONS(75), 2, + STATE(1346), 1, + sym_exception_list, + ACTIONS(621), 2, sym_ellipsis, sym_float, - ACTIONS(919), 2, - sym__newline, - sym__semicolon, - ACTIONS(47), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33737,7 +33614,535 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13253] = 22, + [13069] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + ACTIONS(919), 1, + anon_sym_RPAREN, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(999), 1, + sym_expression, + STATE(1298), 1, + sym_with_item, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13167] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(761), 1, + anon_sym_lambda, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(937), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1018), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13263] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1090), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(921), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13359] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + ACTIONS(911), 1, + anon_sym_LPAREN, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(999), 1, + sym_expression, + STATE(1238), 1, + sym_with_item, + STATE(1385), 1, + sym_with_clause, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13457] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + ACTIONS(761), 1, + anon_sym_lambda, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(941), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(1023), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13553] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + ACTIONS(923), 1, + anon_sym_RPAREN, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(999), 1, + sym_expression, + STATE(1298), 1, + sym_with_item, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13651] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1100), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(925), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13747] = 22, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -33760,15 +34165,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(717), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1073), 1, + STATE(1075), 1, sym_expression, - STATE(1345), 1, + STATE(1324), 1, sym_list_splat, ACTIONS(304), 2, sym_ellipsis, @@ -33788,14 +34193,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33813,64 +34218,64 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13351] = 21, + [13845] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(51), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, + ACTIONS(69), 1, anon_sym_not, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(777), 1, + ACTIONS(71), 1, anon_sym_lambda, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, sym_string, - STATE(648), 1, + STATE(700), 1, + sym_template_string, + STATE(702), 1, sym_primary_expression, - STATE(944), 1, + STATE(1069), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(75), 2, sym_ellipsis, sym_float, - STATE(1012), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, + ACTIONS(927), 2, + sym__newline, + sym__semicolon, + ACTIONS(47), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(77), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33888,20 +34293,20 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13447] = 22, + [13941] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 1, + ACTIONS(609), 1, anon_sym_LPAREN, - ACTIONS(619), 1, + ACTIONS(617), 1, anon_sym_LBRACK, - ACTIONS(621), 1, + ACTIONS(619), 1, anon_sym_LBRACE, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, - ACTIONS(891), 1, + ACTIONS(889), 1, sym_identifier, ACTIONS(897), 1, anon_sym_not, @@ -33909,44 +34314,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(901), 1, anon_sym_await, - ACTIONS(921), 1, - anon_sym_STAR, - ACTIONS(923), 1, - anon_sym_COLON, - STATE(704), 1, - sym_template_string, - STATE(706), 1, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, sym_string, STATE(722), 1, - sym_primary_expression, - STATE(1054), 1, + sym_template_string, + STATE(1036), 1, sym_expression, - ACTIONS(623), 2, + STATE(1379), 1, + sym_exception_list, + ACTIONS(621), 2, sym_ellipsis, sym_float, - ACTIONS(617), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(609), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(895), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(998), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(805), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33964,20 +34367,20 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13545] = 22, + [14036] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 1, + ACTIONS(609), 1, anon_sym_LPAREN, - ACTIONS(619), 1, + ACTIONS(617), 1, anon_sym_LBRACK, - ACTIONS(621), 1, + ACTIONS(619), 1, anon_sym_LBRACE, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, - ACTIONS(891), 1, + ACTIONS(889), 1, sym_identifier, ACTIONS(897), 1, anon_sym_not, @@ -33985,119 +34388,42 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(901), 1, anon_sym_await, - ACTIONS(925), 1, - anon_sym_STAR, - ACTIONS(927), 1, - anon_sym_COLON, - STATE(704), 1, - sym_template_string, - STATE(706), 1, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, sym_string, STATE(722), 1, - sym_primary_expression, - STATE(1038), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13643] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - ACTIONS(777), 1, - anon_sym_lambda, - STATE(572), 1, sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(935), 1, + STATE(999), 1, sym_expression, - ACTIONS(304), 2, + STATE(1298), 1, + sym_with_item, + ACTIONS(621), 2, sym_ellipsis, sym_float, - STATE(992), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34115,9 +34441,14 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13739] = 3, + [14131] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(933), 1, + anon_sym_except, + STATE(289), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, ACTIONS(929), 13, sym__string_start, sym__template_string_start, @@ -34132,7 +34463,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(931), 38, + ACTIONS(931), 35, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34145,17 +34476,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_elif, anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, anon_sym_try, - anon_sym_except, anon_sym_finally, anon_sym_with, anon_sym_match, - anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -34171,684 +34499,23 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13798] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(935), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(933), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [13857] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(937), 1, - anon_sym_for, - ACTIONS(939), 1, - anon_sym_with, - ACTIONS(941), 1, - anon_sym_def, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [13930] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(947), 1, - anon_sym_elif, - STATE(331), 1, - aux_sym_if_statement_repeat1, - STATE(431), 1, - sym_elif_clause, - STATE(528), 1, - sym_else_clause, - ACTIONS(943), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(945), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [13999] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1016), 1, - sym_expression, - STATE(1305), 1, - sym_with_item, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14094] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(951), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14153] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(955), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(953), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14212] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(947), 1, - anon_sym_elif, - STATE(331), 1, - aux_sym_if_statement_repeat1, - STATE(431), 1, - sym_elif_clause, - STATE(542), 1, - sym_else_clause, - ACTIONS(957), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(959), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14281] = 8, + [14194] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(851), 1, anon_sym_else, - ACTIONS(961), 1, + ACTIONS(940), 1, anon_sym_elif, - STATE(384), 1, + STATE(382), 1, aux_sym_if_statement_repeat1, - STATE(433), 1, - sym_elif_clause, - STATE(529), 1, - sym_else_clause, - ACTIONS(943), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(945), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14350] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(951), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14409] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(965), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(963), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14468] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(851), 1, - anon_sym_else, - ACTIONS(961), 1, - anon_sym_elif, - STATE(293), 1, - aux_sym_if_statement_repeat1, - STATE(433), 1, - sym_elif_clause, - STATE(512), 1, - sym_else_clause, - ACTIONS(969), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(967), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14537] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(851), 1, - anon_sym_else, - ACTIONS(961), 1, - anon_sym_elif, - STATE(308), 1, - aux_sym_if_statement_repeat1, - STATE(433), 1, + STATE(417), 1, sym_elif_clause, STATE(524), 1, sym_else_clause, - ACTIONS(973), 13, - sym__dedent, + ACTIONS(936), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -34859,7 +34526,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(971), 33, + ACTIONS(938), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34893,15 +34560,76 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [14606] = 5, + [14263] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(979), 1, + ACTIONS(851), 1, + anon_sym_else, + ACTIONS(940), 1, + anon_sym_elif, + STATE(309), 1, + aux_sym_if_statement_repeat1, + STATE(417), 1, + sym_elif_clause, + STATE(521), 1, + sym_else_clause, + ACTIONS(942), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(944), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [14332] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(950), 1, anon_sym_except, - STATE(298), 2, + STATE(292), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(977), 13, + ACTIONS(948), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -34915,7 +34643,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(975), 35, + ACTIONS(946), 35, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34951,9 +34679,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [14669] = 3, + [14395] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(953), 1, + anon_sym_except, + STATE(293), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, ACTIONS(929), 13, sym__dedent, sym__string_start, @@ -34968,7 +34701,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(931), 38, + ACTIONS(931), 35, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [14458] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(956), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 38, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -35007,18 +34793,186 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [14728] = 10, + [14517] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(960), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(962), 38, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [14576] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(956), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 38, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [14635] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(964), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(966), 38, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [14694] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, anon_sym_COMMA, ACTIONS(278), 1, anon_sym_COLON_EQ, - ACTIONS(982), 1, + ACTIONS(968), 1, anon_sym_for, - ACTIONS(984), 1, + ACTIONS(970), 1, anon_sym_with, - ACTIONS(986), 1, + ACTIONS(972), 1, anon_sym_def, ACTIONS(280), 2, anon_sym_COLON, @@ -35070,129 +35024,83 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [14801] = 5, + [14767] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(988), 1, - anon_sym_except, - STATE(301), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(977), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(975), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, + ACTIONS(270), 1, + anon_sym_COMMA, + ACTIONS(278), 1, + anon_sym_COLON_EQ, + ACTIONS(974), 1, anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, + ACTIONS(976), 1, anon_sym_with, - anon_sym_match, + ACTIONS(978), 1, anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14864] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(935), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, + ACTIONS(280), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(302), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(265), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(933), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [14840] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(877), 1, + anon_sym_else, + ACTIONS(984), 1, anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [14923] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(995), 1, - anon_sym_except, - STATE(303), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(993), 13, + STATE(312), 1, + aux_sym_if_statement_repeat1, + STATE(433), 1, + sym_elif_clause, + STATE(560), 1, + sym_else_clause, + ACTIONS(982), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -35206,7 +35114,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(991), 35, + ACTIONS(980), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -35219,12 +35127,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, anon_sym_try, - anon_sym_finally, anon_sym_with, anon_sym_match, anon_sym_def, @@ -35242,92 +35148,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [14986] = 21, + [14909] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - ACTIONS(927), 1, - anon_sym_COLON, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1038), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15081] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(998), 1, - anon_sym_except, - STATE(305), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(993), 13, + ACTIONS(960), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -35338,60 +35165,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(991), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [15144] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(965), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(963), 38, + ACTIONS(962), 38, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -35430,81 +35204,155 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [15203] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(947), 1, - anon_sym_elif, - STATE(292), 1, - aux_sym_if_statement_repeat1, - STATE(431), 1, - sym_elif_clause, - STATE(534), 1, - sym_else_clause, - ACTIONS(973), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(971), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [15272] = 8, + [14968] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(851), 1, anon_sym_else, - ACTIONS(961), 1, + ACTIONS(940), 1, anon_sym_elif, - STATE(384), 1, + STATE(290), 1, + aux_sym_if_statement_repeat1, + STATE(417), 1, + sym_elif_clause, + STATE(502), 1, + sym_else_clause, + ACTIONS(982), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(980), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [15037] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1033), 1, + sym_expression, + STATE(1345), 1, + sym_exception_list, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15132] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(877), 1, + anon_sym_else, + ACTIONS(984), 1, + anon_sym_elif, + STATE(310), 1, aux_sym_if_statement_repeat1, STATE(433), 1, sym_elif_clause, - STATE(472), 1, + STATE(522), 1, sym_else_clause, - ACTIONS(957), 13, + ACTIONS(942), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -35518,7 +35366,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(959), 33, + ACTIONS(944), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -35552,20 +35400,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [15341] = 8, + [15201] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(861), 1, - anon_sym_else, - ACTIONS(947), 1, - anon_sym_elif, - STATE(288), 1, - aux_sym_if_statement_repeat1, - STATE(431), 1, - sym_elif_clause, - STATE(498), 1, - sym_else_clause, - ACTIONS(969), 13, + ACTIONS(986), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -35579,58 +35417,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(967), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [15410] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(955), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(953), 38, + ACTIONS(988), 38, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -35669,1458 +35456,127 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [15469] = 21, + [15260] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, + ACTIONS(986), 13, + sym__dedent, sym__string_start, - ACTIONS(629), 1, sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - ACTIONS(923), 1, - anon_sym_COLON, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1054), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, + anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15564] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(949), 1, - sym_expression, - ACTIONS(75), 2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, + ACTIONS(988), 38, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15656] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1010), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15748] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(983), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15840] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1003), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15932] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1131), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16024] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1005), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16116] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1115), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16208] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1175), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16300] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1138), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16392] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(902), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16484] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(999), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16576] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1140), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16668] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1008), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16760] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1136), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16852] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1009), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16944] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1084), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17036] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(995), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17128] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1141), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17220] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1052), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17312] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1005), 1, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, anon_sym_elif, - STATE(331), 1, - aux_sym_if_statement_repeat1, - STATE(431), 1, - sym_elif_clause, - ACTIONS(1001), 13, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [15319] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(992), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(990), 38, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [15378] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(994), 1, + anon_sym_except, + STATE(308), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(948), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -37134,7 +35590,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1003), 34, + ACTIONS(946), 35, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37152,6 +35608,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_while, anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [15441] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(851), 1, + anon_sym_else, + ACTIONS(940), 1, + anon_sym_elif, + STATE(382), 1, + aux_sym_if_statement_repeat1, + STATE(417), 1, + sym_elif_clause, + STATE(491), 1, + sym_else_clause, + ACTIONS(997), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(999), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, anon_sym_with, anon_sym_match, anon_sym_def, @@ -37169,223 +35687,241 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17376] = 20, + [15510] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(877), 1, + anon_sym_else, + ACTIONS(984), 1, + anon_sym_elif, + STATE(369), 1, + aux_sym_if_statement_repeat1, + STATE(433), 1, + sym_elif_clause, + STATE(489), 1, + sym_else_clause, + ACTIONS(997), 13, + sym__dedent, sym__string_start, - ACTIONS(312), 1, sym__template_string_start, - ACTIONS(578), 1, anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1128), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_TILDE, - ACTIONS(306), 4, + sym_ellipsis, + sym_float, + ACTIONS(999), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, sym_integer, + sym_identifier, + anon_sym_await, sym_true, sym_false, sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17468] = 20, + [15579] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(992), 13, sym__string_start, - ACTIONS(312), 1, sym__template_string_start, - ACTIONS(578), 1, + ts_builtin_sym_end, anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1159), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_TILDE, - ACTIONS(306), 4, + sym_ellipsis, + sym_float, + ACTIONS(990), 38, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, sym_integer, + sym_identifier, + anon_sym_await, sym_true, sym_false, sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17560] = 20, + [15638] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(877), 1, + anon_sym_else, + ACTIONS(984), 1, + anon_sym_elif, + STATE(369), 1, + aux_sym_if_statement_repeat1, + STATE(433), 1, + sym_elif_clause, + STATE(526), 1, + sym_else_clause, + ACTIONS(936), 13, + sym__dedent, sym__string_start, - ACTIONS(312), 1, sym__template_string_start, - ACTIONS(578), 1, anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(881), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_TILDE, - ACTIONS(306), 4, + sym_ellipsis, + sym_float, + ACTIONS(938), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, sym_integer, + sym_identifier, + anon_sym_await, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + [15707] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(964), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(966), 38, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, anon_sym_exec, anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17652] = 20, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [15766] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(51), 1, @@ -37398,957 +35934,20 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(83), 1, sym__template_string_start, - ACTIONS(380), 1, + ACTIONS(488), 1, sym_identifier, - ACTIONS(386), 1, + ACTIONS(494), 1, anon_sym_await, ACTIONS(568), 1, anon_sym_LPAREN, ACTIONS(574), 1, anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, STATE(698), 1, sym_string, - STATE(699), 1, + STATE(700), 1, sym_template_string, - STATE(1025), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17744] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, + STATE(702), 1, sym_primary_expression, - STATE(1107), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17836] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(878), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [17928] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1089), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18020] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1006), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18112] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(891), 1, - sym_identifier, - ACTIONS(897), 1, - anon_sym_not, - ACTIONS(899), 1, - anon_sym_lambda, - ACTIONS(901), 1, - anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(722), 1, - sym_primary_expression, - STATE(1022), 1, - sym_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(895), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(998), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18204] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(890), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18296] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1068), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18388] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(993), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18480] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(894), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18572] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1030), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18664] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - ACTIONS(1008), 1, - sym_identifier, - ACTIONS(1012), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(918), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(455), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1010), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18758] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1033), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18850] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, STATE(953), 1, sym_expression, ACTIONS(75), 2, @@ -38363,20 +35962,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38394,1364 +35993,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18942] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(918), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19034] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1039), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19126] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1170), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19218] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1085), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19310] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1014), 1, - sym__string_start, - STATE(1288), 1, - sym_string, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [19380] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(888), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19472] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(892), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19564] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(878), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19656] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1056), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19748] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(893), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19840] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(895), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19932] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1100), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20024] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1155), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20116] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20208] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(908), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20300] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1079), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20392] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(904), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20484] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(966), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20576] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(637), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(634), 1, - sym_primary_expression, - STATE(1060), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20668] = 20, + [15858] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -39768,17 +36010,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(653), 1, anon_sym_lambda, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(980), 1, + STATE(899), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -39792,20 +36034,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39823,7 +36065,79 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20760] = 20, + [15950] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(994), 1, + sym_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16042] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(51), 1, @@ -39836,20 +36150,452 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(83), 1, sym__template_string_start, - ACTIONS(380), 1, + ACTIONS(488), 1, sym_identifier, - ACTIONS(386), 1, + ACTIONS(494), 1, anon_sym_await, ACTIONS(568), 1, anon_sym_LPAREN, ACTIONS(574), 1, anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, STATE(698), 1, sym_string, - STATE(699), 1, + STATE(700), 1, sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(972), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16134] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1169), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16226] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(890), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16318] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1126), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16410] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(963), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16502] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(898), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16594] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, STATE(1053), 1, sym_expression, ACTIONS(75), 2, @@ -39864,20 +36610,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39895,7 +36641,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20852] = 20, + [16686] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -39916,13 +36662,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1122), 1, + STATE(1166), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -39942,14 +36688,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -39967,7 +36713,151 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [20944] = 20, + [16778] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1161), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16870] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(951), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16962] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -39984,17 +36874,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(653), 1, anon_sym_lambda, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(891), 1, + STATE(904), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -40008,20 +36898,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40039,39 +36929,615 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21036] = 20, + [17054] = 20, ACTIONS(3), 1, sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1094), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17146] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, ACTIONS(288), 1, anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, ACTIONS(310), 1, sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(578), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(591), 1, anon_sym_LBRACK, - ACTIONS(651), 1, + ACTIONS(637), 1, anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1154), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17238] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1150), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17330] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1106), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17422] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17514] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1151), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17606] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1059), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17698] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(985), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [17790] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(889), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -40080,20 +37546,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(276), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40111,79 +37577,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21128] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(945), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21220] = 20, + [17882] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -40204,13 +37598,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(921), 1, + STATE(934), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -40230,14 +37624,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40255,39 +37649,39 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21312] = 20, + [17974] = 20, ACTIONS(3), 1, sym_comment, + ACTIONS(263), 1, + sym_identifier, ACTIONS(288), 1, anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, ACTIONS(310), 1, sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(578), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(591), 1, anon_sym_LBRACK, - ACTIONS(651), 1, + ACTIONS(637), 1, anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(900), 1, + STATE(879), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, @@ -40296,20 +37690,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(276), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40327,7 +37721,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21404] = 20, + [18066] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(51), 1, @@ -40340,21 +37734,21 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(83), 1, sym__template_string_start, - ACTIONS(380), 1, + ACTIONS(488), 1, sym_identifier, - ACTIONS(386), 1, + ACTIONS(494), 1, anon_sym_await, ACTIONS(568), 1, anon_sym_LPAREN, ACTIONS(574), 1, anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, STATE(698), 1, sym_string, - STATE(699), 1, + STATE(700), 1, sym_template_string, - STATE(948), 1, + STATE(702), 1, + sym_primary_expression, + STATE(1069), 1, sym_expression, ACTIONS(75), 2, sym_ellipsis, @@ -40368,20 +37762,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40399,92 +37793,20 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21496] = 20, + [18158] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, + ACTIONS(609), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(617), 1, anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(947), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21588] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, anon_sym_LBRACE, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, - ACTIONS(891), 1, + ACTIONS(889), 1, sym_identifier, ACTIONS(897), 1, anon_sym_not, @@ -40492,40 +37814,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(901), 1, anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, sym_string, STATE(722), 1, - sym_primary_expression, - STATE(1086), 1, + sym_template_string, + STATE(1064), 1, sym_expression, - ACTIONS(623), 2, + ACTIONS(621), 2, sym_ellipsis, sym_float, - ACTIONS(617), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(609), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(895), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(998), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(805), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40543,7 +37865,223 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21680] = 20, + [18250] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(984), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18342] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1081), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18434] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1015), 1, + sym_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18526] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -40564,13 +38102,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1145), 1, + STATE(1158), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -40590,14 +38128,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40615,7 +38153,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21772] = 20, + [18618] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -40636,11 +38174,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, STATE(1142), 1, sym_expression, @@ -40662,14 +38200,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40687,281 +38225,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21864] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(1088), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21956] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(380), 1, - sym_identifier, - ACTIONS(386), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(978), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(382), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(977), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22048] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(651), 1, - anon_sym_not, - ACTIONS(653), 1, - anon_sym_lambda, - ACTIONS(691), 1, - sym_identifier, - ACTIONS(701), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(648), 1, - sym_primary_expression, - STATE(896), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(697), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(876), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22140] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1016), 1, - anon_sym_elif, - STATE(384), 1, - aux_sym_if_statement_repeat1, - STATE(433), 1, - sym_elif_clause, - ACTIONS(1001), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1003), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [22204] = 20, + [18710] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, @@ -40982,13 +38246,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(637), 1, anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(634), 1, + STATE(570), 1, + sym_template_string, + STATE(652), 1, sym_primary_expression, - STATE(1163), 1, + STATE(910), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -41008,14 +38272,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41033,7 +38297,295 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22296] = 20, + [18802] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1021), 1, + sym_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18894] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1024), 1, + sym_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18986] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1027), 1, + sym_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19078] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1043), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19170] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(51), 1, @@ -41046,21 +38598,21 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(83), 1, sym__template_string_start, - ACTIONS(380), 1, + ACTIONS(488), 1, sym_identifier, - ACTIONS(386), 1, + ACTIONS(494), 1, anon_sym_await, ACTIONS(568), 1, anon_sym_LPAREN, ACTIONS(574), 1, anon_sym_LBRACK, - STATE(697), 1, - sym_primary_expression, STATE(698), 1, sym_string, - STATE(699), 1, + STATE(700), 1, sym_template_string, - STATE(965), 1, + STATE(702), 1, + sym_primary_expression, + STATE(1140), 1, sym_expression, ACTIONS(75), 2, sym_ellipsis, @@ -41074,20 +38626,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(382), 5, + ACTIONS(490), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(977), 6, + STATE(955), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(795), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41105,20 +38657,92 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22388] = 20, + [19262] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, anon_sym_LBRACE, - ACTIONS(627), 1, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(312), 1, sym__template_string_start, - ACTIONS(891), 1, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1058), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19354] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, sym_identifier, ACTIONS(897), 1, anon_sym_not, @@ -41126,40 +38750,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_lambda, ACTIONS(901), 1, anon_sym_await, - STATE(704), 1, - sym_template_string, - STATE(706), 1, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, sym_string, STATE(722), 1, - sym_primary_expression, - STATE(1099), 1, + sym_template_string, + STATE(1029), 1, sym_expression, - ACTIONS(623), 2, + ACTIONS(621), 2, sym_ellipsis, sym_float, - ACTIONS(617), 3, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(609), 4, + ACTIONS(607), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(895), 5, + ACTIONS(893), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(998), 6, + STATE(996), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(805), 17, + STATE(809), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41177,7 +38801,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22480] = 20, + [19446] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -41194,17 +38818,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(653), 1, anon_sym_lambda, - ACTIONS(691), 1, + ACTIONS(689), 1, sym_identifier, - ACTIONS(701), 1, + ACTIONS(699), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(648), 1, + STATE(570), 1, + sym_template_string, + STATE(653), 1, sym_primary_expression, - STATE(887), 1, + STATE(897), 1, sym_expression, ACTIONS(304), 2, sym_ellipsis, @@ -41218,20 +38842,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(697), 5, + ACTIONS(695), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(876), 6, + STATE(880), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41249,9 +38873,2496 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22572] = 3, + [19538] = 20, ACTIONS(3), 1, sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(993), 1, + sym_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19630] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1068), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19722] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1170), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19814] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(901), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19906] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(900), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19998] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1091), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20090] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1160), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20182] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(896), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20274] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(895), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20366] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1003), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20458] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1128), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20550] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(970), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20642] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1164), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20734] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(969), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20826] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1005), 1, + anon_sym_elif, + STATE(369), 1, + aux_sym_if_statement_repeat1, + STATE(433), 1, + sym_elif_clause, + ACTIONS(1003), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1001), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [20890] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(889), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_not, + ACTIONS(899), 1, + anon_sym_lambda, + ACTIONS(901), 1, + anon_sym_await, + STATE(718), 1, + sym_primary_expression, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(1019), 1, + sym_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(893), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(996), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20982] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(879), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21074] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(883), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21166] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1162), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21258] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(884), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21350] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(967), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21442] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1093), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21534] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1008), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21626] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1125), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21718] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(979), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21810] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1073), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21902] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(270), 1, + anon_sym_COMMA, + ACTIONS(278), 1, + anon_sym_COLON_EQ, + ACTIONS(1008), 1, + sym__string_start, + STATE(1256), 1, + sym_string, + ACTIONS(280), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(302), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(265), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [21972] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1010), 1, + anon_sym_elif, + STATE(382), 1, + aux_sym_if_statement_repeat1, + STATE(417), 1, + sym_elif_clause, + ACTIONS(1003), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1001), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [22036] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(888), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22128] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(1083), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22220] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(1007), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22312] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(263), 1, + sym_identifier, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(308), 1, + anon_sym_await, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(927), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(276), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22404] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(651), 1, + anon_sym_not, + ACTIONS(653), 1, + anon_sym_lambda, + ACTIONS(689), 1, + sym_identifier, + ACTIONS(699), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(653), 1, + sym_primary_expression, + STATE(893), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(695), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22496] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(69), 1, + anon_sym_not, + ACTIONS(71), 1, + anon_sym_lambda, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(488), 1, + sym_identifier, + ACTIONS(494), 1, + anon_sym_await, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(702), 1, + sym_primary_expression, + STATE(1009), 1, + sym_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(490), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(955), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22588] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(300), 1, + anon_sym_lambda, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(637), 1, + anon_sym_not, + ACTIONS(1013), 1, + sym_identifier, + ACTIONS(1017), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(652), 1, + sym_primary_expression, + STATE(934), 1, + sym_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(452), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1015), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(880), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22682] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1023), 1, + anon_sym_case, + STATE(412), 2, + sym_case_block, + aux_sym_cases_repeat1, ACTIONS(1021), 13, sym__dedent, sym__string_start, @@ -41266,7 +41377,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1019), 36, + ACTIONS(1019), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [22743] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1025), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1027), 36, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -41303,63 +41465,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [22629] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1027), 1, - anon_sym_case, - STATE(397), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1023), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1025), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [22690] = 3, + [22800] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1031), 13, @@ -41413,10 +41519,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [22747] = 3, + [22857] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1035), 13, + ACTIONS(1025), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -41430,7 +41536,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1033), 36, + ACTIONS(1027), 36, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -41467,7 +41573,61 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [22804] = 3, + [22914] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1033), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1035), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [22971] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1037), 13, @@ -41521,7 +41681,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [22861] = 3, + [23028] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1041), 13, @@ -41575,776 +41735,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [22918] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1047), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1045), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [22975] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1049), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1051), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23032] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1057), 1, - anon_sym_case, - STATE(397), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1053), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1055), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23093] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1060), 1, - anon_sym_case, - STATE(398), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1053), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1055), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23154] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1063), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1065), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23211] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1041), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1043), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23268] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1037), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1039), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23325] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1067), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1069), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23382] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1071), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1073), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23439] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1071), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1073), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23496] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1035), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1033), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23553] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1067), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1069), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23610] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1075), 1, - anon_sym_case, - STATE(398), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1023), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1025), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23671] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1031), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1029), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23728] = 8, + [23085] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, anon_sym_COMMA, ACTIONS(278), 1, anon_sym_COLON_EQ, - ACTIONS(1077), 1, + ACTIONS(1045), 1, sym_identifier, ACTIONS(280), 2, anon_sym_COLON, @@ -42396,115 +41794,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, anon_sym_is, - [23795] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1021), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1019), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23852] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1049), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1051), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [23909] = 3, + [23152] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1047), 13, @@ -42521,7 +41811,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1045), 36, + ACTIONS(1049), 36, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -42558,9 +41848,718 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [23966] = 3, + [23209] = 3, ACTIONS(3), 1, sym_comment, + ACTIONS(1051), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1053), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23266] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1055), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1057), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23323] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1041), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1043), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23380] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1037), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1039), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23437] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1055), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1057), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23494] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1051), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1053), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23551] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1059), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1061), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23608] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1047), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1049), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23665] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1031), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1029), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23722] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1059), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1061), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23779] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1067), 1, + anon_sym_case, + STATE(409), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1063), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1065), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23840] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1033), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1035), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23897] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1070), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 36, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23954] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1074), 1, + anon_sym_case, + STATE(412), 2, + sym_case_block, + aux_sym_cases_repeat1, ACTIONS(1063), 13, sym__dedent, sym__string_start, @@ -42575,7 +42574,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1065), 36, + ACTIONS(1065), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [24015] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1070), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 36, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -42612,71 +42662,15 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24023] = 7, + [24072] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1081), 1, - anon_sym_COMMA, - ACTIONS(1086), 1, - anon_sym_COLON_EQ, - ACTIONS(1088), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(1090), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1084), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [24087] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - STATE(533), 1, - sym_else_clause, - ACTIONS(1092), 13, + ACTIONS(1077), 1, + anon_sym_case, + STATE(409), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1021), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -42690,7 +42684,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1094), 33, + ACTIONS(1019), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -42724,45 +42718,74 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24147] = 3, + [24133] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(869), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + ACTIONS(855), 1, + anon_sym_finally, + STATE(523), 1, + sym_finally_clause, + ACTIONS(1079), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(867), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1081), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [24193] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1090), 1, + anon_sym_COLON_EQ, + ACTIONS(1092), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(1085), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1094), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -42776,14 +42799,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - sym__semicolon, - [24203] = 3, + ACTIONS(1083), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + ACTIONS(1088), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + [24257] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1098), 13, - sym__dedent, + ACTIONS(1096), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -42794,7 +42847,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1096), 35, + ACTIONS(1098), 35, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -42830,72 +42883,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24259] = 5, + [24313] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(865), 1, - anon_sym_finally, - STATE(531), 1, - sym_finally_clause, - ACTIONS(1100), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1102), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [24319] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, + ACTIONS(877), 1, anon_sym_else, - STATE(557), 1, + STATE(473), 1, sym_else_clause, - ACTIONS(1104), 13, + ACTIONS(1102), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -42906,7 +42904,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1106), 33, + ACTIONS(1100), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -42940,12 +42938,65 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24379] = 5, + [24373] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(861), 1, + ACTIONS(1106), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1104), 35, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, anon_sym_else, - STATE(499), 1, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [24429] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(851), 1, + anon_sym_else, + STATE(513), 1, sym_else_clause, ACTIONS(1108), 13, sym__string_start, @@ -42995,7 +43046,115 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24439] = 22, + [24489] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(877), 1, + anon_sym_else, + STATE(548), 1, + sym_else_clause, + ACTIONS(1114), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1112), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [24549] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(863), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(861), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + sym__semicolon, + [24605] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -43004,39 +43163,38 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(659), 1, + ACTIONS(667), 1, sym_identifier, - ACTIONS(661), 1, + ACTIONS(669), 1, anon_sym_LPAREN, - ACTIONS(671), 1, + ACTIONS(679), 1, anon_sym_LBRACK, - ACTIONS(673), 1, + ACTIONS(681), 1, anon_sym_await, - ACTIONS(1112), 1, - anon_sym_RPAREN, - ACTIONS(1114), 1, + ACTIONS(1118), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(861), 1, - sym_primary_expression, - STATE(1123), 1, + STATE(570), 1, + sym_template_string, + STATE(854), 1, sym_pattern, - STATE(1410), 1, - sym__patterns, + STATE(862), 1, + sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(742), 2, + ACTIONS(1116), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(735), 2, sym_attribute, sym_subscript, ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(855), 3, + STATE(853), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -43045,13 +43203,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(665), 5, + ACTIONS(673), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 15, + STATE(649), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -43067,14 +43225,14 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24533] = 5, + [24697] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(851), 1, + ACTIONS(877), 1, anon_sym_else, - STATE(563), 1, + STATE(481), 1, sym_else_clause, - ACTIONS(1118), 13, + ACTIONS(1122), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -43088,7 +43246,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1116), 33, + ACTIONS(1120), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -43122,68 +43280,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24593] = 5, + [24757] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(861), 1, - anon_sym_else, - STATE(508), 1, - sym_else_clause, - ACTIONS(1120), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1122), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [24653] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(851), 1, - anon_sym_else, - STATE(518), 1, - sym_else_clause, + ACTIONS(881), 1, + anon_sym_finally, + STATE(499), 1, + sym_finally_clause, ACTIONS(1126), 13, sym__dedent, sym__string_start, @@ -43232,17 +43335,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24713] = 5, + [24817] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(851), 1, anon_sym_else, - STATE(494), 1, + STATE(532), 1, sym_else_clause, - ACTIONS(1092), 13, - sym__dedent, + ACTIONS(1114), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -43253,7 +43356,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1094), 33, + ACTIONS(1112), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -43287,9 +43390,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24773] = 3, + [24877] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(877), 1, + anon_sym_else, + STATE(505), 1, + sym_else_clause, ACTIONS(1130), 13, sym__dedent, sym__string_start, @@ -43304,7 +43411,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1128), 35, + ACTIONS(1128), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -43317,8 +43424,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_elif, - anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, @@ -43340,13 +43445,9 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [24829] = 5, + [24937] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(865), 1, - anon_sym_finally, - STATE(561), 1, - sym_finally_clause, ACTIONS(1132), 13, sym__string_start, sym__template_string_start, @@ -43361,221 +43462,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1134), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [24889] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - STATE(509), 1, - sym_else_clause, - ACTIONS(1118), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1116), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [24949] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(875), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(873), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - sym__semicolon, - [25005] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(851), 1, - anon_sym_else, - STATE(501), 1, - sym_else_clause, - ACTIONS(1104), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1106), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [25065] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1136), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1138), 35, + ACTIONS(1134), 35, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -43611,170 +43498,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [25121] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(855), 1, - anon_sym_finally, - STATE(492), 1, - sym_finally_clause, - ACTIONS(1132), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1134), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [25181] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1136), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1138), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [25237] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(851), 1, - anon_sym_else, - STATE(475), 1, - sym_else_clause, - ACTIONS(1108), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1110), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [25297] = 7, + [24993] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(270), 1, @@ -43831,10 +43555,124 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [25361] = 3, + [25057] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1098), 13, + ACTIONS(877), 1, + anon_sym_else, + STATE(559), 1, + sym_else_clause, + ACTIONS(1108), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1110), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25117] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(881), 1, + anon_sym_finally, + STATE(479), 1, + sym_finally_clause, + ACTIONS(1079), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1081), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25177] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(851), 1, + anon_sym_else, + STATE(545), 1, + sym_else_clause, + ACTIONS(1136), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -43848,7 +43686,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1096), 35, + ACTIONS(1138), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25237] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1096), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1098), 35, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -43884,7 +43773,480 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [25417] = 7, + [25293] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(854), 1, + sym_pattern, + STATE(862), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(1140), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25385] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(851), 1, + anon_sym_else, + STATE(510), 1, + sym_else_clause, + ACTIONS(1130), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1128), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25445] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(877), 1, + anon_sym_else, + STATE(537), 1, + sym_else_clause, + ACTIONS(1136), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1138), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25505] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(851), 1, + anon_sym_else, + STATE(566), 1, + sym_else_clause, + ACTIONS(1102), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1100), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25565] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(851), 1, + anon_sym_else, + STATE(483), 1, + sym_else_clause, + ACTIONS(1122), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1120), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25625] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1132), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1134), 35, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [25681] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1142), 1, + anon_sym_COMMA, + ACTIONS(1145), 1, + anon_sym_COLON_EQ, + ACTIONS(1147), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(1149), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1088), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [25745] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + ACTIONS(1151), 1, + anon_sym_RPAREN, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + STATE(1177), 1, + sym_pattern, + STATE(1416), 1, + sym__patterns, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25839] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(585), 1, @@ -43941,19 +44303,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - [25481] = 7, + [25903] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1143), 1, - anon_sym_COLON_EQ, - ACTIONS(1145), 2, - anon_sym_COLON, + ACTIONS(867), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, anon_sym_EQ, - ACTIONS(1140), 3, - anon_sym_RPAREN, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(865), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1147), 13, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -43967,167 +44355,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1079), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(1084), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - [25545] = 21, + sym__semicolon, + [25959] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(849), 1, - sym_pattern, - STATE(861), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1149), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25637] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(855), 1, - anon_sym_finally, - STATE(476), 1, - sym_finally_clause, - ACTIONS(1100), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1102), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [25697] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1130), 13, + ACTIONS(1106), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -44141,7 +44373,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1128), 35, + ACTIONS(1104), 35, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -44177,139 +44409,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [25753] = 5, + [26015] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(851), 1, - anon_sym_else, - STATE(497), 1, - sym_else_clause, - ACTIONS(1120), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1122), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [25813] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(849), 1, - sym_pattern, - STATE(861), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1151), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25905] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(861), 1, - anon_sym_else, - STATE(479), 1, - sym_else_clause, + ACTIONS(855), 1, + anon_sym_finally, + STATE(531), 1, + sym_finally_clause, ACTIONS(1126), 13, sym__string_start, sym__template_string_start, @@ -44358,554 +44464,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [25965] = 21, + [26075] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - STATE(1182), 1, - sym_pattern, - STATE(1499), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26056] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1153), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1155), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [26111] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - STATE(1301), 1, - sym_pattern, - STATE(1479), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26202] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - STATE(1218), 1, - sym_pattern, - STATE(1411), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26293] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1159), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1157), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [26348] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1161), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1163), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [26403] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1167), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1165), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [26458] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1167), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1165), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [26513] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - STATE(1274), 1, - sym_pattern, - STATE(1436), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26604] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1171), 1, + ACTIONS(1155), 1, anon_sym_COMMA, - ACTIONS(1178), 1, + ACTIONS(1162), 1, anon_sym_EQ, - ACTIONS(1176), 14, + ACTIONS(1160), 14, anon_sym_COLON, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -44920,7 +44486,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1174), 15, + ACTIONS(1158), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -44936,7 +44502,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(1169), 16, + ACTIONS(1153), 16, sym__newline, anon_sym_DOT, anon_sym_LPAREN, @@ -44953,16 +44519,333 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [26665] = 6, + [26136] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1145), 1, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + STATE(1237), 1, + sym_pattern, + STATE(1443), 1, + sym_pattern_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26227] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + STATE(1279), 1, + sym_pattern, + STATE(1504), 1, + sym_pattern_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26318] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + STATE(1306), 1, + sym_pattern, + STATE(1476), 1, + sym_pattern_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26409] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1164), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1166), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [26464] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1170), 1, + anon_sym_COMMA, + ACTIONS(1177), 1, anon_sym_EQ, - ACTIONS(1140), 3, + ACTIONS(1175), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1173), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1168), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [26525] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1092), 1, + anon_sym_EQ, + ACTIONS(1085), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(1079), 14, + ACTIONS(1083), 14, anon_sym_DOT, anon_sym_LPAREN, anon_sym_if, @@ -44977,7 +44860,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - ACTIONS(1147), 14, + ACTIONS(1094), 14, anon_sym_COLON, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -44992,7 +44875,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1084), 15, + ACTIONS(1088), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -45008,68 +44891,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - [26726] = 6, + [26586] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1182), 1, - anon_sym_COMMA, - ACTIONS(1189), 1, - anon_sym_EQ, - ACTIONS(1187), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1185), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1180), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [26787] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1193), 13, - sym__dedent, + ACTIONS(1179), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -45080,7 +44908,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1191), 34, + ACTIONS(1181), 34, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -45115,7 +44943,111 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [26842] = 21, + [26641] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1183), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1185), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [26696] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1179), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1181), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [26751] = 21, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -45124,37 +45056,37 @@ static const uint16_t ts_small_parse_table[] = { sym__string_start, ACTIONS(312), 1, sym__template_string_start, - ACTIONS(659), 1, + ACTIONS(667), 1, sym_identifier, - ACTIONS(661), 1, + ACTIONS(669), 1, anon_sym_LPAREN, - ACTIONS(671), 1, + ACTIONS(679), 1, anon_sym_LBRACK, - ACTIONS(673), 1, + ACTIONS(681), 1, anon_sym_await, - ACTIONS(1114), 1, + ACTIONS(1118), 1, anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(861), 1, + STATE(570), 1, + sym_template_string, + STATE(862), 1, sym_primary_expression, - STATE(1270), 1, + STATE(1233), 1, sym_pattern, - STATE(1439), 1, + STATE(1422), 1, sym_pattern_list, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(742), 2, + STATE(735), 2, sym_attribute, sym_subscript, ACTIONS(296), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(855), 3, + STATE(853), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, @@ -45163,13 +45095,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - ACTIONS(665), 5, + ACTIONS(673), 5, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 15, + STATE(649), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -45185,7 +45117,392 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26933] = 3, + [26842] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1187), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1189), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [26897] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + STATE(1291), 1, + sym_pattern, + STATE(1507), 1, + sym_pattern_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26988] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1142), 1, + anon_sym_COMMA, + ACTIONS(1147), 1, + anon_sym_EQ, + ACTIONS(1149), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1088), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [27049] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1183), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1185), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27104] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1191), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1193), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27159] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1164), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1166), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27214] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1191), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1193), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27269] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1197), 13, @@ -45237,340 +45554,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [26988] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1193), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1191), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27043] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1159), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1157), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27098] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1161), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1163), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27153] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1081), 1, - anon_sym_COMMA, - ACTIONS(1088), 1, - anon_sym_EQ, - ACTIONS(1090), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1084), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [27214] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - STATE(1183), 1, - sym_pattern, - STATE(1496), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [27305] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1153), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1155), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27360] = 3, + [27324] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1197), 13, @@ -45622,7 +45606,129 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27415] = 3, + [27379] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1187), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1189), 34, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27434] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + STATE(1280), 1, + sym_pattern, + STATE(1428), 1, + sym_pattern_list, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27525] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1201), 13, @@ -45673,10 +45779,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27469] = 3, + [27579] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1203), 13, + ACTIONS(875), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -45690,7 +45796,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1205), 33, + ACTIONS(873), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -45724,7 +45830,58 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27523] = 3, + [27633] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1205), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1203), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27687] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1209), 13, @@ -45775,13 +45932,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27577] = 3, + [27741] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1213), 13, - sym__dedent, + ACTIONS(1211), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -45792,7 +45949,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1211), 33, + ACTIONS(1213), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -45826,7 +45983,4631 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27631] = 3, + [27795] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1217), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1215), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27849] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1221), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1219), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27903] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1225), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1223), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27957] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1227), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1229), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28011] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1233), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1231), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28065] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(847), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(849), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28119] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1237), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1235), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28173] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1241), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1239), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28227] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1245), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1243), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28281] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(854), 1, + sym_pattern, + STATE(862), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [28369] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1245), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1243), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28423] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1247), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1249), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28477] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1251), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1253), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28531] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1257), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1255), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28585] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1257), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1255), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28639] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1261), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1259), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28693] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1265), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1263), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28747] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1261), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1259), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28801] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1265), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1263), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28855] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1269), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1267), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28909] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1273), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1271), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28963] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1277), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1275), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29017] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1281), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1279), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29071] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1285), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1283), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29125] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1287), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1289), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29179] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1079), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1081), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29233] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1293), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1291), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29287] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1211), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1213), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29341] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1297), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1295), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29395] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1299), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1301), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29449] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1305), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1303), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29503] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(667), 1, + sym_identifier, + ACTIONS(669), 1, + anon_sym_LPAREN, + ACTIONS(679), 1, + anon_sym_LBRACK, + ACTIONS(681), 1, + anon_sym_await, + ACTIONS(1118), 1, + anon_sym_STAR, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + STATE(1307), 1, + sym_pattern, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(735), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(853), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(673), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [29591] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1309), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1307), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29645] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1311), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1313), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29699] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1315), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1317), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29753] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1319), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1321), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29807] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1325), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1323), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29861] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1309), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1307), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29915] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1329), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1327), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29969] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1311), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1313), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30023] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1331), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1333), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30077] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1287), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1289), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30131] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1297), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1295), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30185] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1337), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1335), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30239] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1251), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1253), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30293] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1329), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1327), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30347] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1337), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1335), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30401] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1126), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1124), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30455] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1339), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1341), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30509] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1339), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1341), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30563] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1237), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1235), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30617] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1343), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1345), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30671] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1319), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1321), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30725] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1343), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1345), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30779] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1347), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1349), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30833] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1351), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1353), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30887] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1357), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1355), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30941] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1247), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1249), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30995] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1293), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1291), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31049] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1359), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1361), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31103] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1233), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1231), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31157] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1241), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1239), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31211] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1285), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1283), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31265] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1365), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1363), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31319] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1369), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1367), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31373] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1373), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1371), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31427] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1377), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1375), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31481] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1225), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1223), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31535] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1357), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1355), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31589] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1079), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1081), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31643] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1351), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1353), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31697] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1305), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1303), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31751] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1369), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1367), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31805] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1269), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1267), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31859] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1281), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1279), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31913] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1359), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1361), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31967] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(847), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(849), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32021] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1227), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1229), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32075] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(875), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(873), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32129] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1325), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1323), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32183] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1347), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1349), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32237] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1221), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1219), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32291] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1126), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1124), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32345] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1205), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1203), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32399] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1377), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1375), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32453] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1273), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1271), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32507] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1331), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1333), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32561] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1299), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1301), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32615] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1315), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1317), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32669] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1373), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1371), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32723] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1201), 13, @@ -45877,3345 +50658,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27685] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1217), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1215), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27739] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1221), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1219), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27793] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1223), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1225), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27847] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1229), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1227), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27901] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1233), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1231), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27955] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1235), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1237), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28009] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1239), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1241), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28063] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1243), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1245), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28117] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1213), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1211), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28171] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1247), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1249), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28225] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1203), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1205), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28279] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1253), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1251), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28333] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1257), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1255), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28387] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1261), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1259), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28441] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1265), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1263), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28495] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1269), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1267), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28549] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1273), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1271), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28603] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1100), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1102), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28657] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1277), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1275), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28711] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1247), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1249), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28765] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1281), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1279), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28819] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1285), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1283), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28873] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1289), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1287), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28927] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1293), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1291), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28981] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1297), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1295), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29035] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1301), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1299), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29089] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1303), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1305), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29143] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1229), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1227), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29197] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(849), 1, - sym_pattern, - STATE(861), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [29285] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1309), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1307), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29339] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1293), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1291), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29393] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1311), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1313), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29447] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1273), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1271), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29501] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1317), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1315), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29555] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1277), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1275), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29609] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1321), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1319), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29663] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1301), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1299), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29717] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1323), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1325), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29771] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1329), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1327), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29825] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1333), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1331), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29879] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1303), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1305), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29933] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1337), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1335), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29987] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1339), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1341), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30041] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1297), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1295), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30095] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1317), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1315), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30149] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1132), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1134), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30203] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1243), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1245), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30257] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1239), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1241), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30311] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1235), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1237), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30365] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(857), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(859), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30419] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1329), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1327), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30473] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1223), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1225), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30527] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1345), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1343), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30581] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(849), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(847), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30635] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1221), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1219), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30689] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1347), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1349), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30743] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1351), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1353), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30797] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1351), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1353), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30851] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1355), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1357), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30905] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1233), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1231), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30959] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1269), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1267), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31013] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1289), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1287), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31067] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1345), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1343), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31121] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1337), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1335), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31175] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1361), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1359), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31229] = 3, + [32777] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1365), 13, - sym__dedent, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -49260,112 +50709,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31283] = 3, + [32831] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1369), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1367), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31337] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1373), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1371), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31391] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1333), 13, + ACTIONS(1277), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -49379,7 +50726,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1331), 33, + ACTIONS(1275), 33, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -49413,7 +50760,58 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31445] = 3, + [32885] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1217), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1215), 33, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32939] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1209), 13, @@ -49464,1299 +50862,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31499] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1217), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1215), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31553] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1347), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1349), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31607] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1375), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1377), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31661] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1321), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1319), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31715] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1361), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1359), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31769] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1375), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1377), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31823] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - sym_identifier, - ACTIONS(661), 1, - anon_sym_LPAREN, - ACTIONS(671), 1, - anon_sym_LBRACK, - ACTIONS(673), 1, - anon_sym_await, - ACTIONS(1114), 1, - anon_sym_STAR, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - STATE(1303), 1, - sym_pattern, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(742), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(855), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(665), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [31911] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1355), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1357), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31965] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1253), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1251), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32019] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1257), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1255), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32073] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1261), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1259), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32127] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(857), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(859), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32181] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1265), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1263), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32235] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1339), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1341), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32289] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1132), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1134), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32343] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1309), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1307), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32397] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1373), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1371), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32451] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(849), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(847), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32505] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1100), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1102), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32559] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1281), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1279), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32613] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1285), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1283), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32667] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1323), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1325), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32721] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1311), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1313), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32775] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1369), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1367), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32829] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1365), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1363), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32883] = 18, + [32993] = 18, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -50773,16 +50879,16 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(1385), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(861), 1, + STATE(570), 1, + sym_template_string, + STATE(862), 1, sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, sym_float, - STATE(745), 2, + STATE(740), 2, sym_attribute, sym_subscript, ACTIONS(296), 3, @@ -50804,7 +50910,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 15, + STATE(649), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -50820,12 +50926,112 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [32965] = 5, + [33075] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(310), 1, + sym__string_start, + STATE(573), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1088), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [33130] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(312), 1, + sym__template_string_start, + STATE(572), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1088), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [33185] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(1391), 1, sym__template_string_start, - STATE(568), 2, + STATE(571), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, ACTIONS(1389), 6, @@ -50870,14 +51076,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [33020] = 5, + [33240] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1398), 1, - sym__string_start, - STATE(569), 2, - sym_string, - aux_sym_concatenated_string_repeat1, + ACTIONS(312), 1, + sym__template_string_start, + STATE(571), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, ACTIONS(1396), 6, anon_sym_as, anon_sym_STAR, @@ -50920,72 +51126,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [33075] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - STATE(568), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1403), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1401), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [33130] = 5, + [33295] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(310), 1, sym__string_start, - STATE(569), 2, + STATE(574), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1407), 6, + ACTIONS(1400), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1405), 34, + ACTIONS(1398), 34, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -51020,107 +51176,177 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [33185] = 5, + [33350] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(312), 1, + ACTIONS(1406), 1, + sym__string_start, + STATE(574), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1404), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1402), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [33405] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, sym__template_string_start, - STATE(570), 2, + ACTIONS(1409), 1, + anon_sym_not, + STATE(720), 1, + sym_string, + STATE(722), 1, sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1084), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, + STATE(751), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [33240] = 5, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [33481] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, ACTIONS(310), 1, sym__string_start, - STATE(571), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1084), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 34, - anon_sym_DOT, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + ACTIONS(1411), 1, + anon_sym_not, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(663), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [33295] = 16, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [33557] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(51), 1, @@ -51135,13 +51361,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(576), 1, anon_sym_await, - ACTIONS(1409), 1, + ACTIONS(1413), 1, anon_sym_not, STATE(698), 1, sym_string, - STATE(699), 1, + STATE(700), 1, sym_template_string, - STATE(712), 1, + STATE(717), 1, sym_primary_expression, ACTIONS(75), 2, sym_ellipsis, @@ -51162,7 +51388,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(795), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -51180,67 +51406,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [33371] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - ACTIONS(1411), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(683), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [33447] = 16, + [33633] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -51255,512 +51421,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(595), 1, anon_sym_await, - ACTIONS(1413), 1, - anon_sym_not, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(676), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [33523] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, ACTIONS(1415), 1, anon_sym_not, - STATE(704), 1, - sym_template_string, - STATE(706), 1, + STATE(569), 1, sym_string, - STATE(732), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [33599] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(572), 1, + STATE(570), 1, sym_template_string, - STATE(573), 1, - sym_string, - STATE(683), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [33672] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(672), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [33745] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(676), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [33818] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1419), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1417), 35, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [33867] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1423), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1421), 35, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [33916] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(679), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [33989] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(665), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34062] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, STATE(667), 1, sym_primary_expression, ACTIONS(304), 2, @@ -51782,7 +51448,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -51800,7 +51466,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [34135] = 15, + [33709] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -51815,11 +51481,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(595), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(670), 1, + STATE(570), 1, + sym_template_string, + STATE(672), 1, sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, @@ -51840,7 +51506,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -51858,7 +51524,215 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [34208] = 3, + [33782] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1419), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1417), 35, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [33831] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1423), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1421), 35, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [33880] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(706), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [33953] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(663), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34026] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1427), 6, @@ -51904,67 +51778,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [34257] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(1429), 1, - sym_identifier, - ACTIONS(1433), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(858), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1431), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34334] = 15, + [34075] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(51), 1, @@ -51981,181 +51795,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_await, STATE(698), 1, sym_string, - STATE(699), 1, - sym_template_string, - STATE(721), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34407] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(663), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34480] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(714), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34553] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, + STATE(700), 1, sym_template_string, STATE(713), 1, sym_primary_expression, @@ -52178,7 +51818,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(795), 17, + STATE(760), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -52196,7 +51836,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [34626] = 15, + [34148] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -52211,416 +51851,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(605), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(661), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34699] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(572), 1, + STATE(570), 1, sym_template_string, - STATE(573), 1, - sym_string, - STATE(677), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34772] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(720), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34845] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(668), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34918] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(669), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [34991] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(678), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35064] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(673), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35137] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, STATE(664), 1, sym_primary_expression, ACTIONS(304), 2, @@ -52642,7 +51876,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -52660,7 +51894,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [35210] = 15, + [34221] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(739), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34294] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -52675,11 +51967,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(605), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(681), 1, + STATE(570), 1, + sym_template_string, + STATE(673), 1, sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, @@ -52700,7 +51992,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -52718,7 +52010,2041 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [35283] = 3, + [34367] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(712), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34440] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(736), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34513] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(683), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34586] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(734), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34659] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(677), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34732] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(741), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34805] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(1429), 1, + sym_identifier, + ACTIONS(1433), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(859), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1431), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34882] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(667), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [34955] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(745), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35028] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(751), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35101] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(752), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35174] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(670), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35247] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(753), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35320] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(723), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35393] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(682), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35466] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(721), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35539] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(668), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35612] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(678), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35685] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(717), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35758] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(742), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35831] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(714), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35904] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(674), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [35977] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(707), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36050] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(708), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36123] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(685), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36196] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(662), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36269] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(671), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36342] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36415] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(746), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36488] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(681), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36561] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(51), 1, + anon_sym_LBRACE, + ACTIONS(81), 1, + sym__string_start, + ACTIONS(83), 1, + sym__template_string_start, + ACTIONS(568), 1, + anon_sym_LPAREN, + ACTIONS(574), 1, + anon_sym_LBRACK, + ACTIONS(576), 1, + anon_sym_await, + STATE(698), 1, + sym_string, + STATE(700), 1, + sym_template_string, + STATE(710), 1, + sym_primary_expression, + ACTIONS(75), 2, + sym_ellipsis, + sym_float, + ACTIONS(47), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(77), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(570), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(760), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36634] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(609), 1, + anon_sym_LPAREN, + ACTIONS(617), 1, + anon_sym_LBRACK, + ACTIONS(619), 1, + anon_sym_LBRACE, + ACTIONS(623), 1, + anon_sym_await, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + STATE(720), 1, + sym_string, + STATE(722), 1, + sym_template_string, + STATE(744), 1, + sym_primary_expression, + ACTIONS(621), 2, + sym_ellipsis, + sym_float, + ACTIONS(615), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(607), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(611), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(809), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36707] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(597), 1, + anon_sym_LPAREN, + ACTIONS(603), 1, + anon_sym_LBRACK, + ACTIONS(605), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(679), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(601), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36780] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(680), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36853] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(1379), 1, + sym_identifier, + ACTIONS(1385), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + STATE(740), 2, + sym_attribute, + sym_subscript, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1383), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [36930] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1437), 6, @@ -52764,7 +54090,65 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [35332] = 15, + [36979] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(666), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [37052] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -52779,11 +54163,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(605), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, - STATE(682), 1, + STATE(570), 1, + sym_template_string, + STATE(676), 1, sym_primary_expression, ACTIONS(304), 2, sym_ellipsis, @@ -52804,7 +54188,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -52822,7 +54206,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [35405] = 15, + [37125] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(288), 1, + anon_sym_LBRACE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(578), 1, + anon_sym_LPAREN, + ACTIONS(591), 1, + anon_sym_LBRACK, + ACTIONS(595), 1, + anon_sym_await, + STATE(569), 1, + sym_string, + STATE(570), 1, + sym_template_string, + STATE(665), 1, + sym_primary_expression, + ACTIONS(304), 2, + sym_ellipsis, + sym_float, + ACTIONS(296), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(306), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 5, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(649), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [37198] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(288), 1, @@ -52837,10 +54279,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(605), 1, anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, + STATE(569), 1, sym_string, + STATE(570), 1, + sym_template_string, STATE(684), 1, sym_primary_expression, ACTIONS(304), 2, @@ -52862,7 +54304,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(658), 17, + STATE(649), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -52880,1343 +54322,7 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [35478] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(662), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35551] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(717), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35624] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(675), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35697] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(724), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35770] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(748), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35843] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(712), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35916] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(711), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [35989] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(747), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36062] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(744), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36135] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(680), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36208] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(739), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36281] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(709), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36354] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(705), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36427] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(708), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36500] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(698), 1, - sym_string, - STATE(699), 1, - sym_template_string, - STATE(710), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(795), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36573] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(738), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36646] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(1379), 1, - sym_identifier, - ACTIONS(1385), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(861), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(745), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1383), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36723] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(752), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36796] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(754), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36869] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(728), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [36942] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(729), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37015] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(611), 1, - anon_sym_LPAREN, - ACTIONS(619), 1, - anon_sym_LBRACK, - ACTIONS(621), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - anon_sym_await, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - STATE(704), 1, - sym_template_string, - STATE(706), 1, - sym_string, - STATE(732), 1, - sym_primary_expression, - ACTIONS(623), 2, - sym_ellipsis, - sym_float, - ACTIONS(617), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(609), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(613), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(805), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37088] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(572), 1, - sym_template_string, - STATE(573), 1, - sym_string, - STATE(674), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(658), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37161] = 3, + [37271] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1441), 6, @@ -54261,7 +54367,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [37209] = 3, + [37319] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1445), 6, @@ -54306,7 +54412,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [37257] = 3, + [37367] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1449), 6, @@ -54351,7 +54457,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [37305] = 3, + [37415] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1453), 6, @@ -54396,52 +54502,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [37353] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1449), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1447), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37401] = 3, + [37463] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1457), 6, @@ -54486,58 +54547,868 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [37449] = 20, + [37511] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1471), 1, - anon_sym_PIPE, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1477), 1, - anon_sym_STAR_STAR, - ACTIONS(1479), 1, + ACTIONS(1461), 6, + anon_sym_as, + anon_sym_STAR, anon_sym_EQ, - ACTIONS(1483), 1, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1459), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_not, - ACTIONS(1485), 1, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, - ACTIONS(1487), 1, anon_sym_CARET, - ACTIONS(1491), 1, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37559] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1465), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37607] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1469), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1467), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37655] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1473), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1471), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37703] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1477), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1475), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37751] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1465), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37799] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1481), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1479), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37847] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1485), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1483), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37895] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1489), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1487), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37943] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1453), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1451), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [37991] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1493), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1491), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38039] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1497), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1495), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38087] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1497), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1495), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38135] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1501), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1499), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38183] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1449), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1447), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38231] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38279] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1505), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1503), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38327] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1509), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1507), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38375] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1523), 1, + anon_sym_PIPE, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1529), 1, + anon_sym_STAR_STAR, + ACTIONS(1531), 1, + anon_sym_EQ, + ACTIONS(1535), 1, + anon_sym_not, + ACTIONS(1537), 1, + anon_sym_AMP, + ACTIONS(1539), 1, + anon_sym_CARET, + ACTIONS(1543), 1, anon_sym_is, STATE(846), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1465), 2, + ACTIONS(1517), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1467), 2, + ACTIONS(1519), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1473), 2, + ACTIONS(1525), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1489), 2, + ACTIONS(1541), 2, anon_sym_LT, anon_sym_GT, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1481), 3, + ACTIONS(1533), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1469), 6, + ACTIONS(1521), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1463), 10, + ACTIONS(1515), 10, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -54548,643 +55419,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, sym_type_conversion, - [37531] = 3, + [38457] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1495), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1493), 34, + ACTIONS(1511), 1, anon_sym_DOT, + ACTIONS(1513), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1527), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37579] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1499), 6, + ACTIONS(1531), 1, anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1497), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37627] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1457), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1455), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37675] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1503), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1501), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37723] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1507), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1505), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37771] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1511), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1509), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37819] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1515), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1513), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37867] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1519), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1517), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37915] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [37963] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1527), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38011] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38059] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38107] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1453), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1451), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38155] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1479), 1, - anon_sym_as, - ACTIONS(1543), 1, - anon_sym_PIPE, - ACTIONS(1547), 1, - anon_sym_STAR_STAR, ACTIONS(1551), 1, - anon_sym_not, - ACTIONS(1553), 1, - anon_sym_AMP, + anon_sym_PIPE, ACTIONS(1555), 1, - anon_sym_CARET, + anon_sym_STAR_STAR, ACTIONS(1559), 1, + anon_sym_not, + ACTIONS(1561), 1, + anon_sym_AMP, + ACTIONS(1563), 1, + anon_sym_CARET, + ACTIONS(1567), 1, anon_sym_is, - STATE(844), 1, + STATE(845), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1537), 2, + ACTIONS(1545), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1539), 2, + ACTIONS(1547), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1545), 2, + ACTIONS(1553), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1557), 2, + ACTIONS(1565), 2, anon_sym_LT, anon_sym_GT, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1549), 3, + ACTIONS(1557), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1541), 6, + ACTIONS(1549), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1463), 10, + ACTIONS(1515), 10, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -55195,142 +55481,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [38237] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38285] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38333] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38381] = 3, + [38539] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1571), 6, @@ -55375,7 +55526,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [38429] = 3, + [38587] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1575), 6, @@ -55420,7 +55571,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [38477] = 3, + [38635] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(265), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 34, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [38683] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1579), 6, @@ -55465,7 +55661,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [38525] = 3, + [38731] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1583), 6, @@ -55510,7 +55706,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [38573] = 3, + [38779] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1587), 6, @@ -55555,97 +55751,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [38621] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1515), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1513), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38669] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1084), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 34, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [38717] = 3, + [38827] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1591), 6, @@ -55690,7 +55796,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [38765] = 3, + [38875] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1595), 6, @@ -55735,23 +55841,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [38813] = 8, + [38923] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1547), 1, + ACTIONS(1529), 1, anon_sym_STAR_STAR, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, ACTIONS(1599), 5, - anon_sym_as, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, @@ -55761,130 +55867,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [38870] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1547), 1, - anon_sym_STAR_STAR, - ACTIONS(1555), 1, - anon_sym_CARET, - ACTIONS(1537), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1539), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1545), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1549), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1599), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1597), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [38937] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1477), 1, - anon_sym_STAR_STAR, - ACTIONS(1487), 1, - anon_sym_CARET, - ACTIONS(1465), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1467), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1473), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1481), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1599), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1597), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, anon_sym_else, anon_sym_in, anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -55892,84 +55890,315 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [39004] = 8, + [38980] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1547), 1, + ACTIONS(1551), 1, + anon_sym_PIPE, + ACTIONS(1555), 1, anon_sym_STAR_STAR, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1603), 5, - anon_sym_as, + ACTIONS(1561), 1, + anon_sym_AMP, + ACTIONS(1563), 1, + anon_sym_CARET, + ACTIONS(1545), 2, anon_sym_STAR, anon_sym_SLASH, + ACTIONS(1547), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1553), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1557), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1603), 3, + anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1601), 28, + ACTIONS(1601), 18, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, anon_sym_async, anon_sym_for, anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [39061] = 12, + [39051] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, + ACTIONS(1551), 1, + anon_sym_PIPE, + ACTIONS(1555), 1, anon_sym_STAR_STAR, - ACTIONS(1465), 2, + ACTIONS(1561), 1, + anon_sym_AMP, + ACTIONS(1563), 1, + anon_sym_CARET, + ACTIONS(1545), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1467), 2, + ACTIONS(1547), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1473), 2, + ACTIONS(1553), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1481), 3, + ACTIONS(1557), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1607), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1605), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [39122] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1523), 1, + anon_sym_PIPE, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1529), 1, + anon_sym_STAR_STAR, + ACTIONS(1537), 1, + anon_sym_AMP, + ACTIONS(1539), 1, + anon_sym_CARET, + ACTIONS(1517), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1519), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1525), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1533), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1607), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1605), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [39193] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1523), 1, + anon_sym_PIPE, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1529), 1, + anon_sym_STAR_STAR, + ACTIONS(1537), 1, + anon_sym_AMP, + ACTIONS(1539), 1, + anon_sym_CARET, + ACTIONS(1517), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1519), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1525), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1533), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1611), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1609), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [39264] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1523), 1, + anon_sym_PIPE, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1529), 1, + anon_sym_STAR_STAR, + ACTIONS(1537), 1, + anon_sym_AMP, + ACTIONS(1539), 1, + anon_sym_CARET, + ACTIONS(1517), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1519), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1525), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1533), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1603), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1601), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [39335] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1555), 1, + anon_sym_STAR_STAR, + ACTIONS(1545), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1547), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1553), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1557), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, ACTIONS(1599), 3, - anon_sym_EQ, + anon_sym_as, anon_sym_LT, anon_sym_GT, ACTIONS(1597), 21, @@ -55977,7 +56206,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_if, anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_RBRACK, @@ -55993,28 +56223,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - sym_type_conversion, - [39126] = 8, + [39400] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1547), 1, + ACTIONS(1529), 1, anon_sym_STAR_STAR, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1607), 5, + ACTIONS(1615), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1613), 28, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [39457] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1555), 1, + anon_sym_STAR_STAR, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1619), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1605), 28, + ACTIONS(1617), 28, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -56043,35 +56321,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [39183] = 11, + [39514] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, + ACTIONS(1529), 1, anon_sym_STAR_STAR, - ACTIONS(1465), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1473), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1481), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1599), 3, + ACTIONS(1619), 5, + anon_sym_STAR, anon_sym_EQ, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1597), 23, + ACTIONS(1617), 28, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -56080,11 +56350,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_in, anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, @@ -56095,18 +56370,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [39246] = 8, + [39571] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, + ACTIONS(1529), 1, anon_sym_STAR_STAR, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, ACTIONS(1599), 5, @@ -56144,185 +56419,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [39303] = 10, + [39628] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, - anon_sym_STAR_STAR, - ACTIONS(1465), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1481), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1599), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1597), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, + ACTIONS(1551), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [39364] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1477), 1, - anon_sym_STAR_STAR, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1599), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1597), 28, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [39421] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1477), 1, - anon_sym_STAR_STAR, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1607), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1605), 28, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [39478] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1543), 1, - anon_sym_PIPE, - ACTIONS(1547), 1, - anon_sym_STAR_STAR, - ACTIONS(1553), 1, - anon_sym_AMP, ACTIONS(1555), 1, + anon_sym_STAR_STAR, + ACTIONS(1561), 1, + anon_sym_AMP, + ACTIONS(1563), 1, anon_sym_CARET, - ACTIONS(1537), 2, + ACTIONS(1545), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1539), 2, + ACTIONS(1547), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1545), 2, + ACTIONS(1553), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1549), 3, + ACTIONS(1557), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -56349,34 +56475,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [39549] = 14, + [39699] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, + ACTIONS(1529), 1, anon_sym_STAR_STAR, - ACTIONS(1485), 1, + ACTIONS(1537), 1, anon_sym_AMP, - ACTIONS(1487), 1, + ACTIONS(1539), 1, anon_sym_CARET, - ACTIONS(1465), 2, + ACTIONS(1517), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1467), 2, + ACTIONS(1519), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1473), 2, + ACTIONS(1525), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1481), 3, + ACTIONS(1533), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -56404,33 +56530,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [39618] = 8, + [39768] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, + ACTIONS(1555), 1, anon_sym_STAR_STAR, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1603), 5, + ACTIONS(1615), 5, + anon_sym_as, anon_sym_STAR, - anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1601), 28, + ACTIONS(1613), 28, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -56452,140 +56579,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - sym_type_conversion, - [39675] = 15, + [39825] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1471), 1, - anon_sym_PIPE, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, + ACTIONS(1555), 1, anon_sym_STAR_STAR, - ACTIONS(1485), 1, - anon_sym_AMP, - ACTIONS(1487), 1, - anon_sym_CARET, - ACTIONS(1465), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1467), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1473), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1481), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1611), 3, - anon_sym_EQ, + ACTIONS(1599), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1609), 18, + ACTIONS(1597), 28, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - sym_type_conversion, - [39746] = 15, + [39882] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1471), 1, - anon_sym_PIPE, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1477), 1, + ACTIONS(1555), 1, anon_sym_STAR_STAR, - ACTIONS(1485), 1, - anon_sym_AMP, - ACTIONS(1487), 1, - anon_sym_CARET, - ACTIONS(1465), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1467), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1473), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1481), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1615), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1613), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [39817] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1547), 1, - anon_sym_STAR_STAR, - ACTIONS(1537), 2, - anon_sym_STAR, - anon_sym_SLASH, ACTIONS(1545), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1553), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1549), 3, + ACTIONS(1557), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -56617,111 +56680,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [39880] = 15, + [39945] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1543), 1, - anon_sym_PIPE, - ACTIONS(1547), 1, + ACTIONS(1529), 1, anon_sym_STAR_STAR, - ACTIONS(1553), 1, - anon_sym_AMP, - ACTIONS(1555), 1, - anon_sym_CARET, - ACTIONS(1537), 2, + ACTIONS(1517), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1539), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1545), 2, + ACTIONS(1525), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1549), 3, + ACTIONS(1533), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1619), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1617), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [39951] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1471), 1, - anon_sym_PIPE, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1477), 1, - anon_sym_STAR_STAR, - ACTIONS(1485), 1, - anon_sym_AMP, - ACTIONS(1487), 1, - anon_sym_CARET, - ACTIONS(1465), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1467), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1473), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1481), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1619), 3, + ACTIONS(1599), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1617), 18, + ACTIONS(1597), 23, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, anon_sym_else, anon_sym_in, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, @@ -56729,30 +56732,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [40022] = 12, + [40008] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1547), 1, + ACTIONS(1555), 1, anon_sym_STAR_STAR, - ACTIONS(1537), 2, + ACTIONS(1563), 1, + anon_sym_CARET, + ACTIONS(1545), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1539), 2, + ACTIONS(1547), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1545), 2, + ACTIONS(1553), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1549), 3, + ACTIONS(1557), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -56760,7 +56765,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1597), 21, + ACTIONS(1597), 20, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -56775,6 +56780,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40075] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1529), 1, + anon_sym_STAR_STAR, + ACTIONS(1517), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1519), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1525), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1533), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1599), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1597), 21, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, anon_sym_CARET, anon_sym_LT_EQ, anon_sym_EQ_EQ, @@ -56782,34 +56838,89 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [40087] = 14, + sym_type_conversion, + [40140] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1547), 1, + ACTIONS(1529), 1, anon_sym_STAR_STAR, - ACTIONS(1553), 1, - anon_sym_AMP, - ACTIONS(1555), 1, + ACTIONS(1539), 1, anon_sym_CARET, - ACTIONS(1537), 2, + ACTIONS(1517), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1539), 2, + ACTIONS(1519), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1545), 2, + ACTIONS(1525), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1549), 3, + ACTIONS(1533), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1599), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1597), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [40207] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1555), 1, + anon_sym_STAR_STAR, + ACTIONS(1561), 1, + anon_sym_AMP, + ACTIONS(1563), 1, + anon_sym_CARET, + ACTIONS(1545), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1547), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1553), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1557), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -56837,24 +56948,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [40156] = 10, + [40276] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1547), 1, + ACTIONS(1555), 1, anon_sym_STAR_STAR, - ACTIONS(1537), 2, + ACTIONS(1545), 2, anon_sym_STAR, anon_sym_SLASH, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1549), 3, + ACTIONS(1557), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -56888,74 +56999,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [40217] = 15, + [40337] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1459), 1, + ACTIONS(1511), 1, anon_sym_DOT, - ACTIONS(1461), 1, + ACTIONS(1513), 1, anon_sym_LPAREN, - ACTIONS(1475), 1, + ACTIONS(1527), 1, anon_sym_LBRACK, - ACTIONS(1543), 1, - anon_sym_PIPE, - ACTIONS(1547), 1, - anon_sym_STAR_STAR, - ACTIONS(1553), 1, - anon_sym_AMP, ACTIONS(1555), 1, - anon_sym_CARET, - ACTIONS(1537), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1539), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1545), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1549), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1615), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1613), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40288] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1547), 1, anon_sym_STAR_STAR, - STATE(643), 2, + STATE(642), 2, sym_argument_list, sym_generator_expression, ACTIONS(1599), 5, @@ -56993,7 +57048,413 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [40345] = 4, + [40394] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1529), 1, + anon_sym_STAR_STAR, + ACTIONS(1517), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1533), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1599), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1597), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [40455] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1621), 1, + sym__template_string_start, + STATE(686), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1389), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1387), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40505] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1090), 1, + anon_sym_COLON_EQ, + ACTIONS(1088), 6, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [40553] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1624), 1, + sym__string_start, + STATE(688), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1404), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1402), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40603] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(627), 1, + sym__template_string_start, + STATE(686), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1396), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1394), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40653] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1158), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1153), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym_type_conversion, + [40699] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + STATE(688), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1400), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1398), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40749] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1627), 1, + anon_sym_COLON_EQ, + ACTIONS(1088), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40797] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(599), 1, + anon_sym_COLON_EQ, + ACTIONS(265), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [40845] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(585), 1, @@ -57037,61 +57498,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [40393] = 5, + [40893] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, - sym__string_start, - STATE(691), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1407), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1405), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40443] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1185), 5, + ACTIONS(1173), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1180), 33, + ACTIONS(1168), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -57125,599 +57541,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym_type_conversion, - [40489] = 4, + [40939] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1143), 1, - anon_sym_COLON_EQ, - ACTIONS(1084), 6, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [40537] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(629), 1, - sym__template_string_start, - STATE(693), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1403), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1401), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40587] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(599), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40635] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1621), 1, - sym__string_start, - STATE(691), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1396), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1394), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40685] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1174), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1169), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym_type_conversion, - [40731] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1624), 1, - sym__template_string_start, - STATE(693), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1389), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1387), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40781] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1627), 1, - anon_sym_COLON_EQ, - ACTIONS(1084), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [40829] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(83), 1, - sym__template_string_start, - STATE(701), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1403), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1401), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [40878] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(81), 1, - sym__string_start, - STATE(702), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1407), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1405), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [40927] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1479), 1, - anon_sym_EQ, ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1639), 1, - anon_sym_PIPE, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - ACTIONS(1649), 1, - anon_sym_not, - ACTIONS(1651), 1, - anon_sym_AMP, - ACTIONS(1653), 1, - anon_sym_CARET, - ACTIONS(1657), 1, - anon_sym_is, - STATE(857), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1633), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1635), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1641), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1655), 2, - anon_sym_LT, - anon_sym_GT, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1647), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1637), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1463), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - sym__semicolon, - [41006] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(81), 1, - sym__string_start, + sym__template_string_start, STATE(696), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1084), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [41055] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(83), 1, - sym__template_string_start, - STATE(695), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1084), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [41104] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1185), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1180), 32, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [41149] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1659), 1, - sym__template_string_start, - STATE(701), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, ACTIONS(1389), 5, @@ -57756,14 +57585,188 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [41198] = 5, + [40988] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1662), 1, + ACTIONS(1158), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1153), 32, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [41033] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(81), 1, sym__string_start, - STATE(702), 2, + STATE(699), 2, sym_string, aux_sym_concatenated_string_repeat1, + ACTIONS(1088), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41082] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(81), 1, + sym__string_start, + STATE(704), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1400), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1398), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41131] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym__template_string_start, + STATE(701), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1088), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41180] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym__template_string_start, + STATE(696), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, ACTIONS(1396), 5, anon_sym_STAR, anon_sym_EQ, @@ -57800,16 +57803,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [41247] = 3, + [41229] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1174), 5, + ACTIONS(1531), 1, + anon_sym_EQ, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1642), 1, + anon_sym_PIPE, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + ACTIONS(1652), 1, + anon_sym_not, + ACTIONS(1654), 1, + anon_sym_AMP, + ACTIONS(1656), 1, + anon_sym_CARET, + ACTIONS(1660), 1, + anon_sym_is, + STATE(850), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1636), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1638), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1644), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1658), 2, + anon_sym_LT, + anon_sym_GT, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1650), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1640), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1515), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + sym__semicolon, + [41308] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1173), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1169), 32, + ACTIONS(1168), 32, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -57842,72 +57904,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [41292] = 5, + [41353] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(629), 1, - sym__template_string_start, - STATE(689), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1084), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [41340] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1599), 5, + ACTIONS(1662), 1, + sym__string_start, + STATE(704), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1404), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1597), 25, + ACTIONS(1402), 29, sym__newline, + anon_sym_DOT, anon_sym_from, + anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -57915,6 +57930,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -57931,120 +57948,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [41394] = 5, + [41402] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, - sym__string_start, - STATE(686), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1084), 4, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + ACTIONS(1656), 1, + anon_sym_CARET, + ACTIONS(1636), 2, anon_sym_STAR, anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [41442] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1419), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1417), 32, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [41486] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - ACTIONS(1653), 1, - anon_sym_CARET, - ACTIONS(1633), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1635), 2, + ACTIONS(1638), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1641), 2, + ACTIONS(1644), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(787), 2, + STATE(788), 2, sym_argument_list, sym_generator_expression, ACTIONS(1599), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1647), 3, + ACTIONS(1650), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -58066,28 +57999,81 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [41550] = 10, + [41466] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1629), 1, + ACTIONS(1632), 1, anon_sym_DOT, - ACTIONS(1631), 1, + ACTIONS(1634), 1, anon_sym_LPAREN, - ACTIONS(1643), 1, + ACTIONS(1642), 1, + anon_sym_PIPE, + ACTIONS(1646), 1, anon_sym_LBRACK, - ACTIONS(1645), 1, + ACTIONS(1648), 1, anon_sym_STAR_STAR, - ACTIONS(1633), 2, + ACTIONS(1654), 1, + anon_sym_AMP, + ACTIONS(1656), 1, + anon_sym_CARET, + ACTIONS(1636), 2, anon_sym_STAR, anon_sym_SLASH, - STATE(787), 2, + ACTIONS(1638), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1644), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1607), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1650), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1605), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41534] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + ACTIONS(1636), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(788), 2, sym_argument_list, sym_generator_expression, ACTIONS(1599), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1647), 3, + ACTIONS(1650), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -58114,222 +58100,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [41608] = 12, + [41592] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1629), 1, + ACTIONS(1632), 1, anon_sym_DOT, - ACTIONS(1631), 1, + ACTIONS(1634), 1, anon_sym_LPAREN, - ACTIONS(1643), 1, + ACTIONS(1646), 1, anon_sym_LBRACK, - ACTIONS(1645), 1, + ACTIONS(1648), 1, anon_sym_STAR_STAR, - ACTIONS(1633), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1635), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1641), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1599), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1647), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1597), 18, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [41670] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - ACTIONS(1651), 1, - anon_sym_AMP, - ACTIONS(1653), 1, - anon_sym_CARET, - ACTIONS(1633), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1635), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1641), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1599), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1647), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1597), 16, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [41736] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1639), 1, - anon_sym_PIPE, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - ACTIONS(1651), 1, - anon_sym_AMP, - ACTIONS(1653), 1, - anon_sym_CARET, - ACTIONS(1633), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1635), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1641), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1647), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1613), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [41804] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - ACTIONS(1633), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1599), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1647), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1597), 20, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [41864] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - STATE(787), 2, + STATE(788), 2, sym_argument_list, sym_generator_expression, ACTIONS(1599), 5, @@ -58364,147 +58146,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [41918] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1607), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1605), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [41972] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1437), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1435), 32, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42016] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1639), 1, - anon_sym_PIPE, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - ACTIONS(1651), 1, - anon_sym_AMP, - ACTIONS(1653), 1, - anon_sym_CARET, - ACTIONS(1633), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1635), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1641), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1619), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1647), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1617), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [42084] = 3, + [41646] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1427), 4, @@ -58545,7 +58187,254 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [42128] = 3, + [41690] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + ACTIONS(1636), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1638), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1644), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1599), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1650), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1597), 18, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41752] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1615), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1613), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41806] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1619), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1617), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41860] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1642), 1, + anon_sym_PIPE, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + ACTIONS(1654), 1, + anon_sym_AMP, + ACTIONS(1656), 1, + anon_sym_CARET, + ACTIONS(1636), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1638), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1644), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1611), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1650), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1609), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41928] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + ACTIONS(1654), 1, + anon_sym_AMP, + ACTIONS(1656), 1, + anon_sym_CARET, + ACTIONS(1636), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1638), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1644), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1599), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1650), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1597), 16, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [41994] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1423), 4, @@ -58554,6 +58443,47 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, ACTIONS(1421), 32, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [42038] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1419), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1417), 32, sym__string_start, anon_sym_DOT, anon_sym_LPAREN, @@ -58586,44 +58516,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [42172] = 15, + [42082] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1629), 1, + ACTIONS(1632), 1, anon_sym_DOT, - ACTIONS(1631), 1, + ACTIONS(1634), 1, anon_sym_LPAREN, - ACTIONS(1639), 1, + ACTIONS(1642), 1, anon_sym_PIPE, - ACTIONS(1643), 1, + ACTIONS(1646), 1, anon_sym_LBRACK, - ACTIONS(1645), 1, + ACTIONS(1648), 1, anon_sym_STAR_STAR, - ACTIONS(1651), 1, + ACTIONS(1654), 1, anon_sym_AMP, - ACTIONS(1653), 1, + ACTIONS(1656), 1, anon_sym_CARET, - ACTIONS(1633), 2, + ACTIONS(1636), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1635), 2, + ACTIONS(1638), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1641), 2, + ACTIONS(1644), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(787), 2, + STATE(788), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1611), 3, + ACTIONS(1603), 3, anon_sym_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(1647), 3, + ACTIONS(1650), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1609), 15, + ACTIONS(1601), 15, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -58639,53 +58569,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [42240] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 1, - anon_sym_DOT, - ACTIONS(1631), 1, - anon_sym_LPAREN, - ACTIONS(1643), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_STAR_STAR, - STATE(787), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1603), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1601), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [42294] = 19, + [42150] = 19, ACTIONS(3), 1, sym_comment, ACTIONS(1665), 1, @@ -58706,7 +58590,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_CARET, ACTIONS(1693), 1, anon_sym_is, - STATE(860), 1, + STATE(863), 1, aux_sym_comparison_operator_repeat1, ACTIONS(1669), 2, anon_sym_STAR, @@ -58720,7 +58604,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(1691), 2, anon_sym_LT, anon_sym_GT, - STATE(812), 2, + STATE(813), 2, sym_argument_list, sym_generator_expression, ACTIONS(1683), 3, @@ -58734,7 +58618,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1463), 7, + ACTIONS(1515), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -58742,264 +58626,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [42370] = 8, + [42226] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1607), 4, + ACTIONS(1437), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1605), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42423] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1675), 1, - anon_sym_PIPE, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - ACTIONS(1687), 1, - anon_sym_AMP, - ACTIONS(1689), 1, - anon_sym_CARET, - ACTIONS(1611), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1669), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1671), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1677), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1683), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1609), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42490] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, + ACTIONS(1435), 32, sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, - anon_sym_STAR, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1195), 2, - sym__match_patterns, - sym_open_sequence_match_pattern, - STATE(1196), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1352), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [42571] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1427), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1425), 30, - sym__newline, - sym__string_start, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [42614] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1627), 1, - anon_sym_COLON_EQ, - ACTIONS(1081), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1084), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 27, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42661] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1599), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1597), 25, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -59010,6 +58648,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -59025,84 +58667,88 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [42714] = 11, + [42270] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1669), 2, + ACTIONS(625), 1, + sym__string_start, + STATE(691), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1088), 4, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1677), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - STATE(812), 2, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [42318] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + ACTIONS(1636), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1644), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(788), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1683), 3, + ACTIONS(1599), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1650), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, ACTIONS(1597), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42773] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1423), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1421), 30, sym__newline, - sym__string_start, - anon_sym_DOT, anon_sym_from, - anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, anon_sym_in, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, @@ -59113,138 +58759,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [42816] = 22, + [42378] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, - anon_sym_STAR, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1715), 1, - anon_sym_if, - ACTIONS(1717), 1, - anon_sym_COLON, - STATE(897), 1, + STATE(689), 2, sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(1081), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [42897] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1675), 1, - anon_sym_PIPE, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - ACTIONS(1687), 1, - anon_sym_AMP, - ACTIONS(1689), 1, - anon_sym_CARET, - ACTIONS(1615), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1669), 2, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1088), 4, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1671), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1677), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1683), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1613), 15, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 29, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [42964] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1627), 1, - anon_sym_COLON_EQ, - ACTIONS(1719), 1, - anon_sym_EQ, - ACTIONS(1084), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, + anon_sym_COLON, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -59266,21 +58802,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43011] = 3, + [42426] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1419), 5, + ACTIONS(1632), 1, + anon_sym_DOT, + ACTIONS(1634), 1, + anon_sym_LPAREN, + ACTIONS(1646), 1, + anon_sym_LBRACK, + ACTIONS(1648), 1, + anon_sym_STAR_STAR, + STATE(788), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1599), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1417), 30, + ACTIONS(1597), 25, sym__newline, - sym__template_string_start, - anon_sym_DOT, anon_sym_from, - anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -59288,8 +58832,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -59306,7 +58848,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [43054] = 3, + [42480] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1153), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1158), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1160), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [42525] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1437), 5, @@ -59346,27 +58929,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [43097] = 5, + [42568] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(599), 1, - anon_sym_COLON_EQ, - ACTIONS(607), 1, - anon_sym_EQ, - ACTIONS(265), 4, + ACTIONS(1423), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(1421), 30, + sym__newline, + sym__template_string_start, anon_sym_DOT, + anon_sym_from, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -59388,7 +58968,108 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43144] = 5, + sym__semicolon, + [42611] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_COLON_EQ, + ACTIONS(265), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [42656] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1183), 2, + sym__match_patterns, + sym_open_sequence_match_pattern, + STATE(1184), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1362), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [42737] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(599), 1, @@ -59430,157 +59111,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43191] = 14, + [42784] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - ACTIONS(1687), 1, - anon_sym_AMP, - ACTIONS(1689), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1669), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1671), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1677), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1683), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1597), 16, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43256] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1669), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1683), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1597), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43313] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(298), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(265), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(593), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [43358] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(278), 1, + ACTIONS(1145), 1, anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(1088), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(1083), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -59610,415 +59152,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [43403] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1079), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1084), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1090), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [43448] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1086), 1, - anon_sym_COLON_EQ, - ACTIONS(1084), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [43493] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1599), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1597), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43546] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1079), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1084), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1147), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [43591] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, - anon_sym_STAR, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1196), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1205), 2, - sym__match_patterns, - sym_open_sequence_match_pattern, - STATE(1352), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [43672] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - ACTIONS(1689), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1669), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1671), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1677), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1683), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1597), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43735] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 1, - anon_sym_DOT, - ACTIONS(1667), 1, - anon_sym_LPAREN, - ACTIONS(1679), 1, - anon_sym_LBRACK, - ACTIONS(1681), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1669), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1671), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1677), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(812), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1683), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1597), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43796] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1180), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1185), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1187), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [43841] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1169), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1174), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1176), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [43886] = 4, + [42829] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(298), 3, @@ -60059,7 +59193,352 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [43931] = 8, + [42874] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(298), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(265), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(593), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [42919] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1184), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1277), 2, + sym__match_patterns, + sym_open_sequence_match_pattern, + STATE(1362), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [43000] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1675), 1, + anon_sym_PIPE, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + ACTIONS(1687), 1, + anon_sym_AMP, + ACTIONS(1689), 1, + anon_sym_CARET, + ACTIONS(1611), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1669), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1671), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1677), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1683), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1609), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43067] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1083), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1088), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1149), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [43112] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1675), 1, + anon_sym_PIPE, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + ACTIONS(1687), 1, + anon_sym_AMP, + ACTIONS(1689), 1, + anon_sym_CARET, + ACTIONS(1607), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1669), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1671), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1677), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1683), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1605), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43179] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1715), 1, + anon_sym_if, + ACTIONS(1717), 1, + anon_sym_COLON, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(1089), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [43260] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1168), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1173), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1175), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [43305] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(1665), 1, @@ -60070,15 +59549,155 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(1681), 1, anon_sym_STAR_STAR, - STATE(812), 2, + ACTIONS(1599), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1669), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1671), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1677), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(813), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1603), 4, + ACTIONS(1683), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1597), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43366] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1083), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1088), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1094), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [43411] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + ACTIONS(1689), 1, + anon_sym_CARET, + ACTIONS(1599), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1669), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1671), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1677), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1683), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1597), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43474] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1599), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1601), 25, + ACTIONS(1597), 25, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -60104,12 +59723,324 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43984] = 22, + [43527] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, + ACTIONS(1419), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1417), 30, + sym__newline, sym__string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [43570] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + ACTIONS(1599), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1669), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1683), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1597), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43627] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + ACTIONS(1687), 1, + anon_sym_AMP, + ACTIONS(1689), 1, + anon_sym_CARET, + ACTIONS(1599), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1669), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1671), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1677), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1683), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1597), 16, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43692] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1619), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1617), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43745] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(599), 1, + anon_sym_COLON_EQ, ACTIONS(629), 1, + anon_sym_EQ, + ACTIONS(265), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43792] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1615), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1613), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43845] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1627), 1, + anon_sym_COLON_EQ, + ACTIONS(1719), 1, + anon_sym_EQ, + ACTIONS(1088), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43892] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -60133,28 +60064,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(1723), 1, anon_sym_COLON, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1019), 2, + STATE(1014), 2, sym__match_or_pattern, sym_match_or_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(1081), 4, + STATE(1089), 4, sym__match_pattern, sym_match_as_pattern, sym__match_maybe_star_pattern, sym_match_star_pattern, - STATE(981), 8, + STATE(980), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -60163,7 +60094,7 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [44065] = 15, + [43973] = 15, ACTIONS(3), 1, sym_comment, ACTIONS(1665), 1, @@ -60180,7 +60111,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, ACTIONS(1689), 1, anon_sym_CARET, - ACTIONS(1619), 2, + ACTIONS(1603), 2, anon_sym_LT, anon_sym_GT, ACTIONS(1669), 2, @@ -60192,14 +60123,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(1677), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(812), 2, + STATE(813), 2, sym_argument_list, sym_generator_expression, ACTIONS(1683), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1617), 15, + ACTIONS(1601), 15, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -60215,16 +60146,231 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44132] = 3, + [44040] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1571), 5, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + ACTIONS(1599), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1669), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1677), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1683), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1597), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44099] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1665), 1, + anon_sym_DOT, + ACTIONS(1667), 1, + anon_sym_LPAREN, + ACTIONS(1679), 1, + anon_sym_LBRACK, + ACTIONS(1681), 1, + anon_sym_STAR_STAR, + STATE(813), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1599), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1597), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44152] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1627), 1, + anon_sym_COLON_EQ, + ACTIONS(1142), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1088), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44199] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1427), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1569), 29, + ACTIONS(1425), 30, + sym__newline, + sym__string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [44242] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1170), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1173), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1168), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44286] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1505), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1503), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -60254,16 +60400,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [44174] = 3, + [44328] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1449), 5, + ACTIONS(1465), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1447), 29, + ACTIONS(1463), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -60293,16 +60439,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [44216] = 3, + [44370] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1563), 5, + ACTIONS(265), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1561), 29, + ACTIONS(298), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -60332,16 +60478,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [44258] = 3, + [44412] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1174), 5, + ACTIONS(1088), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1169), 29, + ACTIONS(1083), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -60371,85 +60517,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [44300] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1515), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1513), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [44342] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [44384] = 3, + [44454] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1579), 5, @@ -60488,96 +60556,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [44426] = 3, + [44496] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1441), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1439), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [44468] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1587), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1585), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [44510] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1725), 1, + ACTIONS(613), 1, anon_sym_COLON_EQ, - ACTIONS(1084), 5, + ACTIONS(265), 5, anon_sym_STAR, anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1079), 28, + ACTIONS(298), 28, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60606,16 +60596,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44554] = 3, + [44540] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1595), 5, + ACTIONS(1575), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1593), 29, + ACTIONS(1573), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -60645,16 +60635,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [44596] = 3, + [44582] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1507), 5, + ACTIONS(1571), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1505), 29, + ACTIONS(1569), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -60684,51 +60674,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [44638] = 3, + [44624] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(1519), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1517), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [44680] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -60748,30 +60699,31 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - ACTIONS(1727), 1, + ACTIONS(1725), 1, anon_sym_RPAREN, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1019), 2, + STATE(1014), 2, sym__match_or_pattern, sym_match_or_pattern, + STATE(1376), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1382), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(1081), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(981), 8, + STATE(980), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -60780,52 +60732,12 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [44758] = 4, + [44704] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1081), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1084), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44802] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -60845,30 +60757,30 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - ACTIONS(1727), 1, + ACTIONS(1725), 1, anon_sym_RBRACK, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1019), 2, + STATE(1014), 2, sym__match_or_pattern, sym_match_or_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(1081), 4, + STATE(1206), 4, sym__match_pattern, sym_match_as_pattern, sym__match_maybe_star_pattern, sym_match_star_pattern, - STATE(981), 8, + STATE(980), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -60877,320 +60789,7 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [44880] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [44922] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [44964] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45006] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1511), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1509), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45048] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1499), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1497), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45090] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1185), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1180), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45132] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1182), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1185), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1180), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45176] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1495), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1493), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45218] = 3, + [44782] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1449), 5, @@ -61229,18 +60828,481 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [45260] = 4, + [44824] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(615), 1, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1727), 1, + anon_sym_RBRACK, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(1089), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [44902] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1469), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1467), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [44944] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1142), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1088), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44988] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1727), 1, + anon_sym_RPAREN, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(1089), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [45066] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1465), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45108] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1729), 1, + anon_sym_RPAREN, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(1089), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [45186] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1729), 1, + anon_sym_RBRACK, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(1089), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [45264] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1497), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1495), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45306] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1497), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1495), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45348] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1477), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1475), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45390] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1731), 1, anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(1088), 5, anon_sym_STAR, anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 28, + ACTIONS(1083), 28, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61269,16 +61331,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45304] = 3, + [45434] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1567), 5, + ACTIONS(1158), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1565), 29, + ACTIONS(1153), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -61308,16 +61370,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [45346] = 3, + [45476] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1457), 5, + ACTIONS(1461), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1455), 29, + ACTIONS(1459), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -61347,65 +61409,632 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [45388] = 22, + [45518] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, + ACTIONS(1473), 5, anon_sym_STAR, - ACTIONS(1701), 1, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1471), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1729), 1, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45560] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1485), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1483), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45602] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1481), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1479), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45644] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1173), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1168), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45686] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1453), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1451), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45728] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1509), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1507), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45770] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1583), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1581), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45812] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1489), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1487), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45854] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1587), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1585), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45896] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1501), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1499), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45938] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1441), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1439), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [45980] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1595), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1593), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [46022] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1449), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1447), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [46064] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1493), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1491), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [46106] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1453), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1451), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + sym__semicolon, + [46148] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1155), 3, anon_sym_RPAREN, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1359), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1360), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [45468] = 3, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1158), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1153), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46192] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1445), 5, @@ -61444,7 +62073,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [45510] = 3, + [46234] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1591), 5, @@ -61483,473 +62112,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [45552] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1453), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1451), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45594] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45636] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, - anon_sym_STAR, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1731), 1, - anon_sym_RPAREN, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(1081), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [45714] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, - anon_sym_STAR, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1729), 1, - anon_sym_RBRACK, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(1180), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [45792] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1515), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1513), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45834] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1171), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1174), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1169), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45878] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45920] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1453), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1451), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [45962] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1503), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1501), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [46004] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1084), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [46046] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1527), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - sym__semicolon, - [46088] = 3, + [46276] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1457), 5, @@ -61988,1244 +62151,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, sym__semicolon, - [46130] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, - anon_sym_STAR, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1731), 1, - anon_sym_RBRACK, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(1081), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [46208] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1587), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1585), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46249] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1733), 1, - sym_identifier, - ACTIONS(1735), 1, - anon_sym_RPAREN, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1293), 1, - sym_match_keyword_pattern, - STATE(1304), 1, - sym_match_positional_pattern, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1316), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [46328] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(585), 1, - anon_sym_COLON_EQ, - ACTIONS(607), 1, - anon_sym_EQ, - ACTIONS(265), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46373] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1733), 1, - sym_identifier, - ACTIONS(1737), 1, - anon_sym_RPAREN, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1190), 1, - sym_match_keyword_pattern, - STATE(1337), 1, - sym_match_positional_pattern, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1316), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [46452] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1143), 1, - anon_sym_COLON_EQ, - ACTIONS(1719), 1, - anon_sym_EQ, - ACTIONS(1084), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46497] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1449), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1447), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46538] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1084), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1079), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46579] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1495), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1493), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46620] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46661] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1449), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1447), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46702] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1453), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1451), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46743] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1503), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1501), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46784] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46825] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46866] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1527), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46907] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1453), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1451), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46948] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46989] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1591), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47030] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1733), 1, - sym_identifier, - ACTIONS(1739), 1, - anon_sym_RPAREN, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1251), 1, - sym_match_keyword_pattern, - STATE(1337), 1, - sym_match_positional_pattern, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1316), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [47109] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1445), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1443), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47150] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1457), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1455), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47191] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47232] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47273] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47314] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(869), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(867), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47355] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1457), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1455), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47396] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - ACTIONS(629), 1, - sym__template_string_start, - ACTIONS(1695), 1, - sym_identifier, - ACTIONS(1697), 1, - anon_sym_LPAREN, - ACTIONS(1699), 1, - anon_sym_STAR, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1703), 1, - sym_match_wildcard_pattern, - ACTIONS(1705), 1, - anon_sym_LBRACK, - ACTIONS(1707), 1, - anon_sym_LBRACE, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - STATE(897), 1, - sym_template_string, - STATE(898), 1, - sym_string, - STATE(1448), 1, - sym_pattern_class_name, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1019), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - STATE(1081), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(981), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [47471] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47512] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(875), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(873), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47553] = 3, + [46318] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1595), 4, @@ -63263,15 +62189,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47594] = 3, + [46359] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1563), 4, + ACTIONS(1575), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1561), 29, + ACTIONS(1573), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -63301,7 +62227,997 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47635] = 3, + [46400] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(265), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46441] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(585), 1, + anon_sym_COLON_EQ, + ACTIONS(629), 1, + anon_sym_EQ, + ACTIONS(265), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(298), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46486] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1733), 1, + sym_identifier, + ACTIONS(1735), 1, + anon_sym_RPAREN, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1192), 1, + sym_match_keyword_pattern, + STATE(1200), 1, + sym_match_positional_pattern, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1373), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [46565] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1449), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1447), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46606] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1501), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1499), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46647] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1695), 1, + sym_identifier, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1699), 1, + anon_sym_STAR, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(1089), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [46722] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1449), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1447), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46763] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46804] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1733), 1, + sym_identifier, + ACTIONS(1737), 1, + anon_sym_RPAREN, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1213), 1, + sym_match_keyword_pattern, + STATE(1332), 1, + sym_match_positional_pattern, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1373), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [46883] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1509), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1507), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46924] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1453), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1451), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46965] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1489), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1487), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47006] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1481), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1479), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47047] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1485), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1483), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47088] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1453), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1451), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47129] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1591), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1589), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47170] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1493), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1491), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47211] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1497), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1495), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47252] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1445), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1443), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47293] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1497), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1495), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47334] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(863), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(861), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47375] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + ACTIONS(627), 1, + sym__template_string_start, + ACTIONS(1697), 1, + anon_sym_LPAREN, + ACTIONS(1701), 1, + anon_sym_DASH, + ACTIONS(1703), 1, + sym_match_wildcard_pattern, + ACTIONS(1705), 1, + anon_sym_LBRACK, + ACTIONS(1707), 1, + anon_sym_LBRACE, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1733), 1, + sym_identifier, + ACTIONS(1739), 1, + anon_sym_RPAREN, + STATE(891), 1, + sym_template_string, + STATE(892), 1, + sym_string, + STATE(1242), 1, + sym_match_keyword_pattern, + STATE(1332), 1, + sym_match_positional_pattern, + STATE(1419), 1, + sym_pattern_class_name, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1014), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1373), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + STATE(980), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [47454] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1571), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1569), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47495] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1090), 1, + anon_sym_COLON_EQ, + ACTIONS(1719), 1, + anon_sym_EQ, + ACTIONS(1088), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1083), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47540] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1579), 4, @@ -63339,15 +63255,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47676] = 3, + [47581] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1499), 4, + ACTIONS(1465), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1497), 29, + ACTIONS(1463), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -63377,159 +63293,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47717] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1507), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1505), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47758] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1511), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1509), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47799] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1515), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1513), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47840] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1515), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1513), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47881] = 3, + [47622] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1441), 4, @@ -63567,15 +63331,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47922] = 3, + [47663] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1519), 4, + ACTIONS(1587), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1517), 29, + ACTIONS(1585), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -63605,12 +63369,354 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [47963] = 20, + [47704] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, + ACTIONS(1477), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1475), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47745] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1583), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1581), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47786] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1469), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1467), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47827] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1465), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1463), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47868] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1461), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1459), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47909] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1457), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1455), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47950] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(867), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(865), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47991] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1473), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1471), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48032] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1505), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1503), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48073] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -63628,28 +63734,28 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1337), 1, + STATE(1332), 1, sym_match_positional_pattern, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1019), 2, + STATE(1014), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1316), 2, + STATE(1373), 2, sym__match_pattern, sym_match_as_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(981), 8, + STATE(980), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -63658,12 +63764,12 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [48036] = 19, + [48146] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -63681,26 +63787,26 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1019), 2, + STATE(1014), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1372), 2, + STATE(1384), 2, sym__match_pattern, sym_match_as_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(981), 8, + STATE(980), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -63709,12 +63815,12 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [48106] = 19, + [48216] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -63732,26 +63838,26 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1019), 2, + STATE(1014), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1335), 2, + STATE(1326), 2, sym__match_pattern, sym_match_as_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(981), 8, + STATE(980), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -63760,12 +63866,12 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [48176] = 17, + [48286] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -63783,20 +63889,20 @@ static const uint16_t ts_small_parse_table[] = { sym_float, ACTIONS(1741), 1, sym_match_wildcard_pattern, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(973), 8, + STATE(956), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -63805,12 +63911,12 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [48238] = 17, + [48348] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, + ACTIONS(625), 1, sym__string_start, - ACTIONS(629), 1, + ACTIONS(627), 1, sym__template_string_start, ACTIONS(1695), 1, sym_identifier, @@ -63828,20 +63934,20 @@ static const uint16_t ts_small_parse_table[] = { sym_float, ACTIONS(1743), 1, sym_match_wildcard_pattern, - STATE(897), 1, + STATE(891), 1, sym_template_string, - STATE(898), 1, + STATE(892), 1, sym_string, - STATE(1448), 1, + STATE(1419), 1, sym_pattern_class_name, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - STATE(938), 8, + STATE(939), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -63850,7 +63956,7 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [48300] = 8, + [48410] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(1750), 1, @@ -63859,7 +63965,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(1758), 1, anon_sym_is, - STATE(843), 1, + STATE(844), 1, aux_sym_comparison_operator_repeat1, ACTIONS(1755), 2, anon_sym_LT, @@ -63882,21 +63988,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, sym_type_conversion, - [48340] = 8, + [48450] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1551), 1, - anon_sym_not, ACTIONS(1559), 1, + anon_sym_not, + ACTIONS(1567), 1, anon_sym_is, ACTIONS(1763), 1, anon_sym_as, - STATE(845), 1, + STATE(847), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1557), 2, + ACTIONS(1565), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1541), 6, + ACTIONS(1549), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, @@ -63914,7 +64020,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [48380] = 8, + [48490] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1535), 1, + anon_sym_not, + ACTIONS(1543), 1, + anon_sym_is, + ACTIONS(1763), 1, + anon_sym_EQ, + STATE(844), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1541), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1521), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1761), 10, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + sym_type_conversion, + [48530] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(1750), 1, @@ -63923,7 +64061,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(1774), 1, anon_sym_is, - STATE(845), 1, + STATE(847), 1, aux_sym_comparison_operator_repeat1, ACTIONS(1771), 2, anon_sym_LT, @@ -63946,44 +64084,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [48420] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1483), 1, - anon_sym_not, - ACTIONS(1491), 1, - anon_sym_is, - ACTIONS(1763), 1, - anon_sym_EQ, - STATE(843), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1489), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1469), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1761), 10, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - sym_type_conversion, - [48460] = 4, + [48570] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(1779), 1, anon_sym_COMMA, - STATE(847), 1, + STATE(848), 1, aux_sym__patterns_repeat1, ACTIONS(1777), 18, anon_sym_RPAREN, @@ -64004,47 +64110,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [48490] = 16, + [48600] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1701), 1, - anon_sym_DASH, - ACTIONS(1709), 1, - sym_integer, - ACTIONS(1711), 1, - sym_float, - ACTIONS(1782), 1, - sym_identifier, - ACTIONS(1784), 1, - anon_sym_RBRACE, - ACTIONS(1786), 1, - anon_sym_STAR_STAR, - STATE(1110), 1, - sym_template_string, - STATE(1112), 1, - sym_string, - STATE(1361), 1, - sym_match_key_value_pattern, - STATE(1364), 1, - sym_match_double_star_pattern, - STATE(987), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1461), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1713), 3, - sym_true, - sym_false, - sym_none, - [48543] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1788), 19, + ACTIONS(1782), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -64064,7 +64133,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [48568] = 16, + [48625] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1652), 1, + anon_sym_not, + ACTIONS(1660), 1, + anon_sym_is, + ACTIONS(1763), 1, + anon_sym_EQ, + STATE(856), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1658), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1761), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + sym__semicolon, + [48662] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(310), 1, @@ -64077,31 +64175,102 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - ACTIONS(1782), 1, + ACTIONS(1784), 1, sym_identifier, ACTIONS(1786), 1, - anon_sym_STAR_STAR, - ACTIONS(1790), 1, anon_sym_RBRACE, - STATE(1110), 1, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(1119), 1, sym_template_string, - STATE(1112), 1, + STATE(1120), 1, sym_string, - STATE(1187), 1, + STATE(1273), 1, sym_match_key_value_pattern, - STATE(1322), 1, + STATE(1337), 1, sym_match_double_star_pattern, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1461), 2, + STATE(1471), 2, sym_match_literal_pattern, sym_match_value_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - [48621] = 16, + [48715] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(265), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(825), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(298), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + [48744] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1149), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [48769] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1790), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [48794] = 16, ACTIONS(3), 1, sym_comment, ACTIONS(310), 1, @@ -64114,31 +64283,31 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - ACTIONS(1782), 1, + ACTIONS(1784), 1, sym_identifier, - ACTIONS(1786), 1, + ACTIONS(1788), 1, anon_sym_STAR_STAR, ACTIONS(1792), 1, anon_sym_RBRACE, - STATE(1110), 1, + STATE(1119), 1, sym_template_string, - STATE(1112), 1, + STATE(1120), 1, sym_string, - STATE(1328), 1, + STATE(1339), 1, sym_match_double_star_pattern, - STATE(1361), 1, + STATE(1344), 1, sym_match_key_value_pattern, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1461), 2, + STATE(1471), 2, sym_match_literal_pattern, sym_match_value_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - [48674] = 8, + [48847] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(1750), 1, @@ -64147,7 +64316,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, ACTIONS(1803), 1, anon_sym_is, - STATE(852), 1, + STATE(856), 1, aux_sym_comparison_operator_repeat1, ACTIONS(1800), 2, anon_sym_LT, @@ -64167,7 +64336,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, sym__semicolon, - [48711] = 2, + [48884] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(1806), 19, @@ -64190,117 +64359,54 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [48736] = 2, + [48909] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(1808), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [48761] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1090), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [48786] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(827), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(298), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_PIPE, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(1701), 1, anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(1709), 1, + sym_integer, + ACTIONS(1711), 1, + sym_float, + ACTIONS(1784), 1, + sym_identifier, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - [48815] = 8, + ACTIONS(1808), 1, + anon_sym_RBRACE, + STATE(1119), 1, + sym_template_string, + STATE(1120), 1, + sym_string, + STATE(1313), 1, + sym_match_double_star_pattern, + STATE(1344), 1, + sym_match_key_value_pattern, + STATE(977), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1471), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1713), 3, + sym_true, + sym_false, + sym_none, + [48962] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1649), 1, - anon_sym_not, - ACTIONS(1657), 1, - anon_sym_is, - ACTIONS(1763), 1, - anon_sym_EQ, - STATE(852), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1655), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1637), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1761), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - sym__semicolon, - [48852] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1084), 2, + ACTIONS(1088), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(1810), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - ACTIONS(1079), 14, + ACTIONS(1083), 14, anon_sym_DOT, anon_sym_LPAREN, anon_sym_GT_GT, @@ -64315,14 +64421,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - [48881] = 7, + [48991] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(1815), 1, anon_sym_not, ACTIONS(1821), 1, anon_sym_is, - STATE(859), 1, + STATE(860), 1, aux_sym_comparison_operator_repeat1, ACTIONS(1818), 2, anon_sym_LT, @@ -64342,14 +64448,71 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [48915] = 7, + [49025] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1824), 1, + anon_sym_COMMA, + STATE(848), 1, + aux_sym__patterns_repeat1, + ACTIONS(1826), 16, + anon_sym_COLON, + anon_sym_in, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [49053] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + anon_sym_DOT, + ACTIONS(1513), 1, + anon_sym_LPAREN, + ACTIONS(1523), 1, + anon_sym_PIPE, + ACTIONS(1527), 1, + anon_sym_LBRACK, + ACTIONS(1529), 1, + anon_sym_STAR_STAR, + ACTIONS(1537), 1, + anon_sym_AMP, + ACTIONS(1539), 1, + anon_sym_CARET, + ACTIONS(1517), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1519), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1525), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(642), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1533), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + [49099] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(1685), 1, anon_sym_not, ACTIONS(1693), 1, anon_sym_is, - STATE(859), 1, + STATE(860), 1, aux_sym_comparison_operator_repeat1, ACTIONS(1691), 2, anon_sym_LT, @@ -64369,64 +64532,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [48949] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 1, - anon_sym_DOT, - ACTIONS(1461), 1, - anon_sym_LPAREN, - ACTIONS(1471), 1, - anon_sym_PIPE, - ACTIONS(1475), 1, - anon_sym_LBRACK, - ACTIONS(1477), 1, - anon_sym_STAR_STAR, - ACTIONS(1485), 1, - anon_sym_AMP, - ACTIONS(1487), 1, - anon_sym_CARET, - ACTIONS(1465), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1467), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1473), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(643), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1481), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - [48995] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1824), 1, - anon_sym_COMMA, - STATE(847), 1, - aux_sym__patterns_repeat1, - ACTIONS(1826), 16, - anon_sym_COLON, - anon_sym_in, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [49023] = 12, + [49133] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(1828), 1, @@ -64441,34 +64547,96 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR_STAR, ACTIONS(1838), 1, anon_sym_SLASH, - STATE(1296), 1, + STATE(1276), 1, sym_parameter, - STATE(1433), 1, + STATE(1448), 1, sym_lambda_parameters, - STATE(1476), 1, + STATE(1474), 1, sym__parameters, - STATE(1325), 2, + STATE(1331), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49066] = 6, + [49176] = 12, ACTIONS(3), 1, sym_comment, + ACTIONS(1828), 1, + sym_identifier, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1832), 1, + anon_sym_STAR, + ACTIONS(1836), 1, + anon_sym_STAR_STAR, + ACTIONS(1838), 1, + anon_sym_SLASH, ACTIONS(1840), 1, - anon_sym_COMMA, + anon_sym_COLON, + STATE(1276), 1, + sym_parameter, + STATE(1435), 1, + sym_lambda_parameters, + STATE(1474), 1, + sym__parameters, + STATE(1331), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1278), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [49219] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + sym_identifier, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1832), 1, + anon_sym_STAR, + ACTIONS(1836), 1, + anon_sym_STAR_STAR, + ACTIONS(1838), 1, + anon_sym_SLASH, ACTIONS(1842), 1, anon_sym_COLON, + STATE(1276), 1, + sym_parameter, + STATE(1423), 1, + sym_lambda_parameters, + STATE(1474), 1, + sym__parameters, + STATE(1331), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1278), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [49262] = 6, + ACTIONS(3), 1, + sym_comment, ACTIONS(1844), 1, + anon_sym_COMMA, + ACTIONS(1846), 1, + anon_sym_COLON, + ACTIONS(1848), 1, anon_sym_EQ, - STATE(862), 1, + STATE(861), 1, aux_sym__patterns_repeat1, - ACTIONS(1846), 13, + ACTIONS(1850), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -64482,69 +64650,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [49097] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - sym_identifier, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1832), 1, - anon_sym_STAR, - ACTIONS(1836), 1, - anon_sym_STAR_STAR, - ACTIONS(1838), 1, - anon_sym_SLASH, - ACTIONS(1848), 1, - anon_sym_COLON, - STATE(1296), 1, - sym_parameter, - STATE(1475), 1, - sym_lambda_parameters, - STATE(1476), 1, - sym__parameters, - STATE(1325), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1299), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [49140] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - sym_identifier, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1832), 1, - anon_sym_STAR, - ACTIONS(1836), 1, - anon_sym_STAR_STAR, - ACTIONS(1838), 1, - anon_sym_SLASH, - ACTIONS(1850), 1, - anon_sym_COLON, - STATE(1296), 1, - sym_parameter, - STATE(1402), 1, - sym_lambda_parameters, - STATE(1476), 1, - sym__parameters, - STATE(1325), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1299), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [49183] = 12, + [49293] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(1828), 1, @@ -64559,23 +64665,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, ACTIONS(1852), 1, anon_sym_COLON, - STATE(1296), 1, + STATE(1276), 1, sym_parameter, - STATE(1417), 1, + STATE(1397), 1, sym_lambda_parameters, - STATE(1476), 1, + STATE(1474), 1, sym__parameters, - STATE(1325), 2, + STATE(1331), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49226] = 12, + [49336] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(1828), 1, @@ -64590,23 +64696,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, ACTIONS(1854), 1, anon_sym_COLON, - STATE(1296), 1, + STATE(1276), 1, sym_parameter, - STATE(1383), 1, + STATE(1472), 1, sym_lambda_parameters, - STATE(1476), 1, + STATE(1474), 1, sym__parameters, - STATE(1325), 2, + STATE(1331), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49269] = 13, + [49379] = 13, ACTIONS(3), 1, sym_comment, ACTIONS(310), 1, @@ -64619,25 +64725,25 @@ static const uint16_t ts_small_parse_table[] = { sym_integer, ACTIONS(1711), 1, sym_float, - ACTIONS(1782), 1, + ACTIONS(1784), 1, sym_identifier, - STATE(1110), 1, + STATE(1119), 1, sym_template_string, - STATE(1112), 1, + STATE(1120), 1, sym_string, - STATE(1361), 1, + STATE(1344), 1, sym_match_key_value_pattern, - STATE(987), 2, + STATE(977), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1461), 2, + STATE(1471), 2, sym_match_literal_pattern, sym_match_value_pattern, ACTIONS(1713), 3, sym_true, sym_false, sym_none, - [49313] = 11, + [49423] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(1830), 1, @@ -64652,21 +64758,21 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(1858), 1, anon_sym_RPAREN, - STATE(1228), 1, + STATE(1229), 1, sym_parameter, - STATE(1469), 1, + STATE(1473), 1, sym__parameters, - STATE(1267), 2, + STATE(1222), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49353] = 10, + [49463] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(1830), 1, @@ -64681,46 +64787,19 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(1860), 1, anon_sym_RPAREN, - STATE(1282), 1, + STATE(1288), 1, sym_parameter, - STATE(1267), 2, + STATE(1222), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49390] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1828), 1, - sym_identifier, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1832), 1, - anon_sym_STAR, - ACTIONS(1836), 1, - anon_sym_STAR_STAR, - ACTIONS(1838), 1, - anon_sym_SLASH, - ACTIONS(1862), 1, - anon_sym_COLON, - STATE(1282), 1, - sym_parameter, - STATE(1325), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1299), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [49427] = 10, + [49500] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(1830), 1, @@ -64735,26 +64814,26 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(1862), 1, anon_sym_RPAREN, - STATE(1282), 1, + STATE(1288), 1, sym_parameter, - STATE(1267), 2, + STATE(1222), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49464] = 4, + [49537] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1842), 1, + ACTIONS(1846), 1, anon_sym_COLON, - ACTIONS(1844), 1, + ACTIONS(1848), 1, anon_sym_EQ, - ACTIONS(1846), 13, + ACTIONS(1850), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -64768,7 +64847,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [49489] = 10, + [49562] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1828), 1, + sym_identifier, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1832), 1, + anon_sym_STAR, + ACTIONS(1836), 1, + anon_sym_STAR_STAR, + ACTIONS(1838), 1, + anon_sym_SLASH, + ACTIONS(1862), 1, + anon_sym_COLON, + STATE(1288), 1, + sym_parameter, + STATE(1331), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1278), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [49599] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(1828), 1, @@ -64783,38 +64889,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, ACTIONS(1860), 1, anon_sym_COLON, - STATE(1282), 1, + STATE(1288), 1, sym_parameter, - STATE(1325), 2, + STATE(1331), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49526] = 3, + [49636] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(1479), 1, - anon_sym_as, - ACTIONS(1463), 13, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - sym_type_conversion, - [49548] = 9, + ACTIONS(1828), 1, + sym_identifier, + ACTIONS(1830), 1, + anon_sym_LPAREN, + ACTIONS(1832), 1, + anon_sym_STAR, + ACTIONS(1836), 1, + anon_sym_STAR_STAR, + ACTIONS(1838), 1, + anon_sym_SLASH, + STATE(1288), 1, + sym_parameter, + STATE(1331), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1278), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [49670] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(1830), 1, @@ -64827,19 +64939,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SLASH, ACTIONS(1856), 1, sym_identifier, - STATE(1282), 1, + STATE(1288), 1, sym_parameter, - STATE(1267), 2, + STATE(1222), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1299), 6, + STATE(1278), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [49582] = 3, + [49704] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1866), 1, @@ -64858,37 +64970,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, sym_type_conversion, - [49604] = 9, + [49726] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1828), 1, - sym_identifier, - ACTIONS(1830), 1, - anon_sym_LPAREN, - ACTIONS(1832), 1, - anon_sym_STAR, - ACTIONS(1836), 1, - anon_sym_STAR_STAR, - ACTIONS(1838), 1, - anon_sym_SLASH, - STATE(1282), 1, - sym_parameter, - STATE(1325), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1299), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [49638] = 4, + ACTIONS(1531), 1, + anon_sym_as, + ACTIONS(1515), 13, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + sym_type_conversion, + [49748] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(1870), 1, anon_sym_DOT, - STATE(880), 1, + STATE(881), 1, aux_sym_match_value_pattern_repeat1, ACTIONS(1868), 10, anon_sym_import, @@ -64901,16 +65007,158 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [49660] = 5, + [49770] = 5, ACTIONS(3), 1, sym_comment, + ACTIONS(1873), 1, + anon_sym_DOT, ACTIONS(1875), 1, + anon_sym_LPAREN, + STATE(902), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(1877), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, - ACTIONS(1877), 1, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [49793] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(1883), 1, anon_sym_or, - ACTIONS(1873), 8, + ACTIONS(1879), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + sym_type_conversion, + [49814] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1885), 1, + anon_sym_as, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1879), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [49837] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1893), 1, + anon_sym_COMMA, + ACTIONS(1895), 1, + anon_sym_if, + STATE(982), 1, + aux_sym_expression_list_repeat1, + ACTIONS(1891), 6, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + sym_type_conversion, + [49864] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1901), 1, + anon_sym_COLON, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1907), 1, + anon_sym_RBRACE, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1455), 1, + sym__comprehension_clauses, + [49901] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1901), 1, + anon_sym_COLON, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1907), 1, + anon_sym_RBRACE, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1403), 1, + sym__comprehension_clauses, + [49938] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1911), 1, + anon_sym_as, + ACTIONS(1909), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [49963] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(1913), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -64919,57 +65167,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - [49683] = 12, + [49986] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1885), 1, - anon_sym_COLON, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1891), 1, - anon_sym_RBRACE, - ACTIONS(1893), 1, anon_sym_and, - ACTIONS(1895), 1, + ACTIONS(1883), 1, anon_sym_or, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1450), 1, - sym__comprehension_clauses, - [49720] = 12, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(1915), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + sym_type_conversion, + [50009] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1897), 1, + ACTIONS(627), 1, + sym__template_string_start, + STATE(689), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1917), 8, anon_sym_RPAREN, - ACTIONS(1899), 1, anon_sym_COMMA, - ACTIONS(1902), 1, anon_sym_as, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1387), 1, - sym__comprehension_clauses, - [49757] = 2, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [50030] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(625), 1, + sym__string_start, + STATE(691), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1917), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [50051] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1921), 1, + anon_sym_as, + ACTIONS(1919), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [50074] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(1868), 11, @@ -64984,36 +65252,138 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [49774] = 7, + [50091] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, + ACTIONS(1881), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(1883), 1, anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - STATE(986), 1, - aux_sym_expression_list_repeat1, - ACTIONS(1904), 6, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(1909), 8, anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_COLON, + anon_sym_else, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - [49801] = 5, + [50114] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1908), 1, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1919), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + sym_type_conversion, + [50135] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1925), 1, + anon_sym_as, + ACTIONS(1923), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_or, + [50156] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1927), 1, + anon_sym_as, + ACTIONS(1915), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [50181] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1925), 1, + anon_sym_as, + ACTIONS(1923), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [50204] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1923), 10, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_or, + sym_type_conversion, + [50223] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1923), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + sym_type_conversion, + [50244] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1873), 1, anon_sym_DOT, - ACTIONS(1910), 1, + ACTIONS(1929), 1, anon_sym_LPAREN, - STATE(880), 1, + STATE(881), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(1912), 8, + ACTIONS(1931), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -65022,340 +65392,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [49824] = 5, + [50267] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1916), 1, - anon_sym_as, - ACTIONS(1914), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [49847] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1918), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [49868] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1920), 1, - anon_sym_as, - ACTIONS(1918), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [49891] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1924), 1, - anon_sym_as, - ACTIONS(1922), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [49916] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1920), 1, - anon_sym_as, - ACTIONS(1918), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_or, - [49937] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1918), 10, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_or, - sym_type_conversion, - [49956] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1926), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [49977] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1928), 1, - anon_sym_as, - ACTIONS(1873), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [50002] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1930), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [50025] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1932), 1, - anon_sym_as, - ACTIONS(1926), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [50048] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(629), 1, - sym__template_string_start, - STATE(689), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1934), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [50069] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__string_start, - STATE(686), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1934), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [50090] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1885), 1, - anon_sym_COLON, ACTIONS(1887), 1, - anon_sym_async, + anon_sym_and, ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1891), 1, - anon_sym_RBRACE, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, anon_sym_or, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1391), 1, - sym__comprehension_clauses, - [50127] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1883), 1, + ACTIONS(1899), 1, anon_sym_if, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1936), 1, - anon_sym_as, - ACTIONS(1930), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, + ACTIONS(1903), 1, anon_sym_async, + ACTIONS(1905), 1, anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [50152] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1885), 1, - anon_sym_COLON, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1891), 1, - anon_sym_RBRACE, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1489), 1, - sym__comprehension_clauses, - [50189] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1922), 8, + ACTIONS(1933), 1, anon_sym_RPAREN, + ACTIONS(1935), 1, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [50212] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_DOT, ACTIONS(1938), 1, - anon_sym_LPAREN, - STATE(886), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(1940), 8, - anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [50235] = 4, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1400), 1, + sym__comprehension_clauses, + [50304] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1877), 1, + ACTIONS(1887), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(1889), 1, anon_sym_or, - ACTIONS(1914), 9, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1940), 1, + anon_sym_as, + ACTIONS(1913), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_if, anon_sym_COLON, - anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [50256] = 9, + [50329] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1901), 1, + anon_sym_COLON, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1907), 1, + anon_sym_RBRACE, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1463), 1, + sym__comprehension_clauses, + [50366] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, @@ -65364,70 +65470,95 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(1950), 1, sym__string_end, - STATE(931), 1, + STATE(919), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50286] = 9, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(1952), 1, - anon_sym_LBRACE2, - ACTIONS(1958), 1, - sym__not_escape_sequence, - ACTIONS(1961), 1, - sym__string_end, - STATE(906), 1, - aux_sym_string_repeat1, - STATE(1017), 1, - aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, - sym_string_content, - ACTIONS(1955), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [50316] = 9, + [50396] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, sym__not_escape_sequence, ACTIONS(1948), 1, sym_comment, - ACTIONS(1963), 1, + ACTIONS(1952), 1, sym__string_end, - STATE(906), 1, + STATE(914), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50346] = 5, + [50426] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, + ACTIONS(1887), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(1889), 1, anon_sym_or, - ACTIONS(1965), 7, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1907), 1, + anon_sym_RBRACK, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1467), 1, + sym__comprehension_clauses, + [50460] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1954), 1, + anon_sym_RPAREN, + ACTIONS(1956), 1, + anon_sym_COMMA, + STATE(936), 1, + sym_for_in_clause, + STATE(1264), 1, + aux_sym_argument_list_repeat1, + STATE(1499), 1, + sym__comprehension_clauses, + [50494] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(1958), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -65435,126 +65566,143 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - [50368] = 9, + [50516] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1960), 1, + anon_sym_RPAREN, + ACTIONS(1962), 1, + anon_sym_COMMA, + STATE(936), 1, + sym_for_in_clause, + STATE(1286), 1, + aux_sym_argument_list_repeat1, + STATE(1426), 1, + sym__comprehension_clauses, + [50550] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1907), 1, + anon_sym_RBRACK, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1441), 1, + sym__comprehension_clauses, + [50584] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, sym__not_escape_sequence, ACTIONS(1948), 1, sym_comment, - ACTIONS(1967), 1, + ACTIONS(1964), 1, sym__string_end, - STATE(933), 1, + STATE(922), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50398] = 11, + [50614] = 9, + ACTIONS(1942), 1, + anon_sym_LBRACE2, + ACTIONS(1946), 1, + sym__not_escape_sequence, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(1966), 1, + sym__string_end, + STATE(918), 1, + aux_sym_string_repeat1, + STATE(1037), 1, + aux_sym_string_content_repeat1, + STATE(1046), 1, + sym_string_content, + STATE(1054), 1, + sym_interpolation, + ACTIONS(1944), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [50644] = 9, + ACTIONS(1942), 1, + anon_sym_LBRACE2, + ACTIONS(1946), 1, + sym__not_escape_sequence, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(1968), 1, + sym__string_end, + STATE(920), 1, + aux_sym_string_repeat1, + STATE(1037), 1, + aux_sym_string_content_repeat1, + STATE(1046), 1, + sym_string_content, + STATE(1054), 1, + sym_interpolation, + ACTIONS(1944), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [50674] = 9, + ACTIONS(1942), 1, + anon_sym_LBRACE2, + ACTIONS(1946), 1, + sym__not_escape_sequence, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(1970), 1, + sym__string_end, + STATE(923), 1, + aux_sym_string_repeat1, + STATE(1037), 1, + aux_sym_string_content_repeat1, + STATE(1046), 1, + sym_string_content, + STATE(1054), 1, + sym_interpolation, + ACTIONS(1944), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [50704] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1969), 1, - anon_sym_RPAREN, - ACTIONS(1971), 1, - anon_sym_COMMA, - STATE(943), 1, - sym_for_in_clause, - STATE(1264), 1, - aux_sym_argument_list_repeat1, - STATE(1472), 1, - sym__comprehension_clauses, - [50432] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1891), 1, - anon_sym_RBRACK, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1422), 1, - sym__comprehension_clauses, - [50466] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1973), 1, - anon_sym_RPAREN, - ACTIONS(1975), 1, - anon_sym_COMMA, - STATE(943), 1, - sym_for_in_clause, - STATE(1221), 1, - aux_sym_argument_list_repeat1, - STATE(1387), 1, - sym__comprehension_clauses, - [50500] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1977), 1, - anon_sym_RPAREN, - ACTIONS(1979), 1, - anon_sym_COMMA, - STATE(943), 1, - sym_for_in_clause, - STATE(1280), 1, - aux_sym_argument_list_repeat1, - STATE(1390), 1, - sym__comprehension_clauses, - [50534] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1983), 2, + ACTIONS(1974), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1981), 8, + ACTIONS(1972), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -65563,91 +65711,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [50552] = 11, - ACTIONS(3), 1, + [50722] = 9, + ACTIONS(1948), 1, sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1891), 1, - anon_sym_RBRACK, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1388), 1, - sym__comprehension_clauses, - [50586] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1891), 1, - anon_sym_RBRACK, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1381), 1, - sym__comprehension_clauses, - [50620] = 9, + ACTIONS(1976), 1, + anon_sym_LBRACE2, + ACTIONS(1982), 1, + sym__not_escape_sequence, + ACTIONS(1985), 1, + sym__string_end, + STATE(918), 1, + aux_sym_string_repeat1, + STATE(1037), 1, + aux_sym_string_content_repeat1, + STATE(1046), 1, + sym_string_content, + STATE(1054), 1, + sym_interpolation, + ACTIONS(1979), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [50752] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, sym__not_escape_sequence, ACTIONS(1948), 1, sym_comment, - ACTIONS(1985), 1, + ACTIONS(1987), 1, sym__string_end, - STATE(906), 1, + STATE(918), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50650] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1987), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [50672] = 9, + [50782] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, @@ -65656,19 +65762,42 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(1989), 1, sym__string_end, - STATE(930), 1, + STATE(918), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50702] = 9, + [50812] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1933), 1, + anon_sym_RPAREN, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1400), 1, + sym__comprehension_clauses, + [50846] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, @@ -65677,124 +65806,46 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(1991), 1, sym__string_end, - STATE(906), 1, + STATE(918), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50732] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1993), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [50754] = 9, + [50876] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, sym__not_escape_sequence, ACTIONS(1948), 1, sym_comment, - ACTIONS(1995), 1, + ACTIONS(1993), 1, sym__string_end, - STATE(907), 1, + STATE(918), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50784] = 9, - ACTIONS(1942), 1, - anon_sym_LBRACE2, - ACTIONS(1946), 1, - sym__not_escape_sequence, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(1997), 1, - sym__string_end, - STATE(927), 1, - aux_sym_string_repeat1, - STATE(1017), 1, - aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, - sym_string_content, - ACTIONS(1944), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [50814] = 11, + [50906] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(1897), 1, - anon_sym_RPAREN, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1387), 1, - sym__comprehension_clauses, - [50848] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1999), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [50870] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2003), 2, + ACTIONS(1997), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(2001), 8, + ACTIONS(1995), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -65803,7 +65854,89 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [50888] = 9, + [50924] = 9, + ACTIONS(1942), 1, + anon_sym_LBRACE2, + ACTIONS(1946), 1, + sym__not_escape_sequence, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(1999), 1, + sym__string_end, + STATE(918), 1, + aux_sym_string_repeat1, + STATE(1037), 1, + aux_sym_string_content_repeat1, + STATE(1046), 1, + sym_string_content, + STATE(1054), 1, + sym_interpolation, + ACTIONS(1944), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [50954] = 9, + ACTIONS(1942), 1, + anon_sym_LBRACE2, + ACTIONS(1946), 1, + sym__not_escape_sequence, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2001), 1, + sym__string_end, + STATE(929), 1, + aux_sym_string_repeat1, + STATE(1037), 1, + aux_sym_string_content_repeat1, + STATE(1046), 1, + sym_string_content, + STATE(1054), 1, + sym_interpolation, + ACTIONS(1944), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [50984] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2003), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + sym_type_conversion, + [51006] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(1907), 1, + anon_sym_RBRACK, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1401), 1, + sym__comprehension_clauses, + [51040] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, @@ -65812,63 +65945,59 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(2005), 1, sym__string_end, - STATE(906), 1, + STATE(918), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [50918] = 11, + [51070] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(2007), 1, + anon_sym_RPAREN, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1426), 1, + sym__comprehension_clauses, + [51104] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(1883), 1, - anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1893), 1, anon_sym_and, - ACTIONS(1895), 1, + ACTIONS(1883), 1, anon_sym_or, - ACTIONS(2007), 1, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2009), 7, anon_sym_RPAREN, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1472), 1, - sym__comprehension_clauses, - [50952] = 9, - ACTIONS(1942), 1, - anon_sym_LBRACE2, - ACTIONS(1946), 1, - sym__not_escape_sequence, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2009), 1, - sym__string_end, - STATE(920), 1, - aux_sym_string_repeat1, - STATE(1017), 1, - aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, - sym_string_content, - ACTIONS(1944), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [50982] = 9, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + sym_type_conversion, + [51126] = 9, ACTIONS(1942), 1, anon_sym_LBRACE2, ACTIONS(1946), 1, @@ -65877,161 +66006,121 @@ static const uint16_t ts_small_parse_table[] = { sym_comment, ACTIONS(2011), 1, sym__string_end, - STATE(906), 1, + STATE(925), 1, aux_sym_string_repeat1, - STATE(1017), 1, + STATE(1037), 1, aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, + STATE(1046), 1, sym_string_content, + STATE(1054), 1, + sym_interpolation, ACTIONS(1944), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [51012] = 9, - ACTIONS(1942), 1, - anon_sym_LBRACE2, - ACTIONS(1946), 1, - sym__not_escape_sequence, - ACTIONS(1948), 1, + [51156] = 11, + ACTIONS(3), 1, sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, ACTIONS(2013), 1, - sym__string_end, - STATE(906), 1, - aux_sym_string_repeat1, - STATE(1017), 1, - aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, - sym_string_content, - ACTIONS(1944), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [51042] = 11, + anon_sym_RPAREN, + ACTIONS(2015), 1, + anon_sym_COMMA, + STATE(936), 1, + sym_for_in_clause, + STATE(1188), 1, + aux_sym_argument_list_repeat1, + STATE(1400), 1, + sym__comprehension_clauses, + [51190] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(1881), 1, - anon_sym_COMMA, + anon_sym_and, ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, anon_sym_if, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(2015), 1, - anon_sym_RPAREN, - STATE(943), 1, - sym_for_in_clause, - STATE(1069), 1, - aux_sym__collection_elements_repeat1, - STATE(1390), 1, - sym__comprehension_clauses, - [51076] = 9, - ACTIONS(1942), 1, - anon_sym_LBRACE2, - ACTIONS(1946), 1, - sym__not_escape_sequence, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2017), 1, - sym__string_end, - STATE(906), 1, - aux_sym_string_repeat1, - STATE(1017), 1, - aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, - sym_string_content, - ACTIONS(1944), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [51106] = 9, - ACTIONS(1942), 1, - anon_sym_LBRACE2, - ACTIONS(1946), 1, - sym__not_escape_sequence, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2019), 1, - sym__string_end, - STATE(917), 1, - aux_sym_string_repeat1, - STATE(1017), 1, - aux_sym_string_content_repeat1, - STATE(1058), 1, - sym_interpolation, - STATE(1059), 1, - sym_string_content, - ACTIONS(1944), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [51136] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(2021), 7, + ACTIONS(2017), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, + anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [51155] = 6, + anon_sym_EQ, + sym_type_conversion, + [51212] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(1887), 1, - anon_sym_async, + anon_sym_and, ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(2025), 1, + anon_sym_or, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(1899), 1, anon_sym_if, - ACTIONS(2023), 3, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(2019), 1, + anon_sym_RPAREN, + STATE(936), 1, + sym_for_in_clause, + STATE(1079), 1, + aux_sym__collection_elements_repeat1, + STATE(1499), 1, + sym__comprehension_clauses, + [51246] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(2023), 1, + anon_sym_if, + ACTIONS(2021), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(937), 3, + STATE(943), 3, sym_for_in_clause, sym_if_clause, aux_sym__comprehension_clauses_repeat1, - [51178] = 6, + [51269] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(2025), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51288] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2029), 1, - anon_sym_if, - ACTIONS(2032), 1, - anon_sym_async, - ACTIONS(2035), 1, - anon_sym_for, - ACTIONS(2027), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(937), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [51201] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2040), 1, anon_sym_PIPE, - STATE(940), 1, + STATE(944), 1, aux_sym_match_or_pattern_repeat1, - ACTIONS(2038), 7, + ACTIONS(2027), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66039,14 +66128,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [51220] = 4, + [51307] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2044), 1, + ACTIONS(2029), 1, anon_sym_PIPE, - STATE(939), 1, + STATE(938), 1, aux_sym_match_or_pattern_repeat1, - ACTIONS(2042), 7, + ACTIONS(2031), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66054,79 +66143,96 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [51239] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2040), 1, - anon_sym_PIPE, - STATE(939), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2047), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51258] = 4, + [51326] = 7, ACTIONS(3), 1, sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, ACTIONS(1893), 1, - anon_sym_and, + anon_sym_COMMA, ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(2021), 7, - anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51277] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - STATE(986), 1, + STATE(982), 1, aux_sym_expression_list_repeat1, - ACTIONS(2049), 4, + ACTIONS(2033), 4, anon_sym_COLON, anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - [51302] = 6, + [51351] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(1887), 1, - anon_sym_async, + anon_sym_and, ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(2025), 1, + anon_sym_or, + ACTIONS(2025), 7, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_if, - ACTIONS(2051), 3, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51370] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2037), 1, + anon_sym_if, + ACTIONS(2040), 1, + anon_sym_async, + ACTIONS(2043), 1, + anon_sym_for, + ACTIONS(2035), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - STATE(936), 3, + STATE(942), 3, sym_for_in_clause, sym_if_clause, aux_sym__comprehension_clauses_repeat1, - [51325] = 4, + [51393] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1893), 1, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(2023), 1, + anon_sym_if, + ACTIONS(2046), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(942), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [51416] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2050), 1, + anon_sym_PIPE, + STATE(944), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2048), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51435] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, anon_sym_and, - ACTIONS(1895), 1, + ACTIONS(1889), 1, anon_sym_or, - ACTIONS(2021), 7, + ACTIONS(2025), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -66134,21 +66240,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [51344] = 4, + [51454] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(1926), 6, - sym__newline, - anon_sym_from, + ACTIONS(2053), 8, + anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, anon_sym_if, - anon_sym_EQ, - sym__semicolon, - [51362] = 2, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51468] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2055), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51482] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2057), 8, @@ -66160,49 +66276,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [51376] = 3, + [51496] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(1918), 7, - sym__newline, - anon_sym_from, + ACTIONS(2059), 8, + anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, anon_sym_if, - anon_sym_EQ, - anon_sym_or, - sym__semicolon, - [51392] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(1918), 6, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - sym__semicolon, - [51410] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(1922), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - sym__semicolon, - [51430] = 2, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51510] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2061), 8, @@ -66214,45 +66300,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [51444] = 2, + [51524] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2063), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51458] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2065), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51472] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, + ACTIONS(2063), 1, anon_sym_and, - ACTIONS(2055), 1, + ACTIONS(2065), 1, anon_sym_or, - ACTIONS(1914), 6, + ACTIONS(1879), 6, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_if, anon_sym_EQ, sym__semicolon, - [51490] = 2, + [51542] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2067), 8, @@ -66264,10 +66326,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [51504] = 2, + [51556] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 8, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(1913), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + sym__semicolon, + [51576] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2071), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66276,42 +66353,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [51518] = 8, + [51590] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2071), 1, - anon_sym_from, - ACTIONS(2073), 1, - anon_sym_COMMA, - STATE(1078), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2075), 2, + ACTIONS(1515), 8, sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, sym__semicolon, - [51544] = 4, + [51604] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2079), 1, + ACTIONS(2048), 8, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(957), 1, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51618] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2073), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51632] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2077), 1, + anon_sym_COMMA, + STATE(958), 1, aux_sym_expression_list_repeat1, - ACTIONS(2077), 6, + ACTIONS(2075), 6, anon_sym_RPAREN, anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - [51562] = 2, + [51650] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2082), 8, + ACTIONS(2080), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66320,57 +66415,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [51576] = 2, + [51664] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2084), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51590] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2088), 1, - anon_sym_COMMA, - STATE(964), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2086), 6, - anon_sym_RPAREN, - anon_sym_if, + ACTIONS(67), 1, + anon_sym_AT, + ACTIONS(2082), 1, anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51608] = 2, + ACTIONS(2084), 1, + anon_sym_def, + ACTIONS(2086), 1, + anon_sym_class, + STATE(527), 2, + sym_function_definition, + sym_class_definition, + STATE(1045), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [51688] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2090), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51622] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2092), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51636] = 2, + ACTIONS(67), 1, + anon_sym_AT, + ACTIONS(2088), 1, + anon_sym_async, + ACTIONS(2090), 1, + anon_sym_def, + ACTIONS(2092), 1, + anon_sym_class, + STATE(553), 2, + sym_function_definition, + sym_class_definition, + STATE(1045), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [51712] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2094), 8, @@ -66382,36 +66461,123 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [51650] = 4, + [51726] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2098), 1, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(1909), 5, + sym__newline, + anon_sym_from, anon_sym_COMMA, - STATE(964), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2096), 6, + anon_sym_EQ, + sym__semicolon, + [51746] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51760] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2098), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51774] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2100), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51788] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1887), 1, + anon_sym_and, + ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(2102), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [51668] = 5, + [51806] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, + ACTIONS(2104), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, - ACTIONS(1987), 5, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51820] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(1923), 6, sym__newline, anon_sym_from, anon_sym_COMMA, + anon_sym_if, anon_sym_EQ, sym__semicolon, - [51688] = 2, + [51838] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(1923), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_or, + sym__semicolon, + [51854] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51868] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(1864), 8, @@ -66423,211 +66589,146 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, sym__semicolon, - [51702] = 6, + [51882] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1908), 1, + ACTIONS(2110), 1, + anon_sym_COMMA, + STATE(988), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2108), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51900] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2112), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51914] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2114), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51928] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2118), 1, + anon_sym_COMMA, + STATE(976), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2116), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51946] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1917), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51960] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2123), 1, + anon_sym_COMMA, + STATE(976), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2121), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [51978] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2017), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + sym__semicolon, + [51998] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2127), 1, + anon_sym_PIPE, + ACTIONS(2125), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [52014] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1873), 1, anon_sym_DOT, - ACTIONS(1938), 1, + ACTIONS(1875), 1, anon_sym_LPAREN, - ACTIONS(2101), 1, + ACTIONS(2129), 1, anon_sym_EQ, - STATE(886), 1, + STATE(902), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(1940), 4, + ACTIONS(1877), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_PIPE, - [51724] = 4, + [52036] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2105), 1, + ACTIONS(2133), 1, anon_sym_COMMA, - STATE(972), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2103), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51742] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2109), 1, - anon_sym_COMMA, - STATE(960), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2107), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51760] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(67), 1, - anon_sym_AT, - ACTIONS(2111), 1, - anon_sym_async, - ACTIONS(2113), 1, - anon_sym_def, - ACTIONS(2115), 1, - anon_sym_class, - STATE(544), 2, - sym_function_definition, - sym_class_definition, - STATE(1064), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [51784] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2117), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51798] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2121), 1, - anon_sym_COMMA, - STATE(964), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2119), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51816] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2042), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51830] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2123), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51844] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2125), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51858] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2127), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51872] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1463), 8, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - sym__semicolon, - [51886] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(1930), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - sym__semicolon, - [51906] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2129), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51920] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1893), 1, - anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, + STATE(958), 1, + aux_sym_expression_list_repeat1, ACTIONS(2131), 6, anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [51938] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2135), 1, - anon_sym_PIPE, - ACTIONS(2133), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [51954] = 2, + anon_sym_EQ, + sym_type_conversion, + [52054] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2137), 8, + ACTIONS(2135), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66636,68 +66737,99 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [51968] = 5, + [52068] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, + ACTIONS(2063), 1, anon_sym_and, - ACTIONS(2055), 1, + ACTIONS(2065), 1, anon_sym_or, - ACTIONS(2059), 1, + ACTIONS(1919), 6, + sym__newline, + anon_sym_from, + anon_sym_COMMA, anon_sym_if, - ACTIONS(1873), 5, + anon_sym_EQ, + sym__semicolon, + [52086] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(1915), 5, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_EQ, sym__semicolon, - [51988] = 2, + [52106] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2139), 8, - anon_sym_RPAREN, + ACTIONS(2137), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, + STATE(958), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2131), 6, + anon_sym_RPAREN, anon_sym_COLON, - anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [52002] = 7, + anon_sym_EQ, + sym_type_conversion, + [52124] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(67), 1, - anon_sym_AT, ACTIONS(2141), 1, + anon_sym_COMMA, + STATE(978), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2139), 6, + anon_sym_RPAREN, + anon_sym_if, anon_sym_async, - ACTIONS(2143), 1, - anon_sym_def, - ACTIONS(2145), 1, - anon_sym_class, - STATE(547), 2, - sym_function_definition, - sym_class_definition, - STATE(1064), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [52026] = 4, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [52142] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(2145), 1, + anon_sym_COMMA, + STATE(976), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2143), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [52160] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2147), 1, + anon_sym_from, ACTIONS(2149), 1, anon_sym_COMMA, - STATE(957), 1, + STATE(1082), 1, aux_sym_expression_list_repeat1, - ACTIONS(2147), 6, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [52044] = 2, + ACTIONS(2151), 2, + sym__newline, + sym__semicolon, + [52186] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1934), 8, + ACTIONS(2153), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66706,33 +66838,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [52058] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2151), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [52072] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2153), 1, - anon_sym_COMMA, - STATE(957), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2147), 6, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - sym_type_conversion, - [52090] = 2, + [52200] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2155), 8, @@ -66744,168 +66850,139 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [52104] = 7, + [52214] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, + ACTIONS(1881), 1, anon_sym_and, - ACTIONS(2055), 1, + ACTIONS(1883), 1, anon_sym_or, - ACTIONS(2059), 1, + ACTIONS(1895), 1, anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COMMA, - STATE(1078), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2157), 2, - sym__newline, - sym__semicolon, - [52127] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2159), 7, + ACTIONS(2157), 4, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [52140] = 5, + [52233] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1883), 1, + ACTIONS(2159), 1, anon_sym_if, - ACTIONS(1893), 1, + ACTIONS(2161), 1, anon_sym_and, - ACTIONS(1895), 1, - anon_sym_or, - ACTIONS(2161), 4, - anon_sym_COMMA, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [52159] = 6, - ACTIONS(1948), 1, - sym_comment, ACTIONS(2163), 1, - anon_sym_LBRACE2, - ACTIONS(2168), 1, - sym__not_escape_sequence, + anon_sym_or, + ACTIONS(1915), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [52252] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(1879), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [52269] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2165), 1, + anon_sym_except, + ACTIONS(2167), 1, + anon_sym_finally, + STATE(549), 1, + sym_finally_clause, + STATE(239), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(259), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [52290] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1515), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [52303] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2169), 1, + anon_sym_except, ACTIONS(2171), 1, - sym__string_end, - STATE(994), 1, - aux_sym_string_content_repeat1, - ACTIONS(2165), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [52180] = 5, + anon_sym_finally, + STATE(478), 1, + sym_finally_clause, + STATE(255), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + STATE(257), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + [52324] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2173), 1, + ACTIONS(2165), 1, + anon_sym_except, + ACTIONS(2167), 1, + anon_sym_finally, + STATE(469), 1, + sym_finally_clause, + STATE(260), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(261), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [52345] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2159), 1, anon_sym_if, - ACTIONS(2175), 1, + ACTIONS(2161), 1, anon_sym_and, - ACTIONS(2177), 1, + ACTIONS(2163), 1, anon_sym_or, - ACTIONS(1922), 4, + ACTIONS(2175), 1, + anon_sym_as, + ACTIONS(2173), 3, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_COLON, - [52199] = 7, + [52366] = 8, ACTIONS(3), 1, sym_comment, + ACTIONS(2159), 1, + anon_sym_if, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(2177), 1, + anon_sym_COMMA, ACTIONS(2179), 1, - sym_identifier, + anon_sym_as, ACTIONS(2181), 1, - anon_sym_DOT, - ACTIONS(2183), 1, - anon_sym___future__, - STATE(1129), 1, - aux_sym_import_prefix_repeat1, - STATE(1215), 1, - sym_import_prefix, - STATE(1414), 2, - sym_relative_import, - sym_dotted_name, - [52222] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(1999), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - sym__semicolon, - [52241] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1463), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [52254] = 5, + STATE(1178), 1, + aux_sym_exception_list_repeat1, + [52391] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2173), 1, - anon_sym_if, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(1873), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [52273] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COMMA, - STATE(1078), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2185), 2, - sym__newline, - sym__semicolon, - [52296] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, - ACTIONS(2187), 1, - anon_sym_COMMA, - ACTIONS(2189), 1, - anon_sym_RBRACE, - STATE(943), 1, - sym_for_in_clause, - STATE(1240), 1, - aux_sym_dictionary_repeat1, - STATE(1380), 1, - sym__comprehension_clauses, - [52321] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1999), 7, + ACTIONS(1891), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -66913,272 +66990,254 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_EQ, sym_type_conversion, - [52334] = 4, + [52404] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2175), 1, + ACTIONS(2063), 1, anon_sym_and, - ACTIONS(2177), 1, + ACTIONS(2065), 1, anon_sym_or, - ACTIONS(1918), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2069), 1, anon_sym_if, - anon_sym_COLON, - [52351] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2191), 1, - anon_sym_except, - ACTIONS(2193), 1, - anon_sym_finally, - STATE(521), 1, - sym_finally_clause, - STATE(242), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - STATE(248), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - [52372] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(1918), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_or, - [52387] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2195), 1, - anon_sym_COMMA, - STATE(1160), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2197), 2, + ACTIONS(2009), 4, sym__newline, + anon_sym_from, + anon_sym_COMMA, sym__semicolon, - [52410] = 5, + [52423] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, + ACTIONS(2063), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(2065), 1, anon_sym_or, - ACTIONS(2199), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_EQ, - [52429] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(1926), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2069), 1, anon_sym_if, - anon_sym_COLON, - [52446] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2173), 1, - anon_sym_if, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(1930), 4, - anon_sym_RPAREN, + ACTIONS(1958), 4, + sym__newline, + anon_sym_from, anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [52465] = 4, + sym__semicolon, + [52442] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(1914), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [52482] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2201), 1, + ACTIONS(2183), 1, sym_identifier, - ACTIONS(2203), 1, + ACTIONS(2185), 1, anon_sym_STAR, - ACTIONS(2205), 1, + ACTIONS(2187), 1, anon_sym_STAR_STAR, - STATE(1353), 4, + STATE(1327), 4, sym_typevar_parameter, sym_typevartuple_parameter, sym_paramspec_parameter, sym__type_parameter, - [52501] = 2, + [52461] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2207), 7, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [52514] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2096), 7, - anon_sym_RPAREN, + ACTIONS(2149), 1, anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [52527] = 6, + STATE(1082), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2189), 2, + sym__newline, + sym__semicolon, + [52484] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2209), 1, - anon_sym_except, - ACTIONS(2211), 1, - anon_sym_finally, - STATE(559), 1, - sym_finally_clause, - STATE(240), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(244), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [52548] = 8, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(2191), 1, + anon_sym_COMMA, + ACTIONS(2193), 1, + anon_sym_RBRACE, + STATE(936), 1, + sym_for_in_clause, + STATE(1207), 1, + aux_sym_dictionary_repeat1, + STATE(1404), 1, + sym__comprehension_clauses, + [52509] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(1887), 1, - anon_sym_async, + anon_sym_and, ACTIONS(1889), 1, + anon_sym_or, + ACTIONS(1899), 1, + anon_sym_if, + ACTIONS(2195), 4, + anon_sym_COMMA, + anon_sym_async, anon_sym_for, - ACTIONS(2213), 1, - anon_sym_COMMA, - ACTIONS(2215), 1, anon_sym_RBRACE, - STATE(943), 1, - sym_for_in_clause, - STATE(1245), 1, - aux_sym_dictionary_repeat1, - STATE(1420), 1, - sym__comprehension_clauses, - [52573] = 6, + [52528] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2173), 1, - anon_sym_if, - ACTIONS(2175), 1, + ACTIONS(2063), 1, anon_sym_and, - ACTIONS(2177), 1, + ACTIONS(2065), 1, anon_sym_or, - ACTIONS(2219), 1, - anon_sym_as, - ACTIONS(2217), 3, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2197), 1, + anon_sym_COMMA, + STATE(1167), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2199), 2, + sym__newline, + sym__semicolon, + [52551] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2197), 1, + anon_sym_COMMA, + STATE(1134), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2201), 2, + sym__newline, + sym__semicolon, + [52574] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2009), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [52594] = 6, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2221), 1, - anon_sym_LBRACE2, - ACTIONS(2225), 1, - sym__not_escape_sequence, - ACTIONS(2227), 1, - sym__string_end, - STATE(994), 1, - aux_sym_string_content_repeat1, - ACTIONS(2223), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [52615] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2229), 1, - sym_identifier, - ACTIONS(2231), 1, - anon_sym_LPAREN, - ACTIONS(2233), 1, - anon_sym_STAR, - STATE(1095), 1, - sym_dotted_name, - STATE(1146), 1, - sym_aliased_import, - STATE(1330), 1, - sym_wildcard_import, - STATE(1331), 1, - sym__import_list, - [52640] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2237), 1, - anon_sym_as, - ACTIONS(2235), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [52655] = 5, + anon_sym_EQ, + sym_type_conversion, + [52587] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, + ACTIONS(2169), 1, + anon_sym_except, + ACTIONS(2171), 1, + anon_sym_finally, + STATE(551), 1, + sym_finally_clause, + STATE(250), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + STATE(252), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + [52608] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(2065), 1, anon_sym_or, - ACTIONS(2239), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [52674] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2201), 1, - sym_identifier, + ACTIONS(2069), 1, + anon_sym_if, ACTIONS(2203), 1, + anon_sym_COMMA, + STATE(1130), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2205), 2, + sym__newline, + sym__semicolon, + [52631] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2207), 1, + sym_identifier, + ACTIONS(2209), 1, + anon_sym_DOT, + ACTIONS(2211), 1, + anon_sym___future__, + STATE(1171), 1, + aux_sym_import_prefix_repeat1, + STATE(1219), 1, + sym_import_prefix, + STATE(1420), 2, + sym_relative_import, + sym_dotted_name, + [52654] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2215), 1, + anon_sym_as, + ACTIONS(2213), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [52669] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2159), 1, + anon_sym_if, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(1909), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [52688] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2183), 1, + sym_identifier, + ACTIONS(2185), 1, anon_sym_STAR, - ACTIONS(2205), 1, + ACTIONS(2187), 1, anon_sym_STAR_STAR, - STATE(1286), 4, + STATE(1240), 4, sym_typevar_parameter, sym_typevartuple_parameter, sym_paramspec_parameter, sym__type_parameter, - [52693] = 2, + [52707] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(2217), 1, + anon_sym_COMMA, + ACTIONS(2219), 1, + anon_sym_RBRACE, + STATE(936), 1, + sym_for_in_clause, + STATE(1246), 1, + aux_sym_dictionary_repeat1, + STATE(1445), 1, + sym__comprehension_clauses, + [52732] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2221), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [52745] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(1864), 7, @@ -67189,1050 +67248,1124 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [52706] = 2, + [52758] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1904), 7, + ACTIONS(2116), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [52771] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(1919), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [52788] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2223), 4, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, anon_sym_EQ, - sym_type_conversion, - [52719] = 7, + [52807] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2073), 1, + ACTIONS(2225), 7, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1078), 1, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [52820] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(1923), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_or, + [52835] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1903), 1, + anon_sym_async, + ACTIONS(1905), 1, + anon_sym_for, + ACTIONS(2227), 1, + anon_sym_COMMA, + ACTIONS(2229), 1, + anon_sym_RBRACE, + STATE(936), 1, + sym_for_in_clause, + STATE(1251), 1, + aux_sym_dictionary_repeat1, + STATE(1462), 1, + sym__comprehension_clauses, + [52860] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2149), 1, + anon_sym_COMMA, + STATE(1082), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2231), 2, + sym__newline, + sym__semicolon, + [52883] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(1923), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [52900] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2233), 1, + sym_identifier, + ACTIONS(2235), 1, + anon_sym_LPAREN, + ACTIONS(2237), 1, + anon_sym_STAR, + STATE(1105), 1, + sym_dotted_name, + STATE(1159), 1, + sym_aliased_import, + STATE(1335), 1, + sym_wildcard_import, + STATE(1338), 1, + sym__import_list, + [52925] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2159), 1, + anon_sym_if, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(1913), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [52944] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2149), 1, + anon_sym_COMMA, + STATE(1082), 1, + aux_sym_expression_list_repeat1, + ACTIONS(1891), 2, + sym__newline, + sym__semicolon, + [52967] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2149), 1, + anon_sym_COMMA, + STATE(1082), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2239), 2, + sym__newline, + sym__semicolon, + [52990] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2149), 1, + anon_sym_COMMA, + STATE(1082), 1, aux_sym_expression_list_repeat1, ACTIONS(2241), 2, sym__newline, sym__semicolon, - [52742] = 5, + [53013] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, + ACTIONS(2159), 1, anon_sym_if, - ACTIONS(1965), 4, - sym__newline, - anon_sym_from, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(2177), 1, anon_sym_COMMA, - sym__semicolon, - [52761] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2209), 1, - anon_sym_except, - ACTIONS(2211), 1, - anon_sym_finally, - STATE(553), 1, - sym_finally_clause, - STATE(259), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(260), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [52782] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1887), 1, - anon_sym_async, - ACTIONS(1889), 1, - anon_sym_for, ACTIONS(2243), 1, - anon_sym_COMMA, + anon_sym_as, ACTIONS(2245), 1, - anon_sym_RBRACE, - STATE(943), 1, - sym_for_in_clause, - STATE(1234), 1, - aux_sym_dictionary_repeat1, - STATE(1392), 1, - sym__comprehension_clauses, - [52807] = 7, + anon_sym_COLON, + STATE(1178), 1, + aux_sym_exception_list_repeat1, + [53038] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, + ACTIONS(2159), 1, anon_sym_if, - ACTIONS(2073), 1, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(2177), 1, anon_sym_COMMA, - STATE(1078), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2247), 2, - sym__newline, - sym__semicolon, - [52830] = 6, - ACTIONS(3), 1, + ACTIONS(2247), 1, + anon_sym_as, + ACTIONS(2249), 1, + anon_sym_COLON, + STATE(1178), 1, + aux_sym_exception_list_repeat1, + [53063] = 6, + ACTIONS(1948), 1, sym_comment, - ACTIONS(2191), 1, - anon_sym_except, - ACTIONS(2193), 1, - anon_sym_finally, - STATE(525), 1, - sym_finally_clause, - STATE(256), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(262), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [52851] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2195), 1, - anon_sym_COMMA, - STATE(1106), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2249), 2, - sym__newline, - sym__semicolon, - [52874] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COMMA, - STATE(1078), 1, - aux_sym_expression_list_repeat1, - ACTIONS(1904), 2, - sym__newline, - sym__semicolon, - [52897] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, ACTIONS(2251), 1, - anon_sym_COMMA, - STATE(1119), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2253), 2, - sym__newline, - sym__semicolon, - [52920] = 5, + anon_sym_LBRACE2, + ACTIONS(2256), 1, + sym__not_escape_sequence, + ACTIONS(2259), 1, + sym__string_end, + STATE(1035), 1, + aux_sym_string_content_repeat1, + ACTIONS(2253), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [53084] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, + ACTIONS(2159), 1, anon_sym_if, - ACTIONS(2255), 3, - sym__newline, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(2177), 1, anon_sym_COMMA, - sym__semicolon, - [52938] = 4, + ACTIONS(2261), 1, + anon_sym_as, + ACTIONS(2263), 1, + anon_sym_COLON, + STATE(1178), 1, + aux_sym_exception_list_repeat1, + [53109] = 6, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2265), 1, + anon_sym_LBRACE2, + ACTIONS(2269), 1, + sym__not_escape_sequence, + ACTIONS(2271), 1, + sym__string_end, + STATE(1035), 1, + aux_sym_string_content_repeat1, + ACTIONS(2267), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [53130] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2257), 1, + ACTIONS(2273), 1, anon_sym_DOT, - STATE(1034), 1, + STATE(1038), 1, aux_sym_match_value_pattern_repeat1, ACTIONS(1868), 4, sym__newline, anon_sym_COMMA, anon_sym_as, sym__semicolon, - [52954] = 2, + [53146] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2260), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [52966] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2262), 2, - anon_sym_LBRACE2, - sym__not_escape_sequence, - ACTIONS(2264), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [52980] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - ACTIONS(2266), 1, - anon_sym_COLON, - STATE(986), 1, - aux_sym_expression_list_repeat1, - [53002] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2173), 1, - anon_sym_if, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(2270), 1, - anon_sym_COLON, - ACTIONS(2268), 2, - anon_sym_COMMA, - anon_sym_as, - [53022] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2272), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [53040] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2274), 2, - anon_sym_LBRACE2, - sym__not_escape_sequence, - ACTIONS(2276), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [53054] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1940), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [53066] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2280), 1, - anon_sym_COLON, - ACTIONS(2278), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53086] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - ACTIONS(2282), 1, - anon_sym_COLON, - STATE(986), 1, - aux_sym_expression_list_repeat1, - [53108] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2284), 2, - anon_sym_LBRACE2, - sym__not_escape_sequence, - ACTIONS(2286), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [53122] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2290), 1, - anon_sym_COLON, - ACTIONS(2288), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53142] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, + ACTIONS(1873), 1, anon_sym_DOT, STATE(1051), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2292), 4, + ACTIONS(2276), 4, anon_sym_import, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, - [53158] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2294), 1, - anon_sym_DOT, - STATE(1066), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2292), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - sym__semicolon, - [53174] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - ACTIONS(2296), 1, - anon_sym_COLON, - STATE(986), 1, - aux_sym_expression_list_repeat1, - [53196] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - ACTIONS(2298), 1, - anon_sym_COLON, - STATE(986), 1, - aux_sym_expression_list_repeat1, - [53218] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - ACTIONS(2300), 1, - anon_sym_COLON, - STATE(986), 1, - aux_sym_expression_list_repeat1, - [53240] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_DOT, - STATE(880), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2302), 4, - anon_sym_import, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - [53256] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2304), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [53274] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2306), 3, - sym__newline, - anon_sym_COMMA, - sym__semicolon, - [53292] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2173), 1, - anon_sym_if, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(2310), 1, - anon_sym_COLON, - ACTIONS(2308), 2, - anon_sym_COMMA, - anon_sym_as, - [53312] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1977), 1, - anon_sym_RPAREN, - ACTIONS(1979), 1, - anon_sym_COMMA, - STATE(1280), 1, - aux_sym_argument_list_repeat1, - [53334] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2312), 3, - sym__newline, - anon_sym_COMMA, - sym__semicolon, - [53352] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2199), 3, - sym__newline, - anon_sym_EQ, - sym__semicolon, - [53370] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2314), 2, - anon_sym_LBRACE2, - sym__not_escape_sequence, - ACTIONS(2316), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [53384] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2318), 2, - anon_sym_LBRACE2, - sym__not_escape_sequence, - ACTIONS(2320), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [53398] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2322), 3, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_EQ, - [53416] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2326), 1, - anon_sym_COLON, - ACTIONS(2324), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53436] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2330), 1, - anon_sym_COLON, - ACTIONS(2332), 1, - anon_sym_EQ, - STATE(1154), 1, - sym__type_bound, - STATE(1347), 1, - sym__type_param_default, - ACTIONS(2328), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53456] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(1906), 1, - anon_sym_COMMA, - ACTIONS(2334), 1, - anon_sym_COLON, - STATE(986), 1, - aux_sym_expression_list_repeat1, - [53478] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2338), 1, - anon_sym_AT, - STATE(1064), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - ACTIONS(2336), 3, - anon_sym_async, - anon_sym_def, - anon_sym_class, - [53494] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2343), 1, - anon_sym_COMMA, - STATE(1065), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(2341), 4, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [53510] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2294), 1, - anon_sym_DOT, - STATE(1034), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2302), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - sym__semicolon, - [53526] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2346), 2, - anon_sym_LBRACE2, - sym__not_escape_sequence, - ACTIONS(2348), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [53540] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2161), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [53557] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2352), 1, - anon_sym_COMMA, - STATE(1093), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2350), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [53572] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2354), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53589] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2356), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53606] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2358), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [53623] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2360), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53640] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2362), 1, - anon_sym_LPAREN, - ACTIONS(2364), 1, - anon_sym_COLON, - ACTIONS(2366), 1, - anon_sym_LBRACK, - STATE(1212), 1, - sym_type_parameters, - STATE(1430), 1, - sym_argument_list, - [53659] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2368), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53676] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2370), 1, - anon_sym_COMMA, - STATE(1076), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2077), 3, - sym__newline, - anon_sym_from, - sym__semicolon, - [53691] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2373), 1, - anon_sym_COMMA, - STATE(1076), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2147), 3, - sym__newline, - anon_sym_from, - sym__semicolon, - [53706] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2375), 1, - anon_sym_COMMA, - STATE(1076), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2147), 3, - sym__newline, - anon_sym_from, - sym__semicolon, - [53721] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2377), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [53738] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2379), 1, - anon_sym_COLON, - ACTIONS(2381), 1, - anon_sym_RBRACE, - ACTIONS(2383), 1, - anon_sym_EQ, - ACTIONS(2385), 1, - sym_type_conversion, - STATE(1495), 1, - sym_format_specifier, - [53757] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2341), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [53768] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2229), 1, - sym_identifier, - STATE(1114), 1, - sym_dotted_name, - STATE(1289), 1, - sym_aliased_import, - ACTIONS(2387), 2, - sym__newline, - sym__semicolon, - [53785] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2389), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [53802] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2391), 2, - sym__newline, - sym__semicolon, - [53819] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2393), 2, - sym__newline, - sym__semicolon, - [53836] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2173), 1, - anon_sym_if, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(2395), 1, - anon_sym_as, - ACTIONS(2397), 1, - anon_sym_COLON, - [53855] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2399), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [53872] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(1993), 2, - sym__newline, - sym__semicolon, - [53889] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2401), 2, - sym__newline, - sym__semicolon, - [53906] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2229), 1, - sym_identifier, - ACTIONS(2403), 1, - anon_sym_LPAREN, - STATE(1095), 1, - sym_dotted_name, - STATE(1146), 1, - sym_aliased_import, - STATE(1336), 1, - sym__import_list, - [53925] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2362), 1, - anon_sym_LPAREN, - ACTIONS(2366), 1, - anon_sym_LBRACK, - ACTIONS(2405), 1, - anon_sym_COLON, - STATE(1197), 1, - sym_type_parameters, - STATE(1438), 1, - sym_argument_list, - [53944] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2379), 1, - anon_sym_COLON, - ACTIONS(2407), 1, - anon_sym_RBRACE, - ACTIONS(2409), 1, - anon_sym_EQ, - ACTIONS(2411), 1, - sym_type_conversion, - STATE(1428), 1, - sym_format_specifier, - [53963] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2415), 1, - anon_sym_COMMA, - STATE(1093), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2413), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [53978] = 6, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2418), 1, - anon_sym_RBRACE, - ACTIONS(2420), 1, - anon_sym_LBRACE2, - ACTIONS(2423), 1, - aux_sym_format_specifier_token1, - STATE(1094), 1, - aux_sym_format_specifier_repeat1, - STATE(1283), 1, - sym_interpolation, - [53997] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2428), 1, - anon_sym_as, - STATE(1164), 1, - aux_sym__import_list_repeat1, - ACTIONS(2430), 2, - sym__newline, - sym__semicolon, - [54014] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2432), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [54025] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_COMMA, - STATE(1093), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2350), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [54040] = 4, + [53162] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1893), 1, anon_sym_COMMA, - STATE(1097), 1, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2278), 1, + anon_sym_COLON, + STATE(982), 1, + aux_sym_expression_list_repeat1, + [53184] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2280), 1, + anon_sym_DOT, + STATE(1047), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2276), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + sym__semicolon, + [53200] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2284), 1, + anon_sym_COLON, + ACTIONS(2282), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [53220] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2286), 3, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_EQ, + [53238] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2288), 2, + anon_sym_LBRACE2, + sym__not_escape_sequence, + ACTIONS(2290), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [53252] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2294), 1, + anon_sym_AT, + STATE(1045), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + ACTIONS(2292), 3, + anon_sym_async, + anon_sym_def, + anon_sym_class, + [53268] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2297), 2, + anon_sym_LBRACE2, + sym__not_escape_sequence, + ACTIONS(2299), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [53282] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2280), 1, + anon_sym_DOT, + STATE(1038), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2301), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + sym__semicolon, + [53298] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2303), 2, + anon_sym_LBRACE2, + sym__not_escape_sequence, + ACTIONS(2305), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [53312] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2309), 1, + anon_sym_COLON, + ACTIONS(2307), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [53332] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1893), 1, + anon_sym_COMMA, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2311), 1, + anon_sym_COLON, + STATE(982), 1, + aux_sym_expression_list_repeat1, + [53354] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1873), 1, + anon_sym_DOT, + STATE(881), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2301), 4, + anon_sym_import, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + [53370] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1893), 1, + anon_sym_COMMA, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2313), 1, + anon_sym_COLON, + STATE(982), 1, + aux_sym_expression_list_repeat1, + [53392] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2315), 3, + sym__newline, + anon_sym_COMMA, + sym__semicolon, + [53410] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2317), 2, + anon_sym_LBRACE2, + sym__not_escape_sequence, + ACTIONS(2319), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [53424] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1893), 1, + anon_sym_COMMA, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2321), 1, + anon_sym_COLON, + STATE(982), 1, + aux_sym_expression_list_repeat1, + [53446] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2323), 2, + anon_sym_LBRACE2, + sym__not_escape_sequence, + ACTIONS(2325), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [53460] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2329), 1, + anon_sym_COMMA, + STATE(1057), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(2327), 4, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [53476] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2332), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [53494] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2334), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [53512] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(1960), 1, + anon_sym_RPAREN, + ACTIONS(1962), 1, + anon_sym_COMMA, + STATE(1286), 1, + aux_sym_argument_list_repeat1, + [53534] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2336), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [53546] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2340), 1, + anon_sym_COLON, + ACTIONS(2342), 1, + anon_sym_EQ, + STATE(1176), 1, + sym__type_bound, + STATE(1364), 1, + sym__type_param_default, + ACTIONS(2338), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [53566] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2223), 3, + sym__newline, + anon_sym_EQ, + sym__semicolon, + [53584] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2159), 1, + anon_sym_if, + ACTIONS(2161), 1, + anon_sym_and, + ACTIONS(2163), 1, + anon_sym_or, + ACTIONS(2344), 3, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [53602] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1893), 1, + anon_sym_COMMA, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2346), 1, + anon_sym_COLON, + STATE(982), 1, + aux_sym_expression_list_repeat1, + [53624] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1893), 1, + anon_sym_COMMA, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2348), 1, + anon_sym_COLON, + STATE(982), 1, + aux_sym_expression_list_repeat1, + [53646] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2350), 2, + anon_sym_LBRACE2, + sym__not_escape_sequence, + ACTIONS(2352), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [53660] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2354), 3, + sym__newline, + anon_sym_COMMA, + sym__semicolon, + [53678] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2356), 3, + sym__newline, + anon_sym_COMMA, + sym__semicolon, + [53696] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1877), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [53708] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2360), 1, + anon_sym_COLON, + ACTIONS(2358), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [53728] = 6, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2362), 1, + anon_sym_RBRACE, + ACTIONS(2364), 1, + anon_sym_LBRACE2, + ACTIONS(2367), 1, + aux_sym_format_specifier_token1, + STATE(1072), 1, + aux_sym_format_specifier_repeat1, + STATE(1255), 1, + sym_interpolation, + [53747] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2003), 2, + sym__newline, + sym__semicolon, + [53764] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2233), 1, + sym_identifier, + ACTIONS(2370), 1, + anon_sym_LPAREN, + STATE(1105), 1, + sym_dotted_name, + STATE(1159), 1, + sym_aliased_import, + STATE(1343), 1, + sym__import_list, + [53783] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2372), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [53800] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2376), 1, + anon_sym_RBRACE, + ACTIONS(2378), 1, + anon_sym_EQ, + ACTIONS(2380), 1, + sym_type_conversion, + STATE(1460), 1, + sym_format_specifier, + [53819] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2384), 1, + anon_sym_COMMA, + STATE(1099), 1, aux_sym__collection_elements_repeat1, - ACTIONS(1891), 3, + ACTIONS(2382), 3, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, - [54055] = 6, + [53834] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2173), 1, - anon_sym_if, - ACTIONS(2175), 1, - anon_sym_and, - ACTIONS(2177), 1, - anon_sym_or, - ACTIONS(2436), 1, - anon_sym_as, - ACTIONS(2438), 1, - anon_sym_COLON, - [54074] = 5, + ACTIONS(2386), 1, + anon_sym_COMMA, + STATE(1096), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2131), 3, + sym__newline, + anon_sym_from, + sym__semicolon, + [53849] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2440), 2, + ACTIONS(2388), 1, + anon_sym_COMMA, + STATE(1099), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2382), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [53864] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2233), 1, + sym_identifier, + STATE(1132), 1, + sym_dotted_name, + STATE(1289), 1, + sym_aliased_import, + ACTIONS(2390), 2, sym__newline, sym__semicolon, - [54091] = 6, + [53881] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2392), 2, + sym__newline, + sym__semicolon, + [53898] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2394), 1, + anon_sym_COMMA, + STATE(1096), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2131), 3, + sym__newline, + anon_sym_from, + sym__semicolon, + [53913] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2195), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [53930] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2396), 1, + anon_sym_LPAREN, + ACTIONS(2398), 1, + anon_sym_COLON, + ACTIONS(2400), 1, + anon_sym_LBRACK, + STATE(1210), 1, + sym_type_parameters, + STATE(1402), 1, + sym_argument_list, + [53949] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2402), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [53966] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2404), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [53977] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2406), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [53994] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2408), 1, + anon_sym_RBRACE, + ACTIONS(2410), 1, + anon_sym_EQ, + ACTIONS(2412), 1, + sym_type_conversion, + STATE(1470), 1, + sym_format_specifier, + [54013] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2327), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [54024] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2414), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [54041] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2416), 2, + sym__newline, + sym__semicolon, + [54058] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2418), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [54075] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2420), 2, + sym__newline, + sym__semicolon, + [54092] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2422), 2, + sym__newline, + sym__semicolon, + [54109] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1897), 1, + anon_sym_COMMA, + STATE(1077), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(1907), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [54124] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2424), 1, + anon_sym_COMMA, + STATE(1096), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2075), 3, + sym__newline, + anon_sym_from, + sym__semicolon, + [54139] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2233), 1, + sym_identifier, + STATE(1132), 1, + sym_dotted_name, + STATE(1289), 1, + sym_aliased_import, + ACTIONS(2427), 2, + sym__newline, + sym__semicolon, + [54156] = 6, ACTIONS(1948), 1, sym_comment, - ACTIONS(2442), 1, + ACTIONS(2429), 1, anon_sym_RBRACE, - ACTIONS(2444), 1, + ACTIONS(2431), 1, anon_sym_LBRACE2, - ACTIONS(2446), 1, + ACTIONS(2433), 1, aux_sym_format_specifier_token1, STATE(1104), 1, aux_sym_format_specifier_repeat1, - STATE(1283), 1, + STATE(1255), 1, sym_interpolation, - [54110] = 5, + [54175] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2229), 1, + ACTIONS(2437), 1, + anon_sym_COMMA, + STATE(1099), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2435), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [54190] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2440), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [54207] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2233), 1, sym_identifier, - STATE(1114), 1, + STATE(1132), 1, sym_dotted_name, STATE(1289), 1, sym_aliased_import, - ACTIONS(2448), 2, + ACTIONS(2427), 2, sym__newline, sym__semicolon, - [54127] = 5, + [54224] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2229), 1, - sym_identifier, - STATE(1114), 1, - sym_dotted_name, - STATE(1289), 1, - sym_aliased_import, - ACTIONS(2448), 2, - sym__newline, - sym__semicolon, - [54144] = 6, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2442), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [54241] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2396), 1, + anon_sym_LPAREN, + ACTIONS(2400), 1, + anon_sym_LBRACK, + ACTIONS(2444), 1, + anon_sym_COLON, + STATE(1239), 1, + sym_type_parameters, + STATE(1444), 1, + sym_argument_list, + [54260] = 6, ACTIONS(1948), 1, sym_comment, - ACTIONS(2444), 1, + ACTIONS(2431), 1, anon_sym_LBRACE2, - ACTIONS(2450), 1, + ACTIONS(2446), 1, anon_sym_RBRACE, - ACTIONS(2452), 1, + ACTIONS(2448), 1, aux_sym_format_specifier_token1, - STATE(1094), 1, + STATE(1072), 1, aux_sym_format_specifier_repeat1, - STATE(1283), 1, + STATE(1255), 1, sym_interpolation, - [54163] = 2, + [54279] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2450), 1, + anon_sym_COMMA, + ACTIONS(2452), 1, + anon_sym_as, + STATE(1145), 1, + aux_sym__import_list_repeat1, + ACTIONS(2454), 2, + sym__newline, + sym__semicolon, + [54296] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2456), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [54313] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(1868), 5, @@ -68241,2941 +68374,2989 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, anon_sym_as, sym__semicolon, - [54174] = 4, + [54324] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2195), 1, - anon_sym_COMMA, - STATE(1161), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2454), 2, - sym__newline, - sym__semicolon, - [54188] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2456), 1, - anon_sym_else, - [54204] = 4, + ACTIONS(2400), 1, + anon_sym_LBRACK, + ACTIONS(2458), 1, + anon_sym_LPAREN, + STATE(1359), 1, + sym_parameters, + STATE(1367), 1, + sym_type_parameters, + [54340] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2460), 1, anon_sym_COMMA, - STATE(847), 1, - aux_sym__patterns_repeat1, - ACTIONS(2458), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - [54218] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2462), 1, - sym_identifier, - STATE(1130), 1, - sym_dotted_name, - STATE(1271), 1, - sym_aliased_import, - STATE(1401), 1, - sym__import_list, - [54234] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1934), 1, - anon_sym_COLON, - STATE(570), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - [54248] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2462), 1, - sym_identifier, - STATE(1130), 1, - sym_dotted_name, - STATE(1271), 1, - sym_aliased_import, - STATE(1395), 1, - sym__import_list, - [54264] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(1934), 1, - anon_sym_COLON, - STATE(571), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - [54278] = 4, + STATE(1124), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2462), 2, + sym__newline, + sym__semicolon, + [54354] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2464), 1, anon_sym_COMMA, - STATE(1113), 1, - aux_sym__import_list_repeat1, - ACTIONS(2467), 2, + STATE(1110), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2354), 2, sym__newline, sym__semicolon, - [54292] = 3, + [54368] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2428), 1, - anon_sym_as, - ACTIONS(2469), 3, - sym__newline, + ACTIONS(2467), 1, anon_sym_COMMA, - sym__semicolon, - [54304] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2471), 1, - anon_sym_else, - [54320] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2473), 1, - anon_sym_COMMA, - STATE(1118), 1, + STATE(1111), 1, aux_sym_print_statement_repeat1, - ACTIONS(2475), 2, + ACTIONS(2470), 2, sym__newline, sym__semicolon, - [54334] = 4, + [54382] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2479), 1, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2472), 1, anon_sym_COLON, + [54398] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2233), 1, + sym_identifier, + STATE(1105), 1, + sym_dotted_name, + STATE(1159), 1, + sym_aliased_import, + STATE(1352), 1, + sym__import_list, + [54414] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2476), 1, + anon_sym_DOT, + STATE(1114), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2474), 2, + anon_sym_import, + sym_identifier, + [54428] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(2481), 1, - anon_sym_EQ, - ACTIONS(2477), 2, + anon_sym_COMMA, + STATE(1115), 1, + aux_sym_with_clause_repeat1, + ACTIONS(2479), 2, + anon_sym_RPAREN, + anon_sym_COLON, + [54442] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2486), 1, + anon_sym_COMMA, + STATE(848), 1, + aux_sym__patterns_repeat1, + ACTIONS(2484), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [54456] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2223), 4, anon_sym_RPAREN, anon_sym_COMMA, - [54348] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2483), 1, - anon_sym_COMMA, - STATE(1156), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2485), 2, - sym__newline, - sym__semicolon, - [54362] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2487), 1, - anon_sym_COMMA, - STATE(1156), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2489), 2, - sym__newline, - sym__semicolon, - [54376] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2379), 1, anon_sym_COLON, - ACTIONS(2491), 1, - anon_sym_RBRACE, - ACTIONS(2493), 1, - sym_type_conversion, - STATE(1389), 1, - sym_format_specifier, - [54392] = 4, + anon_sym_EQ, + [54466] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2495), 1, + ACTIONS(2157), 4, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1121), 1, - aux_sym_global_statement_repeat1, + anon_sym_RBRACK, + anon_sym_RBRACE, + [54476] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(312), 1, + sym__template_string_start, + ACTIONS(1917), 1, + anon_sym_COLON, + STATE(572), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + [54490] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(310), 1, + sym__string_start, + ACTIONS(1917), 1, + anon_sym_COLON, + STATE(573), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + [54504] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2490), 1, + anon_sym_EQ, + ACTIONS(2488), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [54516] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2492), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [54526] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2494), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [54536] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2496), 1, + anon_sym_COMMA, + STATE(1111), 1, + aux_sym_print_statement_repeat1, ACTIONS(2498), 2, sym__newline, sym__semicolon, - [54406] = 5, + [54550] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, + ACTIONS(1881), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(1883), 1, anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, ACTIONS(2500), 1, anon_sym_COLON, - [54422] = 4, + [54566] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2502), 1, + anon_sym_COLON, + [54582] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(2504), 1, - anon_sym_COMMA, - STATE(1108), 1, - aux_sym__patterns_repeat1, - ACTIONS(2502), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - [54436] = 5, + sym_identifier, + STATE(1172), 1, + sym_dotted_name, + STATE(1182), 1, + sym_aliased_import, + STATE(1447), 1, + sym__import_list, + [54598] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2366), 1, - anon_sym_LBRACK, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, ACTIONS(2506), 1, - anon_sym_LPAREN, - STATE(1307), 1, - sym_type_parameters, - STATE(1376), 1, - sym_parameters, - [54452] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2508), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [54462] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2510), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [54472] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2366), 1, - anon_sym_LBRACK, - ACTIONS(2506), 1, - anon_sym_LPAREN, - STATE(1355), 1, - sym_type_parameters, - STATE(1367), 1, - sym_parameters, - [54488] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2512), 1, anon_sym_COLON, - [54504] = 4, + [54614] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2516), 1, - anon_sym_DOT, - STATE(1148), 1, - aux_sym_import_prefix_repeat1, - ACTIONS(2514), 2, - anon_sym_import, + ACTIONS(2504), 1, sym_identifier, - [54518] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_RPAREN, - ACTIONS(2518), 1, - anon_sym_COMMA, - ACTIONS(2520), 1, - anon_sym_as, - STATE(1201), 1, - aux_sym__import_list_repeat1, - [54534] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2522), 1, - anon_sym_else, - [54550] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2239), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [54560] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2524), 1, - anon_sym_case, - STATE(515), 1, - sym_cases, - STATE(390), 2, - sym_case_block, - aux_sym_cases_repeat1, - [54574] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2448), 1, - anon_sym_RPAREN, - ACTIONS(2462), 1, - sym_identifier, - STATE(1262), 1, + STATE(1172), 1, sym_dotted_name, - STATE(1374), 1, + STATE(1182), 1, sym_aliased_import, - [54590] = 4, + STATE(1386), 1, + sym__import_list, + [54630] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2524), 1, - anon_sym_case, - STATE(502), 1, - sym_cases, - STATE(390), 2, - sym_case_block, - aux_sym_cases_repeat1, - [54604] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2526), 1, - anon_sym_COLON, - [54620] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2448), 1, - anon_sym_RPAREN, - ACTIONS(2462), 1, - sym_identifier, - STATE(1262), 1, - sym_dotted_name, - STATE(1374), 1, - sym_aliased_import, - [54636] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2528), 1, - anon_sym_COLON, - [54652] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2379), 1, - anon_sym_COLON, - ACTIONS(2530), 1, - anon_sym_RBRACE, - ACTIONS(2532), 1, - sym_type_conversion, - STATE(1444), 1, - sym_format_specifier, - [54668] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2534), 1, - anon_sym_COLON, - [54684] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2536), 1, - anon_sym_COLON, - [54700] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2538), 1, - anon_sym_COLON, - [54716] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2540), 4, - anon_sym_async, - anon_sym_def, - anon_sym_class, - anon_sym_AT, - [54726] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2387), 1, - anon_sym_RPAREN, - ACTIONS(2462), 1, - sym_identifier, - STATE(1262), 1, - sym_dotted_name, - STATE(1374), 1, - sym_aliased_import, - [54742] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2542), 1, - anon_sym_else, - [54758] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, + ACTIONS(2508), 1, anon_sym_COMMA, - STATE(1165), 1, - aux_sym__import_list_repeat1, - ACTIONS(2430), 2, - sym__newline, - sym__semicolon, - [54772] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1999), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - sym__semicolon, - [54782] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2546), 1, - anon_sym_DOT, - STATE(1148), 1, - aux_sym_import_prefix_repeat1, - ACTIONS(2544), 2, - anon_sym_import, - sym_identifier, - [54796] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2332), 1, - anon_sym_EQ, - STATE(1368), 1, - sym__type_param_default, - ACTIONS(2549), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [54810] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2332), 1, - anon_sym_EQ, - STATE(1339), 1, - sym__type_param_default, - ACTIONS(2551), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [54824] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2555), 1, - anon_sym_EQ, - ACTIONS(2553), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [54836] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2557), 1, - anon_sym_case, - STATE(495), 1, - sym_cases, - STATE(407), 2, - sym_case_block, - aux_sym_cases_repeat1, - [54850] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2559), 1, - anon_sym_COMMA, - STATE(1121), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2561), 2, - sym__newline, - sym__semicolon, - [54864] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2332), 1, - anon_sym_EQ, - STATE(1348), 1, - sym__type_param_default, - ACTIONS(2563), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [54878] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2565), 1, - anon_sym_COLON, - [54894] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2567), 1, - anon_sym_COMMA, - STATE(1156), 1, + STATE(1111), 1, aux_sym_print_statement_repeat1, - ACTIONS(2570), 2, + ACTIONS(2510), 2, sym__newline, sym__semicolon, - [54908] = 4, + [54644] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2572), 1, + ACTIONS(2512), 1, anon_sym_COMMA, - STATE(1065), 1, + STATE(1131), 1, + aux_sym__import_list_repeat1, + ACTIONS(2515), 2, + sym__newline, + sym__semicolon, + [54658] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2452), 1, + anon_sym_as, + ACTIONS(2517), 3, + sym__newline, + anon_sym_COMMA, + sym__semicolon, + [54670] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2519), 1, + anon_sym_COMMA, + STATE(1131), 1, + aux_sym__import_list_repeat1, + ACTIONS(2521), 2, + sym__newline, + sym__semicolon, + [54684] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2197), 1, + anon_sym_COMMA, + STATE(1110), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2523), 2, + sym__newline, + sym__semicolon, + [54698] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2525), 1, + anon_sym_COMMA, + STATE(1135), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2528), 2, + sym__newline, + sym__semicolon, + [54712] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2400), 1, + anon_sym_LBRACK, + ACTIONS(2458), 1, + anon_sym_LPAREN, + STATE(1322), 1, + sym_type_parameters, + STATE(1355), 1, + sym_parameters, + [54728] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2530), 1, + anon_sym_case, + STATE(541), 1, + sym_cases, + STATE(414), 2, + sym_case_block, + aux_sym_cases_repeat1, + [54742] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2530), 1, + anon_sym_case, + STATE(484), 1, + sym_cases, + STATE(414), 2, + sym_case_block, + aux_sym_cases_repeat1, + [54756] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2532), 1, + anon_sym_RBRACE, + ACTIONS(2534), 1, + sym_type_conversion, + STATE(1410), 1, + sym_format_specifier, + [54772] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2063), 1, + anon_sym_and, + ACTIONS(2065), 1, + anon_sym_or, + ACTIONS(2069), 1, + anon_sym_if, + ACTIONS(2536), 1, + sym__newline, + [54788] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2538), 1, + anon_sym_COMMA, + STATE(1057), 1, aux_sym_open_sequence_match_pattern_repeat1, ACTIONS(1723), 2, anon_sym_if, anon_sym_COLON, - [54922] = 5, + [54802] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2229), 1, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2540), 1, + anon_sym_else, + [54818] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2542), 1, + anon_sym_COMMA, + STATE(1156), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2544), 2, + sym__newline, + sym__semicolon, + [54832] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2542), 1, + anon_sym_COMMA, + STATE(1155), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2546), 2, + sym__newline, + sym__semicolon, + [54846] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2548), 1, + anon_sym_COMMA, + STATE(1131), 1, + aux_sym__import_list_repeat1, + ACTIONS(2521), 2, + sym__newline, + sym__semicolon, + [54860] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2390), 1, + anon_sym_RPAREN, + ACTIONS(2504), 1, sym_identifier, - STATE(1095), 1, + STATE(1226), 1, sym_dotted_name, - STATE(1146), 1, - sym_aliased_import, STATE(1358), 1, - sym__import_list, - [54938] = 5, + sym_aliased_import, + [54876] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2574), 1, - anon_sym_COLON, - [54954] = 4, + ACTIONS(2550), 1, + anon_sym_case, + STATE(530), 1, + sym_cases, + STATE(390), 2, + sym_case_block, + aux_sym_cases_repeat1, + [54890] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2195), 1, - anon_sym_COMMA, - STATE(1161), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2576), 2, - sym__newline, - sym__semicolon, - [54968] = 4, + ACTIONS(2550), 1, + anon_sym_case, + STATE(529), 1, + sym_cases, + STATE(390), 2, + sym_case_block, + aux_sym_cases_repeat1, + [54904] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2578), 1, - anon_sym_COMMA, - STATE(1161), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2312), 2, - sym__newline, - sym__semicolon, - [54982] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2199), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_EQ, - [54992] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2581), 1, - anon_sym_COLON, - [55008] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2583), 1, - anon_sym_COMMA, - STATE(1113), 1, - aux_sym__import_list_repeat1, - ACTIONS(2585), 2, - sym__newline, - sym__semicolon, - [55022] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2587), 1, - anon_sym_COMMA, - STATE(1113), 1, - aux_sym__import_list_repeat1, - ACTIONS(2585), 2, - sym__newline, - sym__semicolon, - [55036] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2366), 1, + ACTIONS(2400), 1, anon_sym_LBRACK, - ACTIONS(2506), 1, + ACTIONS(2458), 1, anon_sym_LPAREN, - STATE(1320), 1, + STATE(1317), 1, sym_type_parameters, - STATE(1356), 1, + STATE(1349), 1, sym_parameters, - [55052] = 4, + [54920] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2591), 1, - anon_sym_COMMA, - STATE(1167), 1, - aux_sym_with_clause_repeat1, - ACTIONS(2589), 2, - anon_sym_RPAREN, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2552), 1, anon_sym_COLON, - [55066] = 5, + [54936] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2366), 1, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2554), 1, + anon_sym_COLON, + [54952] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2556), 1, + anon_sym_COMMA, + STATE(1152), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2559), 2, + anon_sym_as, + anon_sym_COLON, + [54966] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2400), 1, anon_sym_LBRACK, - ACTIONS(2506), 1, + ACTIONS(2458), 1, anon_sym_LPAREN, STATE(1319), 1, sym_type_parameters, - STATE(1354), 1, + STATE(1350), 1, sym_parameters, - [55082] = 5, + [54982] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, + ACTIONS(1881), 1, anon_sym_and, - ACTIONS(1879), 1, + ACTIONS(1883), 1, anon_sym_or, - ACTIONS(2594), 1, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2561), 1, anon_sym_COLON, - [55098] = 5, + [54998] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2053), 1, - anon_sym_and, - ACTIONS(2055), 1, - anon_sym_or, - ACTIONS(2059), 1, - anon_sym_if, - ACTIONS(2596), 1, - sym__newline, - [55114] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2559), 1, + ACTIONS(2542), 1, anon_sym_COMMA, - STATE(1153), 1, + STATE(1135), 1, aux_sym_global_statement_repeat1, - ACTIONS(2598), 2, + ACTIONS(2563), 2, sym__newline, sym__semicolon, - [55128] = 4, + [55012] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2559), 1, + ACTIONS(2542), 1, anon_sym_COMMA, - STATE(1174), 1, + STATE(1135), 1, aux_sym_global_statement_repeat1, - ACTIONS(2600), 2, + ACTIONS(2565), 2, sym__newline, sym__semicolon, - [55142] = 4, + [55026] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2557), 1, - anon_sym_case, - STATE(496), 1, - sym_cases, - STATE(407), 2, - sym_case_block, - aux_sym_cases_repeat1, - [55156] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2559), 1, - anon_sym_COMMA, - STATE(1121), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2602), 2, - sym__newline, - sym__semicolon, - [55170] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1875), 1, - anon_sym_if, - ACTIONS(1877), 1, - anon_sym_and, - ACTIONS(1879), 1, - anon_sym_or, - ACTIONS(2604), 1, + ACTIONS(2569), 1, anon_sym_COLON, - [55186] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1862), 1, - anon_sym_RPAREN, - ACTIONS(2606), 1, - anon_sym_COMMA, - STATE(1275), 1, - aux_sym__parameters_repeat1, - [55199] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(915), 1, - anon_sym_RPAREN, - ACTIONS(2608), 1, - anon_sym_COMMA, - STATE(1167), 1, - aux_sym_with_clause_repeat1, - [55212] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1737), 1, - anon_sym_RPAREN, - ACTIONS(2610), 1, - sym_identifier, - STATE(1341), 1, - sym_match_keyword_pattern, - [55225] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2262), 1, - anon_sym_RBRACE, - ACTIONS(2264), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [55236] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2612), 1, - anon_sym_COMMA, - ACTIONS(2614), 1, - anon_sym_RBRACK, - STATE(1217), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [55249] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2616), 1, - anon_sym_RPAREN, - ACTIONS(2618), 1, - anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [55262] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1840), 1, - anon_sym_COMMA, - ACTIONS(2621), 1, - anon_sym_in, - STATE(862), 1, - aux_sym__patterns_repeat1, - [55275] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1840), 1, - anon_sym_COMMA, - ACTIONS(2623), 1, - anon_sym_in, - STATE(862), 1, - aux_sym__patterns_repeat1, - [55288] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2625), 1, - sym__semicolon, - ACTIONS(2627), 1, - sym__newline, - STATE(1302), 1, - aux_sym__simple_statements_repeat1, - [55301] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2274), 1, - anon_sym_RBRACE, - ACTIONS(2276), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [55312] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2629), 1, + ACTIONS(2571), 1, anon_sym_EQ, - ACTIONS(2631), 2, + ACTIONS(2567), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [55040] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2573), 1, + anon_sym_COLON, + [55056] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2450), 1, + anon_sym_COMMA, + STATE(1133), 1, + aux_sym__import_list_repeat1, + ACTIONS(2454), 2, sym__newline, sym__semicolon, - [55323] = 4, + [55070] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2633), 1, - anon_sym_COMMA, - ACTIONS(2635), 1, - anon_sym_RBRACE, - STATE(1252), 1, - aux_sym_match_mapping_pattern_repeat1, - [55336] = 4, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2575), 1, + anon_sym_else, + [55086] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1737), 1, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2577), 1, + anon_sym_COLON, + [55102] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2579), 1, + anon_sym_COLON, + [55118] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2427), 1, anon_sym_RPAREN, - ACTIONS(2637), 1, - anon_sym_COMMA, - STATE(1209), 1, - aux_sym_match_class_pattern_repeat2, - [55349] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2462), 1, + ACTIONS(2504), 1, sym_identifier, - STATE(1262), 1, + STATE(1226), 1, sym_dotted_name, - STATE(1374), 1, + STATE(1358), 1, sym_aliased_import, - [55362] = 4, + [55134] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1739), 1, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2581), 1, + anon_sym_else, + [55150] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2427), 1, anon_sym_RPAREN, - ACTIONS(2639), 1, - anon_sym_COMMA, - STATE(1229), 1, - aux_sym_match_class_pattern_repeat2, - [55375] = 4, + ACTIONS(2504), 1, + sym_identifier, + STATE(1226), 1, + sym_dotted_name, + STATE(1358), 1, + sym_aliased_import, + [55166] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2641), 1, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2583), 1, + anon_sym_COLON, + [55182] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2197), 1, + anon_sym_COMMA, + STATE(1110), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2585), 2, + sym__newline, + sym__semicolon, + [55196] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2009), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + sym__semicolon, + [55206] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2587), 1, + anon_sym_COLON, + [55222] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1881), 1, + anon_sym_and, + ACTIONS(1883), 1, + anon_sym_or, + ACTIONS(1895), 1, + anon_sym_if, + ACTIONS(2589), 1, + anon_sym_else, + [55238] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2593), 1, + anon_sym_DOT, + STATE(1114), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2591), 2, + anon_sym_import, + sym_identifier, + [55252] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2454), 1, anon_sym_RPAREN, - ACTIONS(2643), 1, + ACTIONS(2595), 1, anon_sym_COMMA, - STATE(1191), 1, - aux_sym_match_class_pattern_repeat1, - [55388] = 2, + ACTIONS(2597), 1, + anon_sym_as, + STATE(1305), 1, + aux_sym__import_list_repeat1, + [55268] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2199), 3, + ACTIONS(2599), 4, + anon_sym_async, + anon_sym_def, + anon_sym_class, + anon_sym_AT, + [55278] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2342), 1, + anon_sym_EQ, + STATE(1321), 1, + sym__type_param_default, + ACTIONS(2601), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [55292] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2342), 1, + anon_sym_EQ, + STATE(1323), 1, + sym__type_param_default, + ACTIONS(2603), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [55306] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2342), 1, + anon_sym_EQ, + STATE(1325), 1, + sym__type_param_default, + ACTIONS(2605), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [55320] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2609), 1, + anon_sym_COMMA, + STATE(1116), 1, + aux_sym__patterns_repeat1, + ACTIONS(2607), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [55334] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2177), 1, + anon_sym_COMMA, + STATE(1152), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2611), 2, + anon_sym_as, + anon_sym_COLON, + [55348] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2613), 1, + anon_sym_RBRACE, + ACTIONS(2615), 1, + sym_type_conversion, + STATE(1458), 1, + sym_format_specifier, + [55364] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2617), 1, + anon_sym_COMMA, + ACTIONS(2620), 1, + anon_sym_RBRACE, + STATE(1180), 1, + aux_sym_dictionary_repeat1, + [55377] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + sym__semicolon, + ACTIONS(2624), 1, + sym__newline, + STATE(1299), 1, + aux_sym__simple_statements_repeat1, + [55390] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2454), 1, + anon_sym_RPAREN, + ACTIONS(2595), 1, + anon_sym_COMMA, + STATE(1267), 1, + aux_sym__import_list_repeat1, + [55403] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2626), 1, + anon_sym_if, + ACTIONS(2628), 1, + anon_sym_COLON, + STATE(1506), 1, + sym_guard, + [55416] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2630), 1, + anon_sym_COMMA, + ACTIONS(2632), 2, + anon_sym_if, + anon_sym_COLON, + [55427] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2223), 3, sym__newline, anon_sym_EQ, sym__semicolon, - [55397] = 4, + [55436] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2646), 1, - anon_sym_COMMA, - ACTIONS(2648), 1, - anon_sym_RBRACK, - STATE(1199), 1, - aux_sym_type_parameters_repeat1, - [55410] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2650), 3, + ACTIONS(2634), 3, anon_sym_LPAREN, anon_sym_COLON, anon_sym_EQ, - [55419] = 4, + [55445] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2636), 1, + anon_sym_COMMA, + ACTIONS(2638), 1, + anon_sym_RBRACK, + STATE(1248), 1, + aux_sym_type_parameters_repeat1, + [55458] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2640), 1, + anon_sym_RPAREN, + ACTIONS(2642), 1, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [55471] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2644), 1, + anon_sym_RPAREN, + ACTIONS(2646), 1, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [55484] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2504), 1, + sym_identifier, + STATE(1226), 1, + sym_dotted_name, + STATE(1358), 1, + sym_aliased_import, + [55497] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2288), 1, + anon_sym_RBRACE, + ACTIONS(2290), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [55508] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2648), 1, + anon_sym_RPAREN, + ACTIONS(2650), 1, + anon_sym_COMMA, + STATE(1295), 1, + aux_sym_match_class_pattern_repeat2, + [55521] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2652), 1, - anon_sym_if, + anon_sym_RPAREN, ACTIONS(2654), 1, - anon_sym_COLON, - STATE(1456), 1, - sym_guard, - [55432] = 3, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [55534] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2656), 1, - anon_sym_COMMA, - ACTIONS(2658), 2, - anon_sym_if, - anon_sym_COLON, - [55443] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2362), 1, - anon_sym_LPAREN, - ACTIONS(2660), 1, - anon_sym_COLON, - STATE(1445), 1, - sym_argument_list, - [55456] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2662), 3, - anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [55465] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2664), 1, - anon_sym_COMMA, - ACTIONS(2667), 1, - anon_sym_RBRACK, - STATE(1199), 1, - aux_sym_type_parameters_repeat1, - [55478] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1739), 1, anon_sym_RPAREN, - ACTIONS(2610), 1, - sym_identifier, - STATE(1341), 1, - sym_match_keyword_pattern, - [55491] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2585), 1, - anon_sym_RPAREN, - ACTIONS(2669), 1, + ACTIONS(2658), 1, anon_sym_COMMA, - STATE(1263), 1, - aux_sym__import_list_repeat1, - [55504] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2585), 1, - anon_sym_RPAREN, - ACTIONS(2671), 1, - anon_sym_COMMA, - STATE(1263), 1, - aux_sym__import_list_repeat1, - [55517] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1421), 3, - sym__newline, - anon_sym_in, - sym__semicolon, - [55526] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2673), 1, - sym__semicolon, - ACTIONS(2676), 1, - sym__newline, - STATE(1204), 1, - aux_sym__simple_statements_repeat1, - [55539] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2652), 1, - anon_sym_if, - ACTIONS(2678), 1, - anon_sym_COLON, - STATE(1470), 1, - sym_guard, - [55552] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1862), 1, - anon_sym_COLON, - ACTIONS(2680), 1, - anon_sym_COMMA, - STATE(1278), 1, - aux_sym__parameters_repeat1, - [55565] = 2, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [55547] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(1425), 3, sym__newline, anon_sym_in, sym__semicolon, - [55574] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2284), 1, - anon_sym_RBRACE, - ACTIONS(2286), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [55585] = 4, + [55556] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2682), 1, - anon_sym_RPAREN, - ACTIONS(2684), 1, - anon_sym_COMMA, - STATE(1209), 1, - aux_sym_match_class_pattern_repeat2, - [55598] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1187), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [55607] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2687), 1, - sym_identifier, - ACTIONS(2689), 1, - sym_match_wildcard_pattern, - STATE(1096), 1, - sym_match_capture_pattern, - [55620] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2362), 1, - anon_sym_LPAREN, - ACTIONS(2691), 1, - anon_sym_COLON, - STATE(1453), 1, - sym_argument_list, - [55633] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1731), 1, - anon_sym_RPAREN, - ACTIONS(2693), 1, - anon_sym_COMMA, - STATE(1065), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [55646] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2695), 1, + ACTIONS(2661), 1, sym__semicolon, - ACTIONS(2697), 1, + ACTIONS(2664), 1, sym__newline, - STATE(1230), 1, + STATE(1196), 1, aux_sym__simple_statements_repeat1, - [55659] = 4, + [55569] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2179), 1, - sym_identifier, - ACTIONS(2699), 1, - anon_sym_import, - STATE(1478), 1, - sym_dotted_name, - [55672] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2701), 1, + ACTIONS(1897), 1, anon_sym_COMMA, - ACTIONS(2704), 1, - anon_sym_RBRACE, - STATE(1216), 1, - aux_sym_match_mapping_pattern_repeat1, - [55685] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1731), 1, - anon_sym_RBRACK, - ACTIONS(2706), 1, - anon_sym_COMMA, - STATE(1065), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [55698] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1840), 1, - anon_sym_COMMA, - ACTIONS(2708), 1, - anon_sym_in, - STATE(862), 1, - aux_sym__patterns_repeat1, - [55711] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_DOT, - ACTIONS(1912), 1, - anon_sym_COLON, - STATE(880), 1, - aux_sym_match_value_pattern_repeat1, - [55724] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(2015), 1, + ACTIONS(2019), 1, anon_sym_RPAREN, - STATE(1287), 1, + STATE(1293), 1, aux_sym__collection_elements_repeat1, - [55737] = 4, + [55582] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1862), 1, + anon_sym_COLON, + ACTIONS(2666), 1, + anon_sym_COMMA, + STATE(1284), 1, + aux_sym__parameters_repeat1, + [55595] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1417), 3, + sym__newline, + anon_sym_in, + sym__semicolon, + [55604] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2648), 1, + anon_sym_RPAREN, + ACTIONS(2668), 1, + anon_sym_COMMA, + STATE(1275), 1, + aux_sym_match_class_pattern_repeat1, + [55617] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2670), 1, + anon_sym_COMMA, + ACTIONS(2673), 1, + anon_sym_RBRACK, + STATE(1201), 1, + aux_sym_index_expression_list_repeat1, + [55630] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2675), 1, + anon_sym_COMMA, + ACTIONS(2678), 1, + anon_sym_RBRACE, + STATE(1202), 1, + aux_sym_match_mapping_pattern_repeat1, + [55643] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2680), 1, + anon_sym_COMMA, + ACTIONS(2682), 1, + anon_sym_RBRACK, + STATE(1257), 1, + aux_sym_index_expression_list_repeat1, + [55656] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2684), 1, + anon_sym_RPAREN, + ACTIONS(2686), 1, + anon_sym_COMMA, + STATE(1189), 1, + aux_sym_argument_list_repeat1, + [55669] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2013), 1, + anon_sym_RPAREN, + ACTIONS(2015), 1, + anon_sym_COMMA, + STATE(1193), 1, + aux_sym_argument_list_repeat1, + [55682] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2688), 1, + anon_sym_COMMA, + ACTIONS(2690), 1, + anon_sym_RBRACK, + STATE(1232), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [55695] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2692), 1, + anon_sym_COMMA, + ACTIONS(2694), 1, + anon_sym_RBRACE, + STATE(1180), 1, + aux_sym_dictionary_repeat1, + [55708] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2696), 1, + anon_sym_COMMA, + ACTIONS(2698), 1, + anon_sym_RBRACE, + STATE(1180), 1, + aux_sym_dictionary_repeat1, + [55721] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1175), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [55730] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2396), 1, + anon_sym_LPAREN, + ACTIONS(2700), 1, + anon_sym_COLON, + STATE(1413), 1, + sym_argument_list, + [55743] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(556), 1, + sym__newline, + ACTIONS(2702), 1, + sym__semicolon, + STATE(1196), 1, + aux_sym__simple_statements_repeat1, + [55756] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2704), 1, + sym__semicolon, + ACTIONS(2706), 1, + sym__newline, + STATE(1231), 1, + aux_sym__simple_statements_repeat1, + [55769] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1739), 1, + anon_sym_RPAREN, + ACTIONS(2708), 1, + anon_sym_COMMA, + STATE(1249), 1, + aux_sym_match_class_pattern_repeat2, + [55782] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2710), 1, - anon_sym_RPAREN, + sym_identifier, ACTIONS(2712), 1, - anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [55750] = 4, + sym_match_wildcard_pattern, + STATE(1086), 1, + sym_match_capture_pattern, + [55795] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(2191), 1, + anon_sym_COMMA, + ACTIONS(2193), 1, + anon_sym_RBRACE, + STATE(1208), 1, + aux_sym_dictionary_repeat1, + [55808] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2515), 1, + anon_sym_RPAREN, ACTIONS(2714), 1, - anon_sym_RPAREN, - ACTIONS(2716), 1, anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [55763] = 4, + STATE(1216), 1, + aux_sym__import_list_repeat1, + [55821] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2718), 1, - anon_sym_RPAREN, - ACTIONS(2720), 1, - anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [55776] = 4, + ACTIONS(2717), 1, + anon_sym_EQ, + ACTIONS(2719), 2, + sym__newline, + sym__semicolon, + [55832] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1881), 1, + ACTIONS(1897), 1, anon_sym_COMMA, ACTIONS(2007), 1, anon_sym_RPAREN, - STATE(1287), 1, + STATE(1293), 1, aux_sym__collection_elements_repeat1, - [55789] = 4, + [55845] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2213), 1, - anon_sym_COMMA, - ACTIONS(2215), 1, - anon_sym_RBRACE, - STATE(1241), 1, - aux_sym_dictionary_repeat1, - [55802] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2610), 1, + ACTIONS(2207), 1, sym_identifier, - ACTIONS(2722), 1, - anon_sym_RPAREN, - STATE(1341), 1, - sym_match_keyword_pattern, - [55815] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2724), 1, - anon_sym_COMMA, - ACTIONS(2726), 1, - anon_sym_RBRACK, - STATE(1261), 1, - aux_sym_index_expression_list_repeat1, - [55828] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2728), 1, - anon_sym_RPAREN, - ACTIONS(2730), 1, - anon_sym_COMMA, - STATE(1176), 1, - aux_sym__parameters_repeat1, - [55841] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2722), 1, - anon_sym_RPAREN, - ACTIONS(2732), 1, - anon_sym_COMMA, - STATE(1209), 1, - aux_sym_match_class_pattern_repeat2, - [55854] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(558), 1, - sym__newline, - ACTIONS(2734), 1, - sym__semicolon, - STATE(1204), 1, - aux_sym__simple_statements_repeat1, - [55867] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2736), 1, - anon_sym_RPAREN, - ACTIONS(2738), 1, - anon_sym_COMMA, - STATE(1222), 1, - aux_sym_argument_list_repeat1, - [55880] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1973), 1, - anon_sym_RPAREN, - ACTIONS(1975), 1, - anon_sym_COMMA, - STATE(1223), 1, - aux_sym_argument_list_repeat1, - [55893] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2229), 1, - sym_identifier, - STATE(1114), 1, + ACTIONS(2721), 1, + anon_sym_import, + STATE(1489), 1, sym_dotted_name, - STATE(1289), 1, - sym_aliased_import, - [55906] = 4, + [55858] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2740), 1, + ACTIONS(1897), 1, anon_sym_COMMA, - ACTIONS(2742), 1, - anon_sym_RBRACE, - STATE(1292), 1, - aux_sym_dictionary_repeat1, - [55919] = 4, + ACTIONS(1933), 1, + anon_sym_RPAREN, + STATE(1293), 1, + aux_sym__collection_elements_repeat1, + [55871] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2744), 1, + ACTIONS(2723), 1, + sym_identifier, + ACTIONS(2725), 1, + anon_sym_RPAREN, + STATE(1333), 1, + sym_match_keyword_pattern, + [55884] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2727), 1, + anon_sym_COLON, + ACTIONS(2567), 2, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(2746), 1, - anon_sym_RBRACE, - STATE(1292), 1, - aux_sym_dictionary_repeat1, - [55932] = 4, + [55895] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(560), 1, - sym__newline, - ACTIONS(2748), 1, - sym__semicolon, - STATE(1204), 1, - aux_sym__simple_statements_repeat1, + ACTIONS(1954), 1, + anon_sym_RPAREN, + ACTIONS(1956), 1, + anon_sym_COMMA, + STATE(1296), 1, + aux_sym_argument_list_repeat1, + [55908] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1873), 1, + anon_sym_DOT, + ACTIONS(1931), 1, + anon_sym_COLON, + STATE(881), 1, + aux_sym_match_value_pattern_repeat1, + [55921] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2227), 1, + anon_sym_COMMA, + ACTIONS(2229), 1, + anon_sym_RBRACE, + STATE(1247), 1, + aux_sym_dictionary_repeat1, + [55934] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2597), 1, + anon_sym_as, + ACTIONS(2517), 2, + anon_sym_RPAREN, + anon_sym_COMMA, [55945] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2379), 1, - anon_sym_COLON, - ACTIONS(2750), 1, - anon_sym_RBRACE, - STATE(1465), 1, - sym_format_specifier, + ACTIONS(2729), 1, + sym__semicolon, + ACTIONS(2731), 1, + sym__newline, + STATE(1211), 1, + aux_sym__simple_statements_repeat1, [55958] = 3, - ACTIONS(1948), 1, + ACTIONS(3), 1, sym_comment, - ACTIONS(2346), 1, - anon_sym_RBRACE, - ACTIONS(2348), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, + ACTIONS(2147), 1, + anon_sym_from, + ACTIONS(2151), 2, + sym__newline, + sym__semicolon, [55969] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2243), 1, + ACTIONS(2733), 1, + anon_sym_RPAREN, + ACTIONS(2735), 1, anon_sym_COMMA, - ACTIONS(2245), 1, - anon_sym_RBRACE, - STATE(1235), 1, - aux_sym_dictionary_repeat1, + STATE(1253), 1, + aux_sym__parameters_repeat1, [55982] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2752), 1, + ACTIONS(2737), 1, + anon_sym_RPAREN, + ACTIONS(2739), 1, anon_sym_COMMA, - ACTIONS(2754), 1, - anon_sym_RBRACE, - STATE(1292), 1, - aux_sym_dictionary_repeat1, + STATE(1265), 1, + aux_sym_argument_list_repeat1, [55995] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2756), 1, - anon_sym_COMMA, - ACTIONS(2758), 1, - anon_sym_RBRACE, - STATE(1292), 1, - aux_sym_dictionary_repeat1, + ACTIONS(562), 1, + sym__newline, + ACTIONS(2741), 1, + sym__semicolon, + STATE(1196), 1, + aux_sym__simple_statements_repeat1, [56008] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1737), 1, - anon_sym_RPAREN, - ACTIONS(2760), 1, + ACTIONS(1727), 1, + anon_sym_RBRACK, + ACTIONS(2743), 1, anon_sym_COMMA, - STATE(1191), 1, - aux_sym_match_class_pattern_repeat1, + STATE(1057), 1, + aux_sym_open_sequence_match_pattern_repeat1, [56021] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1881), 1, + ACTIONS(1844), 1, anon_sym_COMMA, - ACTIONS(1897), 1, - anon_sym_RPAREN, - STATE(1287), 1, - aux_sym__collection_elements_repeat1, + ACTIONS(2745), 1, + anon_sym_in, + STATE(861), 1, + aux_sym__patterns_repeat1, [56034] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2610), 1, - sym_identifier, - ACTIONS(2762), 1, + ACTIONS(1727), 1, anon_sym_RPAREN, - STATE(1341), 1, - sym_match_keyword_pattern, + ACTIONS(2747), 1, + anon_sym_COMMA, + STATE(1057), 1, + aux_sym_open_sequence_match_pattern_repeat1, [56047] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2764), 1, + ACTIONS(2749), 1, + anon_sym_RPAREN, + ACTIONS(2751), 1, anon_sym_COMMA, - ACTIONS(2766), 1, - anon_sym_RBRACE, - STATE(1292), 1, - aux_sym_dictionary_repeat1, + STATE(1302), 1, + aux_sym_match_class_pattern_repeat2, [56060] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2762), 1, + ACTIONS(2723), 1, + sym_identifier, + ACTIONS(2749), 1, anon_sym_RPAREN, - ACTIONS(2768), 1, - anon_sym_COMMA, - STATE(1209), 1, - aux_sym_match_class_pattern_repeat2, + STATE(1333), 1, + sym_match_keyword_pattern, [56073] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2770), 1, + ACTIONS(1844), 1, anon_sym_COMMA, - ACTIONS(2773), 1, - anon_sym_RBRACK, - STATE(1247), 1, - aux_sym_index_expression_list_repeat1, + ACTIONS(2753), 1, + anon_sym_in, + STATE(861), 1, + aux_sym__patterns_repeat1, [56086] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2775), 1, + ACTIONS(2755), 1, anon_sym_COMMA, - ACTIONS(2777), 1, - anon_sym_RBRACE, - STATE(1292), 1, - aux_sym_dictionary_repeat1, + ACTIONS(2757), 1, + anon_sym_COLON, + STATE(1272), 1, + aux_sym_with_clause_repeat1, [56099] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2779), 1, - sym__semicolon, - ACTIONS(2781), 1, - sym__newline, - STATE(1236), 1, - aux_sym__simple_statements_repeat1, + ACTIONS(2396), 1, + anon_sym_LPAREN, + ACTIONS(2759), 1, + anon_sym_COLON, + STATE(1451), 1, + sym_argument_list, [56112] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2610), 1, - sym_identifier, - ACTIONS(2783), 1, - anon_sym_RPAREN, - STATE(1341), 1, - sym_match_keyword_pattern, - [56125] = 4, + ACTIONS(2636), 1, + anon_sym_COMMA, + ACTIONS(2761), 1, + anon_sym_RBRACK, + STATE(1187), 1, + aux_sym_type_parameters_repeat1, + [56125] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2323), 1, + anon_sym_RBRACE, + ACTIONS(2325), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [56136] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2722), 1, + ACTIONS(2763), 1, anon_sym_RPAREN, - ACTIONS(2732), 1, + ACTIONS(2765), 1, anon_sym_COMMA, - STATE(1246), 1, + STATE(1235), 1, aux_sym_match_class_pattern_repeat2, - [56138] = 4, + [56149] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1784), 1, - anon_sym_RBRACE, - ACTIONS(2785), 1, + ACTIONS(2680), 1, anon_sym_COMMA, - STATE(1216), 1, - aux_sym_match_mapping_pattern_repeat1, - [56151] = 4, + ACTIONS(2767), 1, + anon_sym_RBRACK, + STATE(1257), 1, + aux_sym_index_expression_list_repeat1, + [56162] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2187), 1, - anon_sym_COMMA, - ACTIONS(2189), 1, + ACTIONS(2233), 1, + sym_identifier, + STATE(1132), 1, + sym_dotted_name, + STATE(1289), 1, + sym_aliased_import, + [56175] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2303), 1, anon_sym_RBRACE, - STATE(1248), 1, + ACTIONS(2305), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [56186] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2769), 1, + anon_sym_COMMA, + ACTIONS(2771), 1, + anon_sym_RBRACE, + STATE(1180), 1, aux_sym_dictionary_repeat1, - [56164] = 4, + [56199] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1977), 1, - anon_sym_RPAREN, - ACTIONS(1979), 1, + ACTIONS(2773), 1, anon_sym_COMMA, - STATE(1277), 1, - aux_sym_argument_list_repeat1, - [56177] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2787), 1, - anon_sym_RPAREN, - ACTIONS(2789), 1, - anon_sym_COMMA, - STATE(1279), 1, - aux_sym_argument_list_repeat1, - [56190] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1969), 1, - anon_sym_RPAREN, - ACTIONS(1971), 1, - anon_sym_COMMA, - STATE(1272), 1, - aux_sym_argument_list_repeat1, - [56203] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2724), 1, - anon_sym_COMMA, - ACTIONS(2791), 1, - anon_sym_RBRACK, - STATE(1261), 1, - aux_sym_index_expression_list_repeat1, - [56216] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2071), 1, - anon_sym_from, - ACTIONS(2075), 2, - sym__newline, - sym__semicolon, - [56227] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2793), 1, - anon_sym_RPAREN, - ACTIONS(2795), 1, - anon_sym_COMMA, - STATE(1269), 1, - aux_sym_argument_list_repeat1, - [56240] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2379), 1, - anon_sym_COLON, - ACTIONS(2530), 1, + ACTIONS(2775), 1, anon_sym_RBRACE, - STATE(1444), 1, - sym_format_specifier, - [56253] = 4, + STATE(1180), 1, + aux_sym_dictionary_repeat1, + [56212] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2797), 1, + ACTIONS(2777), 1, anon_sym_COMMA, - ACTIONS(2799), 1, + ACTIONS(2780), 1, anon_sym_RBRACK, - STATE(1247), 1, - aux_sym_index_expression_list_repeat1, - [56266] = 3, + STATE(1248), 1, + aux_sym_type_parameters_repeat1, + [56225] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2520), 1, - anon_sym_as, - ACTIONS(2469), 2, + ACTIONS(2763), 1, anon_sym_RPAREN, + ACTIONS(2765), 1, anon_sym_COMMA, + STATE(1302), 1, + aux_sym_match_class_pattern_repeat2, + [56238] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2723), 1, + sym_identifier, + ACTIONS(2763), 1, + anon_sym_RPAREN, + STATE(1333), 1, + sym_match_keyword_pattern, + [56251] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2782), 1, + anon_sym_COMMA, + ACTIONS(2784), 1, + anon_sym_RBRACE, + STATE(1180), 1, + aux_sym_dictionary_repeat1, + [56264] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2786), 1, + anon_sym_RBRACE, + STATE(1408), 1, + sym_format_specifier, [56277] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2467), 1, + ACTIONS(1862), 1, anon_sym_RPAREN, - ACTIONS(2801), 1, + ACTIONS(2788), 1, anon_sym_COMMA, - STATE(1263), 1, - aux_sym__import_list_repeat1, - [56290] = 4, + STATE(1281), 1, + aux_sym__parameters_repeat1, + [56290] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2350), 1, + anon_sym_RBRACE, + ACTIONS(2352), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [56301] = 3, + ACTIONS(1948), 1, + sym_comment, + ACTIONS(2790), 1, + anon_sym_RBRACE, + ACTIONS(2792), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [56312] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2794), 1, + anon_sym_in, + ACTIONS(2796), 2, + sym__newline, + sym__semicolon, + [56323] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2798), 1, + anon_sym_COMMA, + ACTIONS(2800), 1, + anon_sym_RBRACK, + STATE(1201), 1, + aux_sym_index_expression_list_repeat1, + [56336] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2400), 1, + anon_sym_LBRACK, + ACTIONS(2802), 1, + anon_sym_EQ, + STATE(1392), 1, + sym_type_parameters, + [56349] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2217), 1, + anon_sym_COMMA, + ACTIONS(2219), 1, + anon_sym_RBRACE, + STATE(1269), 1, + aux_sym_dictionary_repeat1, + [56362] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1960), 1, + anon_sym_RPAREN, + ACTIONS(1962), 1, + anon_sym_COMMA, + STATE(1283), 1, + aux_sym_argument_list_repeat1, + [56375] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2804), 1, anon_sym_RPAREN, ACTIONS(2806), 1, anon_sym_COMMA, - STATE(1181), 1, + STATE(1285), 1, aux_sym_argument_list_repeat1, - [56303] = 4, + [56388] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2724), 1, + ACTIONS(2528), 3, + sym__newline, + anon_sym_COMMA, + sym__semicolon, + [56397] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2680), 1, anon_sym_COMMA, ACTIONS(2808), 1, anon_sym_RBRACK, - STATE(1261), 1, + STATE(1257), 1, aux_sym_index_expression_list_repeat1, - [56316] = 4, + [56410] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2810), 1, - anon_sym_COMMA, + anon_sym_RPAREN, ACTIONS(2812), 1, - anon_sym_COLON, - STATE(1167), 1, - aux_sym_with_clause_repeat1, - [56329] = 3, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [56423] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2814), 1, - anon_sym_COLON, - ACTIONS(2477), 2, anon_sym_RPAREN, + ACTIONS(2816), 1, anon_sym_COMMA, - [56340] = 4, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [56436] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2816), 1, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2532), 1, + anon_sym_RBRACE, + STATE(1410), 1, + sym_format_specifier, + [56449] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2521), 1, anon_sym_RPAREN, ACTIONS(2818), 1, anon_sym_COMMA, - STATE(1177), 1, - aux_sym_with_clause_repeat1, - [56353] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2820), 1, - anon_sym_RPAREN, - ACTIONS(2822), 1, - anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [56366] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1840), 1, - anon_sym_COMMA, - ACTIONS(2824), 1, - anon_sym_in, - STATE(862), 1, - aux_sym__patterns_repeat1, - [56379] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_RPAREN, - ACTIONS(2518), 1, - anon_sym_COMMA, - STATE(1202), 1, + STATE(1216), 1, aux_sym__import_list_repeat1, - [56392] = 4, + [56462] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2826), 1, - anon_sym_RPAREN, - ACTIONS(2828), 1, - anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [56405] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2553), 3, + ACTIONS(2820), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [56414] = 4, + [56471] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1840), 1, + ACTIONS(2822), 1, + anon_sym_COMMA, + ACTIONS(2824), 1, + anon_sym_RBRACE, + STATE(1180), 1, + aux_sym_dictionary_repeat1, + [56484] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2613), 1, + anon_sym_RBRACE, + STATE(1458), 1, + sym_format_specifier, + [56497] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2571), 1, + anon_sym_EQ, + ACTIONS(2567), 2, + anon_sym_COMMA, + anon_sym_COLON, + [56508] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2755), 1, + anon_sym_COMMA, + ACTIONS(2826), 1, + anon_sym_COLON, + STATE(1115), 1, + aux_sym_with_clause_repeat1, + [56521] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2828), 1, anon_sym_COMMA, ACTIONS(2830), 1, - anon_sym_in, - STATE(862), 1, - aux_sym__patterns_repeat1, - [56427] = 4, + anon_sym_RBRACE, + STATE(1301), 1, + aux_sym_match_mapping_pattern_repeat1, + [56534] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2832), 1, anon_sym_RPAREN, ACTIONS(2834), 1, anon_sym_COMMA, - STATE(1275), 1, - aux_sym__parameters_repeat1, - [56440] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2810), 1, - anon_sym_COMMA, - ACTIONS(2837), 1, - anon_sym_COLON, - STATE(1266), 1, + STATE(1294), 1, aux_sym_with_clause_repeat1, - [56453] = 4, + [56547] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2839), 1, + ACTIONS(1737), 1, anon_sym_RPAREN, - ACTIONS(2841), 1, + ACTIONS(2836), 1, anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [56466] = 4, + STATE(1309), 1, + aux_sym_match_class_pattern_repeat1, + [56560] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2832), 1, + ACTIONS(2733), 1, anon_sym_COLON, - ACTIONS(2843), 1, + ACTIONS(2838), 1, anon_sym_COMMA, - STATE(1278), 1, + STATE(1198), 1, aux_sym__parameters_repeat1, - [56479] = 4, + [56573] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2626), 1, + anon_sym_if, + ACTIONS(2840), 1, + anon_sym_COLON, + STATE(1464), 1, + sym_guard, + [56586] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2567), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [56595] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1844), 1, + anon_sym_COMMA, + ACTIONS(2842), 1, + anon_sym_in, + STATE(861), 1, + aux_sym__patterns_repeat1, + [56608] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1844), 1, + anon_sym_COMMA, + ACTIONS(2844), 1, + anon_sym_in, + STATE(861), 1, + aux_sym__patterns_repeat1, + [56621] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2846), 1, anon_sym_RPAREN, ACTIONS(2848), 1, anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [56492] = 4, + STATE(1281), 1, + aux_sym__parameters_repeat1, + [56634] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2850), 1, - anon_sym_RPAREN, - ACTIONS(2852), 1, - anon_sym_COMMA, - STATE(1181), 1, - aux_sym_argument_list_repeat1, - [56505] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2379), 1, - anon_sym_COLON, - ACTIONS(2854), 1, - anon_sym_RBRACE, - STATE(1477), 1, - sym_format_specifier, - [56518] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2832), 3, + ACTIONS(2488), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [56527] = 3, - ACTIONS(1948), 1, - sym_comment, - ACTIONS(2856), 1, - anon_sym_RBRACE, - ACTIONS(2858), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [56538] = 4, + [56643] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2379), 1, + ACTIONS(2851), 1, + anon_sym_RPAREN, + ACTIONS(2853), 1, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [56656] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2846), 1, anon_sym_COLON, - ACTIONS(2491), 1, - anon_sym_RBRACE, - STATE(1389), 1, - sym_format_specifier, - [56551] = 2, + ACTIONS(2855), 1, + anon_sym_COMMA, + STATE(1284), 1, + aux_sym__parameters_repeat1, + [56669] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2498), 3, - sym__newline, - anon_sym_COMMA, - sym__semicolon, - [56560] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2646), 1, - anon_sym_COMMA, + ACTIONS(2858), 1, + anon_sym_RPAREN, ACTIONS(2860), 1, - anon_sym_RBRACK, - STATE(1193), 1, - aux_sym_type_parameters_repeat1, - [56573] = 4, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [56682] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2350), 1, - anon_sym_RPAREN, ACTIONS(2862), 1, - anon_sym_COMMA, - STATE(1093), 1, - aux_sym__collection_elements_repeat1, - [56586] = 3, - ACTIONS(3), 1, - sym_comment, + anon_sym_RPAREN, ACTIONS(2864), 1, - anon_sym_in, - ACTIONS(2866), 2, - sym__newline, - sym__semicolon, - [56597] = 2, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [56695] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2469), 3, + ACTIONS(2374), 1, + anon_sym_COLON, + ACTIONS(2866), 1, + anon_sym_RBRACE, + STATE(1497), 1, + sym_format_specifier, + [56708] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2846), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [56717] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2517), 3, sym__newline, anon_sym_COMMA, sym__semicolon, - [56606] = 2, + [56726] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2868), 3, sym__newline, anon_sym_COMMA, sym__semicolon, - [56615] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2366), 1, - anon_sym_LBRACK, - ACTIONS(2870), 1, - anon_sym_EQ, - STATE(1408), 1, - sym_type_parameters, - [56628] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2872), 1, - anon_sym_COMMA, - ACTIONS(2875), 1, - anon_sym_RBRACE, - STATE(1292), 1, - aux_sym_dictionary_repeat1, - [56641] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2877), 1, - anon_sym_RPAREN, - ACTIONS(2879), 1, - anon_sym_COMMA, - STATE(1188), 1, - aux_sym_match_class_pattern_repeat2, - [56654] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2881), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [56663] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2481), 1, - anon_sym_EQ, - ACTIONS(2477), 2, - anon_sym_COMMA, - anon_sym_COLON, - [56674] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2728), 1, - anon_sym_COLON, - ACTIONS(2883), 1, - anon_sym_COMMA, - STATE(1206), 1, - aux_sym__parameters_repeat1, - [56687] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(2885), 1, - anon_sym_RPAREN, - STATE(1300), 1, - aux_sym__collection_elements_repeat1, - [56700] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1881), 1, - anon_sym_COMMA, - ACTIONS(2887), 1, - anon_sym_RPAREN, - STATE(1097), 1, - aux_sym__collection_elements_repeat1, - [56713] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2477), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [56722] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2350), 1, - anon_sym_RPAREN, - ACTIONS(2889), 1, - anon_sym_COMMA, - STATE(1093), 1, - aux_sym__collection_elements_repeat1, [56735] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1840), 1, + ACTIONS(1844), 1, anon_sym_COMMA, - ACTIONS(2891), 1, + ACTIONS(2870), 1, anon_sym_in, - STATE(862), 1, + STATE(861), 1, aux_sym__patterns_repeat1, - [56748] = 4, + [56748] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(556), 1, - sym__newline, - ACTIONS(2893), 1, - sym__semicolon, - STATE(1204), 1, - aux_sym__simple_statements_repeat1, - [56761] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2895), 3, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(2872), 3, + anon_sym_LPAREN, anon_sym_COLON, + anon_sym_EQ, + [56757] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2382), 1, + anon_sym_RPAREN, + ACTIONS(2874), 1, + anon_sym_COMMA, + STATE(1099), 1, + aux_sym__collection_elements_repeat1, [56770] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2877), 1, + ACTIONS(923), 1, anon_sym_RPAREN, - ACTIONS(2897), 1, + ACTIONS(2876), 1, anon_sym_COMMA, - STATE(1242), 1, - aux_sym_match_class_pattern_repeat1, - [56783] = 2, + STATE(1115), 1, + aux_sym_with_clause_repeat1, + [56783] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2589), 3, + ACTIONS(1737), 1, + anon_sym_RPAREN, + ACTIONS(2878), 1, + anon_sym_COMMA, + STATE(1302), 1, + aux_sym_match_class_pattern_repeat2, + [56796] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2880), 1, + anon_sym_RPAREN, + ACTIONS(2882), 1, + anon_sym_COMMA, + STATE(1194), 1, + aux_sym_argument_list_repeat1, + [56809] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2382), 1, + anon_sym_RPAREN, + ACTIONS(2884), 1, + anon_sym_COMMA, + STATE(1099), 1, + aux_sym__collection_elements_repeat1, + [56822] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2479), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [56792] = 3, + [56831] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2899), 1, - anon_sym_COLON, - ACTIONS(2901), 1, - anon_sym_DASH_GT, - [56802] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2506), 1, - anon_sym_LPAREN, - STATE(1342), 1, - sym_parameters, - [56812] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2903), 2, + ACTIONS(558), 1, sym__newline, + ACTIONS(2886), 1, sym__semicolon, - [56820] = 2, + STATE(1196), 1, + aux_sym__simple_statements_repeat1, + [56844] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2905), 2, - sym__newline, - sym__semicolon, - [56828] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2907), 1, + ACTIONS(1737), 1, + anon_sym_RPAREN, + ACTIONS(2723), 1, sym_identifier, - STATE(1371), 1, - sym_match_capture_pattern, - [56838] = 2, + STATE(1333), 1, + sym_match_keyword_pattern, + [56857] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2909), 2, - sym__newline, - sym__semicolon, - [56846] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(965), 2, - anon_sym_except, - anon_sym_finally, - [56854] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_DOT, - STATE(1219), 1, - aux_sym_match_value_pattern_repeat1, - [56864] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2911), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [56872] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2913), 2, - sym__newline, - sym__semicolon, - [56880] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2915), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [56888] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2917), 2, - sym__newline, - sym__semicolon, - [56896] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2919), 2, - sym__newline, - sym__semicolon, - [56904] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2506), 1, - anon_sym_LPAREN, - STATE(1350), 1, - sym_parameters, - [56914] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2506), 1, - anon_sym_LPAREN, - STATE(1351), 1, - sym_parameters, - [56924] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 2, - anon_sym_except, - anon_sym_finally, - [56932] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2635), 1, + ACTIONS(1792), 1, anon_sym_RBRACE, - ACTIONS(2921), 1, + ACTIONS(2888), 1, anon_sym_COMMA, - [56942] = 2, + STATE(1202), 1, + aux_sym_match_mapping_pattern_repeat1, + [56870] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2923), 2, + ACTIONS(2890), 1, + anon_sym_RPAREN, + ACTIONS(2892), 1, anon_sym_COMMA, - anon_sym_RBRACE, - [56950] = 2, + STATE(1302), 1, + aux_sym_match_class_pattern_repeat2, + [56883] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1904), 2, - sym__newline, - sym__semicolon, - [56958] = 2, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(2895), 1, + anon_sym_RPAREN, + STATE(1297), 1, + aux_sym__collection_elements_repeat1, + [56896] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2477), 2, + ACTIONS(1897), 1, + anon_sym_COMMA, + ACTIONS(2897), 1, + anon_sym_RPAREN, + STATE(1077), 1, + aux_sym__collection_elements_repeat1, + [56909] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2521), 1, + anon_sym_RPAREN, + ACTIONS(2899), 1, + anon_sym_COMMA, + STATE(1216), 1, + aux_sym__import_list_repeat1, + [56922] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1844), 1, + anon_sym_COMMA, + ACTIONS(2901), 1, + anon_sym_in, + STATE(861), 1, + aux_sym__patterns_repeat1, + [56935] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2903), 3, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [56966] = 2, + [56944] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2358), 2, + ACTIONS(1739), 1, + anon_sym_RPAREN, + ACTIONS(2723), 1, + sym_identifier, + STATE(1333), 1, + sym_match_keyword_pattern, + [56957] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2905), 1, + anon_sym_RPAREN, + ACTIONS(2907), 1, + anon_sym_COMMA, + STATE(1309), 1, + aux_sym_match_class_pattern_repeat1, + [56970] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2442), 2, anon_sym_RPAREN, anon_sym_COMMA, - [56974] = 3, + [56978] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2925), 1, - sym_integer, - ACTIONS(2927), 1, - sym_float, - [56984] = 3, + ACTIONS(2910), 2, + sym__newline, + sym__semicolon, + [56986] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2929), 1, - anon_sym_COMMA, - ACTIONS(2931), 1, - anon_sym_RBRACE, + ACTIONS(992), 2, + anon_sym_except, + anon_sym_finally, [56994] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2073), 1, + ACTIONS(2912), 1, anon_sym_COMMA, - STATE(1077), 1, - aux_sym_expression_list_repeat1, + ACTIONS(2914), 1, + anon_sym_RBRACE, [57004] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2933), 2, + ACTIONS(2916), 2, sym__newline, sym__semicolon, [57012] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2935), 2, + ACTIONS(2918), 2, sym__newline, sym__semicolon, [57020] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2937), 2, + ACTIONS(2920), 2, sym__newline, sym__semicolon, - [57028] = 2, + [57028] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2185), 2, - sym__newline, - sym__semicolon, - [57036] = 2, + ACTIONS(2458), 1, + anon_sym_LPAREN, + STATE(1347), 1, + sym_parameters, + [57038] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2939), 2, - anon_sym_COLON, - anon_sym_DASH_GT, - [57044] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2941), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [57052] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2943), 2, - sym__newline, - sym__semicolon, - [57060] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2641), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [57068] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(935), 2, + ACTIONS(964), 2, anon_sym_except, anon_sym_finally, - [57076] = 2, + [57046] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2945), 2, + ACTIONS(2458), 1, + anon_sym_LPAREN, + STATE(1348), 1, + sym_parameters, + [57056] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2922), 1, + anon_sym_COLON, + ACTIONS(2924), 1, + anon_sym_DASH_GT, + [57066] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2926), 2, anon_sym_COMMA, anon_sym_RBRACK, + [57074] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2458), 1, + anon_sym_LPAREN, + STATE(1353), 1, + sym_parameters, [57084] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2947), 2, - sym__newline, - sym__semicolon, + ACTIONS(2928), 2, + anon_sym_COMMA, + anon_sym_RBRACK, [57092] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2682), 2, + ACTIONS(2372), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [57100] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2930), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [57108] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2932), 2, anon_sym_RPAREN, anon_sym_COMMA, - [57100] = 3, + [57116] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2949), 1, - anon_sym_COLON, - ACTIONS(2951), 1, - anon_sym_DASH_GT, - [57110] = 2, + ACTIONS(2934), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [57124] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(929), 2, - anon_sym_except, - anon_sym_finally, - [57118] = 2, + ACTIONS(2149), 1, + anon_sym_COMMA, + STATE(1078), 1, + aux_sym_expression_list_repeat1, + [57134] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2241), 2, sym__newline, sym__semicolon, - [57126] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2360), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [57134] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2953), 2, - sym__newline, - sym__semicolon, [57142] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2955), 2, - anon_sym_COMMA, - anon_sym_RBRACK, + ACTIONS(1891), 2, + sym__newline, + sym__semicolon, [57150] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2957), 2, + ACTIONS(2567), 2, anon_sym_COMMA, - anon_sym_RBRACK, + anon_sym_COLON, [57158] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2959), 2, - anon_sym_COLON, - anon_sym_DASH_GT, - [57166] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2961), 1, - anon_sym_COLON, - ACTIONS(2963), 1, - anon_sym_DASH_GT, - [57176] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2965), 1, - anon_sym_COLON, - ACTIONS(2967), 1, - anon_sym_DASH_GT, - [57186] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2969), 1, - anon_sym_COMMA, - STATE(1157), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [57196] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2971), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [57204] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2973), 1, - anon_sym_COLON, - ACTIONS(2975), 1, - anon_sym_DASH_GT, - [57214] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2506), 1, - anon_sym_LPAREN, - STATE(1306), 1, - sym_parameters, - [57224] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2977), 1, - anon_sym_COLON, - ACTIONS(2979), 1, - anon_sym_DASH_GT, - [57234] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2676), 2, - sym__newline, - sym__semicolon, - [57242] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2981), 2, - sym__newline, - sym__semicolon, - [57250] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2656), 1, - anon_sym_COMMA, - ACTIONS(2983), 1, + ACTIONS(2905), 2, anon_sym_RPAREN, - [57260] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2985), 1, anon_sym_COMMA, - STATE(1213), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [57270] = 2, + [57166] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2704), 2, + ACTIONS(2890), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [57174] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2936), 2, + anon_sym_COLON, + anon_sym_DASH_GT, + [57182] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2938), 2, + sym__newline, + sym__semicolon, + [57190] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2940), 1, + sym_integer, + ACTIONS(2942), 1, + sym_float, + [57200] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2830), 1, + anon_sym_RBRACE, + ACTIONS(2944), 1, + anon_sym_COMMA, + [57210] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2946), 2, + sym__newline, + sym__semicolon, + [57218] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_RBRACE, + ACTIONS(2948), 1, + anon_sym_COMMA, + [57228] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2950), 2, + sym__newline, + sym__semicolon, + [57236] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1873), 1, + anon_sym_DOT, + STATE(1224), 1, + aux_sym_match_value_pattern_repeat1, + [57246] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2952), 1, + sym_identifier, + STATE(1370), 1, + sym_match_capture_pattern, + [57256] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2954), 2, + sym__newline, + sym__semicolon, + [57264] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2678), 2, anon_sym_COMMA, anon_sym_RBRACE, - [57278] = 3, + [57272] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2987), 1, + ACTIONS(2243), 1, + anon_sym_as, + ACTIONS(2245), 1, + anon_sym_COLON, + [57282] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2247), 1, + anon_sym_as, + ACTIONS(2249), 1, + anon_sym_COLON, + [57292] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2956), 1, + anon_sym_COLON, + ACTIONS(2958), 1, + anon_sym_DASH_GT, + [57302] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2960), 1, + anon_sym_COLON, + ACTIONS(2962), 1, + anon_sym_DASH_GT, + [57312] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2964), 1, + anon_sym_COLON, + ACTIONS(2966), 1, + anon_sym_DASH_GT, + [57322] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2968), 1, + anon_sym_COLON, + ACTIONS(2970), 1, + anon_sym_DASH_GT, + [57332] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2723), 1, + sym_identifier, + STATE(1333), 1, + sym_match_keyword_pattern, + [57342] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2972), 2, + sym__newline, + sym__semicolon, + [57350] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2974), 1, + anon_sym_COLON, + ACTIONS(2976), 1, + anon_sym_DASH_GT, + [57360] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2179), 1, + anon_sym_as, + ACTIONS(2181), 1, + anon_sym_COLON, + [57370] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2978), 1, + anon_sym_COLON, + ACTIONS(2980), 1, + anon_sym_DASH_GT, + [57380] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2982), 2, + sym__newline, + sym__semicolon, + [57388] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2984), 2, + sym__newline, + sym__semicolon, + [57396] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2517), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [57404] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2986), 1, + anon_sym_COLON, + ACTIONS(2988), 1, + anon_sym_DASH_GT, + [57414] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(960), 2, + anon_sym_except, + anon_sym_finally, + [57422] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2990), 1, sym_integer, - ACTIONS(2989), 1, + ACTIONS(2992), 1, sym_float, - [57288] = 2, + [57432] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2994), 1, + anon_sym_COMMA, + STATE(1141), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [57442] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2996), 2, + anon_sym_COLON, + anon_sym_DASH_GT, + [57450] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2998), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [57458] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3000), 2, + sym__newline, + sym__semicolon, + [57466] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3002), 1, + sym_integer, + ACTIONS(3004), 1, + sym_float, + [57476] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2458), 1, + anon_sym_LPAREN, + STATE(1320), 1, + sym_parameters, + [57486] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3006), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [57494] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2664), 2, + sym__newline, + sym__semicolon, + [57502] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3008), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [57510] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3010), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [57518] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(956), 2, + anon_sym_except, + anon_sym_finally, + [57526] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3012), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [57534] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2868), 2, anon_sym_RPAREN, anon_sym_COMMA, - [57296] = 3, + [57542] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1893), 1, + anon_sym_COMMA, + STATE(986), 1, + aux_sym_expression_list_repeat1, + [57552] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2630), 1, + anon_sym_COMMA, + ACTIONS(3014), 1, + anon_sym_RPAREN, + [57562] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2239), 2, + sym__newline, + sym__semicolon, + [57570] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3016), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [57578] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2261), 1, + anon_sym_as, + ACTIONS(2263), 1, + anon_sym_COLON, + [57588] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2189), 2, + sym__newline, + sym__semicolon, + [57596] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3018), 2, + sym__newline, + sym__semicolon, + [57604] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3020), 1, + anon_sym_COMMA, + STATE(1234), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [57614] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(986), 2, + anon_sym_except, + anon_sym_finally, + [57622] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3022), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [57630] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3024), 1, + anon_sym_COLON, + [57637] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3026), 1, + anon_sym_RPAREN, + [57644] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3028), 1, + anon_sym_RBRACE, + [57651] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(1792), 1, anon_sym_RBRACE, - ACTIONS(2991), 1, - anon_sym_COMMA, - [57306] = 3, + [57658] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1906), 1, - anon_sym_COMMA, - STATE(989), 1, - aux_sym_expression_list_repeat1, - [57316] = 2, + ACTIONS(3030), 1, + anon_sym_RBRACE, + [57665] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(955), 2, - anon_sym_except, - anon_sym_finally, - [57324] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2993), 1, - anon_sym_COLON, - ACTIONS(2995), 1, - anon_sym_DASH_GT, - [57334] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2997), 2, - anon_sym_COMMA, + ACTIONS(3032), 1, anon_sym_RBRACK, - [57342] = 3, + [57672] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2999), 1, - sym_integer, - ACTIONS(3001), 1, - sym_float, - [57352] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2610), 1, - sym_identifier, - STATE(1341), 1, - sym_match_keyword_pattern, - [57362] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3003), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [57370] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3005), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [57378] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3007), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [57386] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2469), 2, + ACTIONS(3034), 1, anon_sym_RPAREN, - anon_sym_COMMA, - [57394] = 2, + [57679] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2247), 2, - sym__newline, - sym__semicolon, - [57402] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3009), 1, - anon_sym_COLON, - ACTIONS(3011), 1, - anon_sym_DASH_GT, - [57412] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3013), 1, - anon_sym_COLON, - [57419] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2296), 1, - anon_sym_COLON, - [57426] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3015), 1, - anon_sym_RBRACE, - [57433] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3017), 1, - anon_sym_RBRACE, - [57440] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3019), 1, - anon_sym_RBRACK, - [57447] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3021), 1, - anon_sym_RBRACE, - [57454] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3023), 1, - anon_sym_COLON, - [57461] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1784), 1, - anon_sym_RBRACE, - [57468] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3025), 1, - sym_identifier, - [57475] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3027), 1, - anon_sym_in, - [57482] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3029), 1, - anon_sym_RPAREN, - [57489] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3031), 1, - anon_sym_RBRACK, - [57496] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2750), 1, - anon_sym_RBRACE, - [57503] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3033), 1, - anon_sym_RPAREN, - [57510] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3035), 1, - anon_sym_RBRACE, - [57517] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3037), 1, - anon_sym_RBRACE, - [57524] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3039), 1, - sym_identifier, - [57531] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3041), 1, - sym_identifier, - [57538] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3043), 1, - anon_sym_RPAREN, - [57545] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3045), 1, - anon_sym_RPAREN, - [57552] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3047), 1, - anon_sym_in, - [57559] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3049), 1, - sym_identifier, - [57566] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3051), 1, - sym_identifier, - [57573] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2726), 1, - anon_sym_RBRACK, - [57580] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3053), 1, - anon_sym_RPAREN, - [57587] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3055), 1, - anon_sym_COLON, - [57594] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3057), 1, - anon_sym_RPAREN, - [57601] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3059), 1, - anon_sym_RBRACE, - [57608] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3061), 1, - anon_sym_RBRACE, - [57615] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3063), 1, - anon_sym_RBRACE, - [57622] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3065), 1, - anon_sym_RBRACK, - [57629] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3067), 1, + ACTIONS(3036), 1, anon_sym_EQ, - [57636] = 2, + [57686] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3069), 1, - anon_sym_RPAREN, - [57643] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3071), 1, - anon_sym_RPAREN, - [57650] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2708), 1, - anon_sym_in, - [57657] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3073), 1, - anon_sym_COLON, - [57664] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2266), 1, - anon_sym_COLON, - [57671] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3075), 1, - anon_sym_import, - [57678] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3077), 1, - sym_identifier, - [57685] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3079), 1, - anon_sym_RPAREN, - [57692] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3081), 1, - anon_sym_COLON, - [57699] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3083), 1, - anon_sym_in, - [57706] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3085), 1, - anon_sym_RPAREN, - [57713] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3087), 1, - anon_sym_RBRACE, - [57720] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3089), 1, - anon_sym_import, - [57727] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3091), 1, + ACTIONS(3038), 1, anon_sym_RBRACK, - [57734] = 2, + [57693] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3093), 1, - anon_sym_RPAREN, - [57741] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3095), 1, - anon_sym_COLON, - [57748] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2791), 1, - anon_sym_RBRACK, - [57755] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3097), 1, - anon_sym_COLON, - [57762] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3099), 1, - anon_sym_COLON, - [57769] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2530), 1, + ACTIONS(3040), 1, anon_sym_RBRACE, - [57776] = 2, + [57700] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3101), 1, + ACTIONS(3042), 1, + anon_sym_COLON, + [57707] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3044), 1, + anon_sym_RBRACE, + [57714] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3046), 1, + anon_sym_COLON, + [57721] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3048), 1, sym_identifier, - [57783] = 2, + [57728] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3103), 1, - anon_sym_COLON, - [57790] = 2, + ACTIONS(3050), 1, + anon_sym_in, + [57735] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3105), 1, + ACTIONS(3052), 1, + anon_sym_RPAREN, + [57742] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3054), 1, + anon_sym_RBRACK, + [57749] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3056), 1, anon_sym_COLON, - [57797] = 2, + [57756] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3058), 1, + anon_sym_RBRACE, + [57763] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3060), 1, + anon_sym_RBRACE, + [57770] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3062), 1, + anon_sym_RPAREN, + [57777] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3064), 1, + anon_sym_COLON, + [57784] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2682), 1, + anon_sym_RBRACK, + [57791] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3066), 1, + anon_sym_RBRACE, + [57798] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3068), 1, + anon_sym_RPAREN, + [57805] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2866), 1, + anon_sym_RBRACE, + [57812] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3070), 1, + sym_identifier, + [57819] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3072), 1, + sym_identifier, + [57826] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3074), 1, + anon_sym_COLON, + [57833] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3076), 1, + sym_identifier, + [57840] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3078), 1, + anon_sym_COLON, + [57847] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3080), 1, + anon_sym_RPAREN, + [57854] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3082), 1, + anon_sym_in, + [57861] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3084), 1, + sym_identifier, + [57868] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3086), 1, + anon_sym_LPAREN, + [57875] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3088), 1, + anon_sym_import, + [57882] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3090), 1, + sym_identifier, + [57889] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2745), 1, + anon_sym_in, + [57896] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3092), 1, + anon_sym_COLON, + [57903] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3094), 1, + anon_sym_in, + [57910] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3096), 1, + anon_sym_COLON, + [57917] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3098), 1, + anon_sym_RPAREN, + [57924] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3100), 1, + anon_sym_import, + [57931] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2844), 1, + anon_sym_in, + [57938] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(891), 1, + anon_sym_STAR, + [57945] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3102), 1, + anon_sym_COLON, + [57952] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3104), 1, + anon_sym_COLON, + [57959] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3106), 1, + anon_sym_COLON, + [57966] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3108), 1, + anon_sym_COLON, + [57973] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3110), 1, + anon_sym_RBRACK, + [57980] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3112), 1, + anon_sym_COLON, + [57987] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3114), 1, + anon_sym_RPAREN, + [57994] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2311), 1, + anon_sym_COLON, + [58001] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3116), 1, + anon_sym_RBRACK, + [58008] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3118), 1, + anon_sym_COLON, + [58015] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3120), 1, + anon_sym_COLON, + [58022] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3122), 1, + anon_sym_RBRACK, + [58029] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3124), 1, + anon_sym_RBRACE, + [58036] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2753), 1, + anon_sym_in, + [58043] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3126), 1, + anon_sym_COLON, + [58050] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3128), 1, + anon_sym_RBRACE, + [58057] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2278), 1, + anon_sym_COLON, + [58064] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3130), 1, + anon_sym_RPAREN, + [58071] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3132), 1, + anon_sym_COLON, + [58078] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3134), 1, + anon_sym_COLON, + [58085] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3136), 1, + anon_sym_COLON, + [58092] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3138), 1, + anon_sym_COLON, + [58099] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3140), 1, + anon_sym_COLON, + [58106] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2321), 1, + anon_sym_COLON, + [58113] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2767), 1, + anon_sym_RBRACK, + [58120] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3142), 1, + anon_sym_RBRACE, + [58127] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3144), 1, + anon_sym_RBRACE, + [58134] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3146), 1, + anon_sym_RBRACE, + [58141] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2786), 1, + anon_sym_RBRACE, + [58148] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3148), 1, + anon_sym_COLON, + [58155] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2613), 1, + anon_sym_RBRACE, + [58162] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3150), 1, + anon_sym_COLON, + [58169] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3152), 1, + anon_sym_RBRACE, + [58176] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3154), 1, + anon_sym_RBRACE, + [58183] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3156), 1, + anon_sym_COLON, + [58190] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3158), 1, + anon_sym_COLON, + [58197] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3160), 1, + anon_sym_COLON, + [58204] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3162), 1, + anon_sym_RBRACK, + [58211] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3164), 1, + anon_sym_RPAREN, + [58218] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2808), 1, anon_sym_RBRACK, - [57804] = 2, + [58225] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3107), 1, - anon_sym_COLON, - [57811] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3109), 1, - anon_sym_COLON, - [57818] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3111), 1, - anon_sym_COLON, - [57825] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2830), 1, - anon_sym_in, - [57832] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3113), 1, - anon_sym_COLON, - [57839] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3115), 1, - anon_sym_COLON, - [57846] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2824), 1, - anon_sym_in, - [57853] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3117), 1, - anon_sym_RBRACK, - [57860] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3119), 1, - anon_sym_COLON, - [57867] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3121), 1, - anon_sym_COLON, - [57874] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3123), 1, - anon_sym_COLON, - [57881] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2854), 1, + ACTIONS(2532), 1, anon_sym_RBRACE, - [57888] = 2, + [58232] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3125), 1, + ACTIONS(3166), 1, anon_sym_COLON, - [57895] = 2, + [58239] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3127), 1, + ACTIONS(3168), 1, anon_sym_COLON, - [57902] = 2, + [58246] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2298), 1, + ACTIONS(3170), 1, + anon_sym_RPAREN, + [58253] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3172), 1, anon_sym_COLON, - [57909] = 2, + [58260] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3129), 1, - anon_sym_LPAREN, - [57916] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3131), 1, - anon_sym_COLON, - [57923] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3133), 1, - anon_sym_RBRACE, - [57930] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3135), 1, - anon_sym_RBRACK, - [57937] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3137), 1, - anon_sym_COLON, - [57944] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3139), 1, - anon_sym_COLON, - [57951] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3141), 1, - anon_sym_COLON, - [57958] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3143), 1, - anon_sym_RBRACK, - [57965] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3145), 1, - anon_sym_COLON, - [57972] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3147), 1, - anon_sym_COLON, - [57979] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3149), 1, - anon_sym_COLON, - [57986] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3151), 1, - anon_sym_RBRACE, - [57993] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3153), 1, - anon_sym_COLON, - [58000] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3155), 1, - anon_sym_COLON, - [58007] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3157), 1, - anon_sym_RBRACE, - [58014] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(925), 1, - anon_sym_STAR, - [58021] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2101), 1, + ACTIONS(2129), 1, anon_sym_EQ, - [58028] = 2, + [58267] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3159), 1, - anon_sym_RBRACE, - [58035] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3161), 1, - sym_identifier, - [58042] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3163), 1, - sym_identifier, - [58049] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3165), 1, - sym_identifier, - [58056] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3167), 1, - anon_sym_RPAREN, - [58063] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3169), 1, - anon_sym_COLON, - [58070] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3171), 1, - anon_sym_COLON, - [58077] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3173), 1, - anon_sym_RPAREN, - [58084] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3175), 1, - anon_sym_for, - [58091] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3177), 1, - sym_identifier, - [58098] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3179), 1, - anon_sym_COLON, - [58105] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3181), 1, - anon_sym_COLON, - [58112] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3183), 1, - anon_sym_RBRACE, - [58119] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3185), 1, - anon_sym_import, - [58126] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2891), 1, + ACTIONS(2901), 1, anon_sym_in, - [58133] = 2, + [58274] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3187), 1, + ACTIONS(3174), 1, + sym_identifier, + [58281] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3176), 1, + anon_sym_COLON, + [58288] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3178), 1, + anon_sym_COLON, + [58295] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3180), 1, + anon_sym_RPAREN, + [58302] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3182), 1, + sym_identifier, + [58309] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3184), 1, + sym_identifier, + [58316] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3186), 1, + anon_sym_in, + [58323] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3188), 1, + sym_identifier, + [58330] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_def, + [58337] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3190), 1, + sym_identifier, + [58344] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3192), 1, + sym_identifier, + [58351] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3194), 1, ts_builtin_sym_end, - [58140] = 2, + [58358] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3189), 1, + ACTIONS(3196), 1, + anon_sym_import, + [58365] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2346), 1, + anon_sym_COLON, + [58372] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3198), 1, sym_identifier, - [58147] = 2, + [58379] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2931), 1, - anon_sym_RBRACE, - [58154] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3191), 1, + ACTIONS(3200), 1, sym_identifier, - [58161] = 2, + [58386] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3193), 1, + ACTIONS(3202), 1, sym_identifier, - [58168] = 2, + [58393] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3195), 1, + ACTIONS(3204), 1, sym_identifier, - [58175] = 2, + [58400] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3197), 1, - sym_identifier, - [58182] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(921), 1, + ACTIONS(903), 1, anon_sym_STAR, - [58189] = 2, + [58407] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3199), 1, + ACTIONS(3206), 1, anon_sym_COLON, - [58196] = 2, + [58414] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3201), 1, + ACTIONS(3208), 1, anon_sym_RBRACE, - [58203] = 2, + [58421] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3203), 1, + ACTIONS(3210), 1, + anon_sym_for, + [58428] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3212), 1, + anon_sym_RPAREN, + [58435] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3214), 1, sym_identifier, - [58210] = 2, + [58442] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3205), 1, + ACTIONS(3216), 1, + sym_identifier, + [58449] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3218), 1, + sym_identifier, + [58456] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3220), 1, + anon_sym_COLON, + [58463] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2842), 1, anon_sym_in, - [58217] = 2, + [58470] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(986), 1, + ACTIONS(972), 1, anon_sym_def, - [58224] = 2, + [58477] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3207), 1, - sym_identifier, - [58231] = 2, + ACTIONS(3222), 1, + anon_sym_COLON, + [58484] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3209), 1, - sym_identifier, - [58238] = 2, + ACTIONS(2870), 1, + anon_sym_in, + [58491] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2491), 1, + ACTIONS(3224), 1, + anon_sym_COLON, + [58498] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2914), 1, anon_sym_RBRACE, - [58245] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2623), 1, - anon_sym_in, - [58252] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_def, - [58259] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3211), 1, - anon_sym_COLON, - [58266] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2621), 1, - anon_sym_in, - [58273] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3213), 1, - anon_sym_COLON, - [58280] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2334), 1, - anon_sym_COLON, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(152)] = 0, [SMALL_STATE(153)] = 117, [SMALL_STATE(154)] = 241, - [SMALL_STATE(155)] = 351, - [SMALL_STATE(156)] = 475, - [SMALL_STATE(157)] = 597, - [SMALL_STATE(158)] = 723, - [SMALL_STATE(159)] = 833, - [SMALL_STATE(160)] = 955, + [SMALL_STATE(155)] = 367, + [SMALL_STATE(156)] = 489, + [SMALL_STATE(157)] = 613, + [SMALL_STATE(158)] = 735, + [SMALL_STATE(159)] = 845, + [SMALL_STATE(160)] = 967, [SMALL_STATE(161)] = 1077, - [SMALL_STATE(162)] = 1188, + [SMALL_STATE(162)] = 1198, [SMALL_STATE(163)] = 1309, [SMALL_STATE(164)] = 1420, [SMALL_STATE(165)] = 1541, @@ -71183,45 +71364,45 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(167)] = 1773, [SMALL_STATE(168)] = 1881, [SMALL_STATE(169)] = 1993, - [SMALL_STATE(170)] = 2105, - [SMALL_STATE(171)] = 2213, + [SMALL_STATE(170)] = 2107, + [SMALL_STATE(171)] = 2215, [SMALL_STATE(172)] = 2327, - [SMALL_STATE(173)] = 2439, - [SMALL_STATE(174)] = 2551, + [SMALL_STATE(173)] = 2437, + [SMALL_STATE(174)] = 2547, [SMALL_STATE(175)] = 2659, - [SMALL_STATE(176)] = 2769, + [SMALL_STATE(176)] = 2771, [SMALL_STATE(177)] = 2879, [SMALL_STATE(178)] = 2991, [SMALL_STATE(179)] = 3103, [SMALL_STATE(180)] = 3212, [SMALL_STATE(181)] = 3321, - [SMALL_STATE(182)] = 3430, - [SMALL_STATE(183)] = 3541, - [SMALL_STATE(184)] = 3650, - [SMALL_STATE(185)] = 3759, - [SMALL_STATE(186)] = 3868, - [SMALL_STATE(187)] = 3977, - [SMALL_STATE(188)] = 4086, - [SMALL_STATE(189)] = 4191, - [SMALL_STATE(190)] = 4300, - [SMALL_STATE(191)] = 4409, - [SMALL_STATE(192)] = 4520, - [SMALL_STATE(193)] = 4629, - [SMALL_STATE(194)] = 4742, - [SMALL_STATE(195)] = 4847, - [SMALL_STATE(196)] = 4956, - [SMALL_STATE(197)] = 5067, - [SMALL_STATE(198)] = 5176, - [SMALL_STATE(199)] = 5285, - [SMALL_STATE(200)] = 5394, - [SMALL_STATE(201)] = 5499, - [SMALL_STATE(202)] = 5608, - [SMALL_STATE(203)] = 5717, - [SMALL_STATE(204)] = 5826, - [SMALL_STATE(205)] = 5935, - [SMALL_STATE(206)] = 6044, - [SMALL_STATE(207)] = 6155, - [SMALL_STATE(208)] = 6268, + [SMALL_STATE(182)] = 3426, + [SMALL_STATE(183)] = 3535, + [SMALL_STATE(184)] = 3644, + [SMALL_STATE(185)] = 3753, + [SMALL_STATE(186)] = 3862, + [SMALL_STATE(187)] = 3971, + [SMALL_STATE(188)] = 4080, + [SMALL_STATE(189)] = 4189, + [SMALL_STATE(190)] = 4298, + [SMALL_STATE(191)] = 4407, + [SMALL_STATE(192)] = 4518, + [SMALL_STATE(193)] = 4623, + [SMALL_STATE(194)] = 4728, + [SMALL_STATE(195)] = 4837, + [SMALL_STATE(196)] = 4946, + [SMALL_STATE(197)] = 5051, + [SMALL_STATE(198)] = 5160, + [SMALL_STATE(199)] = 5269, + [SMALL_STATE(200)] = 5382, + [SMALL_STATE(201)] = 5491, + [SMALL_STATE(202)] = 5600, + [SMALL_STATE(203)] = 5711, + [SMALL_STATE(204)] = 5820, + [SMALL_STATE(205)] = 5929, + [SMALL_STATE(206)] = 6038, + [SMALL_STATE(207)] = 6149, + [SMALL_STATE(208)] = 6260, [SMALL_STATE(209)] = 6373, [SMALL_STATE(210)] = 6482, [SMALL_STATE(211)] = 6591, @@ -71230,17 +71411,17 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(214)] = 6912, [SMALL_STATE(215)] = 7018, [SMALL_STATE(216)] = 7124, - [SMALL_STATE(217)] = 7230, - [SMALL_STATE(218)] = 7336, + [SMALL_STATE(217)] = 7218, + [SMALL_STATE(218)] = 7324, [SMALL_STATE(219)] = 7430, [SMALL_STATE(220)] = 7536, [SMALL_STATE(221)] = 7642, [SMALL_STATE(222)] = 7747, - [SMALL_STATE(223)] = 7850, - [SMALL_STATE(224)] = 7955, + [SMALL_STATE(223)] = 7852, + [SMALL_STATE(224)] = 7957, [SMALL_STATE(225)] = 8060, [SMALL_STATE(226)] = 8165, - [SMALL_STATE(227)] = 8270, + [SMALL_STATE(227)] = 8268, [SMALL_STATE(228)] = 8373, [SMALL_STATE(229)] = 8475, [SMALL_STATE(230)] = 8577, @@ -71253,1268 +71434,1276 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(237)] = 9291, [SMALL_STATE(238)] = 9393, [SMALL_STATE(239)] = 9495, - [SMALL_STATE(240)] = 9596, + [SMALL_STATE(240)] = 9568, [SMALL_STATE(241)] = 9669, [SMALL_STATE(242)] = 9770, - [SMALL_STATE(243)] = 9843, - [SMALL_STATE(244)] = 9904, - [SMALL_STATE(245)] = 9977, - [SMALL_STATE(246)] = 10078, - [SMALL_STATE(247)] = 10139, - [SMALL_STATE(248)] = 10240, - [SMALL_STATE(249)] = 10313, - [SMALL_STATE(250)] = 10412, - [SMALL_STATE(251)] = 10513, - [SMALL_STATE(252)] = 10614, - [SMALL_STATE(253)] = 10715, - [SMALL_STATE(254)] = 10816, - [SMALL_STATE(255)] = 10915, - [SMALL_STATE(256)] = 11016, - [SMALL_STATE(257)] = 11089, - [SMALL_STATE(258)] = 11190, + [SMALL_STATE(243)] = 9871, + [SMALL_STATE(244)] = 9970, + [SMALL_STATE(245)] = 10031, + [SMALL_STATE(246)] = 10092, + [SMALL_STATE(247)] = 10191, + [SMALL_STATE(248)] = 10292, + [SMALL_STATE(249)] = 10393, + [SMALL_STATE(250)] = 10494, + [SMALL_STATE(251)] = 10567, + [SMALL_STATE(252)] = 10668, + [SMALL_STATE(253)] = 10741, + [SMALL_STATE(254)] = 10840, + [SMALL_STATE(255)] = 10941, + [SMALL_STATE(256)] = 11014, + [SMALL_STATE(257)] = 11115, + [SMALL_STATE(258)] = 11188, [SMALL_STATE(259)] = 11289, [SMALL_STATE(260)] = 11362, [SMALL_STATE(261)] = 11435, - [SMALL_STATE(262)] = 11536, + [SMALL_STATE(262)] = 11508, [SMALL_STATE(263)] = 11609, - [SMALL_STATE(264)] = 11705, - [SMALL_STATE(265)] = 11801, - [SMALL_STATE(266)] = 11897, - [SMALL_STATE(267)] = 11995, - [SMALL_STATE(268)] = 12091, - [SMALL_STATE(269)] = 12189, - [SMALL_STATE(270)] = 12285, - [SMALL_STATE(271)] = 12381, - [SMALL_STATE(272)] = 12477, - [SMALL_STATE(273)] = 12573, - [SMALL_STATE(274)] = 12671, - [SMALL_STATE(275)] = 12769, - [SMALL_STATE(276)] = 12867, - [SMALL_STATE(277)] = 12963, - [SMALL_STATE(278)] = 13061, - [SMALL_STATE(279)] = 13157, - [SMALL_STATE(280)] = 13253, - [SMALL_STATE(281)] = 13351, - [SMALL_STATE(282)] = 13447, - [SMALL_STATE(283)] = 13545, - [SMALL_STATE(284)] = 13643, - [SMALL_STATE(285)] = 13739, - [SMALL_STATE(286)] = 13798, - [SMALL_STATE(287)] = 13857, - [SMALL_STATE(288)] = 13930, - [SMALL_STATE(289)] = 13999, - [SMALL_STATE(290)] = 14094, - [SMALL_STATE(291)] = 14153, - [SMALL_STATE(292)] = 14212, - [SMALL_STATE(293)] = 14281, - [SMALL_STATE(294)] = 14350, - [SMALL_STATE(295)] = 14409, - [SMALL_STATE(296)] = 14468, - [SMALL_STATE(297)] = 14537, - [SMALL_STATE(298)] = 14606, - [SMALL_STATE(299)] = 14669, - [SMALL_STATE(300)] = 14728, - [SMALL_STATE(301)] = 14801, - [SMALL_STATE(302)] = 14864, - [SMALL_STATE(303)] = 14923, - [SMALL_STATE(304)] = 14986, - [SMALL_STATE(305)] = 15081, - [SMALL_STATE(306)] = 15144, - [SMALL_STATE(307)] = 15203, - [SMALL_STATE(308)] = 15272, - [SMALL_STATE(309)] = 15341, - [SMALL_STATE(310)] = 15410, - [SMALL_STATE(311)] = 15469, - [SMALL_STATE(312)] = 15564, - [SMALL_STATE(313)] = 15656, - [SMALL_STATE(314)] = 15748, - [SMALL_STATE(315)] = 15840, - [SMALL_STATE(316)] = 15932, - [SMALL_STATE(317)] = 16024, - [SMALL_STATE(318)] = 16116, - [SMALL_STATE(319)] = 16208, - [SMALL_STATE(320)] = 16300, - [SMALL_STATE(321)] = 16392, - [SMALL_STATE(322)] = 16484, - [SMALL_STATE(323)] = 16576, - [SMALL_STATE(324)] = 16668, - [SMALL_STATE(325)] = 16760, - [SMALL_STATE(326)] = 16852, - [SMALL_STATE(327)] = 16944, - [SMALL_STATE(328)] = 17036, - [SMALL_STATE(329)] = 17128, - [SMALL_STATE(330)] = 17220, - [SMALL_STATE(331)] = 17312, - [SMALL_STATE(332)] = 17376, - [SMALL_STATE(333)] = 17468, - [SMALL_STATE(334)] = 17560, - [SMALL_STATE(335)] = 17652, - [SMALL_STATE(336)] = 17744, - [SMALL_STATE(337)] = 17836, - [SMALL_STATE(338)] = 17928, - [SMALL_STATE(339)] = 18020, - [SMALL_STATE(340)] = 18112, - [SMALL_STATE(341)] = 18204, - [SMALL_STATE(342)] = 18296, - [SMALL_STATE(343)] = 18388, - [SMALL_STATE(344)] = 18480, - [SMALL_STATE(345)] = 18572, - [SMALL_STATE(346)] = 18664, - [SMALL_STATE(347)] = 18758, - [SMALL_STATE(348)] = 18850, - [SMALL_STATE(349)] = 18942, - [SMALL_STATE(350)] = 19034, - [SMALL_STATE(351)] = 19126, - [SMALL_STATE(352)] = 19218, - [SMALL_STATE(353)] = 19310, - [SMALL_STATE(354)] = 19380, - [SMALL_STATE(355)] = 19472, - [SMALL_STATE(356)] = 19564, - [SMALL_STATE(357)] = 19656, - [SMALL_STATE(358)] = 19748, - [SMALL_STATE(359)] = 19840, - [SMALL_STATE(360)] = 19932, - [SMALL_STATE(361)] = 20024, - [SMALL_STATE(362)] = 20116, - [SMALL_STATE(363)] = 20208, - [SMALL_STATE(364)] = 20300, - [SMALL_STATE(365)] = 20392, - [SMALL_STATE(366)] = 20484, - [SMALL_STATE(367)] = 20576, - [SMALL_STATE(368)] = 20668, - [SMALL_STATE(369)] = 20760, - [SMALL_STATE(370)] = 20852, - [SMALL_STATE(371)] = 20944, - [SMALL_STATE(372)] = 21036, - [SMALL_STATE(373)] = 21128, - [SMALL_STATE(374)] = 21220, - [SMALL_STATE(375)] = 21312, - [SMALL_STATE(376)] = 21404, - [SMALL_STATE(377)] = 21496, - [SMALL_STATE(378)] = 21588, - [SMALL_STATE(379)] = 21680, - [SMALL_STATE(380)] = 21772, - [SMALL_STATE(381)] = 21864, - [SMALL_STATE(382)] = 21956, - [SMALL_STATE(383)] = 22048, - [SMALL_STATE(384)] = 22140, - [SMALL_STATE(385)] = 22204, - [SMALL_STATE(386)] = 22296, - [SMALL_STATE(387)] = 22388, - [SMALL_STATE(388)] = 22480, - [SMALL_STATE(389)] = 22572, - [SMALL_STATE(390)] = 22629, - [SMALL_STATE(391)] = 22690, - [SMALL_STATE(392)] = 22747, - [SMALL_STATE(393)] = 22804, - [SMALL_STATE(394)] = 22861, - [SMALL_STATE(395)] = 22918, - [SMALL_STATE(396)] = 22975, - [SMALL_STATE(397)] = 23032, - [SMALL_STATE(398)] = 23093, - [SMALL_STATE(399)] = 23154, - [SMALL_STATE(400)] = 23211, - [SMALL_STATE(401)] = 23268, - [SMALL_STATE(402)] = 23325, - [SMALL_STATE(403)] = 23382, - [SMALL_STATE(404)] = 23439, - [SMALL_STATE(405)] = 23496, - [SMALL_STATE(406)] = 23553, - [SMALL_STATE(407)] = 23610, - [SMALL_STATE(408)] = 23671, - [SMALL_STATE(409)] = 23728, - [SMALL_STATE(410)] = 23795, - [SMALL_STATE(411)] = 23852, - [SMALL_STATE(412)] = 23909, - [SMALL_STATE(413)] = 23966, - [SMALL_STATE(414)] = 24023, - [SMALL_STATE(415)] = 24087, - [SMALL_STATE(416)] = 24147, - [SMALL_STATE(417)] = 24203, - [SMALL_STATE(418)] = 24259, - [SMALL_STATE(419)] = 24319, - [SMALL_STATE(420)] = 24379, - [SMALL_STATE(421)] = 24439, - [SMALL_STATE(422)] = 24533, - [SMALL_STATE(423)] = 24593, - [SMALL_STATE(424)] = 24653, - [SMALL_STATE(425)] = 24713, - [SMALL_STATE(426)] = 24773, - [SMALL_STATE(427)] = 24829, - [SMALL_STATE(428)] = 24889, - [SMALL_STATE(429)] = 24949, - [SMALL_STATE(430)] = 25005, - [SMALL_STATE(431)] = 25065, - [SMALL_STATE(432)] = 25121, - [SMALL_STATE(433)] = 25181, - [SMALL_STATE(434)] = 25237, - [SMALL_STATE(435)] = 25297, - [SMALL_STATE(436)] = 25361, - [SMALL_STATE(437)] = 25417, - [SMALL_STATE(438)] = 25481, - [SMALL_STATE(439)] = 25545, - [SMALL_STATE(440)] = 25637, - [SMALL_STATE(441)] = 25697, - [SMALL_STATE(442)] = 25753, - [SMALL_STATE(443)] = 25813, - [SMALL_STATE(444)] = 25905, - [SMALL_STATE(445)] = 25965, - [SMALL_STATE(446)] = 26056, - [SMALL_STATE(447)] = 26111, - [SMALL_STATE(448)] = 26202, - [SMALL_STATE(449)] = 26293, - [SMALL_STATE(450)] = 26348, - [SMALL_STATE(451)] = 26403, - [SMALL_STATE(452)] = 26458, - [SMALL_STATE(453)] = 26513, - [SMALL_STATE(454)] = 26604, - [SMALL_STATE(455)] = 26665, - [SMALL_STATE(456)] = 26726, - [SMALL_STATE(457)] = 26787, - [SMALL_STATE(458)] = 26842, - [SMALL_STATE(459)] = 26933, - [SMALL_STATE(460)] = 26988, - [SMALL_STATE(461)] = 27043, - [SMALL_STATE(462)] = 27098, - [SMALL_STATE(463)] = 27153, - [SMALL_STATE(464)] = 27214, - [SMALL_STATE(465)] = 27305, - [SMALL_STATE(466)] = 27360, - [SMALL_STATE(467)] = 27415, - [SMALL_STATE(468)] = 27469, - [SMALL_STATE(469)] = 27523, - [SMALL_STATE(470)] = 27577, - [SMALL_STATE(471)] = 27631, - [SMALL_STATE(472)] = 27685, - [SMALL_STATE(473)] = 27739, - [SMALL_STATE(474)] = 27793, - [SMALL_STATE(475)] = 27847, - [SMALL_STATE(476)] = 27901, - [SMALL_STATE(477)] = 27955, - [SMALL_STATE(478)] = 28009, - [SMALL_STATE(479)] = 28063, - [SMALL_STATE(480)] = 28117, - [SMALL_STATE(481)] = 28171, - [SMALL_STATE(482)] = 28225, - [SMALL_STATE(483)] = 28279, - [SMALL_STATE(484)] = 28333, - [SMALL_STATE(485)] = 28387, - [SMALL_STATE(486)] = 28441, - [SMALL_STATE(487)] = 28495, - [SMALL_STATE(488)] = 28549, - [SMALL_STATE(489)] = 28603, - [SMALL_STATE(490)] = 28657, - [SMALL_STATE(491)] = 28711, - [SMALL_STATE(492)] = 28765, - [SMALL_STATE(493)] = 28819, - [SMALL_STATE(494)] = 28873, - [SMALL_STATE(495)] = 28927, - [SMALL_STATE(496)] = 28981, - [SMALL_STATE(497)] = 29035, - [SMALL_STATE(498)] = 29089, - [SMALL_STATE(499)] = 29143, - [SMALL_STATE(500)] = 29197, - [SMALL_STATE(501)] = 29285, - [SMALL_STATE(502)] = 29339, - [SMALL_STATE(503)] = 29393, - [SMALL_STATE(504)] = 29447, - [SMALL_STATE(505)] = 29501, - [SMALL_STATE(506)] = 29555, - [SMALL_STATE(507)] = 29609, - [SMALL_STATE(508)] = 29663, - [SMALL_STATE(509)] = 29717, - [SMALL_STATE(510)] = 29771, - [SMALL_STATE(511)] = 29825, - [SMALL_STATE(512)] = 29879, - [SMALL_STATE(513)] = 29933, - [SMALL_STATE(514)] = 29987, - [SMALL_STATE(515)] = 30041, - [SMALL_STATE(516)] = 30095, - [SMALL_STATE(517)] = 30149, - [SMALL_STATE(518)] = 30203, - [SMALL_STATE(519)] = 30257, - [SMALL_STATE(520)] = 30311, - [SMALL_STATE(521)] = 30365, - [SMALL_STATE(522)] = 30419, - [SMALL_STATE(523)] = 30473, - [SMALL_STATE(524)] = 30527, - [SMALL_STATE(525)] = 30581, - [SMALL_STATE(526)] = 30635, - [SMALL_STATE(527)] = 30689, - [SMALL_STATE(528)] = 30743, - [SMALL_STATE(529)] = 30797, - [SMALL_STATE(530)] = 30851, - [SMALL_STATE(531)] = 30905, - [SMALL_STATE(532)] = 30959, - [SMALL_STATE(533)] = 31013, - [SMALL_STATE(534)] = 31067, - [SMALL_STATE(535)] = 31121, - [SMALL_STATE(536)] = 31175, - [SMALL_STATE(537)] = 31229, - [SMALL_STATE(538)] = 31283, - [SMALL_STATE(539)] = 31337, - [SMALL_STATE(540)] = 31391, - [SMALL_STATE(541)] = 31445, - [SMALL_STATE(542)] = 31499, - [SMALL_STATE(543)] = 31553, - [SMALL_STATE(544)] = 31607, - [SMALL_STATE(545)] = 31661, - [SMALL_STATE(546)] = 31715, - [SMALL_STATE(547)] = 31769, - [SMALL_STATE(548)] = 31823, - [SMALL_STATE(549)] = 31911, - [SMALL_STATE(550)] = 31965, - [SMALL_STATE(551)] = 32019, - [SMALL_STATE(552)] = 32073, - [SMALL_STATE(553)] = 32127, - [SMALL_STATE(554)] = 32181, - [SMALL_STATE(555)] = 32235, - [SMALL_STATE(556)] = 32289, - [SMALL_STATE(557)] = 32343, - [SMALL_STATE(558)] = 32397, - [SMALL_STATE(559)] = 32451, - [SMALL_STATE(560)] = 32505, - [SMALL_STATE(561)] = 32559, - [SMALL_STATE(562)] = 32613, - [SMALL_STATE(563)] = 32667, - [SMALL_STATE(564)] = 32721, - [SMALL_STATE(565)] = 32775, - [SMALL_STATE(566)] = 32829, - [SMALL_STATE(567)] = 32883, - [SMALL_STATE(568)] = 32965, - [SMALL_STATE(569)] = 33020, - [SMALL_STATE(570)] = 33075, - [SMALL_STATE(571)] = 33130, - [SMALL_STATE(572)] = 33185, - [SMALL_STATE(573)] = 33240, - [SMALL_STATE(574)] = 33295, - [SMALL_STATE(575)] = 33371, - [SMALL_STATE(576)] = 33447, - [SMALL_STATE(577)] = 33523, - [SMALL_STATE(578)] = 33599, - [SMALL_STATE(579)] = 33672, - [SMALL_STATE(580)] = 33745, - [SMALL_STATE(581)] = 33818, - [SMALL_STATE(582)] = 33867, - [SMALL_STATE(583)] = 33916, - [SMALL_STATE(584)] = 33989, - [SMALL_STATE(585)] = 34062, - [SMALL_STATE(586)] = 34135, - [SMALL_STATE(587)] = 34208, - [SMALL_STATE(588)] = 34257, - [SMALL_STATE(589)] = 34334, - [SMALL_STATE(590)] = 34407, - [SMALL_STATE(591)] = 34480, - [SMALL_STATE(592)] = 34553, - [SMALL_STATE(593)] = 34626, - [SMALL_STATE(594)] = 34699, - [SMALL_STATE(595)] = 34772, - [SMALL_STATE(596)] = 34845, - [SMALL_STATE(597)] = 34918, - [SMALL_STATE(598)] = 34991, - [SMALL_STATE(599)] = 35064, - [SMALL_STATE(600)] = 35137, - [SMALL_STATE(601)] = 35210, - [SMALL_STATE(602)] = 35283, - [SMALL_STATE(603)] = 35332, - [SMALL_STATE(604)] = 35405, - [SMALL_STATE(605)] = 35478, - [SMALL_STATE(606)] = 35551, - [SMALL_STATE(607)] = 35624, - [SMALL_STATE(608)] = 35697, - [SMALL_STATE(609)] = 35770, - [SMALL_STATE(610)] = 35843, - [SMALL_STATE(611)] = 35916, - [SMALL_STATE(612)] = 35989, - [SMALL_STATE(613)] = 36062, - [SMALL_STATE(614)] = 36135, - [SMALL_STATE(615)] = 36208, - [SMALL_STATE(616)] = 36281, - [SMALL_STATE(617)] = 36354, - [SMALL_STATE(618)] = 36427, - [SMALL_STATE(619)] = 36500, - [SMALL_STATE(620)] = 36573, - [SMALL_STATE(621)] = 36646, - [SMALL_STATE(622)] = 36723, - [SMALL_STATE(623)] = 36796, - [SMALL_STATE(624)] = 36869, - [SMALL_STATE(625)] = 36942, - [SMALL_STATE(626)] = 37015, - [SMALL_STATE(627)] = 37088, - [SMALL_STATE(628)] = 37161, - [SMALL_STATE(629)] = 37209, - [SMALL_STATE(630)] = 37257, - [SMALL_STATE(631)] = 37305, - [SMALL_STATE(632)] = 37353, - [SMALL_STATE(633)] = 37401, - [SMALL_STATE(634)] = 37449, - [SMALL_STATE(635)] = 37531, - [SMALL_STATE(636)] = 37579, - [SMALL_STATE(637)] = 37627, - [SMALL_STATE(638)] = 37675, - [SMALL_STATE(639)] = 37723, - [SMALL_STATE(640)] = 37771, - [SMALL_STATE(641)] = 37819, - [SMALL_STATE(642)] = 37867, - [SMALL_STATE(643)] = 37915, - [SMALL_STATE(644)] = 37963, - [SMALL_STATE(645)] = 38011, - [SMALL_STATE(646)] = 38059, - [SMALL_STATE(647)] = 38107, - [SMALL_STATE(648)] = 38155, - [SMALL_STATE(649)] = 38237, - [SMALL_STATE(650)] = 38285, - [SMALL_STATE(651)] = 38333, - [SMALL_STATE(652)] = 38381, - [SMALL_STATE(653)] = 38429, - [SMALL_STATE(654)] = 38477, - [SMALL_STATE(655)] = 38525, - [SMALL_STATE(656)] = 38573, - [SMALL_STATE(657)] = 38621, - [SMALL_STATE(658)] = 38669, - [SMALL_STATE(659)] = 38717, - [SMALL_STATE(660)] = 38765, - [SMALL_STATE(661)] = 38813, - [SMALL_STATE(662)] = 38870, - [SMALL_STATE(663)] = 38937, - [SMALL_STATE(664)] = 39004, - [SMALL_STATE(665)] = 39061, - [SMALL_STATE(666)] = 39126, - [SMALL_STATE(667)] = 39183, - [SMALL_STATE(668)] = 39246, - [SMALL_STATE(669)] = 39303, - [SMALL_STATE(670)] = 39364, - [SMALL_STATE(671)] = 39421, - [SMALL_STATE(672)] = 39478, - [SMALL_STATE(673)] = 39549, - [SMALL_STATE(674)] = 39618, - [SMALL_STATE(675)] = 39675, - [SMALL_STATE(676)] = 39746, - [SMALL_STATE(677)] = 39817, - [SMALL_STATE(678)] = 39880, - [SMALL_STATE(679)] = 39951, - [SMALL_STATE(680)] = 40022, - [SMALL_STATE(681)] = 40087, - [SMALL_STATE(682)] = 40156, - [SMALL_STATE(683)] = 40217, - [SMALL_STATE(684)] = 40288, - [SMALL_STATE(685)] = 40345, - [SMALL_STATE(686)] = 40393, - [SMALL_STATE(687)] = 40443, - [SMALL_STATE(688)] = 40489, - [SMALL_STATE(689)] = 40537, - [SMALL_STATE(690)] = 40587, - [SMALL_STATE(691)] = 40635, - [SMALL_STATE(692)] = 40685, - [SMALL_STATE(693)] = 40731, - [SMALL_STATE(694)] = 40781, - [SMALL_STATE(695)] = 40829, - [SMALL_STATE(696)] = 40878, - [SMALL_STATE(697)] = 40927, - [SMALL_STATE(698)] = 41006, - [SMALL_STATE(699)] = 41055, - [SMALL_STATE(700)] = 41104, - [SMALL_STATE(701)] = 41149, - [SMALL_STATE(702)] = 41198, - [SMALL_STATE(703)] = 41247, - [SMALL_STATE(704)] = 41292, - [SMALL_STATE(705)] = 41340, - [SMALL_STATE(706)] = 41394, - [SMALL_STATE(707)] = 41442, - [SMALL_STATE(708)] = 41486, - [SMALL_STATE(709)] = 41550, - [SMALL_STATE(710)] = 41608, - [SMALL_STATE(711)] = 41670, - [SMALL_STATE(712)] = 41736, - [SMALL_STATE(713)] = 41804, - [SMALL_STATE(714)] = 41864, - [SMALL_STATE(715)] = 41918, - [SMALL_STATE(716)] = 41972, - [SMALL_STATE(717)] = 42016, - [SMALL_STATE(718)] = 42084, - [SMALL_STATE(719)] = 42128, - [SMALL_STATE(720)] = 42172, - [SMALL_STATE(721)] = 42240, - [SMALL_STATE(722)] = 42294, - [SMALL_STATE(723)] = 42370, - [SMALL_STATE(724)] = 42423, - [SMALL_STATE(725)] = 42490, - [SMALL_STATE(726)] = 42571, - [SMALL_STATE(727)] = 42614, - [SMALL_STATE(728)] = 42661, - [SMALL_STATE(729)] = 42714, - [SMALL_STATE(730)] = 42773, - [SMALL_STATE(731)] = 42816, - [SMALL_STATE(732)] = 42897, - [SMALL_STATE(733)] = 42964, - [SMALL_STATE(734)] = 43011, - [SMALL_STATE(735)] = 43054, - [SMALL_STATE(736)] = 43097, - [SMALL_STATE(737)] = 43144, - [SMALL_STATE(738)] = 43191, - [SMALL_STATE(739)] = 43256, - [SMALL_STATE(740)] = 43313, - [SMALL_STATE(741)] = 43358, - [SMALL_STATE(742)] = 43403, - [SMALL_STATE(743)] = 43448, - [SMALL_STATE(744)] = 43493, - [SMALL_STATE(745)] = 43546, - [SMALL_STATE(746)] = 43591, - [SMALL_STATE(747)] = 43672, - [SMALL_STATE(748)] = 43735, - [SMALL_STATE(749)] = 43796, - [SMALL_STATE(750)] = 43841, - [SMALL_STATE(751)] = 43886, - [SMALL_STATE(752)] = 43931, - [SMALL_STATE(753)] = 43984, - [SMALL_STATE(754)] = 44065, - [SMALL_STATE(755)] = 44132, - [SMALL_STATE(756)] = 44174, - [SMALL_STATE(757)] = 44216, - [SMALL_STATE(758)] = 44258, - [SMALL_STATE(759)] = 44300, - [SMALL_STATE(760)] = 44342, - [SMALL_STATE(761)] = 44384, - [SMALL_STATE(762)] = 44426, - [SMALL_STATE(763)] = 44468, - [SMALL_STATE(764)] = 44510, - [SMALL_STATE(765)] = 44554, - [SMALL_STATE(766)] = 44596, - [SMALL_STATE(767)] = 44638, - [SMALL_STATE(768)] = 44680, - [SMALL_STATE(769)] = 44758, - [SMALL_STATE(770)] = 44802, - [SMALL_STATE(771)] = 44880, - [SMALL_STATE(772)] = 44922, - [SMALL_STATE(773)] = 44964, - [SMALL_STATE(774)] = 45006, - [SMALL_STATE(775)] = 45048, - [SMALL_STATE(776)] = 45090, - [SMALL_STATE(777)] = 45132, - [SMALL_STATE(778)] = 45176, - [SMALL_STATE(779)] = 45218, - [SMALL_STATE(780)] = 45260, - [SMALL_STATE(781)] = 45304, - [SMALL_STATE(782)] = 45346, - [SMALL_STATE(783)] = 45388, - [SMALL_STATE(784)] = 45468, - [SMALL_STATE(785)] = 45510, - [SMALL_STATE(786)] = 45552, - [SMALL_STATE(787)] = 45594, - [SMALL_STATE(788)] = 45636, - [SMALL_STATE(789)] = 45714, - [SMALL_STATE(790)] = 45792, - [SMALL_STATE(791)] = 45834, - [SMALL_STATE(792)] = 45878, - [SMALL_STATE(793)] = 45920, - [SMALL_STATE(794)] = 45962, - [SMALL_STATE(795)] = 46004, - [SMALL_STATE(796)] = 46046, - [SMALL_STATE(797)] = 46088, - [SMALL_STATE(798)] = 46130, - [SMALL_STATE(799)] = 46208, - [SMALL_STATE(800)] = 46249, - [SMALL_STATE(801)] = 46328, - [SMALL_STATE(802)] = 46373, - [SMALL_STATE(803)] = 46452, - [SMALL_STATE(804)] = 46497, - [SMALL_STATE(805)] = 46538, - [SMALL_STATE(806)] = 46579, - [SMALL_STATE(807)] = 46620, - [SMALL_STATE(808)] = 46661, - [SMALL_STATE(809)] = 46702, - [SMALL_STATE(810)] = 46743, - [SMALL_STATE(811)] = 46784, - [SMALL_STATE(812)] = 46825, - [SMALL_STATE(813)] = 46866, - [SMALL_STATE(814)] = 46907, - [SMALL_STATE(815)] = 46948, - [SMALL_STATE(816)] = 46989, - [SMALL_STATE(817)] = 47030, - [SMALL_STATE(818)] = 47109, - [SMALL_STATE(819)] = 47150, - [SMALL_STATE(820)] = 47191, - [SMALL_STATE(821)] = 47232, - [SMALL_STATE(822)] = 47273, - [SMALL_STATE(823)] = 47314, - [SMALL_STATE(824)] = 47355, - [SMALL_STATE(825)] = 47396, - [SMALL_STATE(826)] = 47471, - [SMALL_STATE(827)] = 47512, - [SMALL_STATE(828)] = 47553, - [SMALL_STATE(829)] = 47594, - [SMALL_STATE(830)] = 47635, - [SMALL_STATE(831)] = 47676, - [SMALL_STATE(832)] = 47717, - [SMALL_STATE(833)] = 47758, - [SMALL_STATE(834)] = 47799, - [SMALL_STATE(835)] = 47840, - [SMALL_STATE(836)] = 47881, - [SMALL_STATE(837)] = 47922, - [SMALL_STATE(838)] = 47963, - [SMALL_STATE(839)] = 48036, - [SMALL_STATE(840)] = 48106, - [SMALL_STATE(841)] = 48176, - [SMALL_STATE(842)] = 48238, - [SMALL_STATE(843)] = 48300, - [SMALL_STATE(844)] = 48340, - [SMALL_STATE(845)] = 48380, - [SMALL_STATE(846)] = 48420, - [SMALL_STATE(847)] = 48460, - [SMALL_STATE(848)] = 48490, - [SMALL_STATE(849)] = 48543, - [SMALL_STATE(850)] = 48568, - [SMALL_STATE(851)] = 48621, - [SMALL_STATE(852)] = 48674, - [SMALL_STATE(853)] = 48711, - [SMALL_STATE(854)] = 48736, - [SMALL_STATE(855)] = 48761, - [SMALL_STATE(856)] = 48786, - [SMALL_STATE(857)] = 48815, - [SMALL_STATE(858)] = 48852, - [SMALL_STATE(859)] = 48881, - [SMALL_STATE(860)] = 48915, - [SMALL_STATE(861)] = 48949, - [SMALL_STATE(862)] = 48995, - [SMALL_STATE(863)] = 49023, - [SMALL_STATE(864)] = 49066, - [SMALL_STATE(865)] = 49097, - [SMALL_STATE(866)] = 49140, - [SMALL_STATE(867)] = 49183, - [SMALL_STATE(868)] = 49226, - [SMALL_STATE(869)] = 49269, - [SMALL_STATE(870)] = 49313, - [SMALL_STATE(871)] = 49353, - [SMALL_STATE(872)] = 49390, - [SMALL_STATE(873)] = 49427, - [SMALL_STATE(874)] = 49464, - [SMALL_STATE(875)] = 49489, - [SMALL_STATE(876)] = 49526, - [SMALL_STATE(877)] = 49548, - [SMALL_STATE(878)] = 49582, - [SMALL_STATE(879)] = 49604, - [SMALL_STATE(880)] = 49638, - [SMALL_STATE(881)] = 49660, - [SMALL_STATE(882)] = 49683, - [SMALL_STATE(883)] = 49720, - [SMALL_STATE(884)] = 49757, - [SMALL_STATE(885)] = 49774, - [SMALL_STATE(886)] = 49801, - [SMALL_STATE(887)] = 49824, - [SMALL_STATE(888)] = 49847, - [SMALL_STATE(889)] = 49868, - [SMALL_STATE(890)] = 49891, - [SMALL_STATE(891)] = 49916, - [SMALL_STATE(892)] = 49937, - [SMALL_STATE(893)] = 49956, - [SMALL_STATE(894)] = 49977, - [SMALL_STATE(895)] = 50002, - [SMALL_STATE(896)] = 50025, - [SMALL_STATE(897)] = 50048, - [SMALL_STATE(898)] = 50069, - [SMALL_STATE(899)] = 50090, - [SMALL_STATE(900)] = 50127, - [SMALL_STATE(901)] = 50152, - [SMALL_STATE(902)] = 50189, - [SMALL_STATE(903)] = 50212, - [SMALL_STATE(904)] = 50235, - [SMALL_STATE(905)] = 50256, - [SMALL_STATE(906)] = 50286, - [SMALL_STATE(907)] = 50316, - [SMALL_STATE(908)] = 50346, - [SMALL_STATE(909)] = 50368, - [SMALL_STATE(910)] = 50398, - [SMALL_STATE(911)] = 50432, - [SMALL_STATE(912)] = 50466, - [SMALL_STATE(913)] = 50500, - [SMALL_STATE(914)] = 50534, - [SMALL_STATE(915)] = 50552, - [SMALL_STATE(916)] = 50586, - [SMALL_STATE(917)] = 50620, - [SMALL_STATE(918)] = 50650, - [SMALL_STATE(919)] = 50672, - [SMALL_STATE(920)] = 50702, - [SMALL_STATE(921)] = 50732, - [SMALL_STATE(922)] = 50754, - [SMALL_STATE(923)] = 50784, - [SMALL_STATE(924)] = 50814, - [SMALL_STATE(925)] = 50848, - [SMALL_STATE(926)] = 50870, - [SMALL_STATE(927)] = 50888, - [SMALL_STATE(928)] = 50918, - [SMALL_STATE(929)] = 50952, - [SMALL_STATE(930)] = 50982, - [SMALL_STATE(931)] = 51012, - [SMALL_STATE(932)] = 51042, - [SMALL_STATE(933)] = 51076, - [SMALL_STATE(934)] = 51106, - [SMALL_STATE(935)] = 51136, - [SMALL_STATE(936)] = 51155, - [SMALL_STATE(937)] = 51178, - [SMALL_STATE(938)] = 51201, - [SMALL_STATE(939)] = 51220, - [SMALL_STATE(940)] = 51239, - [SMALL_STATE(941)] = 51258, - [SMALL_STATE(942)] = 51277, - [SMALL_STATE(943)] = 51302, - [SMALL_STATE(944)] = 51325, - [SMALL_STATE(945)] = 51344, - [SMALL_STATE(946)] = 51362, - [SMALL_STATE(947)] = 51376, - [SMALL_STATE(948)] = 51392, - [SMALL_STATE(949)] = 51410, - [SMALL_STATE(950)] = 51430, - [SMALL_STATE(951)] = 51444, - [SMALL_STATE(952)] = 51458, - [SMALL_STATE(953)] = 51472, - [SMALL_STATE(954)] = 51490, - [SMALL_STATE(955)] = 51504, - [SMALL_STATE(956)] = 51518, - [SMALL_STATE(957)] = 51544, - [SMALL_STATE(958)] = 51562, - [SMALL_STATE(959)] = 51576, - [SMALL_STATE(960)] = 51590, - [SMALL_STATE(961)] = 51608, - [SMALL_STATE(962)] = 51622, - [SMALL_STATE(963)] = 51636, - [SMALL_STATE(964)] = 51650, - [SMALL_STATE(965)] = 51668, - [SMALL_STATE(966)] = 51688, - [SMALL_STATE(967)] = 51702, - [SMALL_STATE(968)] = 51724, - [SMALL_STATE(969)] = 51742, - [SMALL_STATE(970)] = 51760, - [SMALL_STATE(971)] = 51784, - [SMALL_STATE(972)] = 51798, - [SMALL_STATE(973)] = 51816, - [SMALL_STATE(974)] = 51830, - [SMALL_STATE(975)] = 51844, - [SMALL_STATE(976)] = 51858, - [SMALL_STATE(977)] = 51872, - [SMALL_STATE(978)] = 51886, - [SMALL_STATE(979)] = 51906, - [SMALL_STATE(980)] = 51920, - [SMALL_STATE(981)] = 51938, - [SMALL_STATE(982)] = 51954, - [SMALL_STATE(983)] = 51968, - [SMALL_STATE(984)] = 51988, - [SMALL_STATE(985)] = 52002, - [SMALL_STATE(986)] = 52026, - [SMALL_STATE(987)] = 52044, - [SMALL_STATE(988)] = 52058, - [SMALL_STATE(989)] = 52072, - [SMALL_STATE(990)] = 52090, - [SMALL_STATE(991)] = 52104, - [SMALL_STATE(992)] = 52127, - [SMALL_STATE(993)] = 52140, - [SMALL_STATE(994)] = 52159, - [SMALL_STATE(995)] = 52180, - [SMALL_STATE(996)] = 52199, - [SMALL_STATE(997)] = 52222, - [SMALL_STATE(998)] = 52241, - [SMALL_STATE(999)] = 52254, - [SMALL_STATE(1000)] = 52273, - [SMALL_STATE(1001)] = 52296, - [SMALL_STATE(1002)] = 52321, - [SMALL_STATE(1003)] = 52334, - [SMALL_STATE(1004)] = 52351, - [SMALL_STATE(1005)] = 52372, - [SMALL_STATE(1006)] = 52387, - [SMALL_STATE(1007)] = 52410, - [SMALL_STATE(1008)] = 52429, - [SMALL_STATE(1009)] = 52446, - [SMALL_STATE(1010)] = 52465, - [SMALL_STATE(1011)] = 52482, - [SMALL_STATE(1012)] = 52501, - [SMALL_STATE(1013)] = 52514, - [SMALL_STATE(1014)] = 52527, - [SMALL_STATE(1015)] = 52548, - [SMALL_STATE(1016)] = 52573, - [SMALL_STATE(1017)] = 52594, - [SMALL_STATE(1018)] = 52615, - [SMALL_STATE(1019)] = 52640, - [SMALL_STATE(1020)] = 52655, - [SMALL_STATE(1021)] = 52674, - [SMALL_STATE(1022)] = 52693, - [SMALL_STATE(1023)] = 52706, - [SMALL_STATE(1024)] = 52719, - [SMALL_STATE(1025)] = 52742, - [SMALL_STATE(1026)] = 52761, - [SMALL_STATE(1027)] = 52782, - [SMALL_STATE(1028)] = 52807, - [SMALL_STATE(1029)] = 52830, - [SMALL_STATE(1030)] = 52851, - [SMALL_STATE(1031)] = 52874, - [SMALL_STATE(1032)] = 52897, - [SMALL_STATE(1033)] = 52920, - [SMALL_STATE(1034)] = 52938, - [SMALL_STATE(1035)] = 52954, - [SMALL_STATE(1036)] = 52966, - [SMALL_STATE(1037)] = 52980, - [SMALL_STATE(1038)] = 53002, - [SMALL_STATE(1039)] = 53022, - [SMALL_STATE(1040)] = 53040, - [SMALL_STATE(1041)] = 53054, - [SMALL_STATE(1042)] = 53066, - [SMALL_STATE(1043)] = 53086, - [SMALL_STATE(1044)] = 53108, - [SMALL_STATE(1045)] = 53122, - [SMALL_STATE(1046)] = 53142, - [SMALL_STATE(1047)] = 53158, - [SMALL_STATE(1048)] = 53174, - [SMALL_STATE(1049)] = 53196, - [SMALL_STATE(1050)] = 53218, - [SMALL_STATE(1051)] = 53240, - [SMALL_STATE(1052)] = 53256, - [SMALL_STATE(1053)] = 53274, - [SMALL_STATE(1054)] = 53292, - [SMALL_STATE(1055)] = 53312, - [SMALL_STATE(1056)] = 53334, - [SMALL_STATE(1057)] = 53352, - [SMALL_STATE(1058)] = 53370, - [SMALL_STATE(1059)] = 53384, - [SMALL_STATE(1060)] = 53398, - [SMALL_STATE(1061)] = 53416, - [SMALL_STATE(1062)] = 53436, - [SMALL_STATE(1063)] = 53456, - [SMALL_STATE(1064)] = 53478, - [SMALL_STATE(1065)] = 53494, - [SMALL_STATE(1066)] = 53510, - [SMALL_STATE(1067)] = 53526, - [SMALL_STATE(1068)] = 53540, - [SMALL_STATE(1069)] = 53557, - [SMALL_STATE(1070)] = 53572, - [SMALL_STATE(1071)] = 53589, - [SMALL_STATE(1072)] = 53606, - [SMALL_STATE(1073)] = 53623, - [SMALL_STATE(1074)] = 53640, - [SMALL_STATE(1075)] = 53659, - [SMALL_STATE(1076)] = 53676, - [SMALL_STATE(1077)] = 53691, - [SMALL_STATE(1078)] = 53706, - [SMALL_STATE(1079)] = 53721, - [SMALL_STATE(1080)] = 53738, - [SMALL_STATE(1081)] = 53757, - [SMALL_STATE(1082)] = 53768, - [SMALL_STATE(1083)] = 53785, - [SMALL_STATE(1084)] = 53802, - [SMALL_STATE(1085)] = 53819, - [SMALL_STATE(1086)] = 53836, - [SMALL_STATE(1087)] = 53855, - [SMALL_STATE(1088)] = 53872, - [SMALL_STATE(1089)] = 53889, - [SMALL_STATE(1090)] = 53906, - [SMALL_STATE(1091)] = 53925, - [SMALL_STATE(1092)] = 53944, - [SMALL_STATE(1093)] = 53963, - [SMALL_STATE(1094)] = 53978, - [SMALL_STATE(1095)] = 53997, - [SMALL_STATE(1096)] = 54014, - [SMALL_STATE(1097)] = 54025, - [SMALL_STATE(1098)] = 54040, - [SMALL_STATE(1099)] = 54055, - [SMALL_STATE(1100)] = 54074, - [SMALL_STATE(1101)] = 54091, - [SMALL_STATE(1102)] = 54110, - [SMALL_STATE(1103)] = 54127, - [SMALL_STATE(1104)] = 54144, - [SMALL_STATE(1105)] = 54163, - [SMALL_STATE(1106)] = 54174, - [SMALL_STATE(1107)] = 54188, - [SMALL_STATE(1108)] = 54204, - [SMALL_STATE(1109)] = 54218, - [SMALL_STATE(1110)] = 54234, - [SMALL_STATE(1111)] = 54248, - [SMALL_STATE(1112)] = 54264, - [SMALL_STATE(1113)] = 54278, - [SMALL_STATE(1114)] = 54292, - [SMALL_STATE(1115)] = 54304, - [SMALL_STATE(1116)] = 54320, - [SMALL_STATE(1117)] = 54334, - [SMALL_STATE(1118)] = 54348, - [SMALL_STATE(1119)] = 54362, - [SMALL_STATE(1120)] = 54376, - [SMALL_STATE(1121)] = 54392, - [SMALL_STATE(1122)] = 54406, - [SMALL_STATE(1123)] = 54422, - [SMALL_STATE(1124)] = 54436, - [SMALL_STATE(1125)] = 54452, - [SMALL_STATE(1126)] = 54462, - [SMALL_STATE(1127)] = 54472, - [SMALL_STATE(1128)] = 54488, - [SMALL_STATE(1129)] = 54504, - [SMALL_STATE(1130)] = 54518, - [SMALL_STATE(1131)] = 54534, - [SMALL_STATE(1132)] = 54550, - [SMALL_STATE(1133)] = 54560, - [SMALL_STATE(1134)] = 54574, - [SMALL_STATE(1135)] = 54590, - [SMALL_STATE(1136)] = 54604, - [SMALL_STATE(1137)] = 54620, - [SMALL_STATE(1138)] = 54636, - [SMALL_STATE(1139)] = 54652, - [SMALL_STATE(1140)] = 54668, - [SMALL_STATE(1141)] = 54684, - [SMALL_STATE(1142)] = 54700, - [SMALL_STATE(1143)] = 54716, - [SMALL_STATE(1144)] = 54726, - [SMALL_STATE(1145)] = 54742, - [SMALL_STATE(1146)] = 54758, - [SMALL_STATE(1147)] = 54772, - [SMALL_STATE(1148)] = 54782, - [SMALL_STATE(1149)] = 54796, - [SMALL_STATE(1150)] = 54810, - [SMALL_STATE(1151)] = 54824, - [SMALL_STATE(1152)] = 54836, - [SMALL_STATE(1153)] = 54850, - [SMALL_STATE(1154)] = 54864, - [SMALL_STATE(1155)] = 54878, - [SMALL_STATE(1156)] = 54894, - [SMALL_STATE(1157)] = 54908, - [SMALL_STATE(1158)] = 54922, - [SMALL_STATE(1159)] = 54938, - [SMALL_STATE(1160)] = 54954, - [SMALL_STATE(1161)] = 54968, - [SMALL_STATE(1162)] = 54982, - [SMALL_STATE(1163)] = 54992, - [SMALL_STATE(1164)] = 55008, - [SMALL_STATE(1165)] = 55022, - [SMALL_STATE(1166)] = 55036, - [SMALL_STATE(1167)] = 55052, - [SMALL_STATE(1168)] = 55066, - [SMALL_STATE(1169)] = 55082, - [SMALL_STATE(1170)] = 55098, - [SMALL_STATE(1171)] = 55114, - [SMALL_STATE(1172)] = 55128, - [SMALL_STATE(1173)] = 55142, - [SMALL_STATE(1174)] = 55156, - [SMALL_STATE(1175)] = 55170, - [SMALL_STATE(1176)] = 55186, - [SMALL_STATE(1177)] = 55199, - [SMALL_STATE(1178)] = 55212, - [SMALL_STATE(1179)] = 55225, - [SMALL_STATE(1180)] = 55236, - [SMALL_STATE(1181)] = 55249, - [SMALL_STATE(1182)] = 55262, - [SMALL_STATE(1183)] = 55275, - [SMALL_STATE(1184)] = 55288, - [SMALL_STATE(1185)] = 55301, - [SMALL_STATE(1186)] = 55312, - [SMALL_STATE(1187)] = 55323, - [SMALL_STATE(1188)] = 55336, - [SMALL_STATE(1189)] = 55349, - [SMALL_STATE(1190)] = 55362, - [SMALL_STATE(1191)] = 55375, - [SMALL_STATE(1192)] = 55388, - [SMALL_STATE(1193)] = 55397, - [SMALL_STATE(1194)] = 55410, - [SMALL_STATE(1195)] = 55419, - [SMALL_STATE(1196)] = 55432, - [SMALL_STATE(1197)] = 55443, - [SMALL_STATE(1198)] = 55456, - [SMALL_STATE(1199)] = 55465, - [SMALL_STATE(1200)] = 55478, - [SMALL_STATE(1201)] = 55491, - [SMALL_STATE(1202)] = 55504, - [SMALL_STATE(1203)] = 55517, - [SMALL_STATE(1204)] = 55526, - [SMALL_STATE(1205)] = 55539, - [SMALL_STATE(1206)] = 55552, - [SMALL_STATE(1207)] = 55565, - [SMALL_STATE(1208)] = 55574, - [SMALL_STATE(1209)] = 55585, - [SMALL_STATE(1210)] = 55598, - [SMALL_STATE(1211)] = 55607, - [SMALL_STATE(1212)] = 55620, - [SMALL_STATE(1213)] = 55633, - [SMALL_STATE(1214)] = 55646, - [SMALL_STATE(1215)] = 55659, - [SMALL_STATE(1216)] = 55672, - [SMALL_STATE(1217)] = 55685, - [SMALL_STATE(1218)] = 55698, - [SMALL_STATE(1219)] = 55711, - [SMALL_STATE(1220)] = 55724, - [SMALL_STATE(1221)] = 55737, - [SMALL_STATE(1222)] = 55750, - [SMALL_STATE(1223)] = 55763, - [SMALL_STATE(1224)] = 55776, - [SMALL_STATE(1225)] = 55789, - [SMALL_STATE(1226)] = 55802, - [SMALL_STATE(1227)] = 55815, - [SMALL_STATE(1228)] = 55828, - [SMALL_STATE(1229)] = 55841, - [SMALL_STATE(1230)] = 55854, - [SMALL_STATE(1231)] = 55867, - [SMALL_STATE(1232)] = 55880, - [SMALL_STATE(1233)] = 55893, - [SMALL_STATE(1234)] = 55906, - [SMALL_STATE(1235)] = 55919, - [SMALL_STATE(1236)] = 55932, - [SMALL_STATE(1237)] = 55945, - [SMALL_STATE(1238)] = 55958, - [SMALL_STATE(1239)] = 55969, - [SMALL_STATE(1240)] = 55982, - [SMALL_STATE(1241)] = 55995, - [SMALL_STATE(1242)] = 56008, - [SMALL_STATE(1243)] = 56021, - [SMALL_STATE(1244)] = 56034, - [SMALL_STATE(1245)] = 56047, - [SMALL_STATE(1246)] = 56060, - [SMALL_STATE(1247)] = 56073, - [SMALL_STATE(1248)] = 56086, - [SMALL_STATE(1249)] = 56099, - [SMALL_STATE(1250)] = 56112, - [SMALL_STATE(1251)] = 56125, - [SMALL_STATE(1252)] = 56138, - [SMALL_STATE(1253)] = 56151, - [SMALL_STATE(1254)] = 56164, - [SMALL_STATE(1255)] = 56177, - [SMALL_STATE(1256)] = 56190, - [SMALL_STATE(1257)] = 56203, - [SMALL_STATE(1258)] = 56216, - [SMALL_STATE(1259)] = 56227, - [SMALL_STATE(1260)] = 56240, - [SMALL_STATE(1261)] = 56253, - [SMALL_STATE(1262)] = 56266, - [SMALL_STATE(1263)] = 56277, - [SMALL_STATE(1264)] = 56290, - [SMALL_STATE(1265)] = 56303, - [SMALL_STATE(1266)] = 56316, - [SMALL_STATE(1267)] = 56329, - [SMALL_STATE(1268)] = 56340, - [SMALL_STATE(1269)] = 56353, - [SMALL_STATE(1270)] = 56366, - [SMALL_STATE(1271)] = 56379, - [SMALL_STATE(1272)] = 56392, - [SMALL_STATE(1273)] = 56405, - [SMALL_STATE(1274)] = 56414, - [SMALL_STATE(1275)] = 56427, - [SMALL_STATE(1276)] = 56440, - [SMALL_STATE(1277)] = 56453, - [SMALL_STATE(1278)] = 56466, - [SMALL_STATE(1279)] = 56479, - [SMALL_STATE(1280)] = 56492, - [SMALL_STATE(1281)] = 56505, - [SMALL_STATE(1282)] = 56518, - [SMALL_STATE(1283)] = 56527, - [SMALL_STATE(1284)] = 56538, - [SMALL_STATE(1285)] = 56551, - [SMALL_STATE(1286)] = 56560, - [SMALL_STATE(1287)] = 56573, - [SMALL_STATE(1288)] = 56586, - [SMALL_STATE(1289)] = 56597, - [SMALL_STATE(1290)] = 56606, - [SMALL_STATE(1291)] = 56615, - [SMALL_STATE(1292)] = 56628, - [SMALL_STATE(1293)] = 56641, - [SMALL_STATE(1294)] = 56654, - [SMALL_STATE(1295)] = 56663, - [SMALL_STATE(1296)] = 56674, - [SMALL_STATE(1297)] = 56687, - [SMALL_STATE(1298)] = 56700, - [SMALL_STATE(1299)] = 56713, - [SMALL_STATE(1300)] = 56722, - [SMALL_STATE(1301)] = 56735, - [SMALL_STATE(1302)] = 56748, - [SMALL_STATE(1303)] = 56761, - [SMALL_STATE(1304)] = 56770, - [SMALL_STATE(1305)] = 56783, - [SMALL_STATE(1306)] = 56792, - [SMALL_STATE(1307)] = 56802, - [SMALL_STATE(1308)] = 56812, - [SMALL_STATE(1309)] = 56820, - [SMALL_STATE(1310)] = 56828, - [SMALL_STATE(1311)] = 56838, - [SMALL_STATE(1312)] = 56846, - [SMALL_STATE(1313)] = 56854, - [SMALL_STATE(1314)] = 56864, - [SMALL_STATE(1315)] = 56872, - [SMALL_STATE(1316)] = 56880, - [SMALL_STATE(1317)] = 56888, - [SMALL_STATE(1318)] = 56896, - [SMALL_STATE(1319)] = 56904, - [SMALL_STATE(1320)] = 56914, - [SMALL_STATE(1321)] = 56924, - [SMALL_STATE(1322)] = 56932, - [SMALL_STATE(1323)] = 56942, - [SMALL_STATE(1324)] = 56950, - [SMALL_STATE(1325)] = 56958, - [SMALL_STATE(1326)] = 56966, - [SMALL_STATE(1327)] = 56974, - [SMALL_STATE(1328)] = 56984, - [SMALL_STATE(1329)] = 56994, - [SMALL_STATE(1330)] = 57004, - [SMALL_STATE(1331)] = 57012, - [SMALL_STATE(1332)] = 57020, - [SMALL_STATE(1333)] = 57028, - [SMALL_STATE(1334)] = 57036, - [SMALL_STATE(1335)] = 57044, - [SMALL_STATE(1336)] = 57052, - [SMALL_STATE(1337)] = 57060, - [SMALL_STATE(1338)] = 57068, - [SMALL_STATE(1339)] = 57076, - [SMALL_STATE(1340)] = 57084, - [SMALL_STATE(1341)] = 57092, - [SMALL_STATE(1342)] = 57100, - [SMALL_STATE(1343)] = 57110, - [SMALL_STATE(1344)] = 57118, - [SMALL_STATE(1345)] = 57126, - [SMALL_STATE(1346)] = 57134, - [SMALL_STATE(1347)] = 57142, - [SMALL_STATE(1348)] = 57150, - [SMALL_STATE(1349)] = 57158, - [SMALL_STATE(1350)] = 57166, - [SMALL_STATE(1351)] = 57176, - [SMALL_STATE(1352)] = 57186, - [SMALL_STATE(1353)] = 57196, - [SMALL_STATE(1354)] = 57204, - [SMALL_STATE(1355)] = 57214, - [SMALL_STATE(1356)] = 57224, - [SMALL_STATE(1357)] = 57234, - [SMALL_STATE(1358)] = 57242, - [SMALL_STATE(1359)] = 57250, - [SMALL_STATE(1360)] = 57260, - [SMALL_STATE(1361)] = 57270, - [SMALL_STATE(1362)] = 57278, - [SMALL_STATE(1363)] = 57288, - [SMALL_STATE(1364)] = 57296, - [SMALL_STATE(1365)] = 57306, - [SMALL_STATE(1366)] = 57316, - [SMALL_STATE(1367)] = 57324, - [SMALL_STATE(1368)] = 57334, - [SMALL_STATE(1369)] = 57342, - [SMALL_STATE(1370)] = 57352, - [SMALL_STATE(1371)] = 57362, - [SMALL_STATE(1372)] = 57370, - [SMALL_STATE(1373)] = 57378, - [SMALL_STATE(1374)] = 57386, - [SMALL_STATE(1375)] = 57394, - [SMALL_STATE(1376)] = 57402, - [SMALL_STATE(1377)] = 57412, - [SMALL_STATE(1378)] = 57419, - [SMALL_STATE(1379)] = 57426, - [SMALL_STATE(1380)] = 57433, - [SMALL_STATE(1381)] = 57440, - [SMALL_STATE(1382)] = 57447, - [SMALL_STATE(1383)] = 57454, - [SMALL_STATE(1384)] = 57461, - [SMALL_STATE(1385)] = 57468, - [SMALL_STATE(1386)] = 57475, - [SMALL_STATE(1387)] = 57482, - [SMALL_STATE(1388)] = 57489, - [SMALL_STATE(1389)] = 57496, - [SMALL_STATE(1390)] = 57503, - [SMALL_STATE(1391)] = 57510, - [SMALL_STATE(1392)] = 57517, - [SMALL_STATE(1393)] = 57524, - [SMALL_STATE(1394)] = 57531, - [SMALL_STATE(1395)] = 57538, - [SMALL_STATE(1396)] = 57545, - [SMALL_STATE(1397)] = 57552, - [SMALL_STATE(1398)] = 57559, - [SMALL_STATE(1399)] = 57566, - [SMALL_STATE(1400)] = 57573, - [SMALL_STATE(1401)] = 57580, - [SMALL_STATE(1402)] = 57587, - [SMALL_STATE(1403)] = 57594, - [SMALL_STATE(1404)] = 57601, - [SMALL_STATE(1405)] = 57608, - [SMALL_STATE(1406)] = 57615, - [SMALL_STATE(1407)] = 57622, - [SMALL_STATE(1408)] = 57629, - [SMALL_STATE(1409)] = 57636, - [SMALL_STATE(1410)] = 57643, - [SMALL_STATE(1411)] = 57650, - [SMALL_STATE(1412)] = 57657, - [SMALL_STATE(1413)] = 57664, - [SMALL_STATE(1414)] = 57671, - [SMALL_STATE(1415)] = 57678, - [SMALL_STATE(1416)] = 57685, - [SMALL_STATE(1417)] = 57692, - [SMALL_STATE(1418)] = 57699, - [SMALL_STATE(1419)] = 57706, - [SMALL_STATE(1420)] = 57713, - [SMALL_STATE(1421)] = 57720, - [SMALL_STATE(1422)] = 57727, - [SMALL_STATE(1423)] = 57734, - [SMALL_STATE(1424)] = 57741, - [SMALL_STATE(1425)] = 57748, - [SMALL_STATE(1426)] = 57755, - [SMALL_STATE(1427)] = 57762, - [SMALL_STATE(1428)] = 57769, - [SMALL_STATE(1429)] = 57776, - [SMALL_STATE(1430)] = 57783, - [SMALL_STATE(1431)] = 57790, - [SMALL_STATE(1432)] = 57797, - [SMALL_STATE(1433)] = 57804, - [SMALL_STATE(1434)] = 57811, - [SMALL_STATE(1435)] = 57818, - [SMALL_STATE(1436)] = 57825, - [SMALL_STATE(1437)] = 57832, - [SMALL_STATE(1438)] = 57839, - [SMALL_STATE(1439)] = 57846, - [SMALL_STATE(1440)] = 57853, - [SMALL_STATE(1441)] = 57860, - [SMALL_STATE(1442)] = 57867, - [SMALL_STATE(1443)] = 57874, - [SMALL_STATE(1444)] = 57881, - [SMALL_STATE(1445)] = 57888, - [SMALL_STATE(1446)] = 57895, - [SMALL_STATE(1447)] = 57902, - [SMALL_STATE(1448)] = 57909, - [SMALL_STATE(1449)] = 57916, - [SMALL_STATE(1450)] = 57923, - [SMALL_STATE(1451)] = 57930, - [SMALL_STATE(1452)] = 57937, - [SMALL_STATE(1453)] = 57944, - [SMALL_STATE(1454)] = 57951, - [SMALL_STATE(1455)] = 57958, - [SMALL_STATE(1456)] = 57965, - [SMALL_STATE(1457)] = 57972, - [SMALL_STATE(1458)] = 57979, - [SMALL_STATE(1459)] = 57986, - [SMALL_STATE(1460)] = 57993, - [SMALL_STATE(1461)] = 58000, - [SMALL_STATE(1462)] = 58007, - [SMALL_STATE(1463)] = 58014, - [SMALL_STATE(1464)] = 58021, - [SMALL_STATE(1465)] = 58028, - [SMALL_STATE(1466)] = 58035, - [SMALL_STATE(1467)] = 58042, - [SMALL_STATE(1468)] = 58049, - [SMALL_STATE(1469)] = 58056, - [SMALL_STATE(1470)] = 58063, - [SMALL_STATE(1471)] = 58070, - [SMALL_STATE(1472)] = 58077, - [SMALL_STATE(1473)] = 58084, - [SMALL_STATE(1474)] = 58091, - [SMALL_STATE(1475)] = 58098, - [SMALL_STATE(1476)] = 58105, - [SMALL_STATE(1477)] = 58112, - [SMALL_STATE(1478)] = 58119, - [SMALL_STATE(1479)] = 58126, - [SMALL_STATE(1480)] = 58133, - [SMALL_STATE(1481)] = 58140, - [SMALL_STATE(1482)] = 58147, - [SMALL_STATE(1483)] = 58154, - [SMALL_STATE(1484)] = 58161, - [SMALL_STATE(1485)] = 58168, - [SMALL_STATE(1486)] = 58175, - [SMALL_STATE(1487)] = 58182, - [SMALL_STATE(1488)] = 58189, - [SMALL_STATE(1489)] = 58196, - [SMALL_STATE(1490)] = 58203, - [SMALL_STATE(1491)] = 58210, - [SMALL_STATE(1492)] = 58217, - [SMALL_STATE(1493)] = 58224, - [SMALL_STATE(1494)] = 58231, - [SMALL_STATE(1495)] = 58238, - [SMALL_STATE(1496)] = 58245, - [SMALL_STATE(1497)] = 58252, - [SMALL_STATE(1498)] = 58259, - [SMALL_STATE(1499)] = 58266, - [SMALL_STATE(1500)] = 58273, - [SMALL_STATE(1501)] = 58280, + [SMALL_STATE(264)] = 11710, + [SMALL_STATE(265)] = 11811, + [SMALL_STATE(266)] = 11907, + [SMALL_STATE(267)] = 12003, + [SMALL_STATE(268)] = 12101, + [SMALL_STATE(269)] = 12197, + [SMALL_STATE(270)] = 12295, + [SMALL_STATE(271)] = 12391, + [SMALL_STATE(272)] = 12487, + [SMALL_STATE(273)] = 12583, + [SMALL_STATE(274)] = 12679, + [SMALL_STATE(275)] = 12775, + [SMALL_STATE(276)] = 12873, + [SMALL_STATE(277)] = 12971, + [SMALL_STATE(278)] = 13069, + [SMALL_STATE(279)] = 13167, + [SMALL_STATE(280)] = 13263, + [SMALL_STATE(281)] = 13359, + [SMALL_STATE(282)] = 13457, + [SMALL_STATE(283)] = 13553, + [SMALL_STATE(284)] = 13651, + [SMALL_STATE(285)] = 13747, + [SMALL_STATE(286)] = 13845, + [SMALL_STATE(287)] = 13941, + [SMALL_STATE(288)] = 14036, + [SMALL_STATE(289)] = 14131, + [SMALL_STATE(290)] = 14194, + [SMALL_STATE(291)] = 14263, + [SMALL_STATE(292)] = 14332, + [SMALL_STATE(293)] = 14395, + [SMALL_STATE(294)] = 14458, + [SMALL_STATE(295)] = 14517, + [SMALL_STATE(296)] = 14576, + [SMALL_STATE(297)] = 14635, + [SMALL_STATE(298)] = 14694, + [SMALL_STATE(299)] = 14767, + [SMALL_STATE(300)] = 14840, + [SMALL_STATE(301)] = 14909, + [SMALL_STATE(302)] = 14968, + [SMALL_STATE(303)] = 15037, + [SMALL_STATE(304)] = 15132, + [SMALL_STATE(305)] = 15201, + [SMALL_STATE(306)] = 15260, + [SMALL_STATE(307)] = 15319, + [SMALL_STATE(308)] = 15378, + [SMALL_STATE(309)] = 15441, + [SMALL_STATE(310)] = 15510, + [SMALL_STATE(311)] = 15579, + [SMALL_STATE(312)] = 15638, + [SMALL_STATE(313)] = 15707, + [SMALL_STATE(314)] = 15766, + [SMALL_STATE(315)] = 15858, + [SMALL_STATE(316)] = 15950, + [SMALL_STATE(317)] = 16042, + [SMALL_STATE(318)] = 16134, + [SMALL_STATE(319)] = 16226, + [SMALL_STATE(320)] = 16318, + [SMALL_STATE(321)] = 16410, + [SMALL_STATE(322)] = 16502, + [SMALL_STATE(323)] = 16594, + [SMALL_STATE(324)] = 16686, + [SMALL_STATE(325)] = 16778, + [SMALL_STATE(326)] = 16870, + [SMALL_STATE(327)] = 16962, + [SMALL_STATE(328)] = 17054, + [SMALL_STATE(329)] = 17146, + [SMALL_STATE(330)] = 17238, + [SMALL_STATE(331)] = 17330, + [SMALL_STATE(332)] = 17422, + [SMALL_STATE(333)] = 17514, + [SMALL_STATE(334)] = 17606, + [SMALL_STATE(335)] = 17698, + [SMALL_STATE(336)] = 17790, + [SMALL_STATE(337)] = 17882, + [SMALL_STATE(338)] = 17974, + [SMALL_STATE(339)] = 18066, + [SMALL_STATE(340)] = 18158, + [SMALL_STATE(341)] = 18250, + [SMALL_STATE(342)] = 18342, + [SMALL_STATE(343)] = 18434, + [SMALL_STATE(344)] = 18526, + [SMALL_STATE(345)] = 18618, + [SMALL_STATE(346)] = 18710, + [SMALL_STATE(347)] = 18802, + [SMALL_STATE(348)] = 18894, + [SMALL_STATE(349)] = 18986, + [SMALL_STATE(350)] = 19078, + [SMALL_STATE(351)] = 19170, + [SMALL_STATE(352)] = 19262, + [SMALL_STATE(353)] = 19354, + [SMALL_STATE(354)] = 19446, + [SMALL_STATE(355)] = 19538, + [SMALL_STATE(356)] = 19630, + [SMALL_STATE(357)] = 19722, + [SMALL_STATE(358)] = 19814, + [SMALL_STATE(359)] = 19906, + [SMALL_STATE(360)] = 19998, + [SMALL_STATE(361)] = 20090, + [SMALL_STATE(362)] = 20182, + [SMALL_STATE(363)] = 20274, + [SMALL_STATE(364)] = 20366, + [SMALL_STATE(365)] = 20458, + [SMALL_STATE(366)] = 20550, + [SMALL_STATE(367)] = 20642, + [SMALL_STATE(368)] = 20734, + [SMALL_STATE(369)] = 20826, + [SMALL_STATE(370)] = 20890, + [SMALL_STATE(371)] = 20982, + [SMALL_STATE(372)] = 21074, + [SMALL_STATE(373)] = 21166, + [SMALL_STATE(374)] = 21258, + [SMALL_STATE(375)] = 21350, + [SMALL_STATE(376)] = 21442, + [SMALL_STATE(377)] = 21534, + [SMALL_STATE(378)] = 21626, + [SMALL_STATE(379)] = 21718, + [SMALL_STATE(380)] = 21810, + [SMALL_STATE(381)] = 21902, + [SMALL_STATE(382)] = 21972, + [SMALL_STATE(383)] = 22036, + [SMALL_STATE(384)] = 22128, + [SMALL_STATE(385)] = 22220, + [SMALL_STATE(386)] = 22312, + [SMALL_STATE(387)] = 22404, + [SMALL_STATE(388)] = 22496, + [SMALL_STATE(389)] = 22588, + [SMALL_STATE(390)] = 22682, + [SMALL_STATE(391)] = 22743, + [SMALL_STATE(392)] = 22800, + [SMALL_STATE(393)] = 22857, + [SMALL_STATE(394)] = 22914, + [SMALL_STATE(395)] = 22971, + [SMALL_STATE(396)] = 23028, + [SMALL_STATE(397)] = 23085, + [SMALL_STATE(398)] = 23152, + [SMALL_STATE(399)] = 23209, + [SMALL_STATE(400)] = 23266, + [SMALL_STATE(401)] = 23323, + [SMALL_STATE(402)] = 23380, + [SMALL_STATE(403)] = 23437, + [SMALL_STATE(404)] = 23494, + [SMALL_STATE(405)] = 23551, + [SMALL_STATE(406)] = 23608, + [SMALL_STATE(407)] = 23665, + [SMALL_STATE(408)] = 23722, + [SMALL_STATE(409)] = 23779, + [SMALL_STATE(410)] = 23840, + [SMALL_STATE(411)] = 23897, + [SMALL_STATE(412)] = 23954, + [SMALL_STATE(413)] = 24015, + [SMALL_STATE(414)] = 24072, + [SMALL_STATE(415)] = 24133, + [SMALL_STATE(416)] = 24193, + [SMALL_STATE(417)] = 24257, + [SMALL_STATE(418)] = 24313, + [SMALL_STATE(419)] = 24373, + [SMALL_STATE(420)] = 24429, + [SMALL_STATE(421)] = 24489, + [SMALL_STATE(422)] = 24549, + [SMALL_STATE(423)] = 24605, + [SMALL_STATE(424)] = 24697, + [SMALL_STATE(425)] = 24757, + [SMALL_STATE(426)] = 24817, + [SMALL_STATE(427)] = 24877, + [SMALL_STATE(428)] = 24937, + [SMALL_STATE(429)] = 24993, + [SMALL_STATE(430)] = 25057, + [SMALL_STATE(431)] = 25117, + [SMALL_STATE(432)] = 25177, + [SMALL_STATE(433)] = 25237, + [SMALL_STATE(434)] = 25293, + [SMALL_STATE(435)] = 25385, + [SMALL_STATE(436)] = 25445, + [SMALL_STATE(437)] = 25505, + [SMALL_STATE(438)] = 25565, + [SMALL_STATE(439)] = 25625, + [SMALL_STATE(440)] = 25681, + [SMALL_STATE(441)] = 25745, + [SMALL_STATE(442)] = 25839, + [SMALL_STATE(443)] = 25903, + [SMALL_STATE(444)] = 25959, + [SMALL_STATE(445)] = 26015, + [SMALL_STATE(446)] = 26075, + [SMALL_STATE(447)] = 26136, + [SMALL_STATE(448)] = 26227, + [SMALL_STATE(449)] = 26318, + [SMALL_STATE(450)] = 26409, + [SMALL_STATE(451)] = 26464, + [SMALL_STATE(452)] = 26525, + [SMALL_STATE(453)] = 26586, + [SMALL_STATE(454)] = 26641, + [SMALL_STATE(455)] = 26696, + [SMALL_STATE(456)] = 26751, + [SMALL_STATE(457)] = 26842, + [SMALL_STATE(458)] = 26897, + [SMALL_STATE(459)] = 26988, + [SMALL_STATE(460)] = 27049, + [SMALL_STATE(461)] = 27104, + [SMALL_STATE(462)] = 27159, + [SMALL_STATE(463)] = 27214, + [SMALL_STATE(464)] = 27269, + [SMALL_STATE(465)] = 27324, + [SMALL_STATE(466)] = 27379, + [SMALL_STATE(467)] = 27434, + [SMALL_STATE(468)] = 27525, + [SMALL_STATE(469)] = 27579, + [SMALL_STATE(470)] = 27633, + [SMALL_STATE(471)] = 27687, + [SMALL_STATE(472)] = 27741, + [SMALL_STATE(473)] = 27795, + [SMALL_STATE(474)] = 27849, + [SMALL_STATE(475)] = 27903, + [SMALL_STATE(476)] = 27957, + [SMALL_STATE(477)] = 28011, + [SMALL_STATE(478)] = 28065, + [SMALL_STATE(479)] = 28119, + [SMALL_STATE(480)] = 28173, + [SMALL_STATE(481)] = 28227, + [SMALL_STATE(482)] = 28281, + [SMALL_STATE(483)] = 28369, + [SMALL_STATE(484)] = 28423, + [SMALL_STATE(485)] = 28477, + [SMALL_STATE(486)] = 28531, + [SMALL_STATE(487)] = 28585, + [SMALL_STATE(488)] = 28639, + [SMALL_STATE(489)] = 28693, + [SMALL_STATE(490)] = 28747, + [SMALL_STATE(491)] = 28801, + [SMALL_STATE(492)] = 28855, + [SMALL_STATE(493)] = 28909, + [SMALL_STATE(494)] = 28963, + [SMALL_STATE(495)] = 29017, + [SMALL_STATE(496)] = 29071, + [SMALL_STATE(497)] = 29125, + [SMALL_STATE(498)] = 29179, + [SMALL_STATE(499)] = 29233, + [SMALL_STATE(500)] = 29287, + [SMALL_STATE(501)] = 29341, + [SMALL_STATE(502)] = 29395, + [SMALL_STATE(503)] = 29449, + [SMALL_STATE(504)] = 29503, + [SMALL_STATE(505)] = 29591, + [SMALL_STATE(506)] = 29645, + [SMALL_STATE(507)] = 29699, + [SMALL_STATE(508)] = 29753, + [SMALL_STATE(509)] = 29807, + [SMALL_STATE(510)] = 29861, + [SMALL_STATE(511)] = 29915, + [SMALL_STATE(512)] = 29969, + [SMALL_STATE(513)] = 30023, + [SMALL_STATE(514)] = 30077, + [SMALL_STATE(515)] = 30131, + [SMALL_STATE(516)] = 30185, + [SMALL_STATE(517)] = 30239, + [SMALL_STATE(518)] = 30293, + [SMALL_STATE(519)] = 30347, + [SMALL_STATE(520)] = 30401, + [SMALL_STATE(521)] = 30455, + [SMALL_STATE(522)] = 30509, + [SMALL_STATE(523)] = 30563, + [SMALL_STATE(524)] = 30617, + [SMALL_STATE(525)] = 30671, + [SMALL_STATE(526)] = 30725, + [SMALL_STATE(527)] = 30779, + [SMALL_STATE(528)] = 30833, + [SMALL_STATE(529)] = 30887, + [SMALL_STATE(530)] = 30941, + [SMALL_STATE(531)] = 30995, + [SMALL_STATE(532)] = 31049, + [SMALL_STATE(533)] = 31103, + [SMALL_STATE(534)] = 31157, + [SMALL_STATE(535)] = 31211, + [SMALL_STATE(536)] = 31265, + [SMALL_STATE(537)] = 31319, + [SMALL_STATE(538)] = 31373, + [SMALL_STATE(539)] = 31427, + [SMALL_STATE(540)] = 31481, + [SMALL_STATE(541)] = 31535, + [SMALL_STATE(542)] = 31589, + [SMALL_STATE(543)] = 31643, + [SMALL_STATE(544)] = 31697, + [SMALL_STATE(545)] = 31751, + [SMALL_STATE(546)] = 31805, + [SMALL_STATE(547)] = 31859, + [SMALL_STATE(548)] = 31913, + [SMALL_STATE(549)] = 31967, + [SMALL_STATE(550)] = 32021, + [SMALL_STATE(551)] = 32075, + [SMALL_STATE(552)] = 32129, + [SMALL_STATE(553)] = 32183, + [SMALL_STATE(554)] = 32237, + [SMALL_STATE(555)] = 32291, + [SMALL_STATE(556)] = 32345, + [SMALL_STATE(557)] = 32399, + [SMALL_STATE(558)] = 32453, + [SMALL_STATE(559)] = 32507, + [SMALL_STATE(560)] = 32561, + [SMALL_STATE(561)] = 32615, + [SMALL_STATE(562)] = 32669, + [SMALL_STATE(563)] = 32723, + [SMALL_STATE(564)] = 32777, + [SMALL_STATE(565)] = 32831, + [SMALL_STATE(566)] = 32885, + [SMALL_STATE(567)] = 32939, + [SMALL_STATE(568)] = 32993, + [SMALL_STATE(569)] = 33075, + [SMALL_STATE(570)] = 33130, + [SMALL_STATE(571)] = 33185, + [SMALL_STATE(572)] = 33240, + [SMALL_STATE(573)] = 33295, + [SMALL_STATE(574)] = 33350, + [SMALL_STATE(575)] = 33405, + [SMALL_STATE(576)] = 33481, + [SMALL_STATE(577)] = 33557, + [SMALL_STATE(578)] = 33633, + [SMALL_STATE(579)] = 33709, + [SMALL_STATE(580)] = 33782, + [SMALL_STATE(581)] = 33831, + [SMALL_STATE(582)] = 33880, + [SMALL_STATE(583)] = 33953, + [SMALL_STATE(584)] = 34026, + [SMALL_STATE(585)] = 34075, + [SMALL_STATE(586)] = 34148, + [SMALL_STATE(587)] = 34221, + [SMALL_STATE(588)] = 34294, + [SMALL_STATE(589)] = 34367, + [SMALL_STATE(590)] = 34440, + [SMALL_STATE(591)] = 34513, + [SMALL_STATE(592)] = 34586, + [SMALL_STATE(593)] = 34659, + [SMALL_STATE(594)] = 34732, + [SMALL_STATE(595)] = 34805, + [SMALL_STATE(596)] = 34882, + [SMALL_STATE(597)] = 34955, + [SMALL_STATE(598)] = 35028, + [SMALL_STATE(599)] = 35101, + [SMALL_STATE(600)] = 35174, + [SMALL_STATE(601)] = 35247, + [SMALL_STATE(602)] = 35320, + [SMALL_STATE(603)] = 35393, + [SMALL_STATE(604)] = 35466, + [SMALL_STATE(605)] = 35539, + [SMALL_STATE(606)] = 35612, + [SMALL_STATE(607)] = 35685, + [SMALL_STATE(608)] = 35758, + [SMALL_STATE(609)] = 35831, + [SMALL_STATE(610)] = 35904, + [SMALL_STATE(611)] = 35977, + [SMALL_STATE(612)] = 36050, + [SMALL_STATE(613)] = 36123, + [SMALL_STATE(614)] = 36196, + [SMALL_STATE(615)] = 36269, + [SMALL_STATE(616)] = 36342, + [SMALL_STATE(617)] = 36415, + [SMALL_STATE(618)] = 36488, + [SMALL_STATE(619)] = 36561, + [SMALL_STATE(620)] = 36634, + [SMALL_STATE(621)] = 36707, + [SMALL_STATE(622)] = 36780, + [SMALL_STATE(623)] = 36853, + [SMALL_STATE(624)] = 36930, + [SMALL_STATE(625)] = 36979, + [SMALL_STATE(626)] = 37052, + [SMALL_STATE(627)] = 37125, + [SMALL_STATE(628)] = 37198, + [SMALL_STATE(629)] = 37271, + [SMALL_STATE(630)] = 37319, + [SMALL_STATE(631)] = 37367, + [SMALL_STATE(632)] = 37415, + [SMALL_STATE(633)] = 37463, + [SMALL_STATE(634)] = 37511, + [SMALL_STATE(635)] = 37559, + [SMALL_STATE(636)] = 37607, + [SMALL_STATE(637)] = 37655, + [SMALL_STATE(638)] = 37703, + [SMALL_STATE(639)] = 37751, + [SMALL_STATE(640)] = 37799, + [SMALL_STATE(641)] = 37847, + [SMALL_STATE(642)] = 37895, + [SMALL_STATE(643)] = 37943, + [SMALL_STATE(644)] = 37991, + [SMALL_STATE(645)] = 38039, + [SMALL_STATE(646)] = 38087, + [SMALL_STATE(647)] = 38135, + [SMALL_STATE(648)] = 38183, + [SMALL_STATE(649)] = 38231, + [SMALL_STATE(650)] = 38279, + [SMALL_STATE(651)] = 38327, + [SMALL_STATE(652)] = 38375, + [SMALL_STATE(653)] = 38457, + [SMALL_STATE(654)] = 38539, + [SMALL_STATE(655)] = 38587, + [SMALL_STATE(656)] = 38635, + [SMALL_STATE(657)] = 38683, + [SMALL_STATE(658)] = 38731, + [SMALL_STATE(659)] = 38779, + [SMALL_STATE(660)] = 38827, + [SMALL_STATE(661)] = 38875, + [SMALL_STATE(662)] = 38923, + [SMALL_STATE(663)] = 38980, + [SMALL_STATE(664)] = 39051, + [SMALL_STATE(665)] = 39122, + [SMALL_STATE(666)] = 39193, + [SMALL_STATE(667)] = 39264, + [SMALL_STATE(668)] = 39335, + [SMALL_STATE(669)] = 39400, + [SMALL_STATE(670)] = 39457, + [SMALL_STATE(671)] = 39514, + [SMALL_STATE(672)] = 39571, + [SMALL_STATE(673)] = 39628, + [SMALL_STATE(674)] = 39699, + [SMALL_STATE(675)] = 39768, + [SMALL_STATE(676)] = 39825, + [SMALL_STATE(677)] = 39882, + [SMALL_STATE(678)] = 39945, + [SMALL_STATE(679)] = 40008, + [SMALL_STATE(680)] = 40075, + [SMALL_STATE(681)] = 40140, + [SMALL_STATE(682)] = 40207, + [SMALL_STATE(683)] = 40276, + [SMALL_STATE(684)] = 40337, + [SMALL_STATE(685)] = 40394, + [SMALL_STATE(686)] = 40455, + [SMALL_STATE(687)] = 40505, + [SMALL_STATE(688)] = 40553, + [SMALL_STATE(689)] = 40603, + [SMALL_STATE(690)] = 40653, + [SMALL_STATE(691)] = 40699, + [SMALL_STATE(692)] = 40749, + [SMALL_STATE(693)] = 40797, + [SMALL_STATE(694)] = 40845, + [SMALL_STATE(695)] = 40893, + [SMALL_STATE(696)] = 40939, + [SMALL_STATE(697)] = 40988, + [SMALL_STATE(698)] = 41033, + [SMALL_STATE(699)] = 41082, + [SMALL_STATE(700)] = 41131, + [SMALL_STATE(701)] = 41180, + [SMALL_STATE(702)] = 41229, + [SMALL_STATE(703)] = 41308, + [SMALL_STATE(704)] = 41353, + [SMALL_STATE(705)] = 41402, + [SMALL_STATE(706)] = 41466, + [SMALL_STATE(707)] = 41534, + [SMALL_STATE(708)] = 41592, + [SMALL_STATE(709)] = 41646, + [SMALL_STATE(710)] = 41690, + [SMALL_STATE(711)] = 41752, + [SMALL_STATE(712)] = 41806, + [SMALL_STATE(713)] = 41860, + [SMALL_STATE(714)] = 41928, + [SMALL_STATE(715)] = 41994, + [SMALL_STATE(716)] = 42038, + [SMALL_STATE(717)] = 42082, + [SMALL_STATE(718)] = 42150, + [SMALL_STATE(719)] = 42226, + [SMALL_STATE(720)] = 42270, + [SMALL_STATE(721)] = 42318, + [SMALL_STATE(722)] = 42378, + [SMALL_STATE(723)] = 42426, + [SMALL_STATE(724)] = 42480, + [SMALL_STATE(725)] = 42525, + [SMALL_STATE(726)] = 42568, + [SMALL_STATE(727)] = 42611, + [SMALL_STATE(728)] = 42656, + [SMALL_STATE(729)] = 42737, + [SMALL_STATE(730)] = 42784, + [SMALL_STATE(731)] = 42829, + [SMALL_STATE(732)] = 42874, + [SMALL_STATE(733)] = 42919, + [SMALL_STATE(734)] = 43000, + [SMALL_STATE(735)] = 43067, + [SMALL_STATE(736)] = 43112, + [SMALL_STATE(737)] = 43179, + [SMALL_STATE(738)] = 43260, + [SMALL_STATE(739)] = 43305, + [SMALL_STATE(740)] = 43366, + [SMALL_STATE(741)] = 43411, + [SMALL_STATE(742)] = 43474, + [SMALL_STATE(743)] = 43527, + [SMALL_STATE(744)] = 43570, + [SMALL_STATE(745)] = 43627, + [SMALL_STATE(746)] = 43692, + [SMALL_STATE(747)] = 43745, + [SMALL_STATE(748)] = 43792, + [SMALL_STATE(749)] = 43845, + [SMALL_STATE(750)] = 43892, + [SMALL_STATE(751)] = 43973, + [SMALL_STATE(752)] = 44040, + [SMALL_STATE(753)] = 44099, + [SMALL_STATE(754)] = 44152, + [SMALL_STATE(755)] = 44199, + [SMALL_STATE(756)] = 44242, + [SMALL_STATE(757)] = 44286, + [SMALL_STATE(758)] = 44328, + [SMALL_STATE(759)] = 44370, + [SMALL_STATE(760)] = 44412, + [SMALL_STATE(761)] = 44454, + [SMALL_STATE(762)] = 44496, + [SMALL_STATE(763)] = 44540, + [SMALL_STATE(764)] = 44582, + [SMALL_STATE(765)] = 44624, + [SMALL_STATE(766)] = 44704, + [SMALL_STATE(767)] = 44782, + [SMALL_STATE(768)] = 44824, + [SMALL_STATE(769)] = 44902, + [SMALL_STATE(770)] = 44944, + [SMALL_STATE(771)] = 44988, + [SMALL_STATE(772)] = 45066, + [SMALL_STATE(773)] = 45108, + [SMALL_STATE(774)] = 45186, + [SMALL_STATE(775)] = 45264, + [SMALL_STATE(776)] = 45306, + [SMALL_STATE(777)] = 45348, + [SMALL_STATE(778)] = 45390, + [SMALL_STATE(779)] = 45434, + [SMALL_STATE(780)] = 45476, + [SMALL_STATE(781)] = 45518, + [SMALL_STATE(782)] = 45560, + [SMALL_STATE(783)] = 45602, + [SMALL_STATE(784)] = 45644, + [SMALL_STATE(785)] = 45686, + [SMALL_STATE(786)] = 45728, + [SMALL_STATE(787)] = 45770, + [SMALL_STATE(788)] = 45812, + [SMALL_STATE(789)] = 45854, + [SMALL_STATE(790)] = 45896, + [SMALL_STATE(791)] = 45938, + [SMALL_STATE(792)] = 45980, + [SMALL_STATE(793)] = 46022, + [SMALL_STATE(794)] = 46064, + [SMALL_STATE(795)] = 46106, + [SMALL_STATE(796)] = 46148, + [SMALL_STATE(797)] = 46192, + [SMALL_STATE(798)] = 46234, + [SMALL_STATE(799)] = 46276, + [SMALL_STATE(800)] = 46318, + [SMALL_STATE(801)] = 46359, + [SMALL_STATE(802)] = 46400, + [SMALL_STATE(803)] = 46441, + [SMALL_STATE(804)] = 46486, + [SMALL_STATE(805)] = 46565, + [SMALL_STATE(806)] = 46606, + [SMALL_STATE(807)] = 46647, + [SMALL_STATE(808)] = 46722, + [SMALL_STATE(809)] = 46763, + [SMALL_STATE(810)] = 46804, + [SMALL_STATE(811)] = 46883, + [SMALL_STATE(812)] = 46924, + [SMALL_STATE(813)] = 46965, + [SMALL_STATE(814)] = 47006, + [SMALL_STATE(815)] = 47047, + [SMALL_STATE(816)] = 47088, + [SMALL_STATE(817)] = 47129, + [SMALL_STATE(818)] = 47170, + [SMALL_STATE(819)] = 47211, + [SMALL_STATE(820)] = 47252, + [SMALL_STATE(821)] = 47293, + [SMALL_STATE(822)] = 47334, + [SMALL_STATE(823)] = 47375, + [SMALL_STATE(824)] = 47454, + [SMALL_STATE(825)] = 47495, + [SMALL_STATE(826)] = 47540, + [SMALL_STATE(827)] = 47581, + [SMALL_STATE(828)] = 47622, + [SMALL_STATE(829)] = 47663, + [SMALL_STATE(830)] = 47704, + [SMALL_STATE(831)] = 47745, + [SMALL_STATE(832)] = 47786, + [SMALL_STATE(833)] = 47827, + [SMALL_STATE(834)] = 47868, + [SMALL_STATE(835)] = 47909, + [SMALL_STATE(836)] = 47950, + [SMALL_STATE(837)] = 47991, + [SMALL_STATE(838)] = 48032, + [SMALL_STATE(839)] = 48073, + [SMALL_STATE(840)] = 48146, + [SMALL_STATE(841)] = 48216, + [SMALL_STATE(842)] = 48286, + [SMALL_STATE(843)] = 48348, + [SMALL_STATE(844)] = 48410, + [SMALL_STATE(845)] = 48450, + [SMALL_STATE(846)] = 48490, + [SMALL_STATE(847)] = 48530, + [SMALL_STATE(848)] = 48570, + [SMALL_STATE(849)] = 48600, + [SMALL_STATE(850)] = 48625, + [SMALL_STATE(851)] = 48662, + [SMALL_STATE(852)] = 48715, + [SMALL_STATE(853)] = 48744, + [SMALL_STATE(854)] = 48769, + [SMALL_STATE(855)] = 48794, + [SMALL_STATE(856)] = 48847, + [SMALL_STATE(857)] = 48884, + [SMALL_STATE(858)] = 48909, + [SMALL_STATE(859)] = 48962, + [SMALL_STATE(860)] = 48991, + [SMALL_STATE(861)] = 49025, + [SMALL_STATE(862)] = 49053, + [SMALL_STATE(863)] = 49099, + [SMALL_STATE(864)] = 49133, + [SMALL_STATE(865)] = 49176, + [SMALL_STATE(866)] = 49219, + [SMALL_STATE(867)] = 49262, + [SMALL_STATE(868)] = 49293, + [SMALL_STATE(869)] = 49336, + [SMALL_STATE(870)] = 49379, + [SMALL_STATE(871)] = 49423, + [SMALL_STATE(872)] = 49463, + [SMALL_STATE(873)] = 49500, + [SMALL_STATE(874)] = 49537, + [SMALL_STATE(875)] = 49562, + [SMALL_STATE(876)] = 49599, + [SMALL_STATE(877)] = 49636, + [SMALL_STATE(878)] = 49670, + [SMALL_STATE(879)] = 49704, + [SMALL_STATE(880)] = 49726, + [SMALL_STATE(881)] = 49748, + [SMALL_STATE(882)] = 49770, + [SMALL_STATE(883)] = 49793, + [SMALL_STATE(884)] = 49814, + [SMALL_STATE(885)] = 49837, + [SMALL_STATE(886)] = 49864, + [SMALL_STATE(887)] = 49901, + [SMALL_STATE(888)] = 49938, + [SMALL_STATE(889)] = 49963, + [SMALL_STATE(890)] = 49986, + [SMALL_STATE(891)] = 50009, + [SMALL_STATE(892)] = 50030, + [SMALL_STATE(893)] = 50051, + [SMALL_STATE(894)] = 50074, + [SMALL_STATE(895)] = 50091, + [SMALL_STATE(896)] = 50114, + [SMALL_STATE(897)] = 50135, + [SMALL_STATE(898)] = 50156, + [SMALL_STATE(899)] = 50181, + [SMALL_STATE(900)] = 50204, + [SMALL_STATE(901)] = 50223, + [SMALL_STATE(902)] = 50244, + [SMALL_STATE(903)] = 50267, + [SMALL_STATE(904)] = 50304, + [SMALL_STATE(905)] = 50329, + [SMALL_STATE(906)] = 50366, + [SMALL_STATE(907)] = 50396, + [SMALL_STATE(908)] = 50426, + [SMALL_STATE(909)] = 50460, + [SMALL_STATE(910)] = 50494, + [SMALL_STATE(911)] = 50516, + [SMALL_STATE(912)] = 50550, + [SMALL_STATE(913)] = 50584, + [SMALL_STATE(914)] = 50614, + [SMALL_STATE(915)] = 50644, + [SMALL_STATE(916)] = 50674, + [SMALL_STATE(917)] = 50704, + [SMALL_STATE(918)] = 50722, + [SMALL_STATE(919)] = 50752, + [SMALL_STATE(920)] = 50782, + [SMALL_STATE(921)] = 50812, + [SMALL_STATE(922)] = 50846, + [SMALL_STATE(923)] = 50876, + [SMALL_STATE(924)] = 50906, + [SMALL_STATE(925)] = 50924, + [SMALL_STATE(926)] = 50954, + [SMALL_STATE(927)] = 50984, + [SMALL_STATE(928)] = 51006, + [SMALL_STATE(929)] = 51040, + [SMALL_STATE(930)] = 51070, + [SMALL_STATE(931)] = 51104, + [SMALL_STATE(932)] = 51126, + [SMALL_STATE(933)] = 51156, + [SMALL_STATE(934)] = 51190, + [SMALL_STATE(935)] = 51212, + [SMALL_STATE(936)] = 51246, + [SMALL_STATE(937)] = 51269, + [SMALL_STATE(938)] = 51288, + [SMALL_STATE(939)] = 51307, + [SMALL_STATE(940)] = 51326, + [SMALL_STATE(941)] = 51351, + [SMALL_STATE(942)] = 51370, + [SMALL_STATE(943)] = 51393, + [SMALL_STATE(944)] = 51416, + [SMALL_STATE(945)] = 51435, + [SMALL_STATE(946)] = 51454, + [SMALL_STATE(947)] = 51468, + [SMALL_STATE(948)] = 51482, + [SMALL_STATE(949)] = 51496, + [SMALL_STATE(950)] = 51510, + [SMALL_STATE(951)] = 51524, + [SMALL_STATE(952)] = 51542, + [SMALL_STATE(953)] = 51556, + [SMALL_STATE(954)] = 51576, + [SMALL_STATE(955)] = 51590, + [SMALL_STATE(956)] = 51604, + [SMALL_STATE(957)] = 51618, + [SMALL_STATE(958)] = 51632, + [SMALL_STATE(959)] = 51650, + [SMALL_STATE(960)] = 51664, + [SMALL_STATE(961)] = 51688, + [SMALL_STATE(962)] = 51712, + [SMALL_STATE(963)] = 51726, + [SMALL_STATE(964)] = 51746, + [SMALL_STATE(965)] = 51760, + [SMALL_STATE(966)] = 51774, + [SMALL_STATE(967)] = 51788, + [SMALL_STATE(968)] = 51806, + [SMALL_STATE(969)] = 51820, + [SMALL_STATE(970)] = 51838, + [SMALL_STATE(971)] = 51854, + [SMALL_STATE(972)] = 51868, + [SMALL_STATE(973)] = 51882, + [SMALL_STATE(974)] = 51900, + [SMALL_STATE(975)] = 51914, + [SMALL_STATE(976)] = 51928, + [SMALL_STATE(977)] = 51946, + [SMALL_STATE(978)] = 51960, + [SMALL_STATE(979)] = 51978, + [SMALL_STATE(980)] = 51998, + [SMALL_STATE(981)] = 52014, + [SMALL_STATE(982)] = 52036, + [SMALL_STATE(983)] = 52054, + [SMALL_STATE(984)] = 52068, + [SMALL_STATE(985)] = 52086, + [SMALL_STATE(986)] = 52106, + [SMALL_STATE(987)] = 52124, + [SMALL_STATE(988)] = 52142, + [SMALL_STATE(989)] = 52160, + [SMALL_STATE(990)] = 52186, + [SMALL_STATE(991)] = 52200, + [SMALL_STATE(992)] = 52214, + [SMALL_STATE(993)] = 52233, + [SMALL_STATE(994)] = 52252, + [SMALL_STATE(995)] = 52269, + [SMALL_STATE(996)] = 52290, + [SMALL_STATE(997)] = 52303, + [SMALL_STATE(998)] = 52324, + [SMALL_STATE(999)] = 52345, + [SMALL_STATE(1000)] = 52366, + [SMALL_STATE(1001)] = 52391, + [SMALL_STATE(1002)] = 52404, + [SMALL_STATE(1003)] = 52423, + [SMALL_STATE(1004)] = 52442, + [SMALL_STATE(1005)] = 52461, + [SMALL_STATE(1006)] = 52484, + [SMALL_STATE(1007)] = 52509, + [SMALL_STATE(1008)] = 52528, + [SMALL_STATE(1009)] = 52551, + [SMALL_STATE(1010)] = 52574, + [SMALL_STATE(1011)] = 52587, + [SMALL_STATE(1012)] = 52608, + [SMALL_STATE(1013)] = 52631, + [SMALL_STATE(1014)] = 52654, + [SMALL_STATE(1015)] = 52669, + [SMALL_STATE(1016)] = 52688, + [SMALL_STATE(1017)] = 52707, + [SMALL_STATE(1018)] = 52732, + [SMALL_STATE(1019)] = 52745, + [SMALL_STATE(1020)] = 52758, + [SMALL_STATE(1021)] = 52771, + [SMALL_STATE(1022)] = 52788, + [SMALL_STATE(1023)] = 52807, + [SMALL_STATE(1024)] = 52820, + [SMALL_STATE(1025)] = 52835, + [SMALL_STATE(1026)] = 52860, + [SMALL_STATE(1027)] = 52883, + [SMALL_STATE(1028)] = 52900, + [SMALL_STATE(1029)] = 52925, + [SMALL_STATE(1030)] = 52944, + [SMALL_STATE(1031)] = 52967, + [SMALL_STATE(1032)] = 52990, + [SMALL_STATE(1033)] = 53013, + [SMALL_STATE(1034)] = 53038, + [SMALL_STATE(1035)] = 53063, + [SMALL_STATE(1036)] = 53084, + [SMALL_STATE(1037)] = 53109, + [SMALL_STATE(1038)] = 53130, + [SMALL_STATE(1039)] = 53146, + [SMALL_STATE(1040)] = 53162, + [SMALL_STATE(1041)] = 53184, + [SMALL_STATE(1042)] = 53200, + [SMALL_STATE(1043)] = 53220, + [SMALL_STATE(1044)] = 53238, + [SMALL_STATE(1045)] = 53252, + [SMALL_STATE(1046)] = 53268, + [SMALL_STATE(1047)] = 53282, + [SMALL_STATE(1048)] = 53298, + [SMALL_STATE(1049)] = 53312, + [SMALL_STATE(1050)] = 53332, + [SMALL_STATE(1051)] = 53354, + [SMALL_STATE(1052)] = 53370, + [SMALL_STATE(1053)] = 53392, + [SMALL_STATE(1054)] = 53410, + [SMALL_STATE(1055)] = 53424, + [SMALL_STATE(1056)] = 53446, + [SMALL_STATE(1057)] = 53460, + [SMALL_STATE(1058)] = 53476, + [SMALL_STATE(1059)] = 53494, + [SMALL_STATE(1060)] = 53512, + [SMALL_STATE(1061)] = 53534, + [SMALL_STATE(1062)] = 53546, + [SMALL_STATE(1063)] = 53566, + [SMALL_STATE(1064)] = 53584, + [SMALL_STATE(1065)] = 53602, + [SMALL_STATE(1066)] = 53624, + [SMALL_STATE(1067)] = 53646, + [SMALL_STATE(1068)] = 53660, + [SMALL_STATE(1069)] = 53678, + [SMALL_STATE(1070)] = 53696, + [SMALL_STATE(1071)] = 53708, + [SMALL_STATE(1072)] = 53728, + [SMALL_STATE(1073)] = 53747, + [SMALL_STATE(1074)] = 53764, + [SMALL_STATE(1075)] = 53783, + [SMALL_STATE(1076)] = 53800, + [SMALL_STATE(1077)] = 53819, + [SMALL_STATE(1078)] = 53834, + [SMALL_STATE(1079)] = 53849, + [SMALL_STATE(1080)] = 53864, + [SMALL_STATE(1081)] = 53881, + [SMALL_STATE(1082)] = 53898, + [SMALL_STATE(1083)] = 53913, + [SMALL_STATE(1084)] = 53930, + [SMALL_STATE(1085)] = 53949, + [SMALL_STATE(1086)] = 53966, + [SMALL_STATE(1087)] = 53977, + [SMALL_STATE(1088)] = 53994, + [SMALL_STATE(1089)] = 54013, + [SMALL_STATE(1090)] = 54024, + [SMALL_STATE(1091)] = 54041, + [SMALL_STATE(1092)] = 54058, + [SMALL_STATE(1093)] = 54075, + [SMALL_STATE(1094)] = 54092, + [SMALL_STATE(1095)] = 54109, + [SMALL_STATE(1096)] = 54124, + [SMALL_STATE(1097)] = 54139, + [SMALL_STATE(1098)] = 54156, + [SMALL_STATE(1099)] = 54175, + [SMALL_STATE(1100)] = 54190, + [SMALL_STATE(1101)] = 54207, + [SMALL_STATE(1102)] = 54224, + [SMALL_STATE(1103)] = 54241, + [SMALL_STATE(1104)] = 54260, + [SMALL_STATE(1105)] = 54279, + [SMALL_STATE(1106)] = 54296, + [SMALL_STATE(1107)] = 54313, + [SMALL_STATE(1108)] = 54324, + [SMALL_STATE(1109)] = 54340, + [SMALL_STATE(1110)] = 54354, + [SMALL_STATE(1111)] = 54368, + [SMALL_STATE(1112)] = 54382, + [SMALL_STATE(1113)] = 54398, + [SMALL_STATE(1114)] = 54414, + [SMALL_STATE(1115)] = 54428, + [SMALL_STATE(1116)] = 54442, + [SMALL_STATE(1117)] = 54456, + [SMALL_STATE(1118)] = 54466, + [SMALL_STATE(1119)] = 54476, + [SMALL_STATE(1120)] = 54490, + [SMALL_STATE(1121)] = 54504, + [SMALL_STATE(1122)] = 54516, + [SMALL_STATE(1123)] = 54526, + [SMALL_STATE(1124)] = 54536, + [SMALL_STATE(1125)] = 54550, + [SMALL_STATE(1126)] = 54566, + [SMALL_STATE(1127)] = 54582, + [SMALL_STATE(1128)] = 54598, + [SMALL_STATE(1129)] = 54614, + [SMALL_STATE(1130)] = 54630, + [SMALL_STATE(1131)] = 54644, + [SMALL_STATE(1132)] = 54658, + [SMALL_STATE(1133)] = 54670, + [SMALL_STATE(1134)] = 54684, + [SMALL_STATE(1135)] = 54698, + [SMALL_STATE(1136)] = 54712, + [SMALL_STATE(1137)] = 54728, + [SMALL_STATE(1138)] = 54742, + [SMALL_STATE(1139)] = 54756, + [SMALL_STATE(1140)] = 54772, + [SMALL_STATE(1141)] = 54788, + [SMALL_STATE(1142)] = 54802, + [SMALL_STATE(1143)] = 54818, + [SMALL_STATE(1144)] = 54832, + [SMALL_STATE(1145)] = 54846, + [SMALL_STATE(1146)] = 54860, + [SMALL_STATE(1147)] = 54876, + [SMALL_STATE(1148)] = 54890, + [SMALL_STATE(1149)] = 54904, + [SMALL_STATE(1150)] = 54920, + [SMALL_STATE(1151)] = 54936, + [SMALL_STATE(1152)] = 54952, + [SMALL_STATE(1153)] = 54966, + [SMALL_STATE(1154)] = 54982, + [SMALL_STATE(1155)] = 54998, + [SMALL_STATE(1156)] = 55012, + [SMALL_STATE(1157)] = 55026, + [SMALL_STATE(1158)] = 55040, + [SMALL_STATE(1159)] = 55056, + [SMALL_STATE(1160)] = 55070, + [SMALL_STATE(1161)] = 55086, + [SMALL_STATE(1162)] = 55102, + [SMALL_STATE(1163)] = 55118, + [SMALL_STATE(1164)] = 55134, + [SMALL_STATE(1165)] = 55150, + [SMALL_STATE(1166)] = 55166, + [SMALL_STATE(1167)] = 55182, + [SMALL_STATE(1168)] = 55196, + [SMALL_STATE(1169)] = 55206, + [SMALL_STATE(1170)] = 55222, + [SMALL_STATE(1171)] = 55238, + [SMALL_STATE(1172)] = 55252, + [SMALL_STATE(1173)] = 55268, + [SMALL_STATE(1174)] = 55278, + [SMALL_STATE(1175)] = 55292, + [SMALL_STATE(1176)] = 55306, + [SMALL_STATE(1177)] = 55320, + [SMALL_STATE(1178)] = 55334, + [SMALL_STATE(1179)] = 55348, + [SMALL_STATE(1180)] = 55364, + [SMALL_STATE(1181)] = 55377, + [SMALL_STATE(1182)] = 55390, + [SMALL_STATE(1183)] = 55403, + [SMALL_STATE(1184)] = 55416, + [SMALL_STATE(1185)] = 55427, + [SMALL_STATE(1186)] = 55436, + [SMALL_STATE(1187)] = 55445, + [SMALL_STATE(1188)] = 55458, + [SMALL_STATE(1189)] = 55471, + [SMALL_STATE(1190)] = 55484, + [SMALL_STATE(1191)] = 55497, + [SMALL_STATE(1192)] = 55508, + [SMALL_STATE(1193)] = 55521, + [SMALL_STATE(1194)] = 55534, + [SMALL_STATE(1195)] = 55547, + [SMALL_STATE(1196)] = 55556, + [SMALL_STATE(1197)] = 55569, + [SMALL_STATE(1198)] = 55582, + [SMALL_STATE(1199)] = 55595, + [SMALL_STATE(1200)] = 55604, + [SMALL_STATE(1201)] = 55617, + [SMALL_STATE(1202)] = 55630, + [SMALL_STATE(1203)] = 55643, + [SMALL_STATE(1204)] = 55656, + [SMALL_STATE(1205)] = 55669, + [SMALL_STATE(1206)] = 55682, + [SMALL_STATE(1207)] = 55695, + [SMALL_STATE(1208)] = 55708, + [SMALL_STATE(1209)] = 55721, + [SMALL_STATE(1210)] = 55730, + [SMALL_STATE(1211)] = 55743, + [SMALL_STATE(1212)] = 55756, + [SMALL_STATE(1213)] = 55769, + [SMALL_STATE(1214)] = 55782, + [SMALL_STATE(1215)] = 55795, + [SMALL_STATE(1216)] = 55808, + [SMALL_STATE(1217)] = 55821, + [SMALL_STATE(1218)] = 55832, + [SMALL_STATE(1219)] = 55845, + [SMALL_STATE(1220)] = 55858, + [SMALL_STATE(1221)] = 55871, + [SMALL_STATE(1222)] = 55884, + [SMALL_STATE(1223)] = 55895, + [SMALL_STATE(1224)] = 55908, + [SMALL_STATE(1225)] = 55921, + [SMALL_STATE(1226)] = 55934, + [SMALL_STATE(1227)] = 55945, + [SMALL_STATE(1228)] = 55958, + [SMALL_STATE(1229)] = 55969, + [SMALL_STATE(1230)] = 55982, + [SMALL_STATE(1231)] = 55995, + [SMALL_STATE(1232)] = 56008, + [SMALL_STATE(1233)] = 56021, + [SMALL_STATE(1234)] = 56034, + [SMALL_STATE(1235)] = 56047, + [SMALL_STATE(1236)] = 56060, + [SMALL_STATE(1237)] = 56073, + [SMALL_STATE(1238)] = 56086, + [SMALL_STATE(1239)] = 56099, + [SMALL_STATE(1240)] = 56112, + [SMALL_STATE(1241)] = 56125, + [SMALL_STATE(1242)] = 56136, + [SMALL_STATE(1243)] = 56149, + [SMALL_STATE(1244)] = 56162, + [SMALL_STATE(1245)] = 56175, + [SMALL_STATE(1246)] = 56186, + [SMALL_STATE(1247)] = 56199, + [SMALL_STATE(1248)] = 56212, + [SMALL_STATE(1249)] = 56225, + [SMALL_STATE(1250)] = 56238, + [SMALL_STATE(1251)] = 56251, + [SMALL_STATE(1252)] = 56264, + [SMALL_STATE(1253)] = 56277, + [SMALL_STATE(1254)] = 56290, + [SMALL_STATE(1255)] = 56301, + [SMALL_STATE(1256)] = 56312, + [SMALL_STATE(1257)] = 56323, + [SMALL_STATE(1258)] = 56336, + [SMALL_STATE(1259)] = 56349, + [SMALL_STATE(1260)] = 56362, + [SMALL_STATE(1261)] = 56375, + [SMALL_STATE(1262)] = 56388, + [SMALL_STATE(1263)] = 56397, + [SMALL_STATE(1264)] = 56410, + [SMALL_STATE(1265)] = 56423, + [SMALL_STATE(1266)] = 56436, + [SMALL_STATE(1267)] = 56449, + [SMALL_STATE(1268)] = 56462, + [SMALL_STATE(1269)] = 56471, + [SMALL_STATE(1270)] = 56484, + [SMALL_STATE(1271)] = 56497, + [SMALL_STATE(1272)] = 56508, + [SMALL_STATE(1273)] = 56521, + [SMALL_STATE(1274)] = 56534, + [SMALL_STATE(1275)] = 56547, + [SMALL_STATE(1276)] = 56560, + [SMALL_STATE(1277)] = 56573, + [SMALL_STATE(1278)] = 56586, + [SMALL_STATE(1279)] = 56595, + [SMALL_STATE(1280)] = 56608, + [SMALL_STATE(1281)] = 56621, + [SMALL_STATE(1282)] = 56634, + [SMALL_STATE(1283)] = 56643, + [SMALL_STATE(1284)] = 56656, + [SMALL_STATE(1285)] = 56669, + [SMALL_STATE(1286)] = 56682, + [SMALL_STATE(1287)] = 56695, + [SMALL_STATE(1288)] = 56708, + [SMALL_STATE(1289)] = 56717, + [SMALL_STATE(1290)] = 56726, + [SMALL_STATE(1291)] = 56735, + [SMALL_STATE(1292)] = 56748, + [SMALL_STATE(1293)] = 56757, + [SMALL_STATE(1294)] = 56770, + [SMALL_STATE(1295)] = 56783, + [SMALL_STATE(1296)] = 56796, + [SMALL_STATE(1297)] = 56809, + [SMALL_STATE(1298)] = 56822, + [SMALL_STATE(1299)] = 56831, + [SMALL_STATE(1300)] = 56844, + [SMALL_STATE(1301)] = 56857, + [SMALL_STATE(1302)] = 56870, + [SMALL_STATE(1303)] = 56883, + [SMALL_STATE(1304)] = 56896, + [SMALL_STATE(1305)] = 56909, + [SMALL_STATE(1306)] = 56922, + [SMALL_STATE(1307)] = 56935, + [SMALL_STATE(1308)] = 56944, + [SMALL_STATE(1309)] = 56957, + [SMALL_STATE(1310)] = 56970, + [SMALL_STATE(1311)] = 56978, + [SMALL_STATE(1312)] = 56986, + [SMALL_STATE(1313)] = 56994, + [SMALL_STATE(1314)] = 57004, + [SMALL_STATE(1315)] = 57012, + [SMALL_STATE(1316)] = 57020, + [SMALL_STATE(1317)] = 57028, + [SMALL_STATE(1318)] = 57038, + [SMALL_STATE(1319)] = 57046, + [SMALL_STATE(1320)] = 57056, + [SMALL_STATE(1321)] = 57066, + [SMALL_STATE(1322)] = 57074, + [SMALL_STATE(1323)] = 57084, + [SMALL_STATE(1324)] = 57092, + [SMALL_STATE(1325)] = 57100, + [SMALL_STATE(1326)] = 57108, + [SMALL_STATE(1327)] = 57116, + [SMALL_STATE(1328)] = 57124, + [SMALL_STATE(1329)] = 57134, + [SMALL_STATE(1330)] = 57142, + [SMALL_STATE(1331)] = 57150, + [SMALL_STATE(1332)] = 57158, + [SMALL_STATE(1333)] = 57166, + [SMALL_STATE(1334)] = 57174, + [SMALL_STATE(1335)] = 57182, + [SMALL_STATE(1336)] = 57190, + [SMALL_STATE(1337)] = 57200, + [SMALL_STATE(1338)] = 57210, + [SMALL_STATE(1339)] = 57218, + [SMALL_STATE(1340)] = 57228, + [SMALL_STATE(1341)] = 57236, + [SMALL_STATE(1342)] = 57246, + [SMALL_STATE(1343)] = 57256, + [SMALL_STATE(1344)] = 57264, + [SMALL_STATE(1345)] = 57272, + [SMALL_STATE(1346)] = 57282, + [SMALL_STATE(1347)] = 57292, + [SMALL_STATE(1348)] = 57302, + [SMALL_STATE(1349)] = 57312, + [SMALL_STATE(1350)] = 57322, + [SMALL_STATE(1351)] = 57332, + [SMALL_STATE(1352)] = 57342, + [SMALL_STATE(1353)] = 57350, + [SMALL_STATE(1354)] = 57360, + [SMALL_STATE(1355)] = 57370, + [SMALL_STATE(1356)] = 57380, + [SMALL_STATE(1357)] = 57388, + [SMALL_STATE(1358)] = 57396, + [SMALL_STATE(1359)] = 57404, + [SMALL_STATE(1360)] = 57414, + [SMALL_STATE(1361)] = 57422, + [SMALL_STATE(1362)] = 57432, + [SMALL_STATE(1363)] = 57442, + [SMALL_STATE(1364)] = 57450, + [SMALL_STATE(1365)] = 57458, + [SMALL_STATE(1366)] = 57466, + [SMALL_STATE(1367)] = 57476, + [SMALL_STATE(1368)] = 57486, + [SMALL_STATE(1369)] = 57494, + [SMALL_STATE(1370)] = 57502, + [SMALL_STATE(1371)] = 57510, + [SMALL_STATE(1372)] = 57518, + [SMALL_STATE(1373)] = 57526, + [SMALL_STATE(1374)] = 57534, + [SMALL_STATE(1375)] = 57542, + [SMALL_STATE(1376)] = 57552, + [SMALL_STATE(1377)] = 57562, + [SMALL_STATE(1378)] = 57570, + [SMALL_STATE(1379)] = 57578, + [SMALL_STATE(1380)] = 57588, + [SMALL_STATE(1381)] = 57596, + [SMALL_STATE(1382)] = 57604, + [SMALL_STATE(1383)] = 57614, + [SMALL_STATE(1384)] = 57622, + [SMALL_STATE(1385)] = 57630, + [SMALL_STATE(1386)] = 57637, + [SMALL_STATE(1387)] = 57644, + [SMALL_STATE(1388)] = 57651, + [SMALL_STATE(1389)] = 57658, + [SMALL_STATE(1390)] = 57665, + [SMALL_STATE(1391)] = 57672, + [SMALL_STATE(1392)] = 57679, + [SMALL_STATE(1393)] = 57686, + [SMALL_STATE(1394)] = 57693, + [SMALL_STATE(1395)] = 57700, + [SMALL_STATE(1396)] = 57707, + [SMALL_STATE(1397)] = 57714, + [SMALL_STATE(1398)] = 57721, + [SMALL_STATE(1399)] = 57728, + [SMALL_STATE(1400)] = 57735, + [SMALL_STATE(1401)] = 57742, + [SMALL_STATE(1402)] = 57749, + [SMALL_STATE(1403)] = 57756, + [SMALL_STATE(1404)] = 57763, + [SMALL_STATE(1405)] = 57770, + [SMALL_STATE(1406)] = 57777, + [SMALL_STATE(1407)] = 57784, + [SMALL_STATE(1408)] = 57791, + [SMALL_STATE(1409)] = 57798, + [SMALL_STATE(1410)] = 57805, + [SMALL_STATE(1411)] = 57812, + [SMALL_STATE(1412)] = 57819, + [SMALL_STATE(1413)] = 57826, + [SMALL_STATE(1414)] = 57833, + [SMALL_STATE(1415)] = 57840, + [SMALL_STATE(1416)] = 57847, + [SMALL_STATE(1417)] = 57854, + [SMALL_STATE(1418)] = 57861, + [SMALL_STATE(1419)] = 57868, + [SMALL_STATE(1420)] = 57875, + [SMALL_STATE(1421)] = 57882, + [SMALL_STATE(1422)] = 57889, + [SMALL_STATE(1423)] = 57896, + [SMALL_STATE(1424)] = 57903, + [SMALL_STATE(1425)] = 57910, + [SMALL_STATE(1426)] = 57917, + [SMALL_STATE(1427)] = 57924, + [SMALL_STATE(1428)] = 57931, + [SMALL_STATE(1429)] = 57938, + [SMALL_STATE(1430)] = 57945, + [SMALL_STATE(1431)] = 57952, + [SMALL_STATE(1432)] = 57959, + [SMALL_STATE(1433)] = 57966, + [SMALL_STATE(1434)] = 57973, + [SMALL_STATE(1435)] = 57980, + [SMALL_STATE(1436)] = 57987, + [SMALL_STATE(1437)] = 57994, + [SMALL_STATE(1438)] = 58001, + [SMALL_STATE(1439)] = 58008, + [SMALL_STATE(1440)] = 58015, + [SMALL_STATE(1441)] = 58022, + [SMALL_STATE(1442)] = 58029, + [SMALL_STATE(1443)] = 58036, + [SMALL_STATE(1444)] = 58043, + [SMALL_STATE(1445)] = 58050, + [SMALL_STATE(1446)] = 58057, + [SMALL_STATE(1447)] = 58064, + [SMALL_STATE(1448)] = 58071, + [SMALL_STATE(1449)] = 58078, + [SMALL_STATE(1450)] = 58085, + [SMALL_STATE(1451)] = 58092, + [SMALL_STATE(1452)] = 58099, + [SMALL_STATE(1453)] = 58106, + [SMALL_STATE(1454)] = 58113, + [SMALL_STATE(1455)] = 58120, + [SMALL_STATE(1456)] = 58127, + [SMALL_STATE(1457)] = 58134, + [SMALL_STATE(1458)] = 58141, + [SMALL_STATE(1459)] = 58148, + [SMALL_STATE(1460)] = 58155, + [SMALL_STATE(1461)] = 58162, + [SMALL_STATE(1462)] = 58169, + [SMALL_STATE(1463)] = 58176, + [SMALL_STATE(1464)] = 58183, + [SMALL_STATE(1465)] = 58190, + [SMALL_STATE(1466)] = 58197, + [SMALL_STATE(1467)] = 58204, + [SMALL_STATE(1468)] = 58211, + [SMALL_STATE(1469)] = 58218, + [SMALL_STATE(1470)] = 58225, + [SMALL_STATE(1471)] = 58232, + [SMALL_STATE(1472)] = 58239, + [SMALL_STATE(1473)] = 58246, + [SMALL_STATE(1474)] = 58253, + [SMALL_STATE(1475)] = 58260, + [SMALL_STATE(1476)] = 58267, + [SMALL_STATE(1477)] = 58274, + [SMALL_STATE(1478)] = 58281, + [SMALL_STATE(1479)] = 58288, + [SMALL_STATE(1480)] = 58295, + [SMALL_STATE(1481)] = 58302, + [SMALL_STATE(1482)] = 58309, + [SMALL_STATE(1483)] = 58316, + [SMALL_STATE(1484)] = 58323, + [SMALL_STATE(1485)] = 58330, + [SMALL_STATE(1486)] = 58337, + [SMALL_STATE(1487)] = 58344, + [SMALL_STATE(1488)] = 58351, + [SMALL_STATE(1489)] = 58358, + [SMALL_STATE(1490)] = 58365, + [SMALL_STATE(1491)] = 58372, + [SMALL_STATE(1492)] = 58379, + [SMALL_STATE(1493)] = 58386, + [SMALL_STATE(1494)] = 58393, + [SMALL_STATE(1495)] = 58400, + [SMALL_STATE(1496)] = 58407, + [SMALL_STATE(1497)] = 58414, + [SMALL_STATE(1498)] = 58421, + [SMALL_STATE(1499)] = 58428, + [SMALL_STATE(1500)] = 58435, + [SMALL_STATE(1501)] = 58442, + [SMALL_STATE(1502)] = 58449, + [SMALL_STATE(1503)] = 58456, + [SMALL_STATE(1504)] = 58463, + [SMALL_STATE(1505)] = 58470, + [SMALL_STATE(1506)] = 58477, + [SMALL_STATE(1507)] = 58484, + [SMALL_STATE(1508)] = 58491, + [SMALL_STATE(1509)] = 58498, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -72522,1546 +72711,1551 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1158), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(996), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(346), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(199), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1315), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1317), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1318), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(440), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1113), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1013), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(389), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(388), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(177), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1314), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1315), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1316), [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(329), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(300), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(458), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(380), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1488), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(266), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(299), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(456), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(333), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1496), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(281), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1486), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1485), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1484), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(353), - [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(409), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1483), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1494), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1493), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1492), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(381), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(397), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1491), [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), - [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(366), - [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(865), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(317), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(869), [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(178), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795), - [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(795), + [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(760), + [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(760), [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), - [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(320), - [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(287), - [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(464), - [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(323), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1471), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1493), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1474), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907), + [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(373), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(298), + [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(448), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(325), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1479), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1501), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1482), + [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1312), - [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1), - [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(414), - [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1158), - [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(996), - [120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(155), - [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(346), - [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(84), - [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(345), - [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(199), - [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(224), - [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(168), - [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1315), - [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1317), - [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1318), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(320), - [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(287), - [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(464), - [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(323), - [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1471), - [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(273), - [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(66), - [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(589), - [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(160), - [177] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(166), - [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(363), - [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1493), - [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1485), - [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1484), - [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(353), - [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(409), - [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1474), - [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(351), - [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(366), - [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(865), - [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(178), - [213] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(795), - [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(795), - [219] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(134), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), - [224] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(922), - [227] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(929), - [230] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(329), - [233] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(300), - [236] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(458), - [239] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(380), - [242] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1488), - [245] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(266), - [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(67), - [251] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1486), - [254] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1483), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1366), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(688), + [109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(440), + [112] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1113), + [115] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1013), + [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(153), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(389), + [124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(111), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(388), + [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(186), + [133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(225), + [136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(177), + [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1314), + [142] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1315), + [145] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1316), + [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(373), + [151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(298), + [154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(448), + [157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(325), + [160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1479), + [163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(269), + [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(67), + [169] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(589), + [172] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(155), + [175] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(161), + [178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(346), + [181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1501), + [184] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1493), + [187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1492), + [190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(381), + [193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(397), + [196] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1482), + [199] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(351), + [202] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(317), + [205] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(869), + [208] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(178), + [211] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(760), + [214] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(760), + [217] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(134), + [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), + [222] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(926), + [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(907), + [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1360), + [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1), + [236] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(329), + [239] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(299), + [242] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(456), + [245] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(333), + [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1496), + [251] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(281), + [254] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(66), + [257] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1494), + [260] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2), SHIFT_REPEAT(1491), + [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(687), [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), - [267] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(206), + [267] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(191), [270] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, .production_id = 1), REDUCE(sym_primary_expression, 1, .production_id = 1), - [273] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(349), - [276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(685), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [273] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(337), + [276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(694), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), [280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, .production_id = 1), - [282] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(627), - [285] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(202), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [290] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(363), - [293] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(356), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627), + [282] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(615), + [285] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(189), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [290] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(346), + [293] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1), SHIFT(338), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615), [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, .production_id = 1), [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(868), [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, .production_id = 1), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658), - [306] = {.entry = {.count = 1, .reusable = false}}, SHIFT(658), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), + [306] = {.entry = {.count = 1, .reusable = false}}, SHIFT(649), [308] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), - [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(435), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(545), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1014), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(473), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(555), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(549), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(743), - [382] = {.entry = {.count = 1, .reusable = false}}, SHIFT(741), - [384] = {.entry = {.count = 1, .reusable = false}}, SHIFT(347), - [386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(564), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(490), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(558), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(540), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), - [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), - [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(470), - [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(507), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), + [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(429), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533), + [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(558), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), + [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), + [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), + [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), + [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), + [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), + [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), + [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(997), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), + [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438), + [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), + [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), + [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), + [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), - [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1029), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), - [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466), - [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), - [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), - [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), - [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), - [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), - [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), - [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), - [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), - [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1343), - [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), - [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), - [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1321), - [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [570] = {.entry = {.count = 1, .reusable = false}}, SHIFT(771), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [488] = {.entry = {.count = 1, .reusable = false}}, SHIFT(730), + [490] = {.entry = {.count = 1, .reusable = false}}, SHIFT(727), + [492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(323), + [494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), + [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486), + [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(995), + [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), + [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561), + [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), + [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(564), + [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(563), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557), + [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), + [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), + [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(507), + [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1318), + [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1383), + [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [570] = {.entry = {.count = 1, .reusable = false}}, SHIFT(759), [572] = {.entry = {.count = 1, .reusable = false}}, SHIFT(589), - [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), [580] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, .production_id = 1), REDUCE(sym_list_splat_pattern, 2, .production_id = 8), - [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(650), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(656), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, .production_id = 8), - [589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(627), - [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(615), + [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, .production_id = 8), [595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(600), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), [605] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), - [607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), - [609] = {.entry = {.count = 1, .reusable = false}}, SHIFT(805), - [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [613] = {.entry = {.count = 1, .reusable = false}}, SHIFT(807), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(805), - [625] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), - [631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(374), + [607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(809), + [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(802), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(617), + [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(809), + [623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), + [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915), + [629] = {.entry = {.count = 1, .reusable = false}}, SHIFT(332), + [631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(386), [633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 1), - [635] = {.entry = {.count = 1, .reusable = false}}, SHIFT(349), - [637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(356), - [639] = {.entry = {.count = 1, .reusable = false}}, SHIFT(727), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(749), - [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), - [647] = {.entry = {.count = 1, .reusable = false}}, SHIFT(737), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [651] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337), - [653] = {.entry = {.count = 1, .reusable = false}}, SHIFT(866), + [635] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337), + [637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), + [639] = {.entry = {.count = 1, .reusable = false}}, SHIFT(754), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), + [647] = {.entry = {.count = 1, .reusable = false}}, SHIFT(729), + [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [651] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371), + [653] = {.entry = {.count = 1, .reusable = false}}, SHIFT(864), [655] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), [657] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), - [659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(742), - [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(621), - [665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(751), - [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, .production_id = 16), - [669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, .production_id = 16), - [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), - [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), - [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(750), - [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(777), - [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, .production_id = 7), - [683] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, .production_id = 7), - [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(791), - [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), - [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, .production_id = 16), - [691] = {.entry = {.count = 1, .reusable = false}}, SHIFT(694), - [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1379), - [697] = {.entry = {.count = 1, .reusable = false}}, SHIFT(690), - [699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(811), - [701] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [703] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, .production_id = 7), - [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1405), - [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652), - [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1459), - [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(755), - [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(756), + [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(738), + [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(796), + [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(735), + [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(623), + [673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(731), + [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, .production_id = 16), + [677] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, .production_id = 16), + [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [681] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724), + [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, .production_id = 7), + [687] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, .production_id = 7), + [689] = {.entry = {.count = 1, .reusable = false}}, SHIFT(692), + [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1442), + [695] = {.entry = {.count = 1, .reusable = false}}, SHIFT(693), + [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(786), + [699] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, .production_id = 7), + [703] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, .production_id = 16), + [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1394), + [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(811), + [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1389), + [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), + [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), [715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 3, .production_id = 50), - [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), - [719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(360), - [721] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1), - [723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(803), - [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), - [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1423), - [729] = {.entry = {.count = 1, .reusable = false}}, SHIFT(801), - [731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, .production_id = 24), - [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687), - [737] = {.entry = {.count = 1, .reusable = false}}, SHIFT(733), - [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(826), - [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396), - [743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(736), - [745] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(781), - [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1419), - [751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(381), - [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), - [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(813), - [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), - [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), - [761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, .production_id = 16), - [763] = {.entry = {.count = 1, .reusable = false}}, SHIFT(386), - [765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), - [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(792), - [769] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, .production_id = 7), - [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(796), - [773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, .production_id = 141), - [775] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, .production_id = 141), - [777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(863), - [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(645), - [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(756), - [783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(776), - [785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(758), - [787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, .production_id = 123), - [789] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, .production_id = 123), - [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(692), - [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(778), - [795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(804), - [797] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1), - [799] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, .production_id = 98), - [801] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, .production_id = 98), - [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(806), - [805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(808), - [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632), - [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(815), - [811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, .production_id = 122), - [813] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, .production_id = 122), - [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(779), - [817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), - [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), - [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(749), + [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650), + [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1468), + [725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(747), + [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), + [731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(825), + [733] = {.entry = {.count = 1, .reusable = false}}, SHIFT(803), + [735] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838), + [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1405), + [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(757), + [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1436), + [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, .production_id = 24), + [747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(342), + [749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1), + [751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(380), + [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), + [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(808), + [757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, .production_id = 141), + [759] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, .production_id = 141), + [761] = {.entry = {.count = 1, .reusable = false}}, SHIFT(865), + [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), + [765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793), + [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(790), + [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(767), + [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1), + [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), + [775] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, .production_id = 16), + [777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(379), + [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(690), + [783] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, .production_id = 123), + [785] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, .production_id = 123), + [787] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, .production_id = 122), + [789] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, .production_id = 122), + [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(818), + [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(815), + [795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, .production_id = 98), + [797] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, .production_id = 98), + [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(794), + [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(806), + [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), + [805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(805), + [807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(779), + [809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(782), + [811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), + [813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(784), + [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648), + [817] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, .production_id = 7), + [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), + [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), [823] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 3, .production_id = 16), - [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, .production_id = 7), - [827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, .production_id = 33), - [829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), - [831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(633), - [833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(774), - [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(819), - [837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(824), - [839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), - [841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(833), - [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(797), - [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(782), - [847] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, .production_id = 56), - [849] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, .production_id = 56), - [851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1446), - [853] = {.entry = {.count = 1, .reusable = false}}, SHIFT(311), - [855] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1443), - [857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, .production_id = 81), - [859] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, .production_id = 81), - [861] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1412), - [863] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1463), - [865] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1500), - [867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 40), - [869] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, .production_id = 40), - [871] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1487), - [873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, .production_id = 70), - [875] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, .production_id = 70), - [877] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), - [879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, .production_id = 69), - [881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), - [883] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1), - [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), - [889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 68), - [891] = {.entry = {.count = 1, .reusable = false}}, SHIFT(764), - [893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [895] = {.entry = {.count = 1, .reusable = false}}, SHIFT(780), - [897] = {.entry = {.count = 1, .reusable = false}}, SHIFT(340), - [899] = {.entry = {.count = 1, .reusable = false}}, SHIFT(867), - [901] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 69), - [905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, .production_id = 28), - [907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, .production_id = 95), - [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, .production_id = 29), - [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2), - [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1377), - [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1424), - [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3), - [919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, .production_id = 10), - [921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), - [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), - [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3), - [931] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3), - [933] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2), - [935] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2), - [937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), - [939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), - [941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1494), - [943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 76), - [945] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 76), - [947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370), - [949] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4), - [951] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4), - [953] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 102), - [959] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 102), - [961] = {.entry = {.count = 1, .reusable = false}}, SHIFT(361), - [963] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1), - [965] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1), - [967] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 54), - [969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 54), - [971] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 77), - [973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 77), - [975] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2), - [977] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2), - [979] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2), SHIFT_REPEAT(1487), - [982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), - [984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), - [986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1429), - [988] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2), SHIFT_REPEAT(1463), - [991] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2), - [993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2), - [995] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2), SHIFT_REPEAT(311), - [998] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2), SHIFT_REPEAT(304), - [1001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), - [1003] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), - [1005] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), SHIFT_REPEAT(370), - [1008] = {.entry = {.count = 1, .reusable = false}}, SHIFT(438), - [1010] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437), - [1012] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), - [1016] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), SHIFT_REPEAT(361), - [1019] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, .production_id = 163), - [1021] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, .production_id = 163), - [1023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1), - [1025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1), - [1027] = {.entry = {.count = 1, .reusable = false}}, SHIFT(746), - [1029] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, .production_id = 165), - [1031] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, .production_id = 165), - [1033] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, .production_id = 164), - [1035] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, .production_id = 164), - [1037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, .production_id = 130), - [1039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, .production_id = 130), - [1041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, .production_id = 81), - [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, .production_id = 81), - [1045] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, .production_id = 56), - [1047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, .production_id = 56), - [1049] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, .production_id = 147), - [1051] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, .production_id = 147), - [1053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2), - [1055] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2), - [1057] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2), SHIFT_REPEAT(746), - [1060] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2), SHIFT_REPEAT(725), - [1063] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, .production_id = 148), - [1065] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, .production_id = 148), - [1067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, .production_id = 157), - [1069] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, .production_id = 157), - [1071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, .production_id = 158), - [1073] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, .production_id = 158), - [1075] = {.entry = {.count = 1, .reusable = false}}, SHIFT(725), - [1077] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1291), - [1079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1), - [1081] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1), REDUCE(sym_primary_expression, 1), - [1084] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1), - [1086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), - [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1), - [1090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1), - [1092] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 105), - [1094] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 105), - [1096] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, .production_id = 77), - [1098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, .production_id = 77), - [1100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, .production_id = 81), - [1102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, .production_id = 81), - [1104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 80), - [1106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 80), - [1108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 129), - [1110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 129), - [1112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1210), - [1114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621), - [1116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, .production_id = 55), - [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, .production_id = 55), - [1120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 125), - [1122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 125), - [1124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 143), - [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 143), - [1128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, .production_id = 54), - [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, .production_id = 54), - [1132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, .production_id = 56), - [1134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, .production_id = 56), - [1136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 74), - [1138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 74), - [1140] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1), REDUCE(sym_list_splat_pattern, 2, .production_id = 9), - [1143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [1145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, .production_id = 9), - [1147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, .production_id = 9), - [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, .production_id = 24), - [1151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, .production_id = 50), - [1153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, .production_id = 150), - [1155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, .production_id = 150), - [1157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, .production_id = 56), - [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, .production_id = 56), - [1161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, .production_id = 81), - [1163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, .production_id = 81), - [1165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, .production_id = 151), - [1167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, .production_id = 151), - [1169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2), - [1171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2), REDUCE(sym_list, 2), - [1174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2), - [1176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2), - [1178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2), - [1180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), - [1182] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2), REDUCE(sym_tuple, 2), - [1185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2), - [1187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2), - [1189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2), - [1191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, .production_id = 159), - [1193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, .production_id = 159), + [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, .production_id = 33), + [827] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, .production_id = 7), + [829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), + [831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), + [833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(776), + [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(645), + [837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(819), + [839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(821), + [841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(780), + [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634), + [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(775), + [847] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, .production_id = 56), + [849] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, .production_id = 56), + [851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1439), + [853] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1429), + [855] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1503), + [857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1), + [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, .production_id = 70), + [863] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, .production_id = 70), + [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, .production_id = 40), + [867] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, .production_id = 40), + [869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, .production_id = 69), + [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [873] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, .production_id = 81), + [875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, .production_id = 81), + [877] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1452), + [879] = {.entry = {.count = 1, .reusable = false}}, SHIFT(277), + [881] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1449), + [883] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1495), + [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [887] = {.entry = {.count = 1, .reusable = false}}, SHIFT(267), + [889] = {.entry = {.count = 1, .reusable = false}}, SHIFT(778), + [891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [893] = {.entry = {.count = 1, .reusable = false}}, SHIFT(762), + [895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [897] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370), + [899] = {.entry = {.count = 1, .reusable = false}}, SHIFT(866), + [901] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, .production_id = 10), + [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 68), + [911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, .production_id = 29), + [915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, .production_id = 28), + [917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 69), + [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1395), + [921] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, .production_id = 95), + [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425), + [925] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2), + [927] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3), + [929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2), + [931] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2), + [933] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2), SHIFT_REPEAT(267), + [936] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 76), + [938] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 76), + [940] = {.entry = {.count = 1, .reusable = false}}, SHIFT(318), + [942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 77), + [944] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 77), + [946] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2), + [948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2), + [950] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2), SHIFT_REPEAT(1495), + [953] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2), SHIFT_REPEAT(277), + [956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2), + [958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2), + [960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [962] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [964] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3), + [966] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3), + [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), + [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1502), + [974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467), + [976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1414), + [980] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 54), + [982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 54), + [984] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365), + [986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4), + [988] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4), + [990] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1), + [992] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1), + [994] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2), SHIFT_REPEAT(1429), + [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 102), + [999] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 102), + [1001] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), + [1003] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), + [1005] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), SHIFT_REPEAT(365), + [1008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), + [1010] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 100), SHIFT_REPEAT(318), + [1013] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), + [1015] = {.entry = {.count = 1, .reusable = false}}, SHIFT(442), + [1017] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [1019] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1), + [1021] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1), + [1023] = {.entry = {.count = 1, .reusable = false}}, SHIFT(733), + [1025] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, .production_id = 163), + [1027] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, .production_id = 163), + [1029] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, .production_id = 164), + [1031] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, .production_id = 164), + [1033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, .production_id = 130), + [1035] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, .production_id = 130), + [1037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, .production_id = 148), + [1039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, .production_id = 148), + [1041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, .production_id = 147), + [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, .production_id = 147), + [1045] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1258), + [1047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, .production_id = 157), + [1049] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, .production_id = 157), + [1051] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, .production_id = 158), + [1053] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, .production_id = 158), + [1055] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, .production_id = 165), + [1057] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, .production_id = 165), + [1059] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, .production_id = 81), + [1061] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, .production_id = 81), + [1063] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2), + [1065] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2), + [1067] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2), SHIFT_REPEAT(728), + [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, .production_id = 56), + [1072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, .production_id = 56), + [1074] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2), SHIFT_REPEAT(733), + [1077] = {.entry = {.count = 1, .reusable = false}}, SHIFT(728), + [1079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, .production_id = 81), + [1081] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, .production_id = 81), + [1083] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1), + [1085] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1), REDUCE(sym_list_splat_pattern, 2, .production_id = 9), + [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1), + [1090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [1092] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, .production_id = 9), + [1094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, .production_id = 9), + [1096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 74), + [1098] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 74), + [1100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 125), + [1102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 125), + [1104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, .production_id = 77), + [1106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, .production_id = 77), + [1108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, .production_id = 55), + [1110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, .production_id = 55), + [1112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 129), + [1114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 129), + [1116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, .production_id = 50), + [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), + [1120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 105), + [1122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 105), + [1124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, .production_id = 56), + [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, .production_id = 56), + [1128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 80), + [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 80), + [1132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, .production_id = 54), + [1134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, .production_id = 54), + [1136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 143), + [1138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 143), + [1140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, .production_id = 24), + [1142] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1), REDUCE(sym_primary_expression, 1), + [1145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [1147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1), + [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1), + [1151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1209), + [1153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2), + [1155] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2), REDUCE(sym_list, 2), + [1158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2), + [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2), + [1162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2), + [1164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, .production_id = 159), + [1166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, .production_id = 159), + [1168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2), + [1170] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2), REDUCE(sym_tuple, 2), + [1173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2), + [1175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2), + [1177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2), + [1179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, .production_id = 151), + [1181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, .production_id = 151), + [1183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, .production_id = 150), + [1185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, .production_id = 150), + [1187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, .production_id = 81), + [1189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, .production_id = 81), + [1191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, .production_id = 56), + [1193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, .production_id = 56), [1195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 4, .production_id = 134), [1197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 4, .production_id = 134), - [1199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, .production_id = 162), - [1201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, .production_id = 162), - [1203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 118), - [1205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, .production_id = 118), - [1207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 126), - [1209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 126), - [1211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 153), - [1213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 153), - [1215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, .production_id = 124), - [1217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, .production_id = 124), - [1219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 137), - [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 137), - [1223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 161), - [1225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 161), - [1227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 146), - [1229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 146), - [1231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, .production_id = 81), - [1233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, .production_id = 81), - [1235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 156), - [1237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 156), - [1239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 155), - [1241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 155), - [1243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 154), - [1245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 154), - [1247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 152), - [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 152), - [1251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, .production_id = 117), - [1253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 117), - [1255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, .production_id = 116), - [1257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 116), - [1259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 115), - [1261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 115), - [1263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 114), - [1265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 114), - [1267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, .production_id = 81), - [1269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, .production_id = 81), - [1271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 145), - [1273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 145), - [1275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 144), - [1277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 144), - [1279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, .production_id = 56), - [1281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, .production_id = 56), - [1283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, .production_id = 56), - [1285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, .production_id = 56), - [1287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 128), - [1289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 128), - [1291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, .production_id = 60), - [1293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, .production_id = 60), - [1295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, .production_id = 59), - [1297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, .production_id = 59), - [1299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 142), - [1301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 142), - [1303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 75), - [1305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 75), + [1199] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 90), + [1201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 90), + [1203] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 145), + [1205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 145), + [1207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 144), + [1209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 144), + [1211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, .production_id = 56), + [1213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, .production_id = 56), + [1215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 142), + [1217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 142), + [1219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, .production_id = 139), + [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 139), + [1223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 138), + [1225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 138), + [1227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, .production_id = 64), + [1229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, .production_id = 64), + [1231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 137), + [1233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 137), + [1235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, .production_id = 81), + [1237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, .production_id = 81), + [1239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, .production_id = 81), + [1241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, .production_id = 81), + [1243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 128), + [1245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 128), + [1247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, .production_id = 60), + [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, .production_id = 60), + [1251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, .production_id = 162), + [1253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, .production_id = 162), + [1255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 127), + [1257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 127), + [1259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 126), + [1261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 126), + [1263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, .production_id = 124), + [1265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, .production_id = 124), + [1267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, .production_id = 118), + [1269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 118), + [1271] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, .production_id = 117), + [1273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 117), + [1275] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, .production_id = 116), + [1277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 116), + [1279] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 115), + [1281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 115), + [1283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 114), + [1285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 114), + [1287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 161), + [1289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 161), + [1291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, .production_id = 56), + [1293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, .production_id = 56), + [1295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 156), + [1297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 156), + [1299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 75), + [1301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 75), + [1303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, .production_id = 155), + [1305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, .production_id = 155), [1307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 6, .production_id = 106), [1309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 6, .production_id = 106), - [1311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, .production_id = 78), - [1313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, .production_id = 78), - [1315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, .production_id = 139), - [1317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 139), - [1319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 104), - [1321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 104), - [1323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 79), - [1325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 79), - [1327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 138), - [1329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 138), - [1331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, .production_id = 127), - [1333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, .production_id = 127), + [1311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 152), + [1313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 152), + [1315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, .production_id = 78), + [1317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, .production_id = 78), + [1319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, .production_id = 57), + [1321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, .production_id = 57), + [1323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, .production_id = 153), + [1325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, .production_id = 153), + [1327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, .production_id = 104), + [1329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, .production_id = 104), + [1331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 79), + [1333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 79), [1335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 6, .production_id = 103), [1337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 6, .production_id = 103), - [1339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, .production_id = 57), - [1341] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, .production_id = 57), - [1343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 101), - [1345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 101), - [1347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, .production_id = 82), - [1349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, .production_id = 82), - [1351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 99), - [1353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 99), - [1355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, .production_id = 64), - [1357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, .production_id = 64), - [1359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 91), - [1361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 91), - [1363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 90), - [1365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 90), - [1367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 89), - [1369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 89), - [1371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, .production_id = 87), - [1373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, .production_id = 87), - [1375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, .production_id = 19), - [1377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, .production_id = 19), - [1379] = {.entry = {.count = 1, .reusable = false}}, SHIFT(745), + [1339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 101), + [1341] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 101), + [1343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 99), + [1345] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 99), + [1347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, .production_id = 19), + [1349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, .production_id = 19), + [1351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, .production_id = 82), + [1353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, .production_id = 82), + [1355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, .production_id = 59), + [1357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, .production_id = 59), + [1359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 146), + [1361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 146), + [1363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 91), + [1365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 91), + [1367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 154), + [1369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 154), + [1371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 89), + [1373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 89), + [1375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, .production_id = 87), + [1377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, .production_id = 87), + [1379] = {.entry = {.count = 1, .reusable = false}}, SHIFT(740), [1381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_separator, 1), - [1383] = {.entry = {.count = 1, .reusable = false}}, SHIFT(740), + [1383] = {.entry = {.count = 1, .reusable = false}}, SHIFT(732), [1385] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), [1387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), [1389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), - [1391] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), SHIFT_REPEAT(905), - [1394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), - [1396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), - [1398] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(919), - [1401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2), - [1403] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2), - [1405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2), - [1407] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2), - [1409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(595), - [1411] = {.entry = {.count = 1, .reusable = false}}, SHIFT(579), - [1413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(607), - [1415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(608), - [1417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, .production_id = 2), - [1419] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, .production_id = 2), - [1421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, .production_id = 2), - [1423] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, .production_id = 2), - [1425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, .production_id = 20), - [1427] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, .production_id = 20), - [1429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(858), - [1431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(856), - [1433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218), - [1435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, .production_id = 20), - [1437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, .production_id = 20), - [1439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, .production_id = 51), - [1441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, .production_id = 51), + [1391] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), SHIFT_REPEAT(916), + [1394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2), + [1396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2), + [1398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2), + [1400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2), + [1402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), + [1404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), + [1406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(913), + [1409] = {.entry = {.count = 1, .reusable = false}}, SHIFT(592), + [1411] = {.entry = {.count = 1, .reusable = false}}, SHIFT(588), + [1413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(585), + [1415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(625), + [1417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, .production_id = 20), + [1419] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, .production_id = 20), + [1421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, .production_id = 20), + [1423] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, .production_id = 20), + [1425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, .production_id = 2), + [1427] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, .production_id = 2), + [1429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(859), + [1431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(852), + [1433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), + [1435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, .production_id = 2), + [1437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, .production_id = 2), + [1439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3), + [1441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3), [1443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, .production_id = 25), [1445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, .production_id = 25), [1447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, .production_id = 61), [1449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, .production_id = 61), [1451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, .production_id = 61), [1453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, .production_id = 61), - [1455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, .production_id = 61), - [1457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, .production_id = 61), - [1459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1398), - [1461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [1463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [1465] = {.entry = {.count = 1, .reusable = false}}, SHIFT(586), - [1467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585), - [1469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580), - [1471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599), - [1473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(597), - [1475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), - [1477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596), - [1479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [1481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(586), - [1483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1386), - [1485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590), - [1487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), - [1489] = {.entry = {.count = 1, .reusable = false}}, SHIFT(580), - [1491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), - [1493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, .production_id = 93), - [1495] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, .production_id = 93), - [1497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, .production_id = 51), - [1499] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, .production_id = 51), - [1501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, .production_id = 93), - [1503] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, .production_id = 93), - [1505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, .production_id = 51), - [1507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, .production_id = 51), - [1509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, .production_id = 31), - [1511] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, .production_id = 31), - [1513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, .production_id = 61), - [1515] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, .production_id = 61), - [1517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, .production_id = 51), - [1519] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, .production_id = 51), - [1521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, .production_id = 17), - [1523] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, .production_id = 17), - [1525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, .production_id = 67), - [1527] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, .production_id = 67), - [1529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, .production_id = 31), - [1531] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, .production_id = 31), - [1533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, .production_id = 31), - [1535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, .production_id = 31), - [1537] = {.entry = {.count = 1, .reusable = false}}, SHIFT(593), - [1539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594), - [1541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(578), - [1543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(601), - [1545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603), - [1547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604), - [1549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(593), - [1551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1397), - [1553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605), - [1555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614), - [1557] = {.entry = {.count = 1, .reusable = false}}, SHIFT(578), - [1559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(575), - [1561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, .production_id = 31), - [1563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, .production_id = 31), - [1565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2), - [1567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2), - [1569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2), - [1571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2), - [1573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, .production_id = 25), - [1575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, .production_id = 25), + [1455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, .production_id = 51), + [1457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, .production_id = 51), + [1459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, .production_id = 31), + [1461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, .production_id = 31), + [1463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, .production_id = 61), + [1465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, .production_id = 61), + [1467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, .production_id = 51), + [1469] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, .production_id = 51), + [1471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, .production_id = 51), + [1473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, .production_id = 51), + [1475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, .production_id = 51), + [1477] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, .production_id = 51), + [1479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, .production_id = 93), + [1481] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, .production_id = 93), + [1483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, .production_id = 67), + [1485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, .production_id = 67), + [1487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, .production_id = 17), + [1489] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, .production_id = 17), + [1491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, .production_id = 31), + [1493] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, .production_id = 31), + [1495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, .production_id = 61), + [1497] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, .production_id = 61), + [1499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, .production_id = 93), + [1501] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, .production_id = 93), + [1503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2), + [1505] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2), + [1507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2), + [1509] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2), + [1511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1412), + [1513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [1515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [1517] = {.entry = {.count = 1, .reusable = false}}, SHIFT(579), + [1519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606), + [1521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596), + [1523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610), + [1525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), + [1527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [1529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614), + [1531] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [1533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579), + [1535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1399), + [1537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), + [1539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), + [1541] = {.entry = {.count = 1, .reusable = false}}, SHIFT(596), + [1543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(578), + [1545] = {.entry = {.count = 1, .reusable = false}}, SHIFT(626), + [1547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(593), + [1549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583), + [1551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603), + [1553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591), + [1555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), + [1557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), + [1559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1417), + [1561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621), + [1563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605), + [1565] = {.entry = {.count = 1, .reusable = false}}, SHIFT(583), + [1567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), + [1569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, .production_id = 67), + [1571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, .production_id = 67), + [1573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, .production_id = 31), + [1575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, .production_id = 31), [1577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3), [1579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3), - [1581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3), - [1583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3), - [1585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, .production_id = 25), - [1587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, .production_id = 25), + [1581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, .production_id = 25), + [1583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, .production_id = 25), + [1585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, .production_id = 31), + [1587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, .production_id = 31), [1589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, .production_id = 26), [1591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, .production_id = 26), - [1593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, .production_id = 67), - [1595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, .production_id = 67), + [1593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, .production_id = 25), + [1595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, .production_id = 25), [1597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_operator, 3, .production_id = 39), [1599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_operator, 3, .production_id = 39), - [1601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, .production_id = 13), - [1603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, .production_id = 13), - [1605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2), - [1607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2), + [1601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 41), + [1603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 41), + [1605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, .production_id = 71), + [1607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, .production_id = 71), [1609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, .production_id = 72), [1611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, .production_id = 72), - [1613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 41), - [1615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 41), - [1617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, .production_id = 71), - [1619] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, .production_id = 71), - [1621] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(909), - [1624] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), SHIFT_REPEAT(923), - [1627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), - [1629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1490), - [1631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [1633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(591), - [1635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(592), - [1637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610), - [1639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), - [1641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616), - [1643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), - [1645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(617), - [1647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591), - [1649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1491), - [1651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), - [1653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619), - [1655] = {.entry = {.count = 1, .reusable = false}}, SHIFT(610), - [1657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574), - [1659] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), SHIFT_REPEAT(929), - [1662] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(922), - [1665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1385), - [1667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [1669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(624), - [1671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625), - [1673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), - [1675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), - [1677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615), - [1679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [1681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), - [1683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), - [1685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1418), - [1687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(612), - [1689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(609), - [1691] = {.entry = {.count = 1, .reusable = false}}, SHIFT(626), - [1693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577), - [1695] = {.entry = {.count = 1, .reusable = false}}, SHIFT(903), - [1697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783), - [1699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1211), - [1701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1362), - [1703] = {.entry = {.count = 1, .reusable = false}}, SHIFT(981), - [1705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(789), - [1707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(850), - [1709] = {.entry = {.count = 1, .reusable = false}}, SHIFT(914), - [1711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), - [1713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(987), + [1613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2), + [1615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2), + [1617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, .production_id = 13), + [1619] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, .production_id = 13), + [1621] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), SHIFT_REPEAT(915), + [1624] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(906), + [1627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), + [1629] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2), SHIFT_REPEAT(907), + [1632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1481), + [1634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [1636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(602), + [1638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604), + [1640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607), + [1642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(609), + [1644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), + [1646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [1648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(612), + [1650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), + [1652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1483), + [1654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616), + [1656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619), + [1658] = {.entry = {.count = 1, .reusable = false}}, SHIFT(607), + [1660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577), + [1662] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2), SHIFT_REPEAT(926), + [1665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1398), + [1667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [1669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(601), + [1671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599), + [1673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598), + [1675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(597), + [1677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), + [1679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [1681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608), + [1683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(601), + [1685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1424), + [1687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594), + [1689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(587), + [1691] = {.entry = {.count = 1, .reusable = false}}, SHIFT(598), + [1693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(575), + [1695] = {.entry = {.count = 1, .reusable = false}}, SHIFT(882), + [1697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(765), + [1699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1214), + [1701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1361), + [1703] = {.entry = {.count = 1, .reusable = false}}, SHIFT(980), + [1705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(766), + [1707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851), + [1709] = {.entry = {.count = 1, .reusable = false}}, SHIFT(917), + [1711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917), + [1713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(977), [1715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 3), [1717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 3), - [1719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364), + [1719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(331), [1721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 2), [1723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 2), - [1725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), - [1727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(979), - [1729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), - [1731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(963), - [1733] = {.entry = {.count = 1, .reusable = false}}, SHIFT(967), - [1735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), - [1737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971), - [1739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), - [1741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(973), - [1743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(938), + [1725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), + [1727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949), + [1729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), + [1731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [1733] = {.entry = {.count = 1, .reusable = false}}, SHIFT(981), + [1735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), + [1737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), + [1739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), + [1741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(956), + [1743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(939), [1745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), - [1747] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(580), + [1747] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(596), [1750] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), - [1752] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1386), - [1755] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(580), - [1758] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(576), + [1752] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1399), + [1755] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(596), + [1758] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(578), [1761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison_operator, 2, .production_id = 18), [1763] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison_operator, 2, .production_id = 18), - [1765] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(578), - [1768] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1397), - [1771] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(578), - [1774] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(575), + [1765] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(583), + [1768] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1417), + [1771] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(583), + [1774] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(576), [1777] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, .production_id = 36), - [1779] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, .production_id = 36), SHIFT_REPEAT(500), - [1782] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1313), - [1784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), - [1786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1310), - [1788] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, .production_id = 31), - [1790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), - [1792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), - [1794] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(610), - [1797] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1491), - [1800] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(610), - [1803] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(574), - [1806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, .production_id = 25), - [1808] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, .production_id = 25), + [1779] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, .production_id = 36), SHIFT_REPEAT(482), + [1782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, .production_id = 25), + [1784] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1341), + [1786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), + [1788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1342), + [1790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, .production_id = 31), + [1792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), + [1794] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(607), + [1797] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1483), + [1800] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(607), + [1803] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(577), + [1806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, .production_id = 25), + [1808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954), [1810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, .production_id = 34), - [1812] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(626), - [1815] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1418), - [1818] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(626), - [1821] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(577), - [1824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1812] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(598), + [1815] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(1424), + [1818] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(598), + [1821] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, .production_id = 42), SHIFT_REPEAT(575), + [1824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), [1826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, .production_id = 16), - [1828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1295), - [1830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), - [1832] = {.entry = {.count = 1, .reusable = false}}, SHIFT(567), - [1834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [1836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588), - [1838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1294), - [1840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [1842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [1844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [1846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [1848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), - [1850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), - [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), - [1854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [1856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1117), + [1828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1271), + [1830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), + [1832] = {.entry = {.count = 1, .reusable = false}}, SHIFT(568), + [1834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [1836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(595), + [1838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1268), + [1840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [1842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [1844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [1846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [1848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [1850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), + [1854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [1856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1157), [1858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1334), [1860] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3), [1862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2), [1864] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_operator, 2, .production_id = 10), [1866] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_not_operator, 2, .production_id = 10), [1868] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2), - [1870] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2), SHIFT_REPEAT(1394), - [1873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, .production_id = 66), - [1875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), - [1877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [1879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), - [1881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [1883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), - [1885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), - [1887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1473), - [1889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), - [1891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, .production_id = 7), - [1893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), - [1895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), - [1897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(816), - [1899] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, .dynamic_precedence = -1, .production_id = 12), SHIFT(170), - [1902] = {.entry = {.count = 1, .reusable = false}}, SHIFT(548), - [1904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2), - [1906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [1908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1394), - [1910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2), - [1912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2), - [1914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, .production_id = 27), - [1916] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, .production_id = 27), - [1918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, .production_id = 39), - [1920] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, .production_id = 39), - [1922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5), - [1924] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5), - [1926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, .production_id = 35), - [1928] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, .production_id = 66), - [1930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, .production_id = 32), - [1932] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, .production_id = 35), - [1934] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1), - [1936] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, .production_id = 32), - [1938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1), - [1940] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1), - [1942] = {.entry = {.count = 1, .reusable = false}}, SHIFT(176), - [1944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1017), - [1946] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1017), + [1870] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2), SHIFT_REPEAT(1418), + [1873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1418), + [1875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1), + [1877] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1), + [1879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, .production_id = 27), + [1881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [1883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [1885] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, .production_id = 27), + [1887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [1889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [1891] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2), + [1893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [1895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [1897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [1899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [1901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [1903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1498), + [1905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [1907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, .production_id = 7), + [1909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, .production_id = 32), + [1911] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, .production_id = 32), + [1913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, .production_id = 66), + [1915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5), + [1917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1), + [1919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, .production_id = 35), + [1921] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, .production_id = 35), + [1923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, .production_id = 39), + [1925] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, .production_id = 39), + [1927] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5), + [1929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2), + [1931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2), + [1933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(817), + [1935] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, .dynamic_precedence = -1, .production_id = 12), SHIFT(176), + [1938] = {.entry = {.count = 1, .reusable = false}}, SHIFT(504), + [1940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, .production_id = 66), + [1942] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172), + [1944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1037), + [1946] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1037), [1948] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [1950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581), - [1952] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), SHIFT_REPEAT(176), - [1955] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), SHIFT_REPEAT(1017), - [1958] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), SHIFT_REPEAT(1017), - [1961] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), - [1963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726), - [1965] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, .production_id = 14), - [1967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(719), - [1969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(757), - [1971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), - [1973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(829), - [1975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [1977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), - [1979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [1981] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, .production_id = 83), - [1983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1327), - [1985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1207), - [1987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2), - [1989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(582), - [1991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(735), - [1993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3), - [1995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730), - [1997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707), - [1999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 31), - [2001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 2, .production_id = 107), - [2003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1369), - [2005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), - [2007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(785), - [2009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(734), - [2011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(587), - [2013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), - [2015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659), - [2017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), - [2019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1203), - [2021] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1), - [2023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2), - [2025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [2027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), - [2029] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), SHIFT_REPEAT(368), - [2032] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), SHIFT_REPEAT(1473), - [2035] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), SHIFT_REPEAT(447), - [2038] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3), - [2040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841), - [2042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2), - [2044] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2), SHIFT_REPEAT(841), - [2047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4), - [2049] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__f_expression, 1), - [2051] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1), - [2053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), - [2055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [1950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), + [1952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725), + [1954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(763), + [1956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [1958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, .production_id = 14), + [1960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), + [1962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [1964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), + [1966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726), + [1968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(719), + [1970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), + [1972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, .production_id = 83), + [1974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1336), + [1976] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), SHIFT_REPEAT(172), + [1979] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), SHIFT_REPEAT(1037), + [1982] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), SHIFT_REPEAT(1037), + [1985] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, .production_id = 21), + [1987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), + [1989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), + [1991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580), + [1993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581), + [1995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 2, .production_id = 107), + [1997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1366), + [1999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1199), + [2001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(755), + [2003] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3), + [2005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(743), + [2007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), + [2009] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 31), + [2011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1195), + [2013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(801), + [2015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [2017] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2), + [2019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(798), + [2021] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1), + [2023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [2025] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1), + [2027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4), + [2029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(842), + [2031] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3), + [2033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__f_expression, 1), + [2035] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), + [2037] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), SHIFT_REPEAT(375), + [2040] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), SHIFT_REPEAT(1498), + [2043] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2), SHIFT_REPEAT(449), + [2046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2), + [2048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2), + [2050] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2), SHIFT_REPEAT(842), + [2053] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, .production_id = 136), + [2055] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, .production_id = 131), [2057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 2), - [2059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), - [2061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, .production_id = 136), - [2063] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7), - [2065] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6), - [2067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, .production_id = 136), - [2069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, .production_id = 136), - [2071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), - [2073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [2075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2), - [2077] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 36), - [2079] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(230), - [2082] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, .production_id = 136), - [2084] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4), - [2086] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, .production_id = 141), - [2088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [2090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, .production_id = 149), - [2092] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 2), - [2094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 4), - [2096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2), - [2098] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2), SHIFT_REPEAT(263), - [2101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(840), - [2103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, .production_id = 98), - [2105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [2107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, .production_id = 122), - [2109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [2111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1492), - [2113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1486), - [2115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1483), - [2117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, .production_id = 136), - [2119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, .production_id = 123), - [2121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [2123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, .production_id = 136), - [2125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, .production_id = 131), - [2127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5), - [2129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5), - [2131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2), - [2133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1), - [2135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(842), - [2137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, .production_id = 136), - [2139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3), - [2141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1497), - [2143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1493), - [2145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1474), - [2147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, .production_id = 16), - [2149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [2151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3), - [2153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [2155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, .production_id = 132), - [2157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1), - [2159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, .production_id = 66), - [2161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, .production_id = 62), - [2163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2), - [2165] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2), SHIFT_REPEAT(994), - [2168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2), SHIFT_REPEAT(994), - [2171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2), - [2173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), - [2175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), - [2177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), - [2179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1046), - [2181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1129), - [2183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1421), - [2185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1), - [2187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [2189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(772), - [2191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), - [2193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1500), - [2195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [2197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, .production_id = 15), - [2199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), - [2201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1062), - [2203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1467), - [2205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1466), - [2207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, .production_id = 32), - [2209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), - [2211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1443), - [2213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), - [2215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), - [2217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, .dynamic_precedence = -1, .production_id = 12), - [2219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), - [2221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1), - [2223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(994), - [2225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(994), - [2227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1), - [2229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1047), - [2231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1109), - [2233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1332), - [2235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1), - [2237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1468), - [2239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, .production_id = 31), - [2241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, .production_id = 11), - [2243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), - [2245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(821), - [2247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2), - [2249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2), - [2251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), - [2253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, .production_id = 10), - [2255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2), - [2257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2), SHIFT_REPEAT(1415), - [2260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, .production_id = 135), - [2262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, .production_id = 43), - [2264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, .production_id = 43), - [2266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [2268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [2270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [2272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, .production_id = 119), - [2274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, .production_id = 43), - [2276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, .production_id = 43), - [2278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1), - [2280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [2282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1152), - [2284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, .production_id = 43), - [2286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, .production_id = 43), - [2288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, .production_id = 68), - [2290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [2292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1), - [2294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1415), - [2296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [2298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [2300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1135), - [2302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2), - [2304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, .production_id = 35), - [2306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, .production_id = 10), - [2308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), - [2310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [2312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2), - [2314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 4), - [2316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 4), - [2318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 3), - [2320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 3), - [2322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, .production_id = 109), - [2324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 95), - [2326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [2328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, .production_id = 6), - [2330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), - [2332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), - [2334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [2336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2), - [2338] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2), SHIFT_REPEAT(351), - [2341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2), - [2343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2), SHIFT_REPEAT(825), - [2346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, .production_id = 43), - [2348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, .production_id = 43), - [2350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, .production_id = 16), - [2352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [2354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, .production_id = 140), - [2356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 94), - [2358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 31), - [2360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, .production_id = 110), - [2362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [2364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [2366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1021), - [2368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, .production_id = 121), - [2370] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(234), - [2373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [2375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [2377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, .production_id = 35), - [2379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1101), - [2381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1036), - [2383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1120), - [2385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1284), - [2387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, .production_id = 6), - [2389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, .production_id = 27), - [2391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, .production_id = 88), - [2393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, .production_id = 53), - [2395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), - [2397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [2399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, .production_id = 120), - [2401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 4, .production_id = 63), - [2403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1111), - [2405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [2407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1179), - [2409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1139), - [2411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1260), - [2413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, .production_id = 36), - [2415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, .production_id = 36), SHIFT_REPEAT(222), - [2418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2), - [2420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2), SHIFT_REPEAT(175), - [2423] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2), SHIFT_REPEAT(1094), - [2426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1082), - [2428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1481), - [2430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, .production_id = 6), - [2432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, .production_id = 11), - [2434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [2436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), - [2438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [2440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, .production_id = 30), - [2442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1), - [2444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [2446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1104), - [2448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, .production_id = 22), - [2450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2), - [2452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1094), - [2454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3), - [2456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), - [2458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, .production_id = 16), - [2460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), - [2462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1046), - [2464] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 44), SHIFT_REPEAT(1233), - [2467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 44), - [2469] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 23), - [2471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), - [2473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [2475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2), - [2477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1), - [2479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), - [2481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), - [2483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [2485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, .production_id = 28), - [2487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), - [2489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, .production_id = 29), - [2491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1040), - [2493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1237), - [2495] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2), SHIFT_REPEAT(1399), - [2498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2), - [2500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [2502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, .production_id = 7), - [2504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), - [2506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870), - [2508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3), - [2510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, .production_id = 49), - [2512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [2514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1), - [2516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), - [2518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1144), - [2520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1393), - [2522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), - [2524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(746), - [2526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, .production_id = 133), - [2528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [2530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1185), - [2532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1281), - [2534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [2536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [2538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [2540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3), - [2542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), - [2544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2), - [2546] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2), SHIFT_REPEAT(1148), - [2549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, .production_id = 23), - [2551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, .production_id = 23), - [2553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, .production_id = 65), - [2555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), - [2557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725), - [2559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1399), - [2561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3), - [2563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, .production_id = 84), - [2565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [2567] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, .production_id = 52), SHIFT_REPEAT(369), - [2570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, .production_id = 52), - [2572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731), - [2574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [2576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, .production_id = 15), - [2578] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2), SHIFT_REPEAT(357), - [2581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [2583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1103), - [2585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, .production_id = 22), - [2587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1102), - [2589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2), - [2591] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2), SHIFT_REPEAT(289), - [2594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), - [2596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), - [2598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2), - [2600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2), - [2602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3), - [2604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [2606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(871), - [2608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), - [2610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1464), - [2612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(798), - [2614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(984), - [2616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 36), - [2618] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(212), - [2621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [2623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [2625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [2627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [2629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [2631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, .production_id = 37), - [2633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848), - [2635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(988), - [2637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1200), - [2639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1226), - [2641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2), - [2643] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2), SHIFT_REPEAT(838), - [2646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1011), - [2648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1198), - [2650] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, .production_id = 86), - [2652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [2654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [2656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1), - [2658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1), - [2660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [2662] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, .production_id = 112), - [2664] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, .production_id = 113), SHIFT_REPEAT(1011), - [2667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, .production_id = 113), - [2669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1134), - [2671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1137), - [2673] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2), SHIFT_REPEAT(133), - [2676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2), - [2678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [2680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), - [2682] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2), - [2684] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2), SHIFT_REPEAT(1370), - [2687] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1041), - [2689] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1096), - [2691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [2693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(768), - [2695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [2697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1338), - [2699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1), - [2701] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2), SHIFT_REPEAT(869), - [2704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2), - [2706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(770), - [2708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [2710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(809), - [2712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [2714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(810), - [2716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [2718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(814), - [2720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [2722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954), - [2724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [2726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827), - [2728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 1), - [2730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), - [2732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1244), - [2734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [2736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(828), - [2738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [2740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [2742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), - [2744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), - [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(835), - [2748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [2750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), - [2752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [2754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(759), - [2756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [2758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), - [2760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(817), - [2762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), - [2764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [2766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), - [2768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1250), - [2770] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(227), - [2773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, .production_id = 36), - [2775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [2777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(790), - [2779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [2781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), - [2783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), - [2785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851), - [2787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), - [2789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [2791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [2793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(765), - [2795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [2797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [2799] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, .production_id = 16), - [2801] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 44), SHIFT_REPEAT(1189), - [2804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793), - [2806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), - [2810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [2812] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2), - [2814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [2816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1498), - [2818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [2820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(794), - [2822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [2824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [2826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(786), - [2828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [2830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), - [2832] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2), - [2834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2), SHIFT_REPEAT(877), - [2837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1), - [2839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), - [2841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [2843] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2), SHIFT_REPEAT(879), - [2846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), - [2848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [2850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), - [2852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [2854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1208), - [2856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, .production_id = 73), - [2858] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, .production_id = 73), - [2860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1194), - [2862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [2864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), - [2866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, .production_id = 15), + [2059] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 4), + [2061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, .production_id = 136), + [2063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), + [2065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [2067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5), + [2069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [2071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5), + [2073] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, .production_id = 136), + [2075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 36), + [2077] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(235), + [2080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, .production_id = 149), + [2082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1485), + [2084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1494), + [2086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1491), + [2088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1505), + [2090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1501), + [2092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1482), + [2094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4), + [2096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6), + [2098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 2), + [2100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, .production_id = 136), + [2102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2), + [2104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7), + [2106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, .production_id = 136), + [2108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, .production_id = 98), + [2110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [2112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, .production_id = 136), + [2114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, .production_id = 136), + [2116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2), + [2118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2), SHIFT_REPEAT(270), + [2121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, .production_id = 141), + [2123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [2125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1), + [2127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843), + [2129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841), + [2131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, .production_id = 16), + [2133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [2135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3), + [2137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [2139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, .production_id = 122), + [2141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [2143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, .production_id = 123), + [2145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [2147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [2149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [2151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2), + [2153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, .production_id = 132), + [2155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3), + [2157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, .production_id = 31), + [2159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), + [2161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [2163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), + [2165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [2167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1503), + [2169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [2171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1449), + [2173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, .dynamic_precedence = -1, .production_id = 12), + [2175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), + [2177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), + [2179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), + [2181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [2183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1062), + [2185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1477), + [2187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1484), + [2189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, .production_id = 11), + [2191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [2193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(829), + [2195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, .production_id = 62), + [2197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [2199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, .production_id = 15), + [2201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2), + [2203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [2205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, .production_id = 10), + [2207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1039), + [2209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1171), + [2211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1427), + [2213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1), + [2215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1500), + [2217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [2219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(789), + [2221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, .production_id = 32), + [2223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1), + [2225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, .production_id = 66), + [2227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [2229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659), + [2231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1), + [2233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1041), + [2235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1127), + [2237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1340), + [2239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2), + [2241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1), + [2243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [2245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [2247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [2249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [2251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2), + [2253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2), SHIFT_REPEAT(1035), + [2256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2), SHIFT_REPEAT(1035), + [2259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2), + [2261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [2263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [2265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1), + [2267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1035), + [2269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1035), + [2271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1), + [2273] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2), SHIFT_REPEAT(1486), + [2276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1), + [2278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [2280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1486), + [2282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1), + [2284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [2286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, .production_id = 109), + [2288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, .production_id = 43), + [2290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, .production_id = 43), + [2292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2), + [2294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2), SHIFT_REPEAT(351), + [2297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 3), + [2299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 3), + [2301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2), + [2303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, .production_id = 43), + [2305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, .production_id = 43), + [2307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, .production_id = 68), + [2309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), + [2311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [2313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1147), + [2315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2), + [2317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 4), + [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, .production_id = 4), + [2321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [2323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, .production_id = 43), + [2325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, .production_id = 43), + [2327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2), + [2329] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2), SHIFT_REPEAT(807), + [2332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, .production_id = 35), + [2334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, .production_id = 119), + [2336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, .production_id = 135), + [2338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, .production_id = 6), + [2340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), + [2342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [2344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, .production_id = 31), + [2346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [2348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), + [2350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, .production_id = 43), + [2352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, .production_id = 43), + [2354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2), + [2356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, .production_id = 10), + [2358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 95), + [2360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [2362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2), + [2364] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2), SHIFT_REPEAT(173), + [2367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2), SHIFT_REPEAT(1072), + [2370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1129), + [2372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, .production_id = 110), + [2374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1098), + [2376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1056), + [2378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1179), + [2380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1270), + [2382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, .production_id = 16), + [2384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [2386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [2388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [2390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, .production_id = 6), + [2392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, .production_id = 30), + [2394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [2396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [2398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [2400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1016), + [2402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, .production_id = 120), + [2404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, .production_id = 11), + [2406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, .production_id = 121), + [2408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1241), + [2410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1139), + [2412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1266), + [2414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, .production_id = 140), + [2416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, .production_id = 53), + [2418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, .production_id = 27), + [2420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 4, .production_id = 63), + [2422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, .production_id = 88), + [2424] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(230), + [2427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, .production_id = 22), + [2429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1), + [2431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [2433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1104), + [2435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, .production_id = 36), + [2437] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, .production_id = 36), SHIFT_REPEAT(224), + [2440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, .production_id = 94), + [2442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 31), + [2444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [2446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2), + [2448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1072), + [2450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1080), + [2452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1487), + [2454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, .production_id = 6), + [2456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, .production_id = 35), + [2458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(871), + [2460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [2462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2), + [2464] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2), SHIFT_REPEAT(356), + [2467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, .production_id = 52), SHIFT_REPEAT(339), + [2470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, .production_id = 52), + [2472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [2474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2), + [2476] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2), SHIFT_REPEAT(1114), + [2479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2), + [2481] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2), SHIFT_REPEAT(288), + [2484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, .production_id = 16), + [2486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), + [2488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, .production_id = 65), + [2490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [2492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, .production_id = 49), + [2494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3), + [2496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), + [2498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, .production_id = 28), + [2500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [2502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [2504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1039), + [2506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [2508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [2510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, .production_id = 29), + [2512] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 44), SHIFT_REPEAT(1244), + [2515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 44), + [2517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 23), + [2519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1101), + [2521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, .production_id = 22), + [2523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3), + [2525] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2), SHIFT_REPEAT(1411), + [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2), + [2530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728), + [2532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1191), + [2534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1287), + [2536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1173), + [2538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(737), + [2540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [2542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1411), + [2544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2), + [2546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2), + [2548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1097), + [2550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(733), + [2552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [2554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [2556] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(340), + [2559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, .production_id = 36), + [2561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [2563] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3), + [2565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3), + [2567] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1), + [2569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [2571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), + [2573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [2575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [2577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [2579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [2581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [2583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, .production_id = 133), + [2585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, .production_id = 15), + [2587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [2589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [2591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1), + [2593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), + [2595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1146), + [2597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1421), + [2599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3), + [2601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, .production_id = 23), + [2603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, .production_id = 23), + [2605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, .production_id = 84), + [2607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, .production_id = 7), + [2609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [2611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exception_list, 2, .production_id = 16), + [2613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), + [2615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1252), + [2617] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, .production_id = 36), SHIFT_REPEAT(253), + [2620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, .production_id = 36), + [2622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [2624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [2626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [2628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [2630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1), + [2632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1), + [2634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, .production_id = 86), + [2636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1004), + [2638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1292), + [2640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(812), + [2642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [2644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(814), + [2646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [2648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), + [2650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1300), + [2652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(816), + [2654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [2656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 36), + [2658] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(212), + [2661] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2), SHIFT_REPEAT(133), + [2664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2), + [2666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), + [2668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(810), + [2670] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, .production_id = 36), SHIFT_REPEAT(226), + [2673] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, .production_id = 36), + [2675] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2), SHIFT_REPEAT(870), + [2678] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2), + [2680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [2682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(822), + [2684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(824), + [2686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [2688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(768), + [2690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), + [2692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [2694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827), + [2696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [2698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(833), + [2700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [2702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [2704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [2706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1372), + [2708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1250), + [2710] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1070), + [2712] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1086), + [2714] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, .production_id = 44), SHIFT_REPEAT(1190), + [2717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [2719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, .production_id = 37), + [2721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1), + [2723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1475), + [2725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), + [2727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [2729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [2731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [2733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 1), + [2735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), + [2737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(764), + [2739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [2741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [2743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(774), + [2745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [2747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(773), + [2749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), + [2751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1221), + [2753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [2755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [2757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1), + [2759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [2761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1186), + [2763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971), + [2765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1236), + [2767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), + [2769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [2771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(758), + [2773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [2775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), + [2777] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, .production_id = 113), SHIFT_REPEAT(1004), + [2780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, .production_id = 113), + [2782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [2784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), + [2786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1048), + [2788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(872), + [2790] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, .production_id = 73), + [2792] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, .production_id = 73), + [2794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [2796] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, .production_id = 15), + [2798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [2800] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, .production_id = 16), + [2802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [2804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), + [2806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [2810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795), + [2812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [2814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783), + [2816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [2818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1163), + [2820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1), + [2822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [2824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(772), + [2826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2), + [2828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(855), + [2830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(991), + [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1508), + [2834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [2836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(823), + [2838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), + [2840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [2842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [2844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [2846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2), + [2848] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2), SHIFT_REPEAT(878), + [2851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), + [2853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [2855] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2), SHIFT_REPEAT(877), + [2858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), + [2860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [2862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632), + [2864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [2866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1245), [2868] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aliased_import, 3, .production_id = 45), - [2870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), - [2872] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, .production_id = 36), SHIFT_REPEAT(258), - [2875] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, .production_id = 36), - [2877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), - [2879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1178), - [2881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1), - [2883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(872), - [2885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1126), - [2887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1125), - [2889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [2891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [2893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [2895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, .dynamic_precedence = -1, .production_id = 58), - [2897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(802), - [2899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [2901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [2903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, .production_id = 97), - [2905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, .production_id = 39), - [2907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1041), - [2909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, .production_id = 38), - [2911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 67), - [2913] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1), - [2915] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1), - [2917] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1), - [2919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1), - [2921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1384), - [2923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, .production_id = 31), - [2925] = {.entry = {.count = 1, .reusable = false}}, SHIFT(990), - [2927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(990), - [2929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1406), - [2931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), - [2933] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, .production_id = 48), - [2935] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, .production_id = 47), - [2937] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1), - [2939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2), - [2941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, .production_id = 160), - [2943] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, .production_id = 46), - [2945] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, .production_id = 108), - [2947] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, .production_id = 92), - [2949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [2951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [2953] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, .production_id = 96), - [2955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, .production_id = 85), - [2957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, .production_id = 111), - [2959] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3), - [2961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [2963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [2965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [2967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), - [2969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(753), - [2971] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, .production_id = 86), - [2973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [2975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [2977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [2979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [2981] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, .production_id = 5), - [2983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), - [2985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(788), - [2987] = {.entry = {.count = 1, .reusable = false}}, SHIFT(926), - [2989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), - [2991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1482), - [2993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [2995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), - [2997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, .production_id = 108), - [2999] = {.entry = {.count = 1, .reusable = false}}, SHIFT(961), - [3001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), - [3003] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, .production_id = 11), - [3005] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, .production_id = 62), - [3007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, .production_id = 31), - [3009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [3011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), - [3013] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5), - [3015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(820), - [3017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(762), - [3019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), - [3021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(822), - [3023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), - [3025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(823), - [3027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583), - [3029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(831), - [3031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(832), - [3033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), - [3035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(837), - [3037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836), - [3039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1363), - [3041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), - [3043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1346), - [3045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830), - [3047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598), - [3049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [3051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1285), - [3053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1308), - [3055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), - [3057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(784), - [3059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), - [3061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), - [3063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), - [3065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(656), - [3067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), - [3069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), - [3071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853), - [3073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [3075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1018), - [3077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1105), - [3079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(818), - [3081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), - [3083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), - [3085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(761), - [3087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), - [3089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1090), - [3091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(766), - [3093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), - [3095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4), - [3097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [3099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1173), - [3101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1127), - [3103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [3105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [3107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [3109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [3111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [3113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [3115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [3117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(799), - [3119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [3121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [3123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [3125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [3127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [3129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(800), - [3131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), - [3133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(767), - [3135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(854), - [3137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [3139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [3141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [3143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(763), - [3145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [3147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [3149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [3151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(773), - [3153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [3155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(839), - [3157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(760), - [3159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1067), - [3161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1150), - [3163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1149), - [3165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1035), - [3167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1349), - [3169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [3171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [3173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(775), - [3175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448), - [3177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1091), - [3179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), - [3181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1), - [3183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1238), - [3185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, .production_id = 23), - [3187] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [3189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1290), - [3191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1074), - [3193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1171), - [3195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1172), - [3197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124), - [3199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [3201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), - [3203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416), - [3205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606), - [3207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1166), - [3209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1168), - [3211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3), - [3213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [2870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [2872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, .production_id = 112), + [2874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [2876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [2878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1308), + [2880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(785), + [2882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [2884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [2886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [2888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(858), + [2890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2), + [2892] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2), SHIFT_REPEAT(1351), + [2895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1122), + [2897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1123), + [2899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1165), + [2901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266), + [2903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, .dynamic_precedence = -1, .production_id = 58), + [2905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2), + [2907] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2), SHIFT_REPEAT(839), + [2910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, .production_id = 97), + [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1457), + [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), + [2916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1), + [2918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1), + [2920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1), + [2922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [2924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [2926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, .production_id = 108), + [2928] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, .production_id = 108), + [2930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, .production_id = 111), + [2932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, .production_id = 160), + [2934] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, .production_id = 86), + [2936] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2), + [2938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, .production_id = 48), + [2940] = {.entry = {.count = 1, .reusable = false}}, SHIFT(990), + [2942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(990), + [2944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1388), + [2946] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, .production_id = 47), + [2948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1509), + [2950] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1), + [2952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1070), + [2954] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, .production_id = 46), + [2956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [2958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [2962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [2964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [2966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), + [2968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [2970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [2972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, .production_id = 5), + [2974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [2976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [2978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [2980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [2982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, .production_id = 39), + [2984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, .production_id = 38), + [2986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [2988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [2990] = {.entry = {.count = 1, .reusable = false}}, SHIFT(924), + [2992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924), + [2994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(750), + [2996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3), + [2998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, .production_id = 85), + [3000] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, .production_id = 92), + [3002] = {.entry = {.count = 1, .reusable = false}}, SHIFT(959), + [3004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), + [3006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, .production_id = 67), + [3008] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, .production_id = 11), + [3010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, .production_id = 31), + [3012] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1), + [3014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947), + [3016] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, .production_id = 31), + [3018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, .production_id = 96), + [3020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(771), + [3022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, .production_id = 62), + [3024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [3026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1381), + [3028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658), + [3030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), + [3032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), + [3034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(820), + [3036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [3038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(800), + [3040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(828), + [3042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5), + [3044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(831), + [3046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), + [3048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836), + [3050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627), + [3052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(837), + [3054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(835), + [3056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [3058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(832), + [3060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830), + [3062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(826), + [3064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [3066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1067), + [3068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(797), + [3070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1262), + [3072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [3074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [3076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1136), + [3078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [3080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(849), + [3082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(586), + [3084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894), + [3086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(804), + [3088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1028), + [3090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), + [3092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [3094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590), + [3096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4), + [3098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), + [3100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1074), + [3102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1137), + [3104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [3106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [3108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), + [3110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(857), + [3112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [3114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(761), + [3116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(792), + [3118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [3120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [3122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(633), + [3124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(791), + [3126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [3128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(777), + [3130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1311), + [3132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), + [3134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [3136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [3138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [3140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [3142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), + [3144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(787), + [3146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), + [3148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [3150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [3152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), + [3154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(769), + [3156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [3158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [3160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [3162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(799), + [3164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), + [3166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(840), + [3168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [3170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1363), + [3172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1), + [3174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1174), + [3176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [3178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [3180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), + [3182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [3184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1103), + [3186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(582), + [3188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1175), + [3190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1107), + [3192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1290), + [3194] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [3196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, .production_id = 23), + [3198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1084), + [3200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), + [3202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1144), + [3204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1108), + [3206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [3208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1254), + [3210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447), + [3212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(781), + [3214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1061), + [3216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1153), + [3218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1149), + [3220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [3222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [3224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3), }; #ifdef __cplusplus From 2c83b296a404801131408f10442089268ee79822 Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 8 Dec 2025 17:12:21 +0000 Subject: [PATCH 030/263] Python: Add parser test Note in particular that the `exceptions.py` test is unaffected. --- .../parser/exception_groups_new.expected | 26 +++++++- .../tests/parser/exception_groups_new.py | 5 ++ .../tests/parser/exceptions_new.expected | 64 +++++++++++++++++++ .../extractor/tests/parser/exceptions_new.py | 8 +++ 4 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 python/extractor/tests/parser/exceptions_new.expected create mode 100644 python/extractor/tests/parser/exceptions_new.py diff --git a/python/extractor/tests/parser/exception_groups_new.expected b/python/extractor/tests/parser/exception_groups_new.expected index a70bf1b2485..337d12f6339 100644 --- a/python/extractor/tests/parser/exception_groups_new.expected +++ b/python/extractor/tests/parser/exception_groups_new.expected @@ -1,4 +1,4 @@ -Module: [1, 0] - [27, 0] +Module: [1, 0] - [32, 0] body: [ Try: [1, 0] - [1, 4] body: [ @@ -153,4 +153,28 @@ Module: [1, 0] - [27, 0] ] ] finalbody: [] + Try: [28, 0] - [28, 4] + body: [ + Pass: [29, 4] - [29, 8] + ] + orelse: [] + handlers: [ + ExceptGroupStmt: [30, 0] - [31, 8] + type: + Tuple: [30, 8] - [30, 12] + elts: [ + Name: [30, 8] - [30, 9] + variable: Variable('x', None) + ctx: Load + Name: [30, 11] - [30, 12] + variable: Variable('y', None) + ctx: Load + ] + ctx: Load + name: None + body: [ + Pass: [31, 4] - [31, 8] + ] + ] + finalbody: [] ] diff --git a/python/extractor/tests/parser/exception_groups_new.py b/python/extractor/tests/parser/exception_groups_new.py index 01fe58b9a98..e16ca18be35 100644 --- a/python/extractor/tests/parser/exception_groups_new.py +++ b/python/extractor/tests/parser/exception_groups_new.py @@ -24,3 +24,8 @@ try: pass except *foo as e: pass + +try: + pass +except* x, y: + pass diff --git a/python/extractor/tests/parser/exceptions_new.expected b/python/extractor/tests/parser/exceptions_new.expected new file mode 100644 index 00000000000..ca713146e50 --- /dev/null +++ b/python/extractor/tests/parser/exceptions_new.expected @@ -0,0 +1,64 @@ +Module: [1, 0] - [9, 0] + body: [ + Try: [1, 0] - [1, 4] + body: [ + Pass: [2, 4] - [2, 8] + ] + orelse: [] + handlers: [ + ExceptStmt: [3, 0] - [3, 12] + type: + Tuple: [3, 7] - [3, 11] + elts: [ + Name: [3, 7] - [3, 8] + variable: Variable('a', None) + ctx: Load + Name: [3, 10] - [3, 11] + variable: Variable('b', None) + ctx: Load + ] + ctx: Load + name: None + body: [ + Pass: [4, 4] - [4, 8] + ] + ExceptStmt: [5, 0] - [5, 14] + type: + Tuple: [5, 8] - [5, 12] + elts: [ + Name: [5, 8] - [5, 9] + variable: Variable('c', None) + ctx: Load + Name: [5, 11] - [5, 12] + variable: Variable('d', None) + ctx: Load + ] + ctx: Load + parenthesised: True + name: None + body: [ + Pass: [6, 4] - [6, 8] + ] + ExceptStmt: [7, 0] - [7, 19] + type: + Tuple: [7, 8] - [7, 12] + elts: [ + Name: [7, 8] - [7, 9] + variable: Variable('e', None) + ctx: Load + Name: [7, 11] - [7, 12] + variable: Variable('f', None) + ctx: Load + ] + ctx: Load + parenthesised: True + name: + Name: [7, 17] - [7, 18] + variable: Variable('g', None) + ctx: Store + body: [ + Pass: [8, 4] - [8, 8] + ] + ] + finalbody: [] + ] diff --git a/python/extractor/tests/parser/exceptions_new.py b/python/extractor/tests/parser/exceptions_new.py new file mode 100644 index 00000000000..b2e7d943e1d --- /dev/null +++ b/python/extractor/tests/parser/exceptions_new.py @@ -0,0 +1,8 @@ +try: + pass +except a, b: # new, relaxed syntax + pass +except (c, d): # old syntax + pass +except (e, f) as g: # old syntax + pass From 4a567ad75ec2bcde8b57ef4c9b87736fc88a026c Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 9 Dec 2025 17:09:40 +0000 Subject: [PATCH 031/263] Python: Add change note --- .../2025-12-09-python-support-relaxed-except-syntax.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md diff --git a/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md b/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md new file mode 100644 index 00000000000..f4091725cbc --- /dev/null +++ b/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* The extractor now supports the new, relaxed syntax `except A, B, C: ...` (which would previously have to be written as `except (A, B, C): ...`) as defined in [PEP-758](https://peps.python.org/pep-0758/). From 2cb932cf5d5eafd983aee47fe3d3208b9e0a795e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 6 Jan 2026 15:42:16 +0000 Subject: [PATCH 032/263] Post-release preparation for codeql-cli-2.23.9 --- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 704515053ef..f22b1a9a199 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.25 +version: 0.4.26-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index a505bc0044a..70e9a695116 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.17 +version: 0.6.18-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 1b9c6981712..02876035046 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 6.1.4 +version: 6.1.5-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 3381fb5c5f2..188d20e50b2 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.8 +version: 1.5.9-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index bf4562a749b..2e3b6a3a72d 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.56 +version: 1.7.57-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 4dab4381520..48e68f99dfa 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.56 +version: 1.7.57-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 02ad4f6d63a..a524b9cefbc 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.4 +version: 5.4.5-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index f72e5118a0e..b54e4d5c367 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.5.4 +version: 1.5.5-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index e6cd6f4e4d2..afcddda3b5a 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.39 +version: 1.0.40-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 3232d8c570e..3b929e9335a 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 5.0.6 +version: 5.0.7-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 05ee93b3bbe..1545b6b7195 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.3 +version: 1.5.4-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 9bad2e0bff3..4cf6e5e75f4 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.3 +version: 7.8.4-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 9375d72097c..cfff0aa4e78 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.4 +version: 1.10.5-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 20f63559731..889177c61b7 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.19 +version: 2.6.20-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 893712630ba..3b73d75ad23 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.2.4 +version: 2.2.5-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index aee41f431ee..fd26cf0f007 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.39 +version: 1.0.40-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index c34712d22ea..359cd85edc2 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 5.0.4 +version: 5.0.5-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 19df2afa9b5..235fe00a9bc 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.4 +version: 1.7.5-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 042e69662a7..8418f9186bb 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.7 +version: 5.1.8-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 55bb3cfae12..00834e12152 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.4 +version: 1.5.5-dev groups: - ruby - queries diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 6e86b6bee95..568418c1332 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.3 +version: 0.2.4-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 5f89e3fde76..6a834256d50 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.24 +version: 0.1.25-dev groups: - rust - queries diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index e16325bc876..767770ce24a 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.13 +version: 0.0.14-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 2f934084e5a..4829cf18940 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.23 +version: 2.0.24-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 18bb07678f3..88e3717ad91 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.23 +version: 2.0.24-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index da2879c8fe9..3726498ddf2 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 648bf8b9de2..d9c5869107f 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.17 +version: 0.0.18-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 6e44134bb49..1f3aa054b0f 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index dee5f3cf38d..708ae7ee1b2 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index ebd2da3638c..f755bda3379 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.15 +version: 2.0.16-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 860a53c69ed..45e4e04f51c 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.39 +version: 1.0.40-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 0e16b4e3d5e..651844a76ad 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index b35e76a613b..eb199d36dee 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index dc588b8aced..1c533ad3863 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.20 +version: 0.0.21-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index eb9c3a0344d..2a1ef48e92a 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.23 +version: 2.0.24-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 201e7c4a5e3..6baa76ffa5c 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index c332de6a909..db3d6fb7f2d 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.26 +version: 2.0.27-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 4059b49beb7..d31c816dafc 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 5958da33772..d154970377b 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.39 +version: 1.0.40-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 45b6c78b681..77172d624e7 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.1.4 +version: 6.1.5-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 23d97691bcb..15a1f6308dc 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.13 +version: 1.2.14-dev groups: - swift - queries From 1fbc28b753416b72cd6379cc47488df247f523fa Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 14:23:21 +0100 Subject: [PATCH 033/263] Go: Add support for MaD barriers and barrier guards. --- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 58 +++++++++++++++ .../go/dataflow/internal/DataFlowUtil.qll | 70 +++++++++++++++---- .../go/dataflow/internal/FlowSummaryImpl.qll | 19 +++-- 3 files changed, 128 insertions(+), 19 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index de1e3da6281..cea1a00e3e8 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -262,6 +262,10 @@ private predicate elementSpec( or sinkModel(package, type, subtypes, name, signature, ext, _, _, _, _) or + barrierModel(package, type, subtypes, name, signature, ext, _, _, _, _) + or + barrierGuardModel(package, type, subtypes, name, signature, ext, _, _, _, _, _) + or summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _, _) or neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = false @@ -397,6 +401,54 @@ private module Cached { isSinkNode(n, kind, model) and n.asNode() = node ) } + + private newtype TKindModelPair = + TMkPair(string kind, string model) { isBarrierGuardNode(_, _, kind, model) } + + private boolean convertAcceptingValue(Public::AcceptingValue av) { + av.isTrue() and result = true + or + av.isFalse() and result = false + // Remaining cases are not supported yet, they depend on the shared Guards library. + // or + // av.isNoException() and result.getDualValue().isThrowsException() + // or + // av.isZero() and result.asIntValue() = 0 + // or + // av.isNotZero() and result.getDualValue().asIntValue() = 0 + // or + // av.isNull() and result.isNullValue() + // or + // av.isNotNull() and result.isNonNullValue() + } + + private predicate barrierGuardChecks(DataFlow::Node g, Expr e, boolean gv, TKindModelPair kmp) { + exists( + SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, + string kind, string model + | + isBarrierGuardNode(n, acceptingvalue, kind, model) and + n.asNode().asExpr() = e and + kmp = TMkPair(kind, model) and + gv = convertAcceptingValue(acceptingvalue) + | + g.asExpr().(CallExpr).getAnArgument() = e // TODO: qualifier? + ) + } + + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + cached + predicate barrierNode(DataFlow::Node node, string kind, string model) { + exists(SourceSinkInterpretationInput::InterpretNode n | + isBarrierNode(n, kind, model) and n.asNode() = node + ) + or + DataFlow::ParameterizedBarrierGuard::getABarrierNode(TMkPair(kind, + model)) = node + } } import Cached @@ -413,6 +465,12 @@ predicate sourceNode(DataFlow::Node node, string kind) { sourceNode(node, kind, */ predicate sinkNode(DataFlow::Node node, string kind) { sinkNode(node, kind, _) } +/** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ +predicate barrierNode(DataFlow::Node node, string kind) { barrierNode(node, kind, _) } + // adapter class for converting Mad summaries to `SummarizedCallable`s private class SummarizedCallableAdapter extends Public::SummarizedCallable { SummarizedCallableAdapter() { summaryElement(this, _, _, _, _, _) } diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll index 14ff455646c..404eca4b4a2 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll @@ -339,6 +339,20 @@ class ContentSet instanceof TContentSet { */ signature predicate guardChecksSig(Node g, Expr e, boolean branch); +bindingset[this] +private signature class ParamSig; + +private module WithParam { + /** + * Holds if the guard `g` validates the expression `e` upon evaluating to `branch`. + * + * The expression `e` is expected to be a syntactic part of the guard `g`. + * For example, the guard `g` might be a call `isSafe(x)` and the expression `e` + * the argument `x`. + */ + signature predicate guardChecksSig(Node g, Expr e, boolean branch, P param); +} + /** * Provides a set of barrier nodes for a guard that validates an expression. * @@ -346,12 +360,36 @@ signature predicate guardChecksSig(Node g, Expr e, boolean branch); * in data flow and taint tracking. */ module BarrierGuard { + private predicate guardChecks(Node g, Expr e, boolean branch, Unit param) { + guardChecks(g, e, branch) and exists(param) + } + + private module B = ParameterizedBarrierGuard; + /** Gets a node that is safely guarded by the given guard check. */ - Node getABarrierNode() { + Node getABarrierNode() { result = B::getABarrierNode(_) } + + /** + * Gets a node that is safely guarded by the given guard check. + */ + Node getABarrierNodeForGuard(Node guardCheck) { + result = B::getABarrierNodeForGuard(guardCheck, _) + } +} + +/** + * Provides a set of barrier nodes for a guard that validates an expression. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode(P param) { exists(ControlFlow::ConditionGuardNode guard, SsaWithFields var | result = pragma[only_bind_out](var).getAUse() | - guards(_, guard, _, var) and + guards(_, guard, _, var, param) and pragma[only_bind_out](guard).dominates(result.getBasicBlock()) ) } @@ -359,9 +397,9 @@ module BarrierGuard { /** * Gets a node that is safely guarded by the given guard check. */ - Node getABarrierNodeForGuard(Node guardCheck) { + Node getABarrierNodeForGuard(Node guardCheck, P param) { exists(ControlFlow::ConditionGuardNode guard, SsaWithFields var | result = var.getAUse() | - guards(guardCheck, guard, _, var) and + guards(guardCheck, guard, _, var, param) and guard.dominates(result.getBasicBlock()) ) } @@ -373,22 +411,24 @@ module BarrierGuard { * This predicate exists to enforce a good join order in `getAGuardedNode`. */ pragma[noinline] - private predicate guards(Node g, ControlFlow::ConditionGuardNode guard, Node nd, SsaWithFields ap) { - guards(g, guard, nd) and nd = ap.getAUse() + private predicate guards( + Node g, ControlFlow::ConditionGuardNode guard, Node nd, SsaWithFields ap, P param + ) { + guards(g, guard, nd, param) and nd = ap.getAUse() } /** * Holds if `guard` marks a point in the control-flow graph where `g` * is known to validate `nd`. */ - private predicate guards(Node g, ControlFlow::ConditionGuardNode guard, Node nd) { + private predicate guards(Node g, ControlFlow::ConditionGuardNode guard, Node nd, P param) { exists(boolean branch | - guardChecks(g, nd.asExpr(), branch) and + guardChecks(g, nd.asExpr(), branch, param) and guard.ensures(g, branch) ) or exists(DataFlow::Property p, Node resNode, Node check, boolean outcome | - guardingCall(g, _, _, _, p, _, nd, resNode) and + guardingCall(g, _, _, _, p, _, nd, resNode, param) and p.checkOn(check, outcome, resNode) and guard.ensures(pragma[only_bind_into](check), outcome) ) @@ -405,9 +445,9 @@ module BarrierGuard { pragma[noinline] private predicate guardingCall( Node g, Function f, FunctionInput inp, FunctionOutput outp, DataFlow::Property p, CallNode c, - Node nd, Node resNode + Node nd, Node resNode, P param ) { - guardingFunction(g, f, inp, outp, p) and + guardingFunction(g, f, inp, outp, p, param) and c = f.getACall() and nd = getInputNode(inp, c) and localFlow(getOutputNode(outp, c), resNode) @@ -438,7 +478,7 @@ module BarrierGuard { * `false`, `nil` or a non-`nil` value.) */ private predicate guardingFunction( - Node g, Function f, FunctionInput inp, FunctionOutput outp, DataFlow::Property p + Node g, Function f, FunctionInput inp, FunctionOutput outp, DataFlow::Property p, P param ) { exists(FuncDecl fd, Node arg, Node ret | fd.getFunction() = f and @@ -446,7 +486,7 @@ module BarrierGuard { ( // Case: a function like "if someBarrierGuard(arg) { return true } else { return false }" exists(ControlFlow::ConditionGuardNode guard | - guards(g, pragma[only_bind_out](guard), arg) and + guards(g, pragma[only_bind_out](guard), arg, param) and guard.dominates(pragma[only_bind_out](ret).getBasicBlock()) | onlyPossibleReturnSatisfyingProperty(fd, outp, ret, p) @@ -456,7 +496,7 @@ module BarrierGuard { // or "return !someBarrierGuard(arg) && otherCond(...)" exists(boolean outcome | ret = getUniqueOutputNode(fd, outp) and - guardChecks(g, arg.asExpr(), outcome) and + guardChecks(g, arg.asExpr(), outcome, param) and // This predicate's contract is (p holds of ret ==> arg is checked), // (and we have (this has outcome ==> arg is checked)) // but p.checkOn(ret, outcome, this) gives us (ret has outcome ==> p holds of this), @@ -471,7 +511,7 @@ module BarrierGuard { DataFlow::Property outpProp | ret = getUniqueOutputNode(fd, outp) and - guardingFunction(g, f2, inp2, outp2, outpProp) and + guardingFunction(g, f2, inp2, outp2, outpProp, param) and c = f2.getACall() and arg = inp2.getNode(c) and ( diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index 6c49cb75bd3..633864fbf8c 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -160,16 +160,27 @@ module SourceSinkInterpretationInput implements } predicate barrierElement( - Element n, string output, string kind, Public::Provenance provenance, string model + Element e, string output, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string package, string type, boolean subtypes, string name, string signature, string ext + | + barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance, model) and + e = interpretElement(package, type, subtypes, name, signature, ext) + ) } predicate barrierGuardElement( - Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingvalue, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string package, string type, boolean subtypes, string name, string signature, string ext + | + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, + provenance, model) and + e = interpretElement(package, type, subtypes, name, signature, ext) + ) } // Note that due to embedding, which is currently implemented via some From 1e6410804f9b27211c669985e1acc6b36caab46c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 16 Dec 2025 17:10:08 +0000 Subject: [PATCH 034/263] Allow non-query-specific MaD sanitizers --- go/ql/lib/semmle/go/frameworks/XPath.qll | 6 ++++++ .../semmle/go/security/CommandInjectionCustomizations.qll | 4 ++++ go/ql/lib/semmle/go/security/HardcodedCredentials.qll | 7 +++++++ go/ql/lib/semmle/go/security/MissingJwtSignatureCheck.qll | 2 ++ .../go/security/MissingJwtSignatureCheckCustomizations.qll | 4 ++++ .../semmle/go/security/OpenUrlRedirectCustomizations.qll | 4 ++++ .../semmle/go/security/RequestForgeryCustomizations.qll | 4 ++++ .../lib/semmle/go/security/SqlInjectionCustomizations.qll | 4 ++++ go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll | 4 ++++ .../semmle/go/security/XPathInjectionCustomizations.qll | 3 +++ go/ql/lib/semmle/go/security/Xss.qll | 4 ++++ 11 files changed, 46 insertions(+) diff --git a/go/ql/lib/semmle/go/frameworks/XPath.qll b/go/ql/lib/semmle/go/frameworks/XPath.qll index 3123d129c09..30383a01505 100644 --- a/go/ql/lib/semmle/go/frameworks/XPath.qll +++ b/go/ql/lib/semmle/go/frameworks/XPath.qll @@ -29,6 +29,12 @@ module XPath { DefaultXPathExpressionString() { sinkNode(this, "xpath-injection") } } } + + abstract class Sanitizer extends DataFlow::Node { } + + private class ExternalSanitizer extends Sanitizer { + ExternalSanitizer() { barrierNode(this, "xpath-injection") } + } } /** diff --git a/go/ql/lib/semmle/go/security/CommandInjectionCustomizations.qll b/go/ql/lib/semmle/go/security/CommandInjectionCustomizations.qll index c2874d7cdac..bc42a5e59f0 100644 --- a/go/ql/lib/semmle/go/security/CommandInjectionCustomizations.qll +++ b/go/ql/lib/semmle/go/security/CommandInjectionCustomizations.qll @@ -47,6 +47,10 @@ module CommandInjection { override predicate doubleDashIsSanitizing() { exec.doubleDashIsSanitizing() } } + private class ExternalSanitizer extends Sanitizer { + ExternalSanitizer() { barrierNode(this, "command-injection") } + } + /** * A call to a regexp match function, considered as a barrier guard for command injection. */ diff --git a/go/ql/lib/semmle/go/security/HardcodedCredentials.qll b/go/ql/lib/semmle/go/security/HardcodedCredentials.qll index 877a2b4570e..0365efed3bc 100644 --- a/go/ql/lib/semmle/go/security/HardcodedCredentials.qll +++ b/go/ql/lib/semmle/go/security/HardcodedCredentials.qll @@ -47,6 +47,13 @@ module HardcodedCredentials { CredentialsSink() { exists(string s | s.matches("credentials-%") | sinkNode(this, s)) } } + /** A use of a credential. */ + private class ExternalCredentialsSanitizer extends Sanitizer { + ExternalCredentialsSanitizer() { + exists(string s | s.matches("credentials-%") | barrierNode(this, s)) + } + } + /** * Holds if the guard `g` in its branch `branch` validates the expression `e` * by comparing it to a literal. diff --git a/go/ql/lib/semmle/go/security/MissingJwtSignatureCheck.qll b/go/ql/lib/semmle/go/security/MissingJwtSignatureCheck.qll index 1f8185d4397..ae101fe8a83 100644 --- a/go/ql/lib/semmle/go/security/MissingJwtSignatureCheck.qll +++ b/go/ql/lib/semmle/go/security/MissingJwtSignatureCheck.qll @@ -20,6 +20,8 @@ module MissingJwtSignatureCheck { predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { any(AdditionalFlowStep s).step(nodeFrom, nodeTo) } diff --git a/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll b/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll index e1b153da24a..f86132352e3 100644 --- a/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll +++ b/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll @@ -54,4 +54,8 @@ module MissingJwtSignatureCheck { private class DefaultSink extends Sink { DefaultSink() { sinkNode(this, "jwt") } } + + private class ExternalSanitizer extends Sanitizer { + ExternalSanitizer() { barrierNode(this, "jwt") } + } } diff --git a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll index 248276ba396..8dbcee8170d 100644 --- a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll +++ b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll @@ -75,6 +75,10 @@ module OpenUrlRedirect { } } + private class ExternalBarrier extends Barrier { + ExternalBarrier() { barrierNode(this, "url-redirection") } + } + /** * An assignment of a safe value to the field `Path`, considered as a barrier for sanitizing * untrusted URLs. diff --git a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll index 82f9df4b506..bdb341f5525 100644 --- a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll +++ b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll @@ -94,6 +94,10 @@ module RequestForgery { HostnameSanitizer() { hostnameSanitizingPrefixEdge(this, _) } } + private class ExternalRequestForgerySanitizer extends Sanitizer { + ExternalRequestForgerySanitizer() { barrierNode(this, "request-forgery") } + } + /** * A call to a function called `isLocalUrl`, `isValidRedirect`, or similar, which is * considered a barrier guard. diff --git a/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll b/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll index f26168ad1d7..5d813bcbdac 100644 --- a/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll +++ b/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll @@ -43,6 +43,10 @@ module SqlInjection { /** DEPRECATED: Use `SimpleTypeSanitizer` from semmle.go.security.Sanitizers instead. */ deprecated class NumericOrBooleanSanitizer = SimpleTypeSanitizer; + private class ExternalSanitizer extends Sanitizer { + ExternalSanitizer() { barrierNode(this, ["nosql-injection", "sql-injection"]) } + } + /** * A numeric- or boolean-typed node, considered a sanitizer for sql injection. */ diff --git a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll index 747f2ab0d08..b46460e1fa2 100644 --- a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll +++ b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll @@ -57,6 +57,10 @@ module TaintedPath { PathAsSink() { this = any(FileSystemAccess fsa).getAPathArgument() } } + private class ExternalSanitizer extends Sanitizer { + ExternalSanitizer() { barrierNode(this, "path-injection") } + } + /** * A numeric- or boolean-typed node, considered a sanitizer for path traversal. */ diff --git a/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll b/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll index 472ed041ea1..21dd5d6b721 100644 --- a/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll +++ b/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll @@ -34,4 +34,7 @@ module XPathInjection { /** An XPath expression string, considered as a taint sink for XPath injection. */ class XPathExpressionStringAsSink extends Sink instanceof XPath::XPathExpressionString { } + + /** An XPath expression string, considered as a taint sink for XPath injection. */ + class XPathSanitizer extends Sanitizer instanceof XPath::Sanitizer { } } diff --git a/go/ql/lib/semmle/go/security/Xss.qll b/go/ql/lib/semmle/go/security/Xss.qll index f11dc12bf76..0f71ad717ae 100644 --- a/go/ql/lib/semmle/go/security/Xss.qll +++ b/go/ql/lib/semmle/go/security/Xss.qll @@ -88,6 +88,10 @@ module SharedXss { body.getAContentType().regexpMatch("(?i).*html.*") } + private class ExternalSanitizer extends Sanitizer { + ExternalSanitizer() { barrierNode(this, ["html-injection", "js-injection"]) } + } + /** * A JSON marshaler, acting to sanitize a possible XSS vulnerability because the * marshaled value is very unlikely to be returned as an HTML content-type. From 1e18fce300b1cdc6ed779244249c539ee05fe889 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 16 Dec 2025 17:16:52 +0000 Subject: [PATCH 035/263] Convert xss sanitizer to MaD --- go/ql/lib/ext/github.com.beego.beego.server.web.model.yml | 5 +++++ go/ql/lib/semmle/go/frameworks/Beego.qll | 8 -------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml b/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml index 0c539522c5a..8588af2652c 100644 --- a/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml +++ b/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml @@ -50,3 +50,8 @@ extensions: - ["group:beego", "Controller", True, "GetString", "", "", "ReturnValue[0]", "remote", "manual"] - ["group:beego", "Controller", True, "GetStrings", "", "", "ReturnValue[0]", "remote", "manual"] - ["group:beego", "Controller", True, "Input", "", "", "ReturnValue[0]", "remote", "manual"] + - addsTo: + pack: codeql/go-all + extensible: barrierModel + data: + - ["group:beego", "", True, "Htmlquote", "", "", "ReturnValue", "html-injection", "manual"] diff --git a/go/ql/lib/semmle/go/frameworks/Beego.qll b/go/ql/lib/semmle/go/frameworks/Beego.qll index 952958cebf0..383be8ec42a 100644 --- a/go/ql/lib/semmle/go/frameworks/Beego.qll +++ b/go/ql/lib/semmle/go/frameworks/Beego.qll @@ -165,14 +165,6 @@ module Beego { override string getAContentType() { none() } } - private class HtmlQuoteSanitizer extends SharedXss::Sanitizer { - HtmlQuoteSanitizer() { - exists(DataFlow::CallNode c | c.getTarget().hasQualifiedName(packagePath(), "Htmlquote") | - this = c.getArgument(0) - ) - } - } - private class UtilsTaintPropagators extends TaintTracking::FunctionModel { UtilsTaintPropagators() { this.hasQualifiedName(utilsPackagePath(), "GetDisplayString") } From 7fff3534faec18c0a57ca5656f4ffaf54eae98df Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 16 Dec 2025 17:19:56 +0000 Subject: [PATCH 036/263] Convert 3 barriers for path injection to MaD --- go/ql/lib/ext/mime.multipart.model.yml | 17 +++++++ go/ql/lib/ext/path.filepath.model.yml | 5 ++ .../go/security/TaintedPathCustomizations.qll | 51 ------------------- 3 files changed, 22 insertions(+), 51 deletions(-) diff --git a/go/ql/lib/ext/mime.multipart.model.yml b/go/ql/lib/ext/mime.multipart.model.yml index 410eac26af6..134481dfce3 100644 --- a/go/ql/lib/ext/mime.multipart.model.yml +++ b/go/ql/lib/ext/mime.multipart.model.yml @@ -1,4 +1,21 @@ extensions: + - addsTo: + pack: codeql/go-all + extensible: barrierModel + data: + # The only way to create a `mime/multipart.FileHeader` is to create a + # `mime/multipart.Form`, which creates the `Filename` field of each + # `mime/multipart.FileHeader` by calling `Part.FileName`, which calls + # `path/filepath.Base` on its return value. In general `path/filepath.Base` + # is not a sanitizer for path traversal, but in this specific case where the + # output is going to be used as a filename rather than a directory name, it + # is adequate. + - ["mime/multipart", "FileHeader", False, "Filename", "", "", "", "path-injection", "manual"] + # `Part.FileName` calls `path/filepath.Base` on its return value. In + # general `path/filepath.Base` is not a sanitizer for path traversal, but in + # this specific case where the output is going to be used as a filename + # rather than a directory name, it is adequate. + - ["mime/multipart", "Part", False, "FileName", "", "", "ReturnValue", "path-injection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel diff --git a/go/ql/lib/ext/path.filepath.model.yml b/go/ql/lib/ext/path.filepath.model.yml index 15bcb7d386d..d450e2bbc56 100644 --- a/go/ql/lib/ext/path.filepath.model.yml +++ b/go/ql/lib/ext/path.filepath.model.yml @@ -1,4 +1,9 @@ extensions: + - addsTo: + pack: codeql/go-all + extensible: barrierModel + data: + - ["path/filepath", "", False, "Rel", "", "", "ReturnValue", "path-injection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel diff --git a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll index b46460e1fa2..20341159c64 100644 --- a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll +++ b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll @@ -70,19 +70,6 @@ module TaintedPath { } } - /** - * A call to `filepath.Rel`, considered as a sanitizer for path traversal. - */ - class FilepathRelSanitizer extends Sanitizer { - FilepathRelSanitizer() { - exists(Function f, FunctionOutput outp | - f.hasQualifiedName("path/filepath", "Rel") and - outp.isResult(0) and - this = outp.getNode(f.getACall()) - ) - } - } - /** * A call to `filepath.Clean("/" + e)`, considered to sanitize `e` against path traversal. */ @@ -116,44 +103,6 @@ module TaintedPath { } } - /** - * A read from the field `Filename` of the type `mime/multipart.FileHeader`, - * considered as a sanitizer for path traversal. - * - * The only way to create a `mime/multipart.FileHeader` is to create a - * `mime/multipart.Form`, which creates the `Filename` field of each - * `mime/multipart.FileHeader` by calling `Part.FileName`, which calls - * `path/filepath.Base` on its return value. In general `path/filepath.Base` - * is not a sanitizer for path traversal, but in this specific case where the - * output is going to be used as a filename rather than a directory name, it - * is adequate. - */ - class MimeMultipartFileHeaderFilenameSanitizer extends Sanitizer { - MimeMultipartFileHeaderFilenameSanitizer() { - this.(DataFlow::FieldReadNode) - .getField() - .hasQualifiedName("mime/multipart", "FileHeader", "Filename") - } - } - - /** - * A call to `mime/multipart.Part.FileName`, considered as a sanitizer - * against path traversal. - * - * `Part.FileName` calls `path/filepath.Base` on its return value. In - * general `path/filepath.Base` is not a sanitizer for path traversal, but in - * this specific case where the output is going to be used as a filename - * rather than a directory name, it is adequate. - */ - class MimeMultipartPartFileNameSanitizer extends Sanitizer { - MimeMultipartPartFileNameSanitizer() { - this = - any(Method m | m.hasQualifiedName("mime/multipart", "Part", "FileName")) - .getACall() - .getResult() - } - } - /** * A check of the form `!strings.Contains(nd, "..")`, considered as a sanitizer guard for * path traversal. From 8602c4c57c2cf789bf5490acbf06d0b372417ea0 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 15:56:03 +0000 Subject: [PATCH 037/263] Rename Default* to External* for MaD classes --- go/ql/lib/semmle/go/Concepts.qll | 8 ++++---- go/ql/lib/semmle/go/concepts/HTTP.qll | 4 ++-- go/ql/lib/semmle/go/frameworks/NoSQL.qll | 4 ++-- go/ql/lib/semmle/go/frameworks/SQL.qll | 4 ++-- .../semmle/go/frameworks/SystemCommandExecutors.qll | 4 ++-- go/ql/lib/semmle/go/frameworks/XPath.qll | 4 ++-- go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll | 10 +++++----- go/ql/lib/semmle/go/security/HardcodedCredentials.qll | 4 ++-- .../MissingJwtSignatureCheckCustomizations.qll | 4 ++-- .../go/security/RequestForgeryCustomizations.qll | 4 ++-- go/ql/lib/semmle/go/security/Xss.qll | 4 ++-- 11 files changed, 27 insertions(+), 27 deletions(-) diff --git a/go/ql/lib/semmle/go/Concepts.qll b/go/ql/lib/semmle/go/Concepts.qll index acb16b62d07..4e328ed76c4 100644 --- a/go/ql/lib/semmle/go/Concepts.qll +++ b/go/ql/lib/semmle/go/Concepts.qll @@ -116,10 +116,10 @@ module FileSystemAccess { } } -private class DefaultFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode { +private class ExternalFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode { DataFlow::ArgumentNode pathArgument; - DefaultFileSystemAccess() { + ExternalFileSystemAccess() { sinkNode(pathArgument, "path-injection") and this = pathArgument.getCall() } @@ -394,10 +394,10 @@ module LoggerCall { } } -private class DefaultLoggerCall extends LoggerCall::Range, DataFlow::CallNode { +private class ExternalLoggerCall extends LoggerCall::Range, DataFlow::CallNode { DataFlow::ArgumentNode messageComponent; - DefaultLoggerCall() { + ExternalLoggerCall() { sinkNode(messageComponent, "log-injection") and this = messageComponent.getCall() } diff --git a/go/ql/lib/semmle/go/concepts/HTTP.qll b/go/ql/lib/semmle/go/concepts/HTTP.qll index 479cc19bfcc..b3990edd084 100644 --- a/go/ql/lib/semmle/go/concepts/HTTP.qll +++ b/go/ql/lib/semmle/go/concepts/HTTP.qll @@ -320,11 +320,11 @@ module Http { ) } - private class DefaultHttpRedirect extends Range, DataFlow::CallNode { + private class ExternalHttpRedirect extends Range, DataFlow::CallNode { DataFlow::ArgumentNode url; int rw; - DefaultHttpRedirect() { + ExternalHttpRedirect() { this = url.getCall() and exists(string kind | sinkKindInfo(kind, rw) and diff --git a/go/ql/lib/semmle/go/frameworks/NoSQL.qll b/go/ql/lib/semmle/go/frameworks/NoSQL.qll index 5fa155395fc..2772182f4fc 100644 --- a/go/ql/lib/semmle/go/frameworks/NoSQL.qll +++ b/go/ql/lib/semmle/go/frameworks/NoSQL.qll @@ -24,8 +24,8 @@ module NoSql { */ abstract class Range extends DataFlow::Node { } - private class DefaultQueryString extends Range { - DefaultQueryString() { + private class ExternalQueryString extends Range { + ExternalQueryString() { exists(DataFlow::ArgumentNode arg | sinkNode(arg, "nosql-injection") | this = arg.getACorrespondingSyntacticArgument() ) diff --git a/go/ql/lib/semmle/go/frameworks/SQL.qll b/go/ql/lib/semmle/go/frameworks/SQL.qll index a0e80fde1c9..c5cf4989d1a 100644 --- a/go/ql/lib/semmle/go/frameworks/SQL.qll +++ b/go/ql/lib/semmle/go/frameworks/SQL.qll @@ -67,8 +67,8 @@ module SQL { */ abstract class Range extends DataFlow::Node { } - private class DefaultQueryString extends Range { - DefaultQueryString() { + private class ExternalQueryString extends Range { + ExternalQueryString() { exists(DataFlow::ArgumentNode arg | sinkNode(arg, "sql-injection") | not arg instanceof DataFlow::ImplicitVarargsSlice and this = arg diff --git a/go/ql/lib/semmle/go/frameworks/SystemCommandExecutors.qll b/go/ql/lib/semmle/go/frameworks/SystemCommandExecutors.qll index 1bd7054d5c3..8abf2bbd368 100644 --- a/go/ql/lib/semmle/go/frameworks/SystemCommandExecutors.qll +++ b/go/ql/lib/semmle/go/frameworks/SystemCommandExecutors.qll @@ -5,12 +5,12 @@ import go -private class DefaultSystemCommandExecution extends SystemCommandExecution::Range, +private class ExternalSystemCommandExecution extends SystemCommandExecution::Range, DataFlow::CallNode { DataFlow::ArgumentNode commandName; - DefaultSystemCommandExecution() { + ExternalSystemCommandExecution() { sinkNode(commandName, "command-injection") and this = commandName.getCall() } diff --git a/go/ql/lib/semmle/go/frameworks/XPath.qll b/go/ql/lib/semmle/go/frameworks/XPath.qll index 30383a01505..a6d19009bf4 100644 --- a/go/ql/lib/semmle/go/frameworks/XPath.qll +++ b/go/ql/lib/semmle/go/frameworks/XPath.qll @@ -25,8 +25,8 @@ module XPath { */ abstract class Range extends DataFlow::Node { } - private class DefaultXPathExpressionString extends Range { - DefaultXPathExpressionString() { sinkNode(this, "xpath-injection") } + private class ExternalXPathExpressionString extends Range { + ExternalXPathExpressionString() { sinkNode(this, "xpath-injection") } } } diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll index 525eb73d5b9..b8ab8cb9cd3 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll @@ -39,10 +39,10 @@ module Regexp { ) } - private class DefaultRegexpPattern extends RegexpPattern::Range, DataFlow::ArgumentNode { + private class ExternalRegexpPattern extends RegexpPattern::Range, DataFlow::ArgumentNode { int strArg; - DefaultRegexpPattern() { + ExternalRegexpPattern() { exists(string kind | regexSinkKindInfo(kind, strArg) and sinkNode(this, kind) @@ -61,12 +61,12 @@ module Regexp { } } - private class DefaultRegexpMatchFunction extends RegexpMatchFunction::Range, Function { + private class ExternalRegexpMatchFunction extends RegexpMatchFunction::Range, Function { int patArg; int strArg; - DefaultRegexpMatchFunction() { - exists(DefaultRegexpPattern drp, string kind | + ExternalRegexpMatchFunction() { + exists(ExternalRegexpPattern drp, string kind | drp.getCall() = this.getACall() and sinkNode(drp, kind) | diff --git a/go/ql/lib/semmle/go/security/HardcodedCredentials.qll b/go/ql/lib/semmle/go/security/HardcodedCredentials.qll index 0365efed3bc..1802d48cdd7 100644 --- a/go/ql/lib/semmle/go/security/HardcodedCredentials.qll +++ b/go/ql/lib/semmle/go/security/HardcodedCredentials.qll @@ -43,8 +43,8 @@ module HardcodedCredentials { } /** A use of a credential. */ - private class CredentialsSink extends Sink { - CredentialsSink() { exists(string s | s.matches("credentials-%") | sinkNode(this, s)) } + private class ExternalCredentialsSink extends Sink { + ExternalCredentialsSink() { exists(string s | s.matches("credentials-%") | sinkNode(this, s)) } } /** A use of a credential. */ diff --git a/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll b/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll index f86132352e3..24c3550450a 100644 --- a/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll +++ b/go/ql/lib/semmle/go/security/MissingJwtSignatureCheckCustomizations.qll @@ -51,8 +51,8 @@ module MissingJwtSignatureCheck { private class DefaultSource extends Source instanceof ActiveThreatModelSource { } - private class DefaultSink extends Sink { - DefaultSink() { sinkNode(this, "jwt") } + private class ExternalSink extends Sink { + ExternalSink() { sinkNode(this, "jwt") } } private class ExternalSanitizer extends Sanitizer { diff --git a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll index bdb341f5525..d80026aeed5 100644 --- a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll +++ b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll @@ -44,10 +44,10 @@ module RequestForgery { */ private class ThreatModelFlowAsSource extends Source instanceof ActiveThreatModelSource { } - private class DefaultRequestForgerySink extends Sink { + private class ExternalRequestForgerySink extends Sink { string kind; - DefaultRequestForgerySink() { + ExternalRequestForgerySink() { exists(string modelKind | sinkNode(this, modelKind) | modelKind = "request-forgery" and kind = "URL" or diff --git a/go/ql/lib/semmle/go/security/Xss.qll b/go/ql/lib/semmle/go/security/Xss.qll index 0f71ad717ae..6ab9f7321f6 100644 --- a/go/ql/lib/semmle/go/security/Xss.qll +++ b/go/ql/lib/semmle/go/security/Xss.qll @@ -49,8 +49,8 @@ module SharedXss { override Locatable getAssociatedLoc() { result = this.getRead().getEnclosingTextNode() } } - private class DefaultSink extends Sink { - DefaultSink() { sinkNode(this, ["html-injection", "js-injection"]) } + private class ExternalSink extends Sink { + ExternalSink() { sinkNode(this, ["html-injection", "js-injection"]) } } /** From a7c4ba503ecdc7bc85be03131367ed1af705ba1c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:41:33 +0000 Subject: [PATCH 038/263] Add missing qldoc --- go/ql/lib/semmle/go/frameworks/XPath.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/go/ql/lib/semmle/go/frameworks/XPath.qll b/go/ql/lib/semmle/go/frameworks/XPath.qll index a6d19009bf4..0d8dc5d8176 100644 --- a/go/ql/lib/semmle/go/frameworks/XPath.qll +++ b/go/ql/lib/semmle/go/frameworks/XPath.qll @@ -30,6 +30,7 @@ module XPath { } } + /** A sanitizer for XPath injection. */ abstract class Sanitizer extends DataFlow::Node { } private class ExternalSanitizer extends Sanitizer { From 12c0ad0e042b70a591a8e947fc584c7409eaae4d Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:42:01 +0200 Subject: [PATCH 039/263] JS: Stop dependeding on getPath() for toString() --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 1a96e25b3b9..85fda109ffa 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -613,12 +613,12 @@ module API { /** A node corresponding to a definition of an API component. */ class Definition extends Node, Impl::TDef { - override string toString() { result = "def " + this.getPath() } + override string toString() { result = "def " + this.getInducingNode().toString() } } /** A node corresponding to the use of an API component. */ class Use extends Node, Impl::TUse { - override string toString() { result = "use " + this.getPath() } + override string toString() { result = "use " + this.getInducingNode().toString() } } /** Gets the root node. */ From 7fc87536bfeb182365c76404661f585ca877925f Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 9 Oct 2025 13:01:14 +0200 Subject: [PATCH 040/263] JS: Make MkSyntheticCallbackArg() independent of trackUseNode --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 85fda109ffa..3f956207591 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -545,7 +545,7 @@ module API { this = Impl::MkClassInstance(result) or this = Impl::MkUse(result) or this = Impl::MkDef(result) or - this = Impl::MkSyntheticCallbackArg(_, _, result) + this = Impl::MkSyntheticCallbackArg(result) } /** @@ -760,9 +760,7 @@ module API { MkTypeUse(string moduleName, string exportName) { any(TypeAnnotation n).hasUnderlyingType(moduleName, exportName) } or - MkSyntheticCallbackArg(DataFlow::Node src, int bound, DataFlow::InvokeNode nd) { - trackUseNode(src, true, bound, "").flowsTo(nd.getCalleeNode()) - } + MkSyntheticCallbackArg(DataFlow::InvokeNode nd) private predicate needsDefNode(DataFlow::ClassNode cls) { hasSemantics(cls) and @@ -1110,7 +1108,7 @@ module API { ) or exists(DataFlow::InvokeNode call | - base = MkSyntheticCallbackArg(_, _, call) and + base = MkSyntheticCallbackArg(call) and lbl = Label::parameter(1) and ref = awaited(call) ) @@ -1399,7 +1397,7 @@ module API { private DataFlow::SourceNode awaited(DataFlow::InvokeNode call, DataFlow::TypeTracker t) { t.startInPromise() and - exists(MkSyntheticCallbackArg(_, _, call)) and + trackUseNode(_, true, _, "").flowsTo(call.getCalleeNode()) and result = call or exists(DataFlow::TypeTracker t2 | result = awaited(call, t2).track(t2, t)) @@ -1494,7 +1492,8 @@ module API { DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { exists(DataFlow::SourceNode src | Impl::use(callee, src) and - succ = Impl::MkSyntheticCallbackArg(src, bound, result) + trackUseNode(src, true, bound, "").flowsTo(result.getCalleeNode()) and + succ = Impl::MkSyntheticCallbackArg(result) ) } } From 8f413856e087d23269c63d9d930697823b8f114a Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 9 Oct 2025 13:28:55 +0200 Subject: [PATCH 041/263] JS: Make other node types not depend on tracking predicates --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 3f956207591..6b3cb4b832d 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -753,9 +753,31 @@ module API { or any(TypeAnnotation n).hasUnderlyingType(m, _) } or - MkClassInstance(DataFlow::ClassNode cls) { needsDefNode(cls) } or - MkDef(DataFlow::Node nd) { rhs(_, _, nd) } or - MkUse(DataFlow::Node nd) { use(_, _, nd) } or + MkClassInstance(DataFlow::ClassNode cls) or + MkDef(DataFlow::Node nd) { + nd = any(DataFlow::PropWrite w).getRhs() + or + nd = any(DataFlow::FunctionNode fn).getReturnNode() + or + nd = any(DataFlow::FunctionNode fn).getAReturn() + or + nd = any(DataFlow::FunctionNode fn).getExceptionalReturn() + or + nd = any(DataFlow::CallNode c).getReceiver() + or + nd = any(DataFlow::InvokeNode i).getAnArgument() + or + nd = any(DataFlow::InvokeNode i).getASpreadArgument() + or + nd = any(ThrowStmt stmt).getExpr().flow() + or + nd = any(ExportDeclaration decl).getDirectSourceNode(_) + or + nd = any(MemberDeclaration m).getInit().flow() + or + nd = any(ClassDefinition cls | exists(cls.getADecorator())).flow() + } or + MkUse(DataFlow::Node nd) { nd instanceof DataFlow::SourceNode } or /** A use of a TypeScript type. */ MkTypeUse(string moduleName, string exportName) { any(TypeAnnotation n).hasUnderlyingType(moduleName, exportName) @@ -984,6 +1006,7 @@ module API { predicate rhs(TApiNode nd, DataFlow::Node rhs) { exists(string m | nd = MkModuleExport(m) | exports(m, rhs)) or + rhs(_, _, rhs) and nd = MkDef(rhs) } @@ -1246,6 +1269,7 @@ module API { ref = cls.(DataFlow::ClassNode).getAPrototypeReference() ) or + use(_, _, ref) and nd = MkUse(ref) } From fd65eeba0adb1fcc29517e6a839ae43397c9695b Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 9 Oct 2025 13:46:53 +0200 Subject: [PATCH 042/263] JS: Make use() and rhs() uncached and private --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 6b3cb4b832d..5a4bdd6243d 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -815,8 +815,7 @@ module API { * Holds if `rhs` is the right-hand side of a definition of a node that should have an * incoming edge from `base` labeled `lbl` in the API graph. */ - cached - predicate rhs(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { + private predicate rhs(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { hasSemantics(rhs) and ( base = MkRoot() and From 465f4b987d1cab02d3ef29b3ea9c53e0011c4a72 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 9 Oct 2025 13:55:38 +0200 Subject: [PATCH 043/263] JS: Wrap in a module Simply wraps everything in 'cached private module Stage {}' and adds 'import Stage'. The diff is large because of indentation changes. --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 1301 ++++++++--------- 1 file changed, 645 insertions(+), 656 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 5a4bdd6243d..9afc418c022 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -811,692 +811,694 @@ module API { hasSemantics(imp) } - /** - * Holds if `rhs` is the right-hand side of a definition of a node that should have an - * incoming edge from `base` labeled `lbl` in the API graph. - */ - private predicate rhs(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { - hasSemantics(rhs) and - ( - base = MkRoot() and - exists(EntryPoint e | - lbl = Label::entryPoint(e) and - rhs = e.getASink() - ) - or - exists(string m, string prop | - base = MkModuleExport(m) and - lbl = Label::member(prop) and - exports(m, prop, rhs) - ) - or - exists(DataFlow::Node def, DataFlow::SourceNode pred | - rhs(base, def) and pred = trackDefNode(def) - | - // from `x` to a definition of `x.prop` - exists(DataFlow::PropWrite pw | pw = pred.getAPropertyWrite() | - lbl = Label::memberFromRef(pw) and - rhs = pw.getRhs() + cached + private module Stage { + /** + * Holds if `rhs` is the right-hand side of a definition of a node that should have an + * incoming edge from `base` labeled `lbl` in the API graph. + */ + private predicate rhs(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { + hasSemantics(rhs) and + ( + base = MkRoot() and + exists(EntryPoint e | + lbl = Label::entryPoint(e) and + rhs = e.getASink() ) or - // special case: from `require('m')` to an export of `prop` in `m` - exists(Import imp, Module m, string prop | - pred = imp.getImportedModuleNodeStrict() and - m = imp.getImportedModule() and + exists(string m, string prop | + base = MkModuleExport(m) and lbl = Label::member(prop) and - rhs = m.getAnExportedValue(prop) + exports(m, prop, rhs) ) or - // In general, turn store steps into member steps for def-nodes - exists(string prop | - PreCallGraphStep::storeStep(rhs, pred, prop) and - lbl = Label::member(prop) and - not DataFlow::PseudoProperties::isPseudoProperty(prop) - ) - or - exists(DataFlow::ContentSet contents | - SummaryTypeTracker::basicStoreStep(rhs, pred.getALocalUse(), contents) and - lbl = Label::content(contents.getAStoreContent()) - ) - or - exists(DataFlow::FunctionNode fn | - fn = pred and - lbl = Label::return() + exists(DataFlow::Node def, DataFlow::SourceNode pred | + rhs(base, def) and pred = trackDefNode(def) | - if fn.getFunction().isAsync() then rhs = fn.getReturnNode() else rhs = fn.getAReturn() - ) - or - lbl = Label::promised() and - SharedTypeTrackingStep::storeStep(rhs, pred, Promises::valueProp()) - or - lbl = Label::promisedError() and - SharedTypeTrackingStep::storeStep(rhs, pred, Promises::errorProp()) - or - // The return-value of a getter G counts as a definition of property G - // (Ordinary methods and properties are handled as PropWrite nodes) - exists(string name | lbl = Label::member(name) | - rhs = pred.(DataFlow::ObjectLiteralNode).getPropertyGetter(name).getAReturn() + // from `x` to a definition of `x.prop` + exists(DataFlow::PropWrite pw | pw = pred.getAPropertyWrite() | + lbl = Label::memberFromRef(pw) and + rhs = pw.getRhs() + ) or - rhs = - pred.(DataFlow::ClassNode) - .getStaticMember(name, DataFlow::MemberKind::getter()) - .getAReturn() + // special case: from `require('m')` to an export of `prop` in `m` + exists(Import imp, Module m, string prop | + pred = imp.getImportedModuleNodeStrict() and + m = imp.getImportedModule() and + lbl = Label::member(prop) and + rhs = m.getAnExportedValue(prop) + ) + or + // In general, turn store steps into member steps for def-nodes + exists(string prop | + PreCallGraphStep::storeStep(rhs, pred, prop) and + lbl = Label::member(prop) and + not DataFlow::PseudoProperties::isPseudoProperty(prop) + ) + or + exists(DataFlow::ContentSet contents | + SummaryTypeTracker::basicStoreStep(rhs, pred.getALocalUse(), contents) and + lbl = Label::content(contents.getAStoreContent()) + ) + or + exists(DataFlow::FunctionNode fn | + fn = pred and + lbl = Label::return() + | + if fn.getFunction().isAsync() then rhs = fn.getReturnNode() else rhs = fn.getAReturn() + ) + or + lbl = Label::promised() and + SharedTypeTrackingStep::storeStep(rhs, pred, Promises::valueProp()) + or + lbl = Label::promisedError() and + SharedTypeTrackingStep::storeStep(rhs, pred, Promises::errorProp()) + or + // The return-value of a getter G counts as a definition of property G + // (Ordinary methods and properties are handled as PropWrite nodes) + exists(string name | lbl = Label::member(name) | + rhs = pred.(DataFlow::ObjectLiteralNode).getPropertyGetter(name).getAReturn() + or + rhs = + pred.(DataFlow::ClassNode) + .getStaticMember(name, DataFlow::MemberKind::getter()) + .getAReturn() + ) + or + // Handle rest parameters escaping into external code. For example: + // + // function foo(...rest) { + // externalFunc(rest); + // } + // + // Here, 'rest' reaches a def-node at the call to externalFunc, so we need to ensure + // the arguments passed to 'foo' are stored in the 'rest' array. + exists(Function fun, DataFlow::InvokeNode invoke, int argIndex, Parameter rest | + fun.getRestParameter() = rest and + rest.flow() = pred and + invoke.getACallee() = fun and + invoke.getArgument(argIndex) = rhs and + argIndex >= rest.getIndex() and + lbl = Label::member((argIndex - rest.getIndex()).toString()) + ) ) or - // Handle rest parameters escaping into external code. For example: - // - // function foo(...rest) { - // externalFunc(rest); - // } - // - // Here, 'rest' reaches a def-node at the call to externalFunc, so we need to ensure - // the arguments passed to 'foo' are stored in the 'rest' array. - exists(Function fun, DataFlow::InvokeNode invoke, int argIndex, Parameter rest | - fun.getRestParameter() = rest and - rest.flow() = pred and - invoke.getACallee() = fun and - invoke.getArgument(argIndex) = rhs and - argIndex >= rest.getIndex() and - lbl = Label::member((argIndex - rest.getIndex()).toString()) + exists(DataFlow::ClassNode cls, string name | + base = MkClassInstance(cls) and + lbl = Label::member(name) + | + rhs = cls.getInstanceMethod(name) + or + rhs = cls.getInstanceMember(name, DataFlow::MemberKind::getter()).getAReturn() + ) + or + exists(DataFlow::FunctionNode f | + f.getFunction().isAsync() and + base = MkDef(f.getReturnNode()) + | + lbl = Label::promised() and + rhs = f.getAReturn() + or + lbl = Label::promisedError() and + rhs = f.getExceptionalReturn() + ) + or + exists(int i | argumentPassing(base, i, rhs) | + lbl = Label::parameter(i) + or + i = -1 and lbl = Label::receiver() + ) + or + exists(int i | + spreadArgumentPassing(base, i, rhs) and + lbl = Label::spreadArgument(i) + ) + or + exists(DataFlow::SourceNode src, DataFlow::PropWrite pw | + use(base, src) and pw = trackUseNode(src).getAPropertyWrite() and rhs = pw.getRhs() + | + lbl = Label::memberFromRef(pw) ) ) or - exists(DataFlow::ClassNode cls, string name | - base = MkClassInstance(cls) and - lbl = Label::member(name) - | - rhs = cls.getInstanceMethod(name) - or - rhs = cls.getInstanceMember(name, DataFlow::MemberKind::getter()).getAReturn() - ) + decoratorDualEdge(base, lbl, rhs) or - exists(DataFlow::FunctionNode f | - f.getFunction().isAsync() and - base = MkDef(f.getReturnNode()) - | - lbl = Label::promised() and - rhs = f.getAReturn() - or - lbl = Label::promisedError() and - rhs = f.getExceptionalReturn() - ) + decoratorRhsEdge(base, lbl, rhs) or - exists(int i | argumentPassing(base, i, rhs) | - lbl = Label::parameter(i) - or - i = -1 and lbl = Label::receiver() + exists(DataFlow::PropWrite write | + decoratorPropEdge(base, lbl, write) and + rhs = write.getRhs() ) - or - exists(int i | - spreadArgumentPassing(base, i, rhs) and - lbl = Label::spreadArgument(i) - ) - or - exists(DataFlow::SourceNode src, DataFlow::PropWrite pw | - use(base, src) and pw = trackUseNode(src).getAPropertyWrite() and rhs = pw.getRhs() - | - lbl = Label::memberFromRef(pw) - ) - ) - or - decoratorDualEdge(base, lbl, rhs) - or - decoratorRhsEdge(base, lbl, rhs) - or - exists(DataFlow::PropWrite write | - decoratorPropEdge(base, lbl, write) and - rhs = write.getRhs() - ) - } + } - /** - * Holds if `arg` is passed as the `i`th argument to a use of `base`, either by means of a - * full invocation, or in a partial function application. - * - * The receiver is considered to be argument -1. - */ - private predicate argumentPassing(TApiNode base, int i, DataFlow::Node arg) { - exists(DataFlow::Node use, DataFlow::SourceNode pred, int bound | - use(base, use) and pred = trackUseNode(use, _, bound, "") - | - arg = pred.getAnInvocation().getArgument(i - bound) - or - arg = pred.getACall().getReceiver() and - bound = 0 and - i = -1 - or - exists(DataFlow::PartialInvokeNode pin, DataFlow::Node callback | pred.flowsTo(callback) | - pin.isPartialArgument(callback, arg, i - bound) + /** + * Holds if `arg` is passed as the `i`th argument to a use of `base`, either by means of a + * full invocation, or in a partial function application. + * + * The receiver is considered to be argument -1. + */ + private predicate argumentPassing(TApiNode base, int i, DataFlow::Node arg) { + exists(DataFlow::Node use, DataFlow::SourceNode pred, int bound | + use(base, use) and pred = trackUseNode(use, _, bound, "") + | + arg = pred.getAnInvocation().getArgument(i - bound) or - arg = pin.getBoundReceiver(callback) and + arg = pred.getACall().getReceiver() and bound = 0 and i = -1 + or + exists(DataFlow::PartialInvokeNode pin, DataFlow::Node callback | pred.flowsTo(callback) | + pin.isPartialArgument(callback, arg, i - bound) + or + arg = pin.getBoundReceiver(callback) and + bound = 0 and + i = -1 + ) ) - ) - } + } - pragma[nomagic] - private int firstSpreadIndex(InvokeExpr expr) { - result = min(int i | expr.getArgument(i) instanceof SpreadElement) - } + pragma[nomagic] + private int firstSpreadIndex(InvokeExpr expr) { + result = min(int i | expr.getArgument(i) instanceof SpreadElement) + } - pragma[nomagic] - private InvokeExpr getAnInvocationWithSpread(DataFlow::SourceNode node, int i) { - result = node.getAnInvocation().asExpr() and - i = firstSpreadIndex(result) - } + pragma[nomagic] + private InvokeExpr getAnInvocationWithSpread(DataFlow::SourceNode node, int i) { + result = node.getAnInvocation().asExpr() and + i = firstSpreadIndex(result) + } - private predicate spreadArgumentPassing(TApiNode base, int i, DataFlow::Node spreadArray) { - exists( - DataFlow::Node use, DataFlow::SourceNode pred, int bound, InvokeExpr invoke, int spreadPos - | - use(base, use) and - pred = trackUseNode(use, _, bound, "") and - invoke = getAnInvocationWithSpread(pred, spreadPos) and - spreadArray = invoke.getArgument(spreadPos).(SpreadElement).getOperand().flow() and - i = bound + spreadPos - ) - } - - /** - * Holds if `rhs` is the right-hand side of a definition of node `nd`. - */ - cached - predicate rhs(TApiNode nd, DataFlow::Node rhs) { - exists(string m | nd = MkModuleExport(m) | exports(m, rhs)) - or - rhs(_, _, rhs) and - nd = MkDef(rhs) - } - - /** - * Holds if `ref` is a read of a property described by `lbl` on `pred`, and - * `propDesc` is compatible with that property, meaning it is either the - * name of the property itself or the empty string. - */ - pragma[noinline] - private predicate propertyRead( - DataFlow::SourceNode pred, string propDesc, Label::ApiLabel lbl, DataFlow::Node ref - ) { - ref = pred.getAPropertyRead() and - lbl = Label::memberFromRef(ref) and - ( - lbl = Label::member(propDesc) - or - propDesc = "" - ) - or - SharedTypeTrackingStep::loadStep(pred.getALocalUse(), ref, Promises::valueProp()) and - lbl = Label::promised() and - (propDesc = Promises::valueProp() or propDesc = "") - or - SharedTypeTrackingStep::loadStep(pred.getALocalUse(), ref, Promises::errorProp()) and - lbl = Label::promisedError() and - (propDesc = Promises::errorProp() or propDesc = "") - } - - pragma[nomagic] - private DataFlow::ClassNode getALocalSubclass(DataFlow::SourceNode node) { - result.getASuperClassNode().getALocalSource() = node - } - - bindingset[node] - pragma[inline_late] - private DataFlow::ClassNode getALocalSubclassFwd(DataFlow::SourceNode node) { - result = getALocalSubclass(node) - } - - /** - * Holds if `ref` is a use of a node that should have an incoming edge from `base` labeled - * `lbl` in the API graph. - */ - cached - predicate use(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { - hasSemantics(ref) and - ( - base = MkRoot() and - exists(EntryPoint e | - lbl = Label::entryPoint(e) and - ref = e.getASource() - ) - or - // property reads - exists(DataFlow::SourceNode src, DataFlow::SourceNode pred, string propDesc | - use(base, src) and - pred = trackUseNode(src, false, 0, propDesc) and - propertyRead(pred, propDesc, lbl, ref) and - // `module.exports` is special: it is a use of a def-node, not a use-node, - // so we want to exclude it here - (base instanceof TNonModuleDef or base instanceof TUse) - ) - or - exists(DataFlow::SourceNode src, DataFlow::SourceNode pred | - use(base, src) and pred = trackUseNode(src) + private predicate spreadArgumentPassing(TApiNode base, int i, DataFlow::Node spreadArray) { + exists( + DataFlow::Node use, DataFlow::SourceNode pred, int bound, InvokeExpr invoke, int spreadPos | - lbl = Label::instance() and - ref = pred.getAnInstantiation() + use(base, use) and + pred = trackUseNode(use, _, bound, "") and + invoke = getAnInvocationWithSpread(pred, spreadPos) and + spreadArray = invoke.getArgument(spreadPos).(SpreadElement).getOperand().flow() and + i = bound + spreadPos + ) + } + + /** + * Holds if `rhs` is the right-hand side of a definition of node `nd`. + */ + cached + predicate rhs(TApiNode nd, DataFlow::Node rhs) { + exists(string m | nd = MkModuleExport(m) | exports(m, rhs)) + or + rhs(_, _, rhs) and + nd = MkDef(rhs) + } + + /** + * Holds if `ref` is a read of a property described by `lbl` on `pred`, and + * `propDesc` is compatible with that property, meaning it is either the + * name of the property itself or the empty string. + */ + pragma[noinline] + private predicate propertyRead( + DataFlow::SourceNode pred, string propDesc, Label::ApiLabel lbl, DataFlow::Node ref + ) { + ref = pred.getAPropertyRead() and + lbl = Label::memberFromRef(ref) and + ( + lbl = Label::member(propDesc) or - lbl = Label::return() and - ref = pred.getAnInvocation() + propDesc = "" + ) + or + SharedTypeTrackingStep::loadStep(pred.getALocalUse(), ref, Promises::valueProp()) and + lbl = Label::promised() and + (propDesc = Promises::valueProp() or propDesc = "") + or + SharedTypeTrackingStep::loadStep(pred.getALocalUse(), ref, Promises::errorProp()) and + lbl = Label::promisedError() and + (propDesc = Promises::errorProp() or propDesc = "") + } + + pragma[nomagic] + private DataFlow::ClassNode getALocalSubclass(DataFlow::SourceNode node) { + result.getASuperClassNode().getALocalSource() = node + } + + bindingset[node] + pragma[inline_late] + private DataFlow::ClassNode getALocalSubclassFwd(DataFlow::SourceNode node) { + result = getALocalSubclass(node) + } + + /** + * Holds if `ref` is a use of a node that should have an incoming edge from `base` labeled + * `lbl` in the API graph. + */ + private predicate use(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { + hasSemantics(ref) and + ( + base = MkRoot() and + exists(EntryPoint e | + lbl = Label::entryPoint(e) and + ref = e.getASource() + ) or - lbl = Label::forwardingFunction() and - DataFlow::functionForwardingStep(pred.getALocalUse(), ref) + // property reads + exists(DataFlow::SourceNode src, DataFlow::SourceNode pred, string propDesc | + use(base, src) and + pred = trackUseNode(src, false, 0, propDesc) and + propertyRead(pred, propDesc, lbl, ref) and + // `module.exports` is special: it is a use of a def-node, not a use-node, + // so we want to exclude it here + (base instanceof TNonModuleDef or base instanceof TUse) + ) + or + exists(DataFlow::SourceNode src, DataFlow::SourceNode pred | + use(base, src) and pred = trackUseNode(src) + | + lbl = Label::instance() and + ref = pred.getAnInstantiation() + or + lbl = Label::return() and + ref = pred.getAnInvocation() + or + lbl = Label::forwardingFunction() and + DataFlow::functionForwardingStep(pred.getALocalUse(), ref) + or + exists(DataFlow::ClassNode cls | + lbl = Label::instance() and + cls = getALocalSubclassFwd(pred).getADirectSubClass*() + | + ref = cls.getAReceiverNode() + or + ref = cls.getAClassReference().getAnInstantiation() + ) + or + exists(string prop | + PreCallGraphStep::loadStep(pred.getALocalUse(), ref, prop) and + lbl = Label::member(prop) and + // avoid generating member edges like "$arrayElement$" + not DataFlow::PseudoProperties::isPseudoProperty(prop) + ) + or + exists(DataFlow::ContentSet contents | + SummaryTypeTracker::basicLoadStep(pred.getALocalUse(), ref, contents) and + lbl = Label::content(contents.getAStoreContent()) + ) + ) + or + exists(DataFlow::Node def, DataFlow::FunctionNode fn | + rhs(base, def) and fn = trackDefNode(def) + | + exists(int i | + lbl = Label::parameter(i) and + ref = fn.getParameter(i) + ) + or + lbl = Label::receiver() and + ref = fn.getReceiver() + ) + or + exists(DataFlow::Node def, DataFlow::ClassNode cls, int i | + rhs(base, def) and cls = trackDefNode(def) + | + lbl = Label::parameter(i) and + ref = cls.getConstructor().getParameter(i) + ) + or + exists(string moduleName, string exportName | + base = MkTypeUse(moduleName, exportName) and + lbl = Label::instance() and + ref.(DataFlow::SourceNode).hasUnderlyingType(moduleName, exportName) + ) + or + exists(DataFlow::InvokeNode call | + base = MkSyntheticCallbackArg(call) and + lbl = Label::parameter(1) and + ref = awaited(call) + ) + or + decoratorDualEdge(base, lbl, ref) + or + decoratorUseEdge(base, lbl, ref) + or + // for fields and accessors, mark the reads as use-nodes + decoratorPropEdge(base, lbl, ref.(DataFlow::PropRead)) + ) + } + + /** Holds if `base` is a use-node that flows to the decorator expression of the given decorator. */ + pragma[nomagic] + private predicate useNodeFlowsToDecorator(TApiNode base, Decorator decorator) { + exists(DataFlow::SourceNode decoratorSrc | + use(base, decoratorSrc) and + trackUseNode(decoratorSrc).flowsToExpr(decorator.getExpression()) + ) + } + + /** + * Holds if `ref` corresponds to both a use and def-node that should have an incoming edge from `base` labelled `lbl`. + * + * This happens because the decorated value escapes into the decorator function, and is then replaced + * by the function's return value. In the JS analysis we generally assume decorators return their input, + * but library models may want to find the return value. + */ + private predicate decoratorDualEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { + exists(ClassDefinition cls | + useNodeFlowsToDecorator(base, cls.getADecorator()) and + lbl = Label::decoratedClass() and + ref = DataFlow::valueNode(cls) + ) + or + exists(MethodDefinition method | + useNodeFlowsToDecorator(base, method.getADecorator()) and + not method instanceof AccessorMethodDefinition and + lbl = Label::decoratedMember() and + ref = DataFlow::valueNode(method.getBody()) + ) + } + + /** Holds if `ref` is a use that should have an incoming edge from `base` labelled `lbl`, induced by a decorator. */ + private predicate decoratorUseEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { + exists(SetterMethodDefinition accessor | + useNodeFlowsToDecorator(base, + [accessor.getADecorator(), accessor.getCorrespondingGetter().getADecorator()]) and + lbl = Label::decoratedMember() and + ref = DataFlow::parameterNode(accessor.getBody().getParameter(0)) + ) + or + exists(Parameter param | + useNodeFlowsToDecorator(base, param.getADecorator()) and + lbl = Label::decoratedParameter() and + ref = DataFlow::parameterNode(param) + ) + } + + /** Holds if `rhs` is a def node that should have an incoming edge from `base` labelled `lbl`, induced by a decorator. */ + private predicate decoratorRhsEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { + exists(GetterMethodDefinition accessor | + useNodeFlowsToDecorator(base, + [accessor.getADecorator(), accessor.getCorrespondingSetter().getADecorator()]) and + lbl = Label::decoratedMember() and + rhs = DataFlow::valueNode(accessor.getBody().getAReturnedExpr()) + ) + } + + /** + * Holds if `ref` is a reference to a field/accessor that should have en incoming edge from base labelled `lbl`. + * + * Since fields do not have their own data-flow nodes, we generate a node for each read or write. + * For property writes, the right-hand side becomes a def-node and property reads become use-nodes. + * + * For accessors this predicate computes each use of the accessor. + * The return value inside the accessor is computed by the `decoratorRhsEdge` predicate. + */ + private predicate decoratorPropEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::PropRef ref) { + exists(MemberDefinition fieldLike, DataFlow::ClassNode cls | + fieldLike instanceof FieldDefinition + or + fieldLike instanceof AccessorMethodDefinition + | + useNodeFlowsToDecorator(base, fieldLike.getADecorator()) and + lbl = Label::decoratedMember() and + cls = fieldLike.getDeclaringClass().flow() and + ( + fieldLike.isStatic() and + ref = cls.getAClassReference().getAPropertyReference(fieldLike.getName()) + or + not fieldLike.isStatic() and + ref = cls.getAnInstanceReference().getAPropertyReference(fieldLike.getName()) + ) + ) + } + + /** + * Holds if `ref` is a use of node `nd`. + */ + cached + predicate use(TApiNode nd, DataFlow::Node ref) { + exists(string m, Module mod | nd = MkModuleDef(m) and mod = importableModule(m) | + ref = DataFlow::moduleVarNode(mod) + ) + or + exists(string m, Module mod | nd = MkModuleExport(m) and mod = importableModule(m) | + ref = DataFlow::exportsVarNode(mod) + or + exists(DataFlow::Node base | use(MkModuleDef(m), base) | + ref = trackUseNode(base).getAPropertyRead("exports") + ) + ) + or + exists(string m | + nd = MkModuleImport(m) and + ref = DataFlow::moduleImport(m) + ) + or + exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) | + ref = cls.getAReceiverNode() + or + ref = cls.(DataFlow::ClassNode).getAPrototypeReference() + ) + or + use(_, _, ref) and + nd = MkUse(ref) + } + + private import semmle.javascript.dataflow.TypeTracking + + /** + * Gets a data-flow node to which `nd`, which is a use of an API-graph node, flows. + * + * The flow from `nd` to that node may be inter-procedural, and is further described by three + * flags: + * + * - `promisified`: if true `true`, the flow goes through a promisification; + * - `boundArgs`: for function values, tracks how many arguments have been bound throughout + * the flow. To ensure termination, we somewhat arbitrarily constrain the number of bound + * arguments to be at most ten. + * - `prop`: if non-empty, the flow is only guaranteed to preserve the value of this property, + * and not necessarily the entire object. + */ + private DataFlow::SourceNode trackUseNode( + DataFlow::SourceNode nd, boolean promisified, int boundArgs, string prop, + DataFlow::TypeTracker t + ) { + t.start() and + use(_, nd) and + result = nd and + promisified = false and + boundArgs = 0 and + prop = "" + or + exists(Promisify::PromisifyCall promisify | + trackUseNode(nd, false, boundArgs, prop, t.continue()).flowsTo(promisify.getArgument(0)) and + promisified = true and + prop = "" and + result = promisify + ) + or + exists(DataFlow::PartialInvokeNode pin, DataFlow::Node pred, int predBoundArgs | + trackUseNode(nd, promisified, predBoundArgs, prop, t.continue()).flowsTo(pred) and + prop = "" and + result = pin.getBoundFunction(pred, boundArgs - predBoundArgs) and + boundArgs in [0 .. 10] + ) + or + exists(DataFlow::SourceNode mid | + mid = trackUseNode(nd, promisified, boundArgs, prop, t) and + AdditionalUseStep::step(pragma[only_bind_out](mid), result) + ) + or + exists(DataFlow::Node pred, string preprop | + trackUseNode(nd, promisified, boundArgs, preprop, t.continue()).flowsTo(pred) and + promisified = false and + boundArgs = 0 and + SharedTypeTrackingStep::loadStoreStep(pred, result, prop) + | + prop = preprop + or + preprop = "" + ) + or + t = useStep(nd, promisified, boundArgs, prop, result) + } + + /** + * Holds if `nd`, which is a use of an API-graph node, flows in zero or more potentially + * inter-procedural steps to some intermediate node, and then from that intermediate node to + * `res` in one step. The entire flow is described by the resulting `TypeTracker`. + * + * This predicate exists solely to enforce a better join order in `trackUseNode` above. + */ + pragma[noopt] + private DataFlow::TypeTracker useStep( + DataFlow::Node nd, boolean promisified, int boundArgs, string prop, DataFlow::Node res + ) { + exists(DataFlow::TypeTracker t, StepSummary summary, DataFlow::SourceNode prev | + prev = trackUseNode(nd, promisified, boundArgs, prop, t) and + StepSummary::step(prev, res, summary) and + result = t.append(summary) + ) + } + + private DataFlow::SourceNode trackUseNode( + DataFlow::SourceNode nd, boolean promisified, int boundArgs, string prop + ) { + result = trackUseNode(nd, promisified, boundArgs, prop, DataFlow::TypeTracker::end()) + } + + /** + * Gets a node that is inter-procedurally reachable from `nd`, which is a use of some node. + */ + cached + DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { + result = trackUseNode(nd, false, 0, "") + } + + private DataFlow::SourceNode trackDefNode(DataFlow::Node nd, DataFlow::TypeBackTracker t) { + t.start() and + rhs(_, nd) and + result = nd.getALocalSource() + or + // additional backwards step from `require('m')` to `exports` or `module.exports` in m + exists(Import imp | imp.getImportedModuleNodeStrict() = trackDefNode(nd, t.continue()) | + result = DataFlow::exportsVarNode(imp.getImportedModule()) + or + result = DataFlow::moduleVarNode(imp.getImportedModule()).getAPropertyRead("exports") + ) + or + exists(ObjectExpr obj | + obj = trackDefNode(nd, t.continue()).asExpr() and + result = + obj.getAProperty() + .(SpreadProperty) + .getInit() + .(SpreadElement) + .getOperand() + .flow() + .getALocalSource() + ) + or + t = defStep(nd, result) + } + + /** + * Holds if `nd`, which is a def of an API-graph node, can be reached in zero or more potentially + * inter-procedural steps from some intermediate node, and `prev` flows into that intermediate node + * in one step. The entire flow is described by the resulting `TypeTracker`. + * + * This predicate exists solely to enforce a better join order in `trackDefNode` above. + */ + pragma[noopt] + private DataFlow::TypeBackTracker defStep(DataFlow::Node nd, DataFlow::SourceNode prev) { + exists(DataFlow::TypeBackTracker t, StepSummary summary, DataFlow::Node next | + next = trackDefNode(nd, t) and + StepSummary::step(prev, next, summary) and + result = t.prepend(summary) + ) + } + + /** + * Gets a node that inter-procedurally flows into `nd`, which is a definition of some node. + */ + cached + DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { + result = trackDefNode(nd, DataFlow::TypeBackTracker::end()) + } + + private DataFlow::SourceNode awaited(DataFlow::InvokeNode call, DataFlow::TypeTracker t) { + t.startInPromise() and + trackUseNode(_, true, _, "").flowsTo(call.getCalleeNode()) and + result = call + or + exists(DataFlow::TypeTracker t2 | result = awaited(call, t2).track(t2, t)) + } + + /** + * Gets a node holding the resolved value of promise `call`. + */ + private DataFlow::Node awaited(DataFlow::InvokeNode call) { + result = awaited(call, DataFlow::TypeTracker::end()) + } + + /** + * Holds if there is an edge from `pred` to `succ` in the API graph that is labeled with `lbl`. + */ + cached + predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) { + Stages::ApiStage::ref() and + exists(string m | + pred = MkRoot() and + lbl = Label::moduleLabel(m) + | + succ = MkModuleDef(m) + or + succ = MkModuleUse(m) + ) + or + exists(string m | + pred = MkModuleDef(m) and + lbl = Label::member("exports") and + succ = MkModuleExport(m) + or + pred = MkModuleUse(m) and + lbl = Label::member("exports") and + succ = MkModuleImport(m) + ) + or + exists(DataFlow::SourceNode ref | + use(pred, lbl, ref) and + succ = MkUse(ref) + ) + or + exists(DataFlow::Node rhs | rhs(pred, lbl, rhs) | + succ = MkDef(rhs) or exists(DataFlow::ClassNode cls | - lbl = Label::instance() and - cls = getALocalSubclassFwd(pred).getADirectSubClass*() - | - ref = cls.getAReceiverNode() - or - ref = cls.getAClassReference().getAnInstantiation() - ) - or - exists(string prop | - PreCallGraphStep::loadStep(pred.getALocalUse(), ref, prop) and - lbl = Label::member(prop) and - // avoid generating member edges like "$arrayElement$" - not DataFlow::PseudoProperties::isPseudoProperty(prop) - ) - or - exists(DataFlow::ContentSet contents | - SummaryTypeTracker::basicLoadStep(pred.getALocalUse(), ref, contents) and - lbl = Label::content(contents.getAStoreContent()) + cls.getAnInstanceReference().flowsTo(rhs) and + succ = MkClassInstance(cls) ) ) or - exists(DataFlow::Node def, DataFlow::FunctionNode fn | - rhs(base, def) and fn = trackDefNode(def) - | - exists(int i | - lbl = Label::parameter(i) and - ref = fn.getParameter(i) - ) - or - lbl = Label::receiver() and - ref = fn.getReceiver() - ) - or - exists(DataFlow::Node def, DataFlow::ClassNode cls, int i | - rhs(base, def) and cls = trackDefNode(def) - | - lbl = Label::parameter(i) and - ref = cls.getConstructor().getParameter(i) + exists(DataFlow::Node def | + rhs(pred, def) and + lbl = Label::instance() and + succ = MkClassInstance(trackDefNode(def)) ) or exists(string moduleName, string exportName | - base = MkTypeUse(moduleName, exportName) and - lbl = Label::instance() and - ref.(DataFlow::SourceNode).hasUnderlyingType(moduleName, exportName) + pred = MkModuleImport(moduleName) and + lbl = Label::member(exportName) and + succ = MkTypeUse(moduleName, exportName) ) or - exists(DataFlow::InvokeNode call | - base = MkSyntheticCallbackArg(call) and - lbl = Label::parameter(1) and - ref = awaited(call) + exists(DataFlow::Node nd, DataFlow::FunctionNode f | + f.getFunction().isAsync() and + pred = MkDef(nd) and + f = trackDefNode(nd) and + lbl = Label::return() and + succ = MkDef(f.getReturnNode()) ) or - // Handle promisified object member access: promisify(obj).member should be treated as obj.member (promisified) - exists( - Promisify::PromisifyAllCall promisifiedObj, DataFlow::SourceNode originalObj, - string member - | - originalObj.flowsTo(promisifiedObj.getArgument(0)) and - use(base, originalObj) and - lbl = Label::member(member) and - ref = promisifiedObj.getAPropertyRead(member) + exists(int bound, DataFlow::InvokeNode call | + lbl = Label::parameter(bound + call.getNumArgument()) and + call = getAPromisifiedInvocation(pred, bound, succ) ) - or - decoratorDualEdge(base, lbl, ref) - or - decoratorUseEdge(base, lbl, ref) - or - // for fields and accessors, mark the reads as use-nodes - decoratorPropEdge(base, lbl, ref.(DataFlow::PropRead)) - ) - } + } - /** Holds if `base` is a use-node that flows to the decorator expression of the given decorator. */ - pragma[nomagic] - private predicate useNodeFlowsToDecorator(TApiNode base, Decorator decorator) { - exists(DataFlow::SourceNode decoratorSrc | - use(base, decoratorSrc) and - trackUseNode(decoratorSrc).flowsToExpr(decorator.getExpression()) - ) - } - - /** - * Holds if `ref` corresponds to both a use and def-node that should have an incoming edge from `base` labelled `lbl`. - * - * This happens because the decorated value escapes into the decorator function, and is then replaced - * by the function's return value. In the JS analysis we generally assume decorators return their input, - * but library models may want to find the return value. - */ - private predicate decoratorDualEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { - exists(ClassDefinition cls | - useNodeFlowsToDecorator(base, cls.getADecorator()) and - lbl = Label::decoratedClass() and - ref = DataFlow::valueNode(cls) - ) - or - exists(MethodDefinition method | - useNodeFlowsToDecorator(base, method.getADecorator()) and - not method instanceof AccessorMethodDefinition and - lbl = Label::decoratedMember() and - ref = DataFlow::valueNode(method.getBody()) - ) - } - - /** Holds if `ref` is a use that should have an incoming edge from `base` labelled `lbl`, induced by a decorator. */ - private predicate decoratorUseEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { - exists(SetterMethodDefinition accessor | - useNodeFlowsToDecorator(base, - [accessor.getADecorator(), accessor.getCorrespondingGetter().getADecorator()]) and - lbl = Label::decoratedMember() and - ref = DataFlow::parameterNode(accessor.getBody().getParameter(0)) - ) - or - exists(Parameter param | - useNodeFlowsToDecorator(base, param.getADecorator()) and - lbl = Label::decoratedParameter() and - ref = DataFlow::parameterNode(param) - ) - } - - /** Holds if `rhs` is a def node that should have an incoming edge from `base` labelled `lbl`, induced by a decorator. */ - private predicate decoratorRhsEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { - exists(GetterMethodDefinition accessor | - useNodeFlowsToDecorator(base, - [accessor.getADecorator(), accessor.getCorrespondingSetter().getADecorator()]) and - lbl = Label::decoratedMember() and - rhs = DataFlow::valueNode(accessor.getBody().getAReturnedExpr()) - ) - } - - /** - * Holds if `ref` is a reference to a field/accessor that should have en incoming edge from base labelled `lbl`. - * - * Since fields do not have their own data-flow nodes, we generate a node for each read or write. - * For property writes, the right-hand side becomes a def-node and property reads become use-nodes. - * - * For accessors this predicate computes each use of the accessor. - * The return value inside the accessor is computed by the `decoratorRhsEdge` predicate. - */ - private predicate decoratorPropEdge(TApiNode base, Label::ApiLabel lbl, DataFlow::PropRef ref) { - exists(MemberDefinition fieldLike, DataFlow::ClassNode cls | - fieldLike instanceof FieldDefinition - or - fieldLike instanceof AccessorMethodDefinition - | - useNodeFlowsToDecorator(base, fieldLike.getADecorator()) and - lbl = Label::decoratedMember() and - cls = fieldLike.getDeclaringClass().flow() and - ( - fieldLike.isStatic() and - ref = cls.getAClassReference().getAPropertyReference(fieldLike.getName()) - or - not fieldLike.isStatic() and - ref = cls.getAnInstanceReference().getAPropertyReference(fieldLike.getName()) + /** + * Gets a call to a promisified function represented by `callee` where + * `bound` arguments have been bound. + */ + cached + DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { + exists(DataFlow::SourceNode src | + use(callee, src) and + trackUseNode(src, true, bound, "").flowsTo(result.getCalleeNode()) and + succ = Impl::MkSyntheticCallbackArg(result) ) - ) + } } - /** - * Holds if `ref` is a use of node `nd`. - */ - cached - predicate use(TApiNode nd, DataFlow::Node ref) { - exists(string m, Module mod | nd = MkModuleDef(m) and mod = importableModule(m) | - ref = DataFlow::moduleVarNode(mod) - ) - or - exists(string m, Module mod | nd = MkModuleExport(m) and mod = importableModule(m) | - ref = DataFlow::exportsVarNode(mod) - or - exists(DataFlow::Node base | use(MkModuleDef(m), base) | - ref = trackUseNode(base).getAPropertyRead("exports") - ) - ) - or - exists(string m | - nd = MkModuleImport(m) and - ref = DataFlow::moduleImport(m) - ) - or - exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) | - ref = cls.getAReceiverNode() - or - ref = cls.(DataFlow::ClassNode).getAPrototypeReference() - ) - or - use(_, _, ref) and - nd = MkUse(ref) - } - - private import semmle.javascript.dataflow.TypeTracking - - /** - * Gets a data-flow node to which `nd`, which is a use of an API-graph node, flows. - * - * The flow from `nd` to that node may be inter-procedural, and is further described by three - * flags: - * - * - `promisified`: if true `true`, the flow goes through a promisification; - * - `boundArgs`: for function values, tracks how many arguments have been bound throughout - * the flow. To ensure termination, we somewhat arbitrarily constrain the number of bound - * arguments to be at most ten. - * - `prop`: if non-empty, the flow is only guaranteed to preserve the value of this property, - * and not necessarily the entire object. - */ - private DataFlow::SourceNode trackUseNode( - DataFlow::SourceNode nd, boolean promisified, int boundArgs, string prop, - DataFlow::TypeTracker t - ) { - t.start() and - use(_, nd) and - result = nd and - promisified = false and - boundArgs = 0 and - prop = "" - or - exists(Promisify::PromisifyCall promisify | - trackUseNode(nd, false, boundArgs, prop, t.continue()).flowsTo(promisify.getArgument(0)) and - promisified = true and - prop = "" and - result = promisify - ) - or - exists(DataFlow::PartialInvokeNode pin, DataFlow::Node pred, int predBoundArgs | - trackUseNode(nd, promisified, predBoundArgs, prop, t.continue()).flowsTo(pred) and - prop = "" and - result = pin.getBoundFunction(pred, boundArgs - predBoundArgs) and - boundArgs in [0 .. 10] - ) - or - exists(DataFlow::SourceNode mid | - mid = trackUseNode(nd, promisified, boundArgs, prop, t) and - AdditionalUseStep::step(pragma[only_bind_out](mid), result) - ) - or - exists(DataFlow::Node pred, string preprop | - trackUseNode(nd, promisified, boundArgs, preprop, t.continue()).flowsTo(pred) and - promisified = false and - boundArgs = 0 and - SharedTypeTrackingStep::loadStoreStep(pred, result, prop) - | - prop = preprop - or - preprop = "" - ) - or - t = useStep(nd, promisified, boundArgs, prop, result) - } - - /** - * Holds if `nd`, which is a use of an API-graph node, flows in zero or more potentially - * inter-procedural steps to some intermediate node, and then from that intermediate node to - * `res` in one step. The entire flow is described by the resulting `TypeTracker`. - * - * This predicate exists solely to enforce a better join order in `trackUseNode` above. - */ - pragma[noopt] - private DataFlow::TypeTracker useStep( - DataFlow::Node nd, boolean promisified, int boundArgs, string prop, DataFlow::Node res - ) { - exists(DataFlow::TypeTracker t, StepSummary summary, DataFlow::SourceNode prev | - prev = trackUseNode(nd, promisified, boundArgs, prop, t) and - StepSummary::step(prev, res, summary) and - result = t.append(summary) and - // Block argument-passing into 'this' when it determines the call target - not summary = CallReceiverStep() - ) - } - - private DataFlow::SourceNode trackUseNode( - DataFlow::SourceNode nd, boolean promisified, int boundArgs, string prop - ) { - result = trackUseNode(nd, promisified, boundArgs, prop, DataFlow::TypeTracker::end()) - } - - /** - * Gets a node that is inter-procedurally reachable from `nd`, which is a use of some node. - */ - cached - DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { - result = trackUseNode(nd, false, 0, "") - } - - private DataFlow::SourceNode trackDefNode(DataFlow::Node nd, DataFlow::TypeBackTracker t) { - t.start() and - rhs(_, nd) and - result = nd.getALocalSource() - or - // additional backwards step from `require('m')` to `exports` or `module.exports` in m - exists(Import imp | imp.getImportedModuleNodeStrict() = trackDefNode(nd, t.continue()) | - result = DataFlow::exportsVarNode(imp.getImportedModule()) - or - result = DataFlow::moduleVarNode(imp.getImportedModule()).getAPropertyRead("exports") - ) - or - exists(ObjectExpr obj | - obj = trackDefNode(nd, t.continue()).asExpr() and - result = - obj.getAProperty() - .(SpreadProperty) - .getInit() - .(SpreadElement) - .getOperand() - .flow() - .getALocalSource() - ) - or - t = defStep(nd, result) - } - - /** - * Holds if `nd`, which is a def of an API-graph node, can be reached in zero or more potentially - * inter-procedural steps from some intermediate node, and `prev` flows into that intermediate node - * in one step. The entire flow is described by the resulting `TypeTracker`. - * - * This predicate exists solely to enforce a better join order in `trackDefNode` above. - */ - pragma[noopt] - private DataFlow::TypeBackTracker defStep(DataFlow::Node nd, DataFlow::SourceNode prev) { - exists(DataFlow::TypeBackTracker t, StepSummary summary, DataFlow::Node next | - next = trackDefNode(nd, t) and - StepSummary::step(prev, next, summary) and - result = t.prepend(summary) and - // Block argument-passing steps from 'this' back to a receiver when it determines the call target - not summary = CallReceiverStep() - ) - } - - /** - * Gets a node that inter-procedurally flows into `nd`, which is a definition of some node. - */ - cached - DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { - result = trackDefNode(nd, DataFlow::TypeBackTracker::end()) - } - - private DataFlow::SourceNode awaited(DataFlow::InvokeNode call, DataFlow::TypeTracker t) { - t.startInPromise() and - trackUseNode(_, true, _, "").flowsTo(call.getCalleeNode()) and - result = call - or - exists(DataFlow::TypeTracker t2 | result = awaited(call, t2).track(t2, t)) - } - - /** - * Gets a node holding the resolved value of promise `call`. - */ - private DataFlow::Node awaited(DataFlow::InvokeNode call) { - result = awaited(call, DataFlow::TypeTracker::end()) - } - - /** - * Holds if there is an edge from `pred` to `succ` in the API graph that is labeled with `lbl`. - */ - cached - predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) { - Stages::ApiStage::ref() and - exists(string m | - pred = MkRoot() and - lbl = Label::moduleLabel(m) - | - succ = MkModuleDef(m) - or - succ = MkModuleUse(m) - ) - or - exists(string m | - pred = MkModuleDef(m) and - lbl = Label::member("exports") and - succ = MkModuleExport(m) - or - pred = MkModuleUse(m) and - lbl = Label::member("exports") and - succ = MkModuleImport(m) - ) - or - exists(DataFlow::SourceNode ref | - use(pred, lbl, ref) and - succ = MkUse(ref) - ) - or - exists(DataFlow::Node rhs | rhs(pred, lbl, rhs) | - succ = MkDef(rhs) - or - exists(DataFlow::ClassNode cls | - cls.getAnInstanceReference().flowsTo(rhs) and - succ = MkClassInstance(cls) - ) - ) - or - exists(DataFlow::Node def | - rhs(pred, def) and - lbl = Label::instance() and - succ = MkClassInstance(trackDefNode(def)) - ) - or - exists(string moduleName, string exportName | - pred = MkModuleImport(moduleName) and - lbl = Label::member(exportName) and - succ = MkTypeUse(moduleName, exportName) - ) - or - exists(DataFlow::Node nd, DataFlow::FunctionNode f | - f.getFunction().isAsync() and - pred = MkDef(nd) and - f = trackDefNode(nd) and - lbl = Label::return() and - succ = MkDef(f.getReturnNode()) - ) - or - exists(int bound, DataFlow::InvokeNode call | - lbl = Label::parameter(bound + call.getNumArgument()) and - call = getAPromisifiedInvocation(pred, bound, succ) - ) - } + import Stage /** * Holds if there is an edge from `pred` to `succ` in the API graph. @@ -1506,19 +1508,6 @@ module API { /** Gets the shortest distance from the root to `nd` in the API graph. */ cached int distanceFromRoot(TApiNode nd) = shortestDistances(MkRoot/0, edge/2)(_, nd, result) - - /** - * Gets a call to a promisified function represented by `callee` where - * `bound` arguments have been bound. - */ - cached - DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { - exists(DataFlow::SourceNode src | - Impl::use(callee, src) and - trackUseNode(src, true, bound, "").flowsTo(result.getCalleeNode()) and - succ = Impl::MkSyntheticCallbackArg(result) - ) - } } /** From 10db30a71593f4d824f665fdae6a7c800b1f8743 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 9 Oct 2025 14:07:09 +0200 Subject: [PATCH 044/263] JS: Parameterise the module (still only one instantiation) --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 99 +++++++++++++------ 1 file changed, 71 insertions(+), 28 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 9afc418c022..88e6218aa43 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -784,17 +784,6 @@ module API { } or MkSyntheticCallbackArg(DataFlow::InvokeNode nd) - private predicate needsDefNode(DataFlow::ClassNode cls) { - hasSemantics(cls) and - ( - cls = trackDefNode(_) - or - cls.getAnInstanceReference() = trackDefNode(_) - or - needsDefNode(cls.getADirectSubClass()) - ) - } - class TDef = MkModuleDef or TNonModuleDef; class TNonModuleDef = MkModuleExport or MkClassInstance or MkDef or MkSyntheticCallbackArg; @@ -811,8 +800,26 @@ module API { hasSemantics(imp) } + private signature module StageInputSig { + /** Holds if `node` should be seen as a use-node root, in addition to module imports (which are the usual roots). */ + predicate isAdditionalUseRoot(Node node); + + /** Holds if `node` should be seen as a def-node root, in addition to module exports (which are the usual roots). */ + predicate isAdditionalDefRoot(Node node); + + /** + * Holds if `node` is considered "in scope" for this stage, meaning that we allow outgoing labelled edges + * to be materialised from here, and continue API graph construction from the successors edges. + * + * Note that the "additional roots" contributed by the stage inputs may be out of scope but can be tracked to a node in scope. + * This predicate should thus not be used to block the tracking of use/def nodes, but only block the creation of new labelled edges. + */ + bindingset[node] + predicate inScope(DataFlow::Node node); + } + cached - private module Stage { + private module Stage { /** * Holds if `rhs` is the right-hand side of a definition of a node that should have an * incoming edge from `base` labeled `lbl` in the API graph. @@ -1005,9 +1012,11 @@ module API { */ cached predicate rhs(TApiNode nd, DataFlow::Node rhs) { + (S::inScope(rhs) or S::isAdditionalDefRoot(nd)) and exists(string m | nd = MkModuleExport(m) | exports(m, rhs)) or rhs(_, _, rhs) and + S::inScope(rhs) and nd = MkDef(rhs) } @@ -1058,7 +1067,8 @@ module API { base = MkRoot() and exists(EntryPoint e | lbl = Label::entryPoint(e) and - ref = e.getASource() + ref = e.getASource() and + S::inScope(ref) ) or // property reads @@ -1230,35 +1240,57 @@ module API { ) } + private predicate needsDefNode(DataFlow::ClassNode cls) { + hasSemantics(cls) and + ( + cls = trackDefNode(_) + or + cls.getAnInstanceReference() = trackDefNode(_) + or + needsDefNode(cls.getADirectSubClass()) + or + S::isAdditionalDefRoot(MkClassInstance(cls)) + or + S::isAdditionalUseRoot(MkClassInstance(cls)) // These are also tracked as use-nodes + ) + } + /** * Holds if `ref` is a use of node `nd`. */ cached predicate use(TApiNode nd, DataFlow::Node ref) { - exists(string m, Module mod | nd = MkModuleDef(m) and mod = importableModule(m) | - ref = DataFlow::moduleVarNode(mod) - ) - or - exists(string m, Module mod | nd = MkModuleExport(m) and mod = importableModule(m) | - ref = DataFlow::exportsVarNode(mod) + (S::inScope(ref) or S::isAdditionalUseRoot(nd)) and + ( + exists(string m, Module mod | nd = MkModuleDef(m) and mod = importableModule(m) | + ref = DataFlow::moduleVarNode(mod) + ) or - exists(DataFlow::Node base | use(MkModuleDef(m), base) | - ref = trackUseNode(base).getAPropertyRead("exports") + exists(string m, Module mod | nd = MkModuleExport(m) and mod = importableModule(m) | + ref = DataFlow::exportsVarNode(mod) + or + exists(DataFlow::Node base | use(MkModuleDef(m), base) | + ref = trackUseNode(base).getAPropertyRead("exports") + ) + ) + or + exists(string m | + nd = MkModuleImport(m) and + ref = DataFlow::moduleImport(m) ) ) or - exists(string m | - nd = MkModuleImport(m) and - ref = DataFlow::moduleImport(m) - ) - or - exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) | + exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) and needsDefNode(cls) | ref = cls.getAReceiverNode() or ref = cls.(DataFlow::ClassNode).getAPrototypeReference() ) or use(_, _, ref) and + S::inScope(ref) and + nd = MkUse(ref) + or + S::isAdditionalUseRoot(nd) and nd = MkUse(ref) } @@ -1498,7 +1530,18 @@ module API { } } - import Stage + private module Stage1Input implements StageInputSig { + pragma[inline] + predicate isAdditionalUseRoot(Node node) { none() } + + pragma[inline] + predicate isAdditionalDefRoot(Node node) { none() } + + bindingset[node] + predicate inScope(DataFlow::Node node) { any() } + } + + import Stage /** * Holds if there is an edge from `pred` to `succ` in the API graph. From b69f8532d03339a85acb95e1d1f9f04c74cea838 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 9 Oct 2025 15:17:36 +0200 Subject: [PATCH 045/263] JS: Moving 'cache' annotations outside the parameterised module --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 88e6218aa43..62ee4053561 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -818,7 +818,6 @@ module API { predicate inScope(DataFlow::Node node); } - cached private module Stage { /** * Holds if `rhs` is the right-hand side of a definition of a node that should have an @@ -1010,7 +1009,6 @@ module API { /** * Holds if `rhs` is the right-hand side of a definition of node `nd`. */ - cached predicate rhs(TApiNode nd, DataFlow::Node rhs) { (S::inScope(rhs) or S::isAdditionalDefRoot(nd)) and exists(string m | nd = MkModuleExport(m) | exports(m, rhs)) @@ -1258,7 +1256,6 @@ module API { /** * Holds if `ref` is a use of node `nd`. */ - cached predicate use(TApiNode nd, DataFlow::Node ref) { (S::inScope(ref) or S::isAdditionalUseRoot(nd)) and ( @@ -1380,7 +1377,6 @@ module API { /** * Gets a node that is inter-procedurally reachable from `nd`, which is a use of some node. */ - cached DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { result = trackUseNode(nd, false, 0, "") } @@ -1431,7 +1427,6 @@ module API { /** * Gets a node that inter-procedurally flows into `nd`, which is a definition of some node. */ - cached DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { result = trackDefNode(nd, DataFlow::TypeBackTracker::end()) } @@ -1454,7 +1449,6 @@ module API { /** * Holds if there is an edge from `pred` to `succ` in the API graph that is labeled with `lbl`. */ - cached predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) { Stages::ApiStage::ref() and exists(string m | @@ -1520,7 +1514,6 @@ module API { * Gets a call to a promisified function represented by `callee` where * `bound` arguments have been bound. */ - cached DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { exists(DataFlow::SourceNode src | use(callee, src) and @@ -1541,7 +1534,36 @@ module API { predicate inScope(DataFlow::Node node) { any() } } - import Stage + private module Stage1 = Stage; + + cached + private module Cached { + cached + predicate rhs(TApiNode nd, DataFlow::Node rhs) { Stage1::rhs(nd, rhs) } + + cached + predicate use(TApiNode nd, DataFlow::Node ref) { Stage1::use(nd, ref) } + + cached + DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { + result = Stage1::trackUseNode(nd) + } + + cached + DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { result = Stage1::trackDefNode(nd) } + + cached + predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) { + Stage1::edge(pred, lbl, succ) + } + + cached + DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { + result = Stage1::getAPromisifiedInvocation(callee, bound, succ) + } + } + + import Cached /** * Holds if there is an edge from `pred` to `succ` in the API graph. From c8108d109d4622daef72d3645b64dbd2a4d94a21 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:01:25 +0200 Subject: [PATCH 046/263] JS: Localize charpred of API::EntryPoint This is needed for localizing ApiLabel later --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 4 ++++ .../ql/lib/semmle/javascript/frameworks/ClientRequests.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/D3.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/Electron.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/History.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/Immutable.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/Logging.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/Nest.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/Redux.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/Templating.qll | 2 +- .../ql/lib/semmle/javascript/frameworks/TrustedTypes.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/Vue.qll | 3 +++ .../ql/lib/semmle/javascript/frameworks/WebResponse.qll | 2 ++ javascript/ql/lib/semmle/javascript/frameworks/WebSocket.qll | 2 ++ javascript/ql/lib/semmle/javascript/frameworks/Webix.qll | 1 + .../javascript/frameworks/data/internal/ApiGraphModels.qll | 2 ++ .../frameworks/data/internal/ApiGraphModelsSpecific.qll | 2 ++ .../semmle/javascript/security/dataflow/RemoteFlowSources.qll | 2 ++ .../ql/test/ApiGraphs/custom-entry-point/VerifyAssertions.ql | 1 + 19 files changed, 29 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 62ee4053561..3f320cec59a 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -676,17 +676,21 @@ module API { * Imports and exports are considered entry points by default, but additional entry points may * be added by extending this class. Typical examples include global variables. */ + overlay[local] abstract class EntryPoint extends string { bindingset[this] EntryPoint() { any() } /** Gets a data-flow node where a value enters the current codebase through this entry-point. */ + overlay[global] DataFlow::SourceNode getASource() { none() } /** Gets a data-flow node where a value leaves the current codebase through this entry-point. */ + overlay[global] DataFlow::Node getASink() { none() } /** Gets an API-node for this entry point. */ + overlay[global] API::Node getANode() { result = root().getASuccessor(Label::entryPoint(this)) } } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll index 22db9f24b99..9da93400ef9 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll @@ -198,6 +198,7 @@ module ClientRequest { private string urlPropertyName() { result = "url" or result = "uri" } /** An API entry-point for the global variable `axios`. */ + overlay[local?] private class AxiosGlobalEntryPoint extends API::EntryPoint { AxiosGlobalEntryPoint() { this = "axiosGlobal" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/D3.qll b/javascript/ql/lib/semmle/javascript/frameworks/D3.qll index cc7c07c80c1..138e3b05d57 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/D3.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/D3.qll @@ -6,6 +6,7 @@ private import semmle.javascript.security.dataflow.DomBasedXssCustomizations /** Provides classes and predicates modeling aspects of the `d3` library. */ module D3 { /** The global variable `d3` as an entry point for API graphs. */ + overlay[local?] private class D3GlobalEntry extends API::EntryPoint { D3GlobalEntry() { this = "D3GlobalEntry" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Electron.qll b/javascript/ql/lib/semmle/javascript/frameworks/Electron.qll index 796770b96ee..2d21baac1f9 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Electron.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Electron.qll @@ -41,6 +41,7 @@ module Electron { BrowserView() { this = DataFlow::moduleMember("electron", "BrowserView").getAnInstantiation() } } + overlay[local?] private class ElectronEntryPoint extends API::EntryPoint { ElectronEntryPoint() { this = "Electron.Browser" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/History.qll b/javascript/ql/lib/semmle/javascript/frameworks/History.qll index 37c0057f6c1..224eb2b4b59 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/History.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/History.qll @@ -5,6 +5,7 @@ import javascript /** Provides classes modeling the [`history`](https://npmjs.org/package/history) library. */ module History { /** The global variable `HistoryLibrary` as an entry point for API graphs. */ + overlay[local?] private class HistoryGlobalEntry extends API::EntryPoint { HistoryGlobalEntry() { this = "HistoryLibrary" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Immutable.qll b/javascript/ql/lib/semmle/javascript/frameworks/Immutable.qll index 1adaed5b439..9a94fc26341 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Immutable.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Immutable.qll @@ -13,6 +13,7 @@ private module Immutable { /** * An API entrypoint for the global `Immutable` variable. */ + overlay[local?] private class ImmutableGlobalEntry extends API::EntryPoint { ImmutableGlobalEntry() { this = "ImmutableGlobalEntry" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Logging.qll b/javascript/ql/lib/semmle/javascript/frameworks/Logging.qll index aa0151595df..e297dbd7afd 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Logging.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Logging.qll @@ -32,6 +32,7 @@ private module Console { /** * An API entrypoint for the global `console` variable. */ + overlay[local?] private class ConsoleGlobalEntry extends API::EntryPoint { ConsoleGlobalEntry() { this = "ConsoleGlobalEntry" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Nest.qll b/javascript/ql/lib/semmle/javascript/frameworks/Nest.qll index d7474aae8ca..4c32f70b981 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Nest.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Nest.qll @@ -140,6 +140,7 @@ module NestJS { } /** API node entry point for custom implementations of `ValidationPipe` (a common pattern). */ + overlay[local?] private class ValidationNodeEntry extends API::EntryPoint { ValidationNodeEntry() { this = "ValidationNodeEntry" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Redux.qll b/javascript/ql/lib/semmle/javascript/frameworks/Redux.qll index 78931da585a..3aaf07f637d 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Redux.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Redux.qll @@ -1099,6 +1099,7 @@ module Redux { * Used to catch cases where the `connect` function was not recognized by API graphs (usually because of it being * wrapped in another function, which API graphs won't look through). */ + overlay[local?] private class HeuristicConnectEntryPoint extends API::EntryPoint { HeuristicConnectEntryPoint() { this = "react-redux-connect" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll index d63bafe7b6f..10530bf84fc 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll @@ -703,7 +703,7 @@ module Templating { * * These API nodes are used in the `getTemplateInput` predicate. */ - overlay[global] + overlay[local?] private class IncludeFunctionAsEntryPoint extends API::EntryPoint { IncludeFunctionAsEntryPoint() { this = "IncludeFunctionAsEntryPoint" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/TrustedTypes.qll b/javascript/ql/lib/semmle/javascript/frameworks/TrustedTypes.qll index ca9de4e481f..8d32c976c57 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/TrustedTypes.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/TrustedTypes.qll @@ -11,6 +11,7 @@ private import semmle.javascript.security.dataflow.CodeInjectionCustomizations * Module for working with uses of the [Trusted Types API](https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API). */ module TrustedTypes { + overlay[local?] private class TrustedTypesEntry extends API::EntryPoint { TrustedTypesEntry() { this = "TrustedTypesEntry" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll index f571648294c..1052e91d4c1 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll @@ -7,6 +7,7 @@ import semmle.javascript.ViewComponentInput module Vue { /** The global variable `Vue`, as an API graph entry point. */ + overlay[local?] private class GlobalVueEntryPoint extends API::EntryPoint { GlobalVueEntryPoint() { this = "VueEntryPoint" } @@ -18,6 +19,7 @@ module Vue { * * This `EntryPoint` is used by `SingleFileComponent::getOwnOptions()`. */ + overlay[local?] private class VueExportEntryPoint extends API::EntryPoint { VueExportEntryPoint() { this = "VueExportEntryPoint" } @@ -437,6 +439,7 @@ module Vue { * * This entry point is used in `SingleFileComponent::getComponentRef()`. */ + overlay[local?] private class VueFileImportEntryPoint extends API::EntryPoint { VueFileImportEntryPoint() { this = "VueFileImportEntryPoint" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll b/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll index dfdee73c9d9..9c24f84ecbc 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/WebResponse.qll @@ -5,6 +5,7 @@ private import javascript /** Treats `Response` as an entry point for API graphs. */ +overlay[local?] private class ResponseEntryPoint extends API::EntryPoint { ResponseEntryPoint() { this = "global.Response" } @@ -12,6 +13,7 @@ private class ResponseEntryPoint extends API::EntryPoint { } /** Treats `Headers` as an entry point for API graphs. */ +overlay[local?] private class HeadersEntryPoint extends API::EntryPoint { HeadersEntryPoint() { this = "global.Headers" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/WebSocket.qll b/javascript/ql/lib/semmle/javascript/frameworks/WebSocket.qll index f71b1cf9e0d..2ec1b784f19 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/WebSocket.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/WebSocket.qll @@ -48,6 +48,7 @@ private predicate areLibrariesCompatible( } /** Treats `WebSocket` as an entry point for API graphs. */ +overlay[local?] private class WebSocketEntryPoint extends API::EntryPoint { WebSocketEntryPoint() { this = "global.WebSocket" } @@ -55,6 +56,7 @@ private class WebSocketEntryPoint extends API::EntryPoint { } /** Treats `SockJS` as an entry point for API graphs. */ +overlay[local?] private class SockJSEntryPoint extends API::EntryPoint { SockJSEntryPoint() { this = "global.SockJS" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Webix.qll b/javascript/ql/lib/semmle/javascript/frameworks/Webix.qll index effd49c632b..3ce4e78ba3a 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Webix.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Webix.qll @@ -9,6 +9,7 @@ private import javascript */ module Webix { /** The global variable `webix` as an entry point for API graphs. */ + overlay[local?] private class WebixGlobalEntry extends API::EntryPoint { WebixGlobalEntry() { this = "WebixGlobalEntry" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll index 80ec45a3cf1..68f2210bff2 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll @@ -492,6 +492,7 @@ private predicate invocationMatchesCallSiteFilter( Specific::invocationMatchesExtraCallSiteFilter(invoke, token) } +overlay[local?] private class TypeModelUseEntry extends API::EntryPoint { private string type; @@ -505,6 +506,7 @@ private class TypeModelUseEntry extends API::EntryPoint { API::Node getNodeForType(string type_) { type = type_ and result = this.getANode() } } +overlay[local?] private class TypeModelDefEntry extends API::EntryPoint { private string type; diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll index 3fb76f76f70..00929f19d27 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -93,6 +93,7 @@ private predicate parseRelevantTypeString(string rawType, string package, string } /** Holds if `global` is a global variable referenced via a the `global` package in a CSV row. */ +overlay[local] private predicate isRelevantGlobal(string global) { exists(AccessPath path, AccessPathToken token | isRelevantFullPath("global", path) and @@ -103,6 +104,7 @@ private predicate isRelevantGlobal(string global) { } /** An API graph entry point for global variables mentioned in a model. */ +overlay[local?] private class GlobalApiEntryPoint extends API::EntryPoint { string global; diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/RemoteFlowSources.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/RemoteFlowSources.qll index 58600c579a8..9f4975e605a 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/RemoteFlowSources.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/RemoteFlowSources.qll @@ -114,6 +114,7 @@ class ClientSideRemoteFlowKind extends string { * `name` and `address` of global variable `user` should be considered as remote flow sources with * source type "user input". */ +overlay[local?] private class RemoteFlowSourceAccessPath extends JsonString { string sourceType; @@ -167,6 +168,7 @@ private class RemoteFlowSourceAccessPath extends JsonString { * The global variable referenced by a `RemoteFlowSourceAccessPath`, declared as an API * entry point. */ +overlay[local?] private class ExternalRemoteFlowSourceSpecEntryPoint extends API::EntryPoint { string name; diff --git a/javascript/ql/test/ApiGraphs/custom-entry-point/VerifyAssertions.ql b/javascript/ql/test/ApiGraphs/custom-entry-point/VerifyAssertions.ql index 3502c0ea556..89ab2f3f944 100644 --- a/javascript/ql/test/ApiGraphs/custom-entry-point/VerifyAssertions.ql +++ b/javascript/ql/test/ApiGraphs/custom-entry-point/VerifyAssertions.ql @@ -1,3 +1,4 @@ +overlay[local?] class CustomEntryPoint extends API::EntryPoint { CustomEntryPoint() { this = "CustomEntryPoint" } From 3110e5a8ace74df165bb346d817c50262676ae4e Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:02:35 +0200 Subject: [PATCH 047/263] JS: Localize MkModuleExport --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 3f320cec59a..9a3ba76a487 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -740,20 +740,9 @@ module API { MkRoot() or MkModuleDef(string m) { exists(MkModuleExport(m)) } or MkModuleUse(string m) { exists(MkModuleImport(m)) } or - MkModuleExport(string m) { - exists(Module mod | mod = importableModule(m) | - // exclude modules that don't actually export anything - exports(m, _) - or - exports(m, _, _) - or - exists(NodeModule nm | nm = mod | - exists(Ssa::implicitInit([nm.getModuleVariable(), nm.getExportsVariable()])) - ) - ) - } or MkModuleImport(string m) { imports(_, m) + MkModuleExport(string m) { isDeclaredPackageName(m) } or or any(TypeAnnotation n).hasUnderlyingType(m, _) } or @@ -1965,3 +1954,8 @@ private Module importableModule(string m) { m = pkg.getPackageName() ) } + +overlay[local] +private predicate isDeclaredPackageName(string m) { + m = any(PackageJson pkg).getDeclaredPackageName() +} From a2a9518d2aad04229dc03f50f09a94c2c712c76b Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:03:03 +0200 Subject: [PATCH 048/263] JS: Localize MkModuleImport --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 9a3ba76a487..827ea3335b0 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -740,9 +740,8 @@ module API { MkRoot() or MkModuleDef(string m) { exists(MkModuleExport(m)) } or MkModuleUse(string m) { exists(MkModuleImport(m)) } or - MkModuleImport(string m) { - imports(_, m) MkModuleExport(string m) { isDeclaredPackageName(m) } or + MkModuleImport(string m) { isImportedPackageName(m) } or or any(TypeAnnotation n).hasUnderlyingType(m, _) } or @@ -1959,3 +1958,9 @@ overlay[local] private predicate isDeclaredPackageName(string m) { m = any(PackageJson pkg).getDeclaredPackageName() } + +overlay[local] +private predicate isImportedPackageName(string m) { + m = any(Import imprt).getImportedPathString() and + m.regexpMatch("[^./].*") +} From 385bb32710c61019a2295db98a92434b14d5d35d Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:03:21 +0200 Subject: [PATCH 049/263] JS: Localize MkClassInstance --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 827ea3335b0..f82ffe21542 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -742,10 +742,11 @@ module API { MkModuleUse(string m) { exists(MkModuleImport(m)) } or MkModuleExport(string m) { isDeclaredPackageName(m) } or MkModuleImport(string m) { isImportedPackageName(m) } or + MkClassInstance(DataFlow::SourceNode cls) { + cls = any(Function f).flow() or - any(TypeAnnotation n).hasUnderlyingType(m, _) + cls = any(ClassDefinition c).flow() } or - MkClassInstance(DataFlow::ClassNode cls) or MkDef(DataFlow::Node nd) { nd = any(DataFlow::PropWrite w).getRhs() or From 3ed0f36bb1cfb8a428f200484cc28dcead82af2b Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:04:44 +0200 Subject: [PATCH 050/263] JS: Use forceLocal to localize MkTypeUse --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index f82ffe21542..03bce9871ac 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -735,6 +735,14 @@ module API { */ cached private module Impl { + private predicate hasTypeUse(string moduleName, string exportName) { + any(TypeAnnotation n).hasUnderlyingType(moduleName, exportName) + } + + overlay[local] + private predicate hasTypeUseLocal(string moduleName, string exportName) = + forceLocal(hasTypeUse/2)(moduleName, exportName) + cached newtype TApiNode = MkRoot() or @@ -772,9 +780,7 @@ module API { } or MkUse(DataFlow::Node nd) { nd instanceof DataFlow::SourceNode } or /** A use of a TypeScript type. */ - MkTypeUse(string moduleName, string exportName) { - any(TypeAnnotation n).hasUnderlyingType(moduleName, exportName) - } or + MkTypeUse(string moduleName, string exportName) { hasTypeUseLocal(moduleName, exportName) } or MkSyntheticCallbackArg(DataFlow::InvokeNode nd) class TDef = MkModuleDef or TNonModuleDef; From 6c00a7fb96353ed7ae2e20510d0841f84f6d354b Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:05:08 +0200 Subject: [PATCH 051/263] JS: Remove unused predicate --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 8 -------- 1 file changed, 8 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 03bce9871ac..7334d151df5 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -791,14 +791,6 @@ module API { private predicate hasSemantics(DataFlow::Node nd) { not nd.getTopLevel().isExterns() } - /** Holds if `imp` is an import of module `m`. */ - private predicate imports(DataFlow::Node imp, string m) { - imp = DataFlow::moduleImport(m) and - // path must not start with a dot or a slash - m.regexpMatch("[^./].*") and - hasSemantics(imp) - } - private signature module StageInputSig { /** Holds if `node` should be seen as a use-node root, in addition to module imports (which are the usual roots). */ predicate isAdditionalUseRoot(Node node); From 295bc6981d6c3e62e4db0cbe382f5600af226113 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:15:10 +0200 Subject: [PATCH 052/263] JS: Make API nodes and labels local --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 7334d151df5..fa1cd285e25 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -743,6 +743,7 @@ module API { private predicate hasTypeUseLocal(string moduleName, string exportName) = forceLocal(hasTypeUse/2)(moduleName, exportName) + overlay[local] cached newtype TApiNode = MkRoot() or @@ -1623,6 +1624,7 @@ module API { class NewNode extends InvokeNode, DataFlow::NewNode { } /** Provides classes modeling the various edges (labels) in the API graph. */ + overlay[local] module Label { /** A label in the API-graph */ class ApiLabel extends TLabel { @@ -1661,6 +1663,7 @@ module API { * This is to support code patterns where the property name is actually constant, * but the property name has been factored into a library. */ + overlay[global] private string getAnIndirectPropName(DataFlow::PropRef ref) { exists(DataFlow::Node pred | FlowSteps::propertyFlowStep(pred, ref.getPropertyNameExpr().flow()) and @@ -1671,16 +1674,19 @@ module API { /** * Gets unique result of `getAnIndirectPropName` if there is one. */ + overlay[global] private string getIndirectPropName(DataFlow::PropRef ref) { result = unique(string s | s = getAnIndirectPropName(ref)) } + overlay[global] pragma[nomagic] private predicate isEnumeratedPropName(DataFlow::Node node) { node.getAPredecessor*() instanceof EnumeratedPropName } /** Gets the `member` edge label for the given property reference. */ + overlay[global] ApiLabel memberFromRef(DataFlow::PropRef pr) { exists(string pn | pn = pr.getPropertyName() or pn = getIndirectPropName(pr) | result = member(pn) and @@ -1747,9 +1753,17 @@ module API { MkLabelInstance() or MkLabelContent(DataFlow::Content content) or MkLabelMember(string name) { - name instanceof PropertyName + name instanceof ContentPrivate::PropertyName or - exists(Impl::MkTypeUse(_, name)) + name = any(DataFlow::PropRef pr).getPropertyName() + or + AccessPath::isAssignedInUniqueFile(name) + or + exists(AccessPath::getAnAssignmentTo(_, name)) + or + name = DataFlow::PseudoProperties::arrayLikeElement() + or + name = any(TypeAccess t).getIdentifier().getName() } or MkLabelParameter(int i) { i = From 123bc640919716b5383a50819e769c0d317e7c79 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 28 Nov 2025 10:12:52 +0100 Subject: [PATCH 053/263] JS: Improve join order at MkUse call --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index fa1cd285e25..a78c23a8f9b 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1280,9 +1280,13 @@ module API { nd = MkUse(ref) or S::isAdditionalUseRoot(nd) and - nd = MkUse(ref) + nd = mkUseLate(ref) } + bindingset[node] + pragma[inline_late] + private TApiNode mkUseLate(DataFlow::Node node) { result = MkUse(node) } + private import semmle.javascript.dataflow.TypeTracking /** From 271567c88f64e9e054e973fd467bbd171e1959e6 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 28 Nov 2025 10:13:13 +0100 Subject: [PATCH 054/263] JS: Add missing def-node roots --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index a78c23a8f9b..0dca3c1dd8e 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1008,6 +1008,9 @@ module API { rhs(_, _, rhs) and S::inScope(rhs) and nd = MkDef(rhs) + or + S::isAdditionalDefRoot(nd) and + nd = mkDefLate(rhs) } /** @@ -1287,6 +1290,10 @@ module API { pragma[inline_late] private TApiNode mkUseLate(DataFlow::Node node) { result = MkUse(node) } + bindingset[node] + pragma[inline_late] + private TApiNode mkDefLate(DataFlow::Node node) { result = MkDef(node) } + private import semmle.javascript.dataflow.TypeTracking /** From daf04f1184f5b79ca1f8cf516aec13e44ec63635 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 28 Nov 2025 10:15:58 +0100 Subject: [PATCH 055/263] JS: Call forceLocal on the output of Stage 1 --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 0dca3c1dd8e..488fddc95de 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1539,6 +1539,25 @@ module API { private module Stage1 = Stage; + overlay[local] + private module Stage1Local { + predicate use(TApiNode node, DataFlow::Node ref) = forceLocal(Stage1::use/2)(node, ref) + + predicate rhs(TApiNode node, DataFlow::Node def) = forceLocal(Stage1::rhs/2)(node, def) + + DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) = + forceLocal(Stage1::trackUseNode/1)(nd, result) + + DataFlow::SourceNode trackDefNode(DataFlow::SourceNode nd) = + forceLocal(Stage1::trackDefNode/1)(nd, result) + + predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) = + forceLocal(Stage1::edge/3)(pred, lbl, succ) + + DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) = + forceLocal(Stage1::getAPromisifiedInvocation/3)(callee, bound, succ, result) + } + cached private module Cached { cached From b12d927020850145e970e9f142a48da062853d77 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 28 Nov 2025 10:16:20 +0100 Subject: [PATCH 056/263] JS: Also expose "any state" version of tracking predicates --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 488fddc95de..f0ce21758f5 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1384,6 +1384,13 @@ module API { result = trackUseNode(nd, false, 0, "") } + /** + * Gets a node whose forward tracking reaches `nd` in some state (e.g. possibly inside a content at this point). + */ + DataFlow::SourceNode trackUseNodeAnyState(DataFlow::SourceNode nd) { + result = trackUseNode(nd, _, _, _, _) + } + private DataFlow::SourceNode trackDefNode(DataFlow::Node nd, DataFlow::TypeBackTracker t) { t.start() and rhs(_, nd) and @@ -1434,6 +1441,11 @@ module API { result = trackDefNode(nd, DataFlow::TypeBackTracker::end()) } + /** + * Gets a node reached by the backwards tracking of `nd` in some state (e.g. possibly inside a content at this point). + */ + DataFlow::SourceNode trackDefNodeAnyState(DataFlow::Node nd) { result = trackDefNode(nd, _) } + private DataFlow::SourceNode awaited(DataFlow::InvokeNode call, DataFlow::TypeTracker t) { t.startInPromise() and trackUseNode(_, true, _, "").flowsTo(call.getCalleeNode()) and @@ -1548,9 +1560,15 @@ module API { DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) = forceLocal(Stage1::trackUseNode/1)(nd, result) + DataFlow::SourceNode trackUseNodeAnyState(DataFlow::SourceNode nd) = + forceLocal(Stage1::trackUseNodeAnyState/1)(nd, result) + DataFlow::SourceNode trackDefNode(DataFlow::SourceNode nd) = forceLocal(Stage1::trackDefNode/1)(nd, result) + DataFlow::SourceNode trackDefNodeAnyState(DataFlow::Node nd) = + forceLocal(Stage1::trackDefNodeAnyState/1)(nd, result) + predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) = forceLocal(Stage1::edge/3)(pred, lbl, succ) From 1001e86f201461689e15ed0616850e6a02d66286 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 28 Nov 2025 10:18:46 +0100 Subject: [PATCH 057/263] JS: Restrict Stage1 to the base database --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index f0ce21758f5..0381c4db8f1 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1545,8 +1545,15 @@ module API { pragma[inline] predicate isAdditionalDefRoot(Node node) { none() } + overlay[local] + private predicate isOverlay() { databaseMetadata("isOverlay", "true") } + bindingset[node] - predicate inScope(DataFlow::Node node) { any() } + predicate inScope(DataFlow::Node node) { + // In the base database, compute everything in stage 1. + // In an overlay database, do nothing in stage 1. + not isOverlay() and exists(node) + } } private module Stage1 = Stage; From 9c37e076cc958a2b75c0b3380579b267119472f7 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 28 Nov 2025 10:19:06 +0100 Subject: [PATCH 058/263] JS: Add overlay-specific Stage2 --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 116 ++++++++++++++++-- 1 file changed, 105 insertions(+), 11 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 0381c4db8f1..733b9031963 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -792,6 +792,10 @@ module API { private predicate hasSemantics(DataFlow::Node nd) { not nd.getTopLevel().isExterns() } + bindingset[nd] + pragma[inline_late] + private predicate hasSemanticsLate(DataFlow::Node nd) { hasSemantics(nd) } + private signature module StageInputSig { /** Holds if `node` should be seen as a use-node root, in addition to module imports (which are the usual roots). */ predicate isAdditionalUseRoot(Node node); @@ -1583,30 +1587,120 @@ module API { forceLocal(Stage1::getAPromisifiedInvocation/3)(callee, bound, succ, result) } + private module Stage2Input implements StageInputSig { + overlay[global] + pragma[nomagic] + private predicate isInOverlayChangedFile(DataFlow::Node node) { + overlayChangedFiles(node.getFile().getAbsolutePath()) + } + + bindingset[node] + overlay[global] + pragma[inline_late] + private predicate isInOverlayChangedFileLate(DataFlow::Node node) { + isInOverlayChangedFile(node) + } + + /** Holds if there is a step `node1 -> node2` from an unchanged file into a changed file. */ + pragma[nomagic] + private predicate stepIntoOverlay(DataFlow::Node node1, DataFlow::Node node2) { + StepSummary::step(node1, node2, _) and + isInOverlayChangedFile(node2) and + not isInOverlayChangedFileLate(node1) and + hasSemanticsLate(node1) + } + + /** Holds if use-node tracking starting at `nd` can reach a node in the overlay. */ + pragma[nomagic] + private predicate shouldTrackIntoOverlay(DataFlow::SourceNode nd) { + exists(DataFlow::Node overlayNode | + stepIntoOverlay(Stage1Local::trackUseNodeAnyState(nd), overlayNode) + ) + } + + /** Holds if `node` should be tracked as a use-node in stage 2. */ + pragma[nomagic] + predicate isAdditionalUseRoot(Node node) { + exists(DataFlow::Node ref | + shouldTrackIntoOverlay(ref) and + Stage1Local::use(node, ref) + ) + } + + /** Holds if there is a step `node1 -> node2` from a changed file into an unchanged file. */ + pragma[nomagic] + private predicate stepOutOfOverlay(DataFlow::Node node1, DataFlow::Node node2) { + StepSummary::step(node1, node2, _) and + isInOverlayChangedFile(node1) and + not isInOverlayChangedFileLate(node2) and + hasSemanticsLate(node2) + } + + /** Holds if def-node tracking starting at `nd` can reach a node in the overlay. */ + pragma[nomagic] + private predicate shouldBacktrackIntoOverlay(DataFlow::Node nd) { + exists(DataFlow::Node overlayNode | + stepOutOfOverlay(overlayNode, Stage1Local::trackDefNodeAnyState(nd)) + ) + } + + /** Holds if `node` should be tracked as a def-node in stage 2. */ + pragma[nomagic] + predicate isAdditionalDefRoot(Node node) { + exists(DataFlow::Node def | + shouldBacktrackIntoOverlay(def) and + Stage1Local::rhs(node, def) + ) + } + + bindingset[node] + predicate inScope(DataFlow::Node node) { isInOverlayChangedFile(node) } + } + + private module Stage2 = Stage; + cached private module Cached { cached - predicate rhs(TApiNode nd, DataFlow::Node rhs) { Stage1::rhs(nd, rhs) } - - cached - predicate use(TApiNode nd, DataFlow::Node ref) { Stage1::use(nd, ref) } - - cached - DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { - result = Stage1::trackUseNode(nd) + predicate rhs(TApiNode nd, DataFlow::Node rhs) { + Stage1Local::rhs(nd, rhs) + or + Stage2::rhs(nd, rhs) } cached - DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { result = Stage1::trackDefNode(nd) } + predicate use(TApiNode nd, DataFlow::Node ref) { + Stage1Local::use(nd, ref) + or + Stage2::use(nd, ref) + } + + cached + DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { + result = Stage1Local::trackUseNode(nd) + or + result = Stage2::trackUseNode(nd) + } + + cached + DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { + result = Stage1Local::trackDefNode(nd) + or + result = Stage2::trackDefNode(nd) + } cached predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) { - Stage1::edge(pred, lbl, succ) + Stage1Local::edge(pred, lbl, succ) + or + Stage2::edge(pred, lbl, succ) } cached DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { - result = Stage1::getAPromisifiedInvocation(callee, bound, succ) + result = Stage1Local::getAPromisifiedInvocation(callee, bound, succ) + or + result = Stage2::getAPromisifiedInvocation(callee, bound, succ) } } From c9d3f06fbc3020235371f76649a51740a5fc5b21 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:42:12 +0200 Subject: [PATCH 059/263] JS:Add more member labels --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 733b9031963..842feffad34 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1913,6 +1913,8 @@ module API { name = DataFlow::PseudoProperties::arrayLikeElement() or name = any(TypeAccess t).getIdentifier().getName() + or + name = any(Expr s).getStringValue() } or MkLabelParameter(int i) { i = From 4bd0f34938aeec8766223bb51e9135a682f77f00 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 10:42:22 +0200 Subject: [PATCH 060/263] JS: Add debug tools for detecting lost nodes/edges --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 842feffad34..112c3d7cf7f 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -819,7 +819,7 @@ module API { * Holds if `rhs` is the right-hand side of a definition of a node that should have an * incoming edge from `base` labeled `lbl` in the API graph. */ - private predicate rhs(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { + predicate rhs(TApiNode base, Label::ApiLabel lbl, DataFlow::Node rhs) { hasSemantics(rhs) and ( base = MkRoot() and @@ -1058,7 +1058,7 @@ module API { * Holds if `ref` is a use of a node that should have an incoming edge from `base` labeled * `lbl` in the API graph. */ - private predicate use(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { + predicate use(TApiNode base, Label::ApiLabel lbl, DataFlow::Node ref) { hasSemantics(ref) and ( base = MkRoot() and @@ -1706,6 +1706,43 @@ module API { import Cached + private module Debug { + private module FullInput implements StageInputSig { + pragma[inline] + predicate isAdditionalUseRoot(Node node) { none() } + + pragma[inline] + predicate isAdditionalDefRoot(Node node) { none() } + + bindingset[node] + predicate inScope(DataFlow::Node node) { any() } + } + + private module Full = Stage; + + query predicate missingDefNode(DataFlow::Node node) { + Full::rhs(_, _, node) and + not exists(MkDef(node)) + } + + query predicate missingUseNode(DataFlow::Node node) { + Full::use(_, _, node) and + not exists(MkUse(node)) + } + + query predicate lostEdge(Node pred, Label::ApiLabel lbl, Node succ) { + Full::edge(pred, lbl, succ) and + not Cached::edge(pred, lbl, succ) + } + + query predicate counts(int numEdges, int numOverlayEdges, float ratio) { + numEdges = count(Node pred, Label::ApiLabel lbl, Node succ | Full::edge(pred, lbl, succ)) and + numOverlayEdges = + count(Node pred, Label::ApiLabel lbl, Node succ | Stage2::edge(pred, lbl, succ)) and + ratio = numOverlayEdges / numEdges.(float) + } + } + /** * Holds if there is an edge from `pred` to `succ` in the API graph. */ From 825c08356f777037027eebe968c3f8b754c01b26 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 11:18:27 +0200 Subject: [PATCH 061/263] JS: Change signature of 'edges' to support quick eval --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 112c3d7cf7f..ec1585df6f5 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1690,7 +1690,7 @@ module API { } cached - predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) { + predicate edge(Node pred, Label::ApiLabel lbl, Node succ) { Stage1Local::edge(pred, lbl, succ) or Stage2::edge(pred, lbl, succ) From a6dfb8351c78e03546accb602195f426b69f7960 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 6 Oct 2025 11:39:54 +0200 Subject: [PATCH 062/263] JS: Add back CallReceiverStep() restriction This was initially lost after rebasing with indentation changes --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index ec1585df6f5..d802d538f23 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1371,7 +1371,9 @@ module API { exists(DataFlow::TypeTracker t, StepSummary summary, DataFlow::SourceNode prev | prev = trackUseNode(nd, promisified, boundArgs, prop, t) and StepSummary::step(prev, res, summary) and - result = t.append(summary) + result = t.append(summary) and + // Block argument-passing into 'this' when it determines the call target + not summary = CallReceiverStep() ) } @@ -1434,7 +1436,9 @@ module API { exists(DataFlow::TypeBackTracker t, StepSummary summary, DataFlow::Node next | next = trackDefNode(nd, t) and StepSummary::step(prev, next, summary) and - result = t.prepend(summary) + result = t.prepend(summary) and + // Block argument-passing into 'this' when it determines the call target + not summary = CallReceiverStep() ) } From cf0e7652f4e819e9a9374cd4dc7bbe322a7452d2 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 3 Nov 2025 11:52:06 +0100 Subject: [PATCH 063/263] JS: Remove global dependency that wasnt needed anyway --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index d802d538f23..8e8881b8950 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1947,8 +1947,6 @@ module API { or name = any(DataFlow::PropRef pr).getPropertyName() or - AccessPath::isAssignedInUniqueFile(name) - or exists(AccessPath::getAnAssignmentTo(_, name)) or name = DataFlow::PseudoProperties::arrayLikeElement() From c687dc93b0acee0a5e7185453a8ca0eabe1ac82f Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 10 Oct 2025 21:37:01 +0200 Subject: [PATCH 064/263] JS: Add overlay[global] to abstract classes with fields Some abstract classes defines fields without binding them, leaving it up to the subclasses to bind them. When combined with overlay[local?], the charpred for such an abstract class can become local, while the subclasses are global. The means the charpred needs to be materialized, even though it doesn't bind the fields, leading to a cartesian product. --- javascript/ql/lib/semmle/javascript/DOM.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/EventEmitter.qll | 2 ++ javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll | 1 + javascript/ql/lib/semmle/javascript/frameworks/SQL.qll | 1 + .../dataflow/SecondOrderCommandInjectionCustomizations.qll | 1 + .../javascript/security/dataflow/TaintedPathCustomizations.qll | 1 + .../security/dataflow/UnsafeHtmlConstructionCustomizations.qll | 1 + 7 files changed, 8 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/DOM.qll b/javascript/ql/lib/semmle/javascript/DOM.qll index 21854c1a9d0..97f6bc43546 100644 --- a/javascript/ql/lib/semmle/javascript/DOM.qll +++ b/javascript/ql/lib/semmle/javascript/DOM.qll @@ -192,6 +192,7 @@ module DOM { * A data flow node or other program element that may refer to * a DOM element. */ + overlay[global] abstract class Element extends Locatable { ElementDefinition defn; diff --git a/javascript/ql/lib/semmle/javascript/frameworks/EventEmitter.qll b/javascript/ql/lib/semmle/javascript/frameworks/EventEmitter.qll index f466d96dd9d..67a5a99fdc1 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/EventEmitter.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/EventEmitter.qll @@ -94,6 +94,7 @@ module EventRegistration { /** * A registration of an event handler on an EventEmitter. */ + overlay[global] abstract class Range extends DataFlow::Node { EventEmitter::Range emitter; @@ -148,6 +149,7 @@ module EventDispatch { /** * A dispatch of an event on an EventEmitter. */ + overlay[global] abstract class Range extends DataFlow::Node { EventEmitter::Range emitter; diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll index b6506ddd648..10801d96654 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll @@ -260,6 +260,7 @@ module NodeJSLib { DataFlow::Node getRouteHandlerNode() { result = handler } } + overlay[global] abstract private class HeaderDefinition extends Http::Servers::StandardHeaderDefinition { ResponseNode r; diff --git a/javascript/ql/lib/semmle/javascript/frameworks/SQL.qll b/javascript/ql/lib/semmle/javascript/frameworks/SQL.qll index 9d106251a21..bcc89813220 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/SQL.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/SQL.qll @@ -16,6 +16,7 @@ module SQL { * An dataflow node that sanitizes a string to make it safe to embed into * a SQL command. */ + overlay[global] abstract class SqlSanitizer extends DataFlow::Node { DataFlow::Node input; DataFlow::Node output; diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/SecondOrderCommandInjectionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/SecondOrderCommandInjectionCustomizations.qll index 416ad56bef1..afac6f91d07 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/SecondOrderCommandInjectionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/SecondOrderCommandInjectionCustomizations.qll @@ -129,6 +129,7 @@ module SecondOrderCommandInjection { /** * A sink that invokes a command described by the `VulnerableCommand` class. */ + overlay[global] abstract class VulnerableCommandSink extends Sink { VulnerableCommand cmd; diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/TaintedPathCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/TaintedPathCustomizations.qll index f863b86a3b5..a09edf432f6 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/TaintedPathCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/TaintedPathCustomizations.qll @@ -194,6 +194,7 @@ module TaintedPath { * There are currently four flow labels, representing the different combinations of * normalization and absoluteness. */ + overlay[global] abstract class PosixPath extends DataFlow::FlowLabel { Normalization normalization; Relativeness relativeness; diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll index 06bad34b80c..ab22c794fa5 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/UnsafeHtmlConstructionCustomizations.qll @@ -101,6 +101,7 @@ module UnsafeHtmlConstruction { * A sink for `js/html-constructed-from-input` that constructs some HTML where * that HTML is later used in `xssSink`. */ + overlay[global] abstract class XssSink extends Sink { DomBasedXss::Sink xssSink; From ed3a8bdfa995a6b2f4f3f3c390206cf36091aef1 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 20 Nov 2025 16:04:18 +0100 Subject: [PATCH 065/263] JS: Include import paths from custom ModuleImportNode::Range subclasses --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 8e8881b8950..45efee5f3c0 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -2164,6 +2164,10 @@ private predicate isDeclaredPackageName(string m) { overlay[local] private predicate isImportedPackageName(string m) { - m = any(Import imprt).getImportedPathString() and + ( + m = any(Import imprt).getImportedPathString() + or + m = any(DataFlow::ModuleImportNode im).getPath() + ) and m.regexpMatch("[^./].*") } From 651608a170c61ff9af47f8f723c42993228b575f Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 24 Nov 2025 11:46:38 +0100 Subject: [PATCH 066/263] JS: Bugfix in Stage1Local::trackDefNode --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 45efee5f3c0..b952578f599 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1578,7 +1578,7 @@ module API { DataFlow::SourceNode trackUseNodeAnyState(DataFlow::SourceNode nd) = forceLocal(Stage1::trackUseNodeAnyState/1)(nd, result) - DataFlow::SourceNode trackDefNode(DataFlow::SourceNode nd) = + DataFlow::SourceNode trackDefNode(DataFlow::Node nd) = forceLocal(Stage1::trackDefNode/1)(nd, result) DataFlow::SourceNode trackDefNodeAnyState(DataFlow::Node nd) = From 7974416e65c6cbd68413680daf2cf0f0d5cb81af Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 24 Nov 2025 11:38:09 +0100 Subject: [PATCH 067/263] JS: Simplify toString() --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index b952578f599..b9e335e781d 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -579,7 +579,31 @@ module API { * Gets a textual representation of this node. */ string toString() { - none() // defined in subclasses + this = Impl::MkRoot() and result = "root" + or + exists(string m | this = Impl::MkModuleDef(m) | result = "module def " + m) + or + exists(string m | this = Impl::MkModuleUse(m) | result = "module use " + m) + or + exists(string m | this = Impl::MkModuleExport(m) | result = "module export " + m) + or + exists(string m | this = Impl::MkModuleImport(m) | result = "module import " + m) + or + exists(string m, string e | this = Impl::MkTypeUse(m, e) | + result = "type use " + m + "::" + e + ) + or + exists(DataFlow::SourceNode cls | this = Impl::MkClassInstance(cls) | + result = "instance of " + cls.toString() + ) + or + exists(DataFlow::Node nd | this = Impl::MkDef(nd) | result = "def " + nd.toString()) + or + exists(DataFlow::Node nd | this = Impl::MkUse(nd) | result = "use " + nd.toString()) + or + exists(DataFlow::InvokeNode nd | this = Impl::MkSyntheticCallbackArg(nd) | + result = "callback arg " + nd.toString() + ) } /** @@ -607,19 +631,13 @@ module API { } /** The root node of an API graph. */ - class Root extends Node, Impl::MkRoot { - override string toString() { result = "root" } - } + class Root extends Node, Impl::MkRoot { } /** A node corresponding to a definition of an API component. */ - class Definition extends Node, Impl::TDef { - override string toString() { result = "def " + this.getInducingNode().toString() } - } + class Definition extends Node, Impl::TDef { } /** A node corresponding to the use of an API component. */ - class Use extends Node, Impl::TUse { - override string toString() { result = "use " + this.getInducingNode().toString() } - } + class Use extends Node, Impl::TUse { } /** Gets the root node. */ Root root() { any() } From 962c128f20504e70fd74952c5fdc5a943f20ddfc Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 24 Nov 2025 11:46:25 +0100 Subject: [PATCH 068/263] JS: Update test output to reflect Node.toString() change --- .../EndpointNaming/EndpointNaming.expected | 6 +- .../frameworks/Knex/test.expected | 408 +++++++++--------- .../frameworks/Redux/test.expected | 48 +-- 3 files changed, 231 insertions(+), 231 deletions(-) diff --git a/javascript/ql/test/library-tests/EndpointNaming/EndpointNaming.expected b/javascript/ql/test/library-tests/EndpointNaming/EndpointNaming.expected index d2c34c887cc..d56e036e042 100644 --- a/javascript/ql/test/library-tests/EndpointNaming/EndpointNaming.expected +++ b/javascript/ql/test/library-tests/EndpointNaming/EndpointNaming.expected @@ -1,7 +1,7 @@ testFailures ambiguousPreferredPredecessor -| pack2/lib.js:1:1:3:1 | def moduleImport("pack2").getMember("exports").getMember("lib").getMember("LibClass").getInstance() | -| pack2/lib.js:8:22:8:34 | def moduleImport("pack2").getMember("exports").getMember("lib").getMember("LibClass").getMember("foo") | -| pack2/main.js:1:1:3:1 | def moduleImport("pack2").getMember("exports").getMember("MainClass").getInstance() | +| pack2/lib.js:1:1:3:1 | instance of class A ... ethod\\n} | +| pack2/lib.js:8:22:8:34 | def function() {} | +| pack2/main.js:1:1:3:1 | instance of class A ... ethod\\n} | ambiguousSinkName ambiguousFunctionName diff --git a/javascript/ql/test/library-tests/frameworks/Knex/test.expected b/javascript/ql/test/library-tests/frameworks/Knex/test.expected index 9ce25cd4fa5..bfa154226cd 100644 --- a/javascript/ql/test/library-tests/frameworks/Knex/test.expected +++ b/javascript/ql/test/library-tests/frameworks/Knex/test.expected @@ -25,208 +25,208 @@ sqlString | tst.js:166:43:166:63 | 'col DE ... S LAST' | | tst.js:178:14:178:24 | 'count > ?' | knexLibrary -| file://:0:0:0:0 | use moduleImport("knex").getMember("exports") | +| file://:0:0:0:0 | module import knex | knexObject -| tst.js:3:14:3:30 | use moduleImport("knex").getMember("exports").getReturn() | -| tst.js:5:1:5:32 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:5:1:9:4 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("select").getReturn() | -| tst.js:5:1:10:52 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("select").getReturn().getMember("whereRaw").getReturn() | -| tst.js:12:1:12:48 | use moduleImport("knex").getMember("exports").getReturn().getMember("withUserParams").getReturn() | -| tst.js:12:1:12:59 | use moduleImport("knex").getMember("exports").getReturn().getMember("withUserParams").getReturn().getMember("table").getReturn() | -| tst.js:12:1:12:71 | use moduleImport("knex").getMember("exports").getReturn().getMember("withUserParams").getReturn().getMember("table").getReturn().getMember("select").getReturn() | -| tst.js:14:1:14:13 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:14:1:14:27 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:14:1:14:41 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("timeout").getReturn() | -| tst.js:15:1:15:38 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:15:1:15:52 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:17:1:17:23 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn() | -| tst.js:17:1:19:4 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn().getMember("from").getReturn() | -| tst.js:17:1:19:24 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn().getMember("from").getReturn().getMember("as").getReturn() | -| tst.js:17:30:17:29 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn().getMember("from").getParameter(0).getReceiver() | -| tst.js:18:5:18:38 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn().getMember("from").getParameter(0).getReceiver().getMember("sum").getReturn() | -| tst.js:18:5:18:49 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn().getMember("from").getParameter(0).getReceiver().getMember("sum").getReturn().getMember("from").getReturn() | -| tst.js:18:5:18:68 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn().getMember("from").getParameter(0).getReceiver().getMember("sum").getReturn().getMember("from").getReturn().getMember("groupBy").getReturn() | -| tst.js:18:5:18:77 | use moduleImport("knex").getMember("exports").getReturn().getMember("avg").getReturn().getMember("from").getParameter(0).getReceiver().getMember("sum").getReturn().getMember("from").getReturn().getMember("groupBy").getReturn().getMember("as").getReturn() | -| tst.js:21:1:21:38 | use moduleImport("knex").getMember("exports").getReturn().getMember("column").getReturn() | -| tst.js:21:1:21:47 | use moduleImport("knex").getMember("exports").getReturn().getMember("column").getReturn().getMember("select").getReturn() | -| tst.js:21:1:21:61 | use moduleImport("knex").getMember("exports").getReturn().getMember("column").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:23:1:23:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:23:1:23:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:25:1:25:85 | use moduleImport("knex").getMember("exports").getReturn().getMember("with").getReturn() | -| tst.js:25:1:25:97 | use moduleImport("knex").getMember("exports").getReturn().getMember("with").getReturn().getMember("select").getReturn() | -| tst.js:25:1:25:116 | use moduleImport("knex").getMember("exports").getReturn().getMember("with").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:25:25:25:84 | use moduleImport("knex").getMember("exports").getReturn().getMember("raw").getReturn() | -| tst.js:27:1:31:4 | use moduleImport("knex").getMember("exports").getReturn().getMember("withRecursive").getReturn() | -| tst.js:27:1:31:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("withRecursive").getReturn().getMember("select").getReturn() | -| tst.js:27:1:31:34 | use moduleImport("knex").getMember("exports").getReturn().getMember("withRecursive").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:33:1:33:25 | use moduleImport("knex").getMember("exports").getReturn().getMember("withSchema").getReturn() | -| tst.js:33:1:33:37 | use moduleImport("knex").getMember("exports").getReturn().getMember("withSchema").getReturn().getMember("select").getReturn() | -| tst.js:33:1:33:51 | use moduleImport("knex").getMember("exports").getReturn().getMember("withSchema").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:35:1:35:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:35:1:38:4 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:35:1:38:17 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("select").getReturn() | -| tst.js:40:1:40:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:40:1:40:28 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:42:1:42:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:42:1:45:3 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:42:1:48:4 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("andWhere").getReturn() | -| tst.js:46:13:46:12 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("andWhere").getParameter(0).getReceiver() | -| tst.js:47:5:47:29 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("andWhere").getParameter(0).getReceiver().getMember("where").getReturn() | -| tst.js:50:1:50:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:50:1:52:2 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:50:1:52:28 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("orWhere").getReturn() | -| tst.js:50:21:50:20 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getParameter(0).getReceiver() | -| tst.js:51:3:51:21 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getParameter(0).getReceiver().getMember("where").getReturn() | -| tst.js:51:3:51:44 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getParameter(0).getReceiver().getMember("where").getReturn().getMember("orWhere").getReturn() | -| tst.js:54:1:54:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:54:1:54:56 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:56:1:56:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:56:1:56:38 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:58:18:58:30 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:58:18:58:55 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:58:18:58:84 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("andWhere").getReturn() | -| tst.js:58:18:58:108 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("andWhere").getReturn().getMember("orWhere").getReturn() | -| tst.js:58:18:58:121 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("andWhere").getReturn().getMember("orWhere").getReturn().getMember("select").getReturn() | -| tst.js:59:1:59:16 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:59:1:59:44 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:61:1:61:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:61:1:61:28 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:61:1:61:64 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("orWhere").getReturn() | -| tst.js:63:1:63:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:63:1:66:2 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn() | -| tst.js:63:1:66:15 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn().getMember("select").getReturn() | -| tst.js:68:1:68:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:68:1:68:31 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn() | -| tst.js:70:1:70:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:70:1:72:2 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn() | -| tst.js:70:1:72:31 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn().getMember("orWhereNot").getReturn() | -| tst.js:70:24:70:23 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getParameter(0).getReceiver() | -| tst.js:71:3:71:21 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getParameter(0).getReceiver().getMember("where").getReturn() | -| tst.js:71:3:71:47 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getParameter(0).getReceiver().getMember("where").getReturn().getMember("orWhereNot").getReturn() | -| tst.js:74:19:74:31 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:74:19:75:30 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn() | -| tst.js:74:19:76:31 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn().getMember("andWhere").getReturn() | -| tst.js:74:19:77:26 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn().getMember("andWhere").getReturn().getMember("orWhere").getReturn() | -| tst.js:74:19:78:15 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNot").getReturn().getMember("andWhere").getReturn().getMember("orWhere").getReturn().getMember("select").getReturn() | -| tst.js:80:1:80:16 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:80:1:80:49 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:82:1:82:19 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:82:1:82:33 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:82:1:83:27 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("whereIn").getReturn() | -| tst.js:82:1:84:29 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("whereIn").getReturn().getMember("orWhereIn").getReturn() | -| tst.js:86:1:86:19 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:86:1:86:33 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:86:1:89:4 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("whereIn").getReturn() | -| tst.js:91:1:91:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:91:1:91:41 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotIn").getReturn() | -| tst.js:93:1:93:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:93:1:93:45 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn() | -| tst.js:93:1:93:75 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("where").getReturn().getMember("orWhereNotIn").getReturn() | -| tst.js:95:1:95:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:95:1:95:37 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNull").getReturn() | -| tst.js:97:1:97:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:97:1:97:40 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotNull").getReturn() | -| tst.js:99:1:99:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:99:1:101:2 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereExists").getReturn() | -| tst.js:99:27:99:26 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereExists").getParameter(0).getReceiver() | -| tst.js:100:3:100:18 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereExists").getParameter(0).getReceiver().getMember("select").getReturn() | -| tst.js:100:3:100:35 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereExists").getParameter(0).getReceiver().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:100:3:100:78 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereExists").getParameter(0).getReceiver().getMember("select").getReturn().getMember("from").getReturn().getMember("whereRaw").getReturn() | -| tst.js:103:1:103:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:103:1:103:103 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereExists").getReturn() | -| tst.js:103:27:103:42 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:103:27:103:59 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:103:27:103:102 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("whereRaw").getReturn() | -| tst.js:105:1:105:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:105:1:107:2 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotExists").getReturn() | -| tst.js:105:30:105:29 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotExists").getParameter(0).getReceiver() | -| tst.js:106:3:106:18 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotExists").getParameter(0).getReceiver().getMember("select").getReturn() | -| tst.js:106:3:106:35 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotExists").getParameter(0).getReceiver().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:106:3:106:78 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotExists").getParameter(0).getReceiver().getMember("select").getReturn().getMember("from").getReturn().getMember("whereRaw").getReturn() | -| tst.js:109:1:109:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:109:1:109:45 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereBetween").getReturn() | -| tst.js:111:1:111:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:111:1:111:48 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereNotBetween").getReturn() | -| tst.js:113:1:113:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:113:1:113:37 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("whereRaw").getReturn() | -| tst.js:115:1:115:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:115:1:116:56 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("join").getReturn() | -| tst.js:115:1:117:39 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("join").getReturn().getMember("select").getReturn() | -| tst.js:119:1:119:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:119:1:120:51 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("join").getReturn() | -| tst.js:119:1:121:39 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("join").getReturn().getMember("select").getReturn() | -| tst.js:123:1:123:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:123:1:123:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:123:1:125:2 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("join").getReturn() | -| tst.js:127:1:127:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:127:1:127:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:127:1:132:2 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("join").getReturn() | -| tst.js:134:1:134:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:134:1:134:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:134:1:134:90 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("join").getReturn() | -| tst.js:134:66:134:89 | use moduleImport("knex").getMember("exports").getReturn().getMember("raw").getReturn() | -| tst.js:136:1:136:18 | use moduleImport("knex").getMember("exports").getReturn().getMember("from").getReturn() | -| tst.js:136:1:136:72 | use moduleImport("knex").getMember("exports").getReturn().getMember("from").getReturn().getMember("innerJoin").getReturn() | -| tst.js:138:1:138:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:138:1:138:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:138:1:138:83 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("leftJoin").getReturn() | -| tst.js:140:1:140:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:140:1:140:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:140:1:140:88 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("leftOuterJoin").getReturn() | -| tst.js:142:1:142:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:142:1:142:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:142:1:142:84 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("rightJoin").getReturn() | -| tst.js:144:1:144:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:144:1:144:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:144:1:144:89 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("rightOuterJoin").getReturn() | -| tst.js:146:1:146:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:146:1:146:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:146:1:146:88 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("fullOuterJoin").getReturn() | -| tst.js:148:1:148:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:148:1:148:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:148:1:148:52 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("crossJoin").getReturn() | -| tst.js:150:1:150:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:150:1:150:33 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:150:1:150:69 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("joinRaw").getReturn() | -| tst.js:150:1:150:84 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("joinRaw").getReturn().getMember("where").getReturn() | -| tst.js:152:1:152:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:152:1:152:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:152:1:154:2 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("join").getReturn() | -| tst.js:156:1:156:28 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:156:1:156:42 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:156:1:156:63 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("where").getReturn() | -| tst.js:156:1:156:79 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("where").getReturn().getMember("clear").getReturn() | -| tst.js:156:1:156:94 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("where").getReturn().getMember("clear").getReturn().getMember("clear").getReturn() | -| tst.js:158:1:158:17 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:158:1:158:53 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("distinct").getReturn() | -| tst.js:160:1:160:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:160:1:160:31 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("distinctOn").getReturn() | -| tst.js:162:1:162:44 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:162:1:162:58 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:162:1:162:89 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("groupByRaw").getReturn() | -| tst.js:162:21:162:43 | use moduleImport("knex").getMember("exports").getReturn().getMember("raw").getReturn() | -| tst.js:164:1:164:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:164:1:164:30 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("orderBy").getReturn() | -| tst.js:166:1:166:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:166:1:166:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:166:1:166:64 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("orderByRaw").getReturn() | -| tst.js:168:1:168:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:168:1:169:19 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("groupBy").getReturn() | -| tst.js:168:1:170:26 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("groupBy").getReturn().getMember("orderBy").getReturn() | -| tst.js:168:1:171:28 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("groupBy").getReturn().getMember("orderBy").getReturn().getMember("having").getReturn() | -| tst.js:173:1:173:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:173:1:173:30 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn() | -| tst.js:173:1:173:61 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn().getMember("from").getReturn().getMember("havingIn").getReturn() | -| tst.js:175:1:175:13 | use moduleImport("knex").getMember("exports").getReturn().getReturn() | -| tst.js:175:1:176:19 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("groupBy").getReturn() | -| tst.js:175:1:177:26 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("groupBy").getReturn().getMember("orderBy").getReturn() | -| tst.js:175:1:178:32 | use moduleImport("knex").getMember("exports").getReturn().getReturn().getMember("groupBy").getReturn().getMember("orderBy").getReturn().getMember("havingRaw").getReturn() | -| tst.js:180:1:180:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:181:1:181:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:182:1:182:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:183:1:183:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:184:1:184:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:185:1:185:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:186:1:186:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:187:1:187:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | -| tst.js:188:1:188:16 | use moduleImport("knex").getMember("exports").getReturn().getMember("select").getReturn() | +| tst.js:3:14:3:30 | use require('knex')() | +| tst.js:5:1:5:32 | use knex({ ... ble' }) | +| tst.js:5:1:9:4 | use knex({ ... e'\\n }) | +| tst.js:5:1:10:52 | use knex({ ... mn_2']) | +| tst.js:12:1:12:48 | use knex.wi ... ble1'}) | +| tst.js:12:1:12:59 | use knex.wi ... le('t') | +| tst.js:12:1:12:71 | use knex.wi ... ct('x') | +| tst.js:14:1:14:13 | use knex.select() | +| tst.js:14:1:14:27 | use knex.se ... books') | +| tst.js:14:1:14:41 | use knex.se ... t(1000) | +| tst.js:15:1:15:38 | use knex.se ... 'year') | +| tst.js:15:1:15:52 | use knex.se ... books') | +| tst.js:17:1:17:23 | use knex.av ... lumn1') | +| tst.js:17:1:19:4 | use knex.av ... ')\\n }) | +| tst.js:17:1:19:24 | use knex.av ... alias') | +| tst.js:17:30:17:29 | use this | +| tst.js:18:5:18:38 | use this.su ... lumn1') | +| tst.js:18:5:18:49 | use this.su ... m('t1') | +| tst.js:18:5:18:68 | use this.su ... lumn1') | +| tst.js:18:5:18:77 | use this.su ... s('t1') | +| tst.js:21:1:21:38 | use knex.co ... 'year') | +| tst.js:21:1:21:47 | use knex.co ... elect() | +| tst.js:21:1:21:61 | use knex.co ... books') | +| tst.js:23:1:23:16 | use knex.select('*') | +| tst.js:23:1:23:30 | use knex.se ... users') | +| tst.js:25:1:25:85 | use knex.wi ... Test')) | +| tst.js:25:1:25:97 | use knex.wi ... ct('*') | +| tst.js:25:1:25:116 | use knex.wi ... alias') | +| tst.js:25:25:25:84 | use knex.ra ... 'Test') | +| tst.js:27:1:31:4 | use knex.wi ... })\\n }) | +| tst.js:27:1:31:16 | use knex.wi ... ct('*') | +| tst.js:27:1:31:34 | use knex.wi ... stors') | +| tst.js:33:1:33:25 | use knex.wi ... ublic') | +| tst.js:33:1:33:37 | use knex.wi ... ct('*') | +| tst.js:33:1:33:51 | use knex.wi ... users') | +| tst.js:35:1:35:13 | use knex('users') | +| tst.js:35:1:38:4 | use knex('u ... r'\\n }) | +| tst.js:35:1:38:17 | use knex('u ... t('id') | +| tst.js:40:1:40:13 | use knex('users') | +| tst.js:40:1:40:28 | use knex('u ... id', 1) | +| tst.js:42:1:42:13 | use knex('users') | +| tst.js:42:1:45:3 | use knex('u ... 9])\\n ) | +| tst.js:42:1:48:4 | use knex('u ... 0)\\n }) | +| tst.js:46:13:46:12 | use this | +| tst.js:47:5:47:29 | use this.wh ... >', 10) | +| tst.js:50:1:50:13 | use knex('users') | +| tst.js:50:1:52:2 | use knex('u ... 10)\\n}) | +| tst.js:50:1:52:28 | use knex('u ... ster'}) | +| tst.js:50:21:50:20 | use this | +| tst.js:51:3:51:21 | use this.where('id', 1) | +| tst.js:51:3:51:44 | use this.wh ... >', 10) | +| tst.js:54:1:54:13 | use knex('users') | +| tst.js:54:1:54:56 | use knex('u ... keme%') | +| tst.js:56:1:56:13 | use knex('users') | +| tst.js:56:1:56:38 | use knex('u ... ', 100) | +| tst.js:58:18:58:30 | use knex('users') | +| tst.js:58:18:58:55 | use knex('u ... ', 100) | +| tst.js:58:18:58:84 | use knex('u ... ctive') | +| tst.js:58:18:58:108 | use knex('u ... 'John') | +| tst.js:58:18:58:121 | use knex('u ... t('id') | +| tst.js:59:1:59:16 | use knex('accounts') | +| tst.js:59:1:59:44 | use knex('a ... bquery) | +| tst.js:61:1:61:13 | use knex('users') | +| tst.js:61:1:61:28 | use knex('u ... id', 1) | +| tst.js:61:1:61:64 | use knex('u ... knex'}) | +| tst.js:63:1:63:13 | use knex('users') | +| tst.js:63:1:66:2 | use knex('u ... ser'\\n}) | +| tst.js:63:1:66:15 | use knex('u ... t('id') | +| tst.js:68:1:68:13 | use knex('users') | +| tst.js:68:1:68:31 | use knex('u ... id', 1) | +| tst.js:70:1:70:13 | use knex('users') | +| tst.js:70:1:72:2 | use knex('u ... 10)\\n}) | +| tst.js:70:1:72:31 | use knex('u ... ster'}) | +| tst.js:70:24:70:23 | use this | +| tst.js:71:3:71:21 | use this.where('id', 1) | +| tst.js:71:3:71:47 | use this.wh ... >', 10) | +| tst.js:74:19:74:31 | use knex('users') | +| tst.js:74:19:75:30 | use knex('u ... ', 100) | +| tst.js:74:19:76:31 | use knex('u ... ctive') | +| tst.js:74:19:77:26 | use knex('u ... 'John') | +| tst.js:74:19:78:15 | use knex('u ... t('id') | +| tst.js:80:1:80:16 | use knex('accounts') | +| tst.js:80:1:80:49 | use knex('a ... query2) | +| tst.js:82:1:82:19 | use knex.select('name') | +| tst.js:82:1:82:33 | use knex.se ... users') | +| tst.js:82:1:83:27 | use knex.se ... 2, 3]) | +| tst.js:82:1:84:29 | use knex.se ... 5, 6]) | +| tst.js:86:1:86:19 | use knex.select('name') | +| tst.js:86:1:86:33 | use knex.se ... users') | +| tst.js:86:1:89:4 | use knex.se ... );\\n }) | +| tst.js:91:1:91:13 | use knex('users') | +| tst.js:91:1:91:41 | use knex('u ... 2, 3]) | +| tst.js:93:1:93:13 | use knex('users') | +| tst.js:93:1:93:45 | use knex('u ... Test%') | +| tst.js:93:1:93:75 | use knex('u ... 2, 3]) | +| tst.js:95:1:95:13 | use knex('users') | +| tst.js:95:1:95:37 | use knex('u ... ed_at') | +| tst.js:97:1:97:13 | use knex('users') | +| tst.js:97:1:97:40 | use knex('u ... ed_at') | +| tst.js:99:1:99:13 | use knex('users') | +| tst.js:99:1:101:2 | use knex('u ... d');\\n}) | +| tst.js:99:27:99:26 | use this | +| tst.js:100:3:100:18 | use this.select('*') | +| tst.js:100:3:100:35 | use this.se ... ounts') | +| tst.js:100:3:100:78 | use this.se ... ts.id') | +| tst.js:103:1:103:13 | use knex('users') | +| tst.js:103:1:103:103 | use knex('u ... s.id')) | +| tst.js:103:27:103:42 | use knex.select('*') | +| tst.js:103:27:103:59 | use knex.se ... ounts') | +| tst.js:103:27:103:102 | use knex.se ... ts.id') | +| tst.js:105:1:105:13 | use knex('users') | +| tst.js:105:1:107:2 | use knex('u ... d');\\n}) | +| tst.js:105:30:105:29 | use this | +| tst.js:106:3:106:18 | use this.select('*') | +| tst.js:106:3:106:35 | use this.se ... ounts') | +| tst.js:106:3:106:78 | use this.se ... ts.id') | +| tst.js:109:1:109:13 | use knex('users') | +| tst.js:109:1:109:45 | use knex('u ... , 100]) | +| tst.js:111:1:111:13 | use knex('users') | +| tst.js:111:1:111:48 | use knex('u ... , 100]) | +| tst.js:113:1:113:13 | use knex('users') | +| tst.js:113:1:113:37 | use knex('u ... ', [1]) | +| tst.js:115:1:115:13 | use knex('users') | +| tst.js:115:1:116:56 | use knex('u ... er_id') | +| tst.js:115:1:117:39 | use knex('u ... phone') | +| tst.js:119:1:119:13 | use knex('users') | +| tst.js:119:1:120:51 | use knex('u ... er_id') | +| tst.js:119:1:121:39 | use knex('u ... phone') | +| tst.js:123:1:123:16 | use knex.select('*') | +| tst.js:123:1:123:30 | use knex.se ... users') | +| tst.js:123:1:125:2 | use knex.se ... id')\\n}) | +| tst.js:127:1:127:16 | use knex.select('*') | +| tst.js:127:1:127:30 | use knex.se ... users') | +| tst.js:127:1:132:2 | use knex.se ... })\\n}) | +| tst.js:134:1:134:16 | use knex.select('*') | +| tst.js:134:1:134:30 | use knex.se ... users') | +| tst.js:134:1:134:90 | use knex.se ... min'])) | +| tst.js:134:66:134:89 | use knex.ra ... dmin']) | +| tst.js:136:1:136:18 | use knex.from('users') | +| tst.js:136:1:136:72 | use knex.fr ... er_id') | +| tst.js:138:1:138:16 | use knex.select('*') | +| tst.js:138:1:138:30 | use knex.se ... users') | +| tst.js:138:1:138:83 | use knex.se ... er_id') | +| tst.js:140:1:140:16 | use knex.select('*') | +| tst.js:140:1:140:30 | use knex.se ... users') | +| tst.js:140:1:140:88 | use knex.se ... er_id') | +| tst.js:142:1:142:16 | use knex.select('*') | +| tst.js:142:1:142:30 | use knex.se ... users') | +| tst.js:142:1:142:84 | use knex.se ... er_id') | +| tst.js:144:1:144:16 | use knex.select('*') | +| tst.js:144:1:144:30 | use knex.se ... users') | +| tst.js:144:1:144:89 | use knex.se ... er_id') | +| tst.js:146:1:146:16 | use knex.select('*') | +| tst.js:146:1:146:30 | use knex.se ... users') | +| tst.js:146:1:146:88 | use knex.se ... er_id') | +| tst.js:148:1:148:16 | use knex.select('*') | +| tst.js:148:1:148:30 | use knex.se ... users') | +| tst.js:148:1:148:52 | use knex.se ... ounts') | +| tst.js:150:1:150:16 | use knex.select('*') | +| tst.js:150:1:150:33 | use knex.se ... ounts') | +| tst.js:150:1:150:69 | use knex.se ... able1') | +| tst.js:150:1:150:84 | use knex.se ... id', 1) | +| tst.js:152:1:152:16 | use knex.select('*') | +| tst.js:152:1:152:30 | use knex.se ... users') | +| tst.js:152:1:154:2 | use knex.se ... il')\\n}) | +| tst.js:156:1:156:28 | use knex.se ... 'name') | +| tst.js:156:1:156:42 | use knex.se ... users') | +| tst.js:156:1:156:63 | use knex.se ... <', 10) | +| tst.js:156:1:156:79 | use knex.se ... elect') | +| tst.js:156:1:156:94 | use knex.se ... where') | +| tst.js:158:1:158:17 | use knex('customers') | +| tst.js:158:1:158:53 | use knex('c ... _name') | +| tst.js:160:1:160:13 | use knex('users') | +| tst.js:160:1:160:31 | use knex('u ... ('age') | +| tst.js:162:1:162:44 | use knex.se ... fit)')) | +| tst.js:162:1:162:58 | use knex.se ... sales') | +| tst.js:162:1:162:89 | use knex.se ... OLLUP') | +| tst.js:162:21:162:43 | use knex.ra ... ofit)') | +| tst.js:164:1:164:13 | use knex('users') | +| tst.js:164:1:164:30 | use knex('u ... email') | +| tst.js:166:1:166:16 | use knex.select('*') | +| tst.js:166:1:166:30 | use knex.se ... table') | +| tst.js:166:1:166:64 | use knex.se ... LAST') | +| tst.js:168:1:168:13 | use knex('users') | +| tst.js:168:1:169:19 | use knex('u ... count') | +| tst.js:168:1:170:26 | use knex('u ... 'desc') | +| tst.js:168:1:171:28 | use knex('u ... ', 100) | +| tst.js:173:1:173:16 | use knex.select('*') | +| tst.js:173:1:173:30 | use knex.se ... users') | +| tst.js:173:1:173:61 | use knex.se ... 0, 17]) | +| tst.js:175:1:175:13 | use knex('users') | +| tst.js:175:1:176:19 | use knex('u ... count') | +| tst.js:175:1:177:26 | use knex('u ... 'desc') | +| tst.js:175:1:178:32 | use knex('u ... [100]) | +| tst.js:180:1:180:16 | use knex.select('x') | +| tst.js:181:1:181:16 | use knex.select('x') | +| tst.js:182:1:182:16 | use knex.select('x') | +| tst.js:183:1:183:16 | use knex.select('x') | +| tst.js:184:1:184:16 | use knex.select('x') | +| tst.js:185:1:185:16 | use knex.select('x') | +| tst.js:186:1:186:16 | use knex.select('x') | +| tst.js:187:1:187:16 | use knex.select('x') | +| tst.js:188:1:188:16 | use knex.select('x') | diff --git a/javascript/ql/test/library-tests/frameworks/Redux/test.expected b/javascript/ql/test/library-tests/frameworks/Redux/test.expected index 62997826b36..cbf4526ab08 100644 --- a/javascript/ql/test/library-tests/frameworks/Redux/test.expected +++ b/javascript/ql/test/library-tests/frameworks/Redux/test.expected @@ -126,11 +126,11 @@ getAffectedStateAccessPath | react-redux.jsx:61:13:61:25 | manualReducer | manual | | trivial.js:130:14:130:46 | wrapper ... state) | wrapped | getADispatchFunctionNode -| react-redux.jsx:65:20:65:32 | use moduleImport("react-redux").getMember("exports").getMember("useDispatch").getReturn() | +| react-redux.jsx:65:20:65:32 | use useDispatch() | getADispatchedValueNode -| react-redux.jsx:27:12:30:5 | def entryPoint("react-redux-connect").getParameter(1).getMember("manualAction").getReturn() | -| react-redux.jsx:69:18:69:39 | def moduleImport("react-redux").getMember("exports").getMember("useDispatch").getReturn().getParameter(0) | -| react-redux.jsx:70:18:70:38 | def moduleImport("react-redux").getMember("exports").getMember("useDispatch").getReturn().getParameter(0) | +| react-redux.jsx:27:12:30:5 | def {\\n ... x\\n } | +| react-redux.jsx:69:18:69:39 | def manualA ... urce()) | +| react-redux.jsx:70:18:70:38 | def asyncAc ... urce()) | getAnUntypedActionInReducer | exportedReducer.js:12:20:12:25 | action | | react-redux.jsx:32:31:32:36 | action | @@ -167,23 +167,23 @@ reducerToStateStep | react-redux.jsx:39:42:39:55 | action.payload | react-redux.jsx:87:32:87:56 | state.m ... lValue2 | | react-redux.jsx:44:27:46:14 | [1, 2, ... }) | react-redux.jsx:88:32:88:56 | state.m ... lValue3 | getRootStateAccessPath -| manual | react-redux.jsx:86:31:86:42 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("manual") | -| manual | react-redux.jsx:87:32:87:43 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("manual") | -| manual | react-redux.jsx:88:32:88:43 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("manual") | -| manual.manualValue | react-redux.jsx:86:31:86:54 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("manual").getMember("manualValue") | -| manual.manualValue2 | react-redux.jsx:87:32:87:56 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("manual").getMember("manualValue2") | -| manual.manualValue3 | react-redux.jsx:88:32:88:56 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("manual").getMember("manualValue3") | -| toolkit | react-redux.jsx:84:32:84:44 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("toolkit") | -| toolkit | react-redux.jsx:85:24:85:36 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("toolkit") | -| toolkit.asyncValue | react-redux.jsx:85:24:85:47 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("toolkit").getMember("asyncValue") | -| toolkit.value | react-redux.jsx:84:32:84:50 | use entryPoint("react-redux-connect").getParameter(0).getParameter(0).getMember("toolkit").getMember("value") | -| x1 | accessPaths.js:8:16:8:52 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getForwardingFunction().getReturn() | -| x1 | accessPaths.js:8:44:8:51 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getParameter(0).getParameter(0).getMember("x1") | -| x2 | accessPaths.js:9:16:9:52 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getForwardingFunction().getReturn() | -| x2 | accessPaths.js:9:44:9:51 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getParameter(0).getParameter(0).getMember("x2") | -| x3 | accessPaths.js:10:16:10:52 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getForwardingFunction().getReturn() | -| x3 | accessPaths.js:10:44:10:51 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getParameter(0).getParameter(0).getMember("x3") | -| x4 | accessPaths.js:11:16:11:52 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getForwardingFunction().getReturn() | -| x4 | accessPaths.js:11:44:11:51 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getParameter(0).getParameter(0).getMember("x4") | -| x5 | accessPaths.js:12:16:12:52 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getForwardingFunction().getReturn() | -| x5 | accessPaths.js:12:44:12:51 | use moduleImport("react-redux").getMember("exports").getMember("useSelector").getParameter(0).getParameter(0).getMember("x5") | +| manual | react-redux.jsx:86:31:86:42 | use state.manual | +| manual | react-redux.jsx:87:32:87:43 | use state.manual | +| manual | react-redux.jsx:88:32:88:43 | use state.manual | +| manual.manualValue | react-redux.jsx:86:31:86:54 | use state.m ... alValue | +| manual.manualValue2 | react-redux.jsx:87:32:87:56 | use state.m ... lValue2 | +| manual.manualValue3 | react-redux.jsx:88:32:88:56 | use state.m ... lValue3 | +| toolkit | react-redux.jsx:84:32:84:44 | use state.toolkit | +| toolkit | react-redux.jsx:85:24:85:36 | use state.toolkit | +| toolkit.asyncValue | react-redux.jsx:85:24:85:47 | use state.t ... ncValue | +| toolkit.value | react-redux.jsx:84:32:84:50 | use state.toolkit.value | +| x1 | accessPaths.js:8:16:8:52 | use useSele ... ate.x1) | +| x1 | accessPaths.js:8:44:8:51 | use state.x1 | +| x2 | accessPaths.js:9:16:9:52 | use useSele ... ate.x2) | +| x2 | accessPaths.js:9:44:9:51 | use state.x2 | +| x3 | accessPaths.js:10:16:10:52 | use useSele ... ate.x3) | +| x3 | accessPaths.js:10:44:10:51 | use state.x3 | +| x4 | accessPaths.js:11:16:11:52 | use useSele ... ate.x4) | +| x4 | accessPaths.js:11:44:11:51 | use state.x4 | +| x5 | accessPaths.js:12:16:12:52 | use useSele ... ate.x5) | +| x5 | accessPaths.js:12:44:12:51 | use state.x5 | From 8731eee10e0f5464d36d4c460869e1dc4ccb76c9 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 24 Nov 2025 13:33:03 +0100 Subject: [PATCH 069/263] JS: Work around an issue with overlay-invariance --- javascript/ql/lib/semmle/javascript/frameworks/Templating.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll index 10530bf84fc..5794beafd25 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll @@ -33,7 +33,7 @@ module Templating { */ bindingset[prefix] string getDelimiterMatchingRegexpWithPrefix(string prefix) { - result = "(?s)" + prefix + "(" + concat("\\Q" + getADelimiter() + "\\E", "|") + ").*" + result = "(?s)" + prefix + "(" + strictconcat("\\Q" + getADelimiter() + "\\E", "|") + ").*" } /** A placeholder tag for a templating engine. */ From 27e8bcb347571aed4a717ef5275b07d647be1547 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 24 Nov 2025 14:12:03 +0100 Subject: [PATCH 070/263] JS: Add back promisify-all support This was somehow lost in a rebase --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index b9e335e781d..cc6f92ba256 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1161,6 +1161,17 @@ module API { ref = awaited(call) ) or + // Handle promisified object member access: promisify(obj).member should be treated as obj.member (promisified) + exists( + Promisify::PromisifyAllCall promisifiedObj, DataFlow::SourceNode originalObj, + string member + | + originalObj.flowsTo(promisifiedObj.getArgument(0)) and + use(base, originalObj) and + lbl = Label::member(member) and + ref = promisifiedObj.getAPropertyRead(member) + ) + or decoratorDualEdge(base, lbl, ref) or decoratorUseEdge(base, lbl, ref) From 97d369cf4e20f9cff7ee6cfb92ba8ea33f7efb95 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 24 Nov 2025 14:35:53 +0100 Subject: [PATCH 071/263] JS: Make API::Node overlay[local?] We want the type itself to be local but nearly all its member predicates are global. --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index cc6f92ba256..aee6a0c7219 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -122,6 +122,7 @@ module API { * Although one may think of API graphs as a tool to find certain program elements in the codebase, * it can lead to some situations where intuition does not match what works best in practice. */ + overlay[local?] class Node extends Impl::TApiNode { /** * Get a data-flow node where this value may flow after entering the current codebase. @@ -1576,9 +1577,11 @@ module API { } private module Stage1Input implements StageInputSig { + overlay[caller] pragma[inline] predicate isAdditionalUseRoot(Node node) { none() } + overlay[caller] pragma[inline] predicate isAdditionalDefRoot(Node node) { none() } From 869efb8a484cb507406b568ea04bddb7e754cf02 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 24 Nov 2025 14:37:51 +0100 Subject: [PATCH 072/263] JS: Sync ApiGraphModels.qll --- .../semmle/python/frameworks/data/internal/ApiGraphModels.qll | 2 ++ .../lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll | 2 ++ 2 files changed, 4 insertions(+) diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll index 80ec45a3cf1..68f2210bff2 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll @@ -492,6 +492,7 @@ private predicate invocationMatchesCallSiteFilter( Specific::invocationMatchesExtraCallSiteFilter(invoke, token) } +overlay[local?] private class TypeModelUseEntry extends API::EntryPoint { private string type; @@ -505,6 +506,7 @@ private class TypeModelUseEntry extends API::EntryPoint { API::Node getNodeForType(string type_) { type = type_ and result = this.getANode() } } +overlay[local?] private class TypeModelDefEntry extends API::EntryPoint { private string type; diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll index 80ec45a3cf1..68f2210bff2 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll @@ -492,6 +492,7 @@ private predicate invocationMatchesCallSiteFilter( Specific::invocationMatchesExtraCallSiteFilter(invoke, token) } +overlay[local?] private class TypeModelUseEntry extends API::EntryPoint { private string type; @@ -505,6 +506,7 @@ private class TypeModelUseEntry extends API::EntryPoint { API::Node getNodeForType(string type_) { type = type_ and result = this.getANode() } } +overlay[local?] private class TypeModelDefEntry extends API::EntryPoint { private string type; From 369848a8706512af63f39fd30aabafb2b9a960ac Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 25 Nov 2025 11:52:44 +0100 Subject: [PATCH 073/263] JS: Fix some QL4QL alerts --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index aee6a0c7219..3b0de9863ae 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1744,9 +1744,11 @@ module API { private module Debug { private module FullInput implements StageInputSig { + overlay[caller] pragma[inline] predicate isAdditionalUseRoot(Node node) { none() } + overlay[caller] pragma[inline] predicate isAdditionalDefRoot(Node node) { none() } From cae27c40be5878bf5279ab5e1c00ac5d5c1a3aca Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 25 Nov 2025 14:09:13 +0100 Subject: [PATCH 074/263] JS: Add a missing needsDefNode restriction Previously this was implied by MkClassInstance but that's no longer the case. --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 3b0de9863ae..d1bc4a23348 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1532,6 +1532,7 @@ module API { succ = MkDef(rhs) or exists(DataFlow::ClassNode cls | + needsDefNode(cls) and cls.getAnInstanceReference().flowsTo(rhs) and succ = MkClassInstance(cls) ) From 9721b4e0f597d0be11a5b56872b628b35324ba28 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 2 Dec 2025 14:42:51 +0100 Subject: [PATCH 075/263] JS: Fix bad join in export logic --- .../lib/semmle/javascript/ES2015Modules.qll | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index 3710942e9e4..d55f9843e1b 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -29,6 +29,7 @@ class ES2015Module extends Module { override string getName() { result = this.getFile().getStem() } /** Gets an export declaration in this module. */ + pragma[nomagic] ExportDeclaration getAnExport() { result.getTopLevel() = this } overlay[global] @@ -38,6 +39,7 @@ class ES2015Module extends Module { /** Holds if this module exports variable `v` under the name `name`. */ overlay[global] + pragma[nomagic] predicate exportsAs(LexicalName v, string name) { this.getAnExport().exportsAs(v, name) } override predicate isStrict() { @@ -345,6 +347,7 @@ abstract class ExportDeclaration extends Stmt, @export_declaration { /** Holds if this export declaration exports variable `v` under the name `name`. */ overlay[global] + pragma[nomagic] final predicate exportsAs(LexicalName v, string name) { this.exportsDirectlyAs(v, name) or @@ -821,18 +824,31 @@ class SelectiveReExportDeclaration extends ReExportDeclaration, ExportNamedDecla result = ExportNamedDeclaration.super.getImportedPath() } + overlay[global] + pragma[nomagic] + private predicate reExportsFrom(ES2015Module mod, string originalName, string reExportedName) { + exists(ExportSpecifier spec | + spec = this.getASpecifier() and + reExportedName = spec.getExportedName() and + originalName = spec.getLocalName() and + mod = this.getReExportedES2015Module() + ) + } + overlay[global] override predicate reExportsAs(LexicalName v, string name) { - exists(ExportSpecifier spec | spec = this.getASpecifier() and name = spec.getExportedName() | - this.getReExportedES2015Module().exportsAs(v, spec.getLocalName()) + exists(ES2015Module mod, string originalName | + this.reExportsFrom(mod, originalName, name) and + mod.exportsAs(v, originalName) ) and not (this.isTypeOnly() and v instanceof Variable) } overlay[global] override DataFlow::Node getReExportedSourceNode(string name) { - exists(ExportSpecifier spec | spec = this.getASpecifier() and name = spec.getExportedName() | - result = this.getReExportedES2015Module().getAnExport().getSourceNode(spec.getLocalName()) + exists(ES2015Module mod, string originalName | + this.reExportsFrom(mod, originalName, name) and + result = mod.getAnExport().getSourceNode(originalName) ) } } From d0dbc91aa96c166c0b725017ccca05be033b1d16 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 9 Dec 2025 09:02:55 +0100 Subject: [PATCH 076/263] Update javascript/ql/lib/semmle/javascript/ApiGraphs.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index d1bc4a23348..1801b0c2e89 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1336,7 +1336,7 @@ module API { * The flow from `nd` to that node may be inter-procedural, and is further described by three * flags: * - * - `promisified`: if true `true`, the flow goes through a promisification; + * - `promisified`: if `true`, the flow goes through a promisification; * - `boundArgs`: for function values, tracks how many arguments have been bound throughout * the flow. To ensure termination, we somewhat arbitrarily constrain the number of bound * arguments to be at most ten. From 56a6fe4c085cb903299806dcaaadadb1e2e877a5 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 9 Dec 2025 09:03:11 +0100 Subject: [PATCH 077/263] Update javascript/ql/lib/semmle/javascript/ApiGraphs.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 1801b0c2e89..ed0f0ead905 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1240,7 +1240,7 @@ module API { } /** - * Holds if `ref` is a reference to a field/accessor that should have en incoming edge from base labelled `lbl`. + * Holds if `ref` is a reference to a field/accessor that should have an incoming edge from base labelled `lbl`. * * Since fields do not have their own data-flow nodes, we generate a node for each read or write. * For property writes, the right-hand side becomes a def-node and property reads become use-nodes. From 87049bd07e24236acea7d13cee654c1d2ad4fc2b Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 17 Dec 2025 10:59:37 +0100 Subject: [PATCH 078/263] Update javascript/ql/lib/semmle/javascript/ApiGraphs.qll Co-authored-by: Taus --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index ed0f0ead905..fde122ea78b 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -824,7 +824,7 @@ module API { /** * Holds if `node` is considered "in scope" for this stage, meaning that we allow outgoing labelled edges - * to be materialised from here, and continue API graph construction from the successors edges. + * to be materialised from here, and continue API graph construction from the successors' edges. * * Note that the "additional roots" contributed by the stage inputs may be out of scope but can be tracked to a node in scope. * This predicate should thus not be used to block the tracking of use/def nodes, but only block the creation of new labelled edges. From e16cacd48d618a153e1962d0b4f7007f9afc86a0 Mon Sep 17 00:00:00 2001 From: Asger F Date: Wed, 17 Dec 2025 11:31:17 +0100 Subject: [PATCH 079/263] JS: Rename "in scope" to "in active file" --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index fde122ea78b..e8717871ac2 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -823,14 +823,15 @@ module API { predicate isAdditionalDefRoot(Node node); /** - * Holds if `node` is considered "in scope" for this stage, meaning that we allow outgoing labelled edges + * Holds if `node` is in a file that is considered "active" in this stage, meaning that we allow outgoing labelled edges * to be materialised from here, and continue API graph construction from the successors' edges. * - * Note that the "additional roots" contributed by the stage inputs may be out of scope but can be tracked to a node in scope. + * Note that the "additional roots" contributed by the stage inputs may be in an inactive file but can be tracked to a node in an + * active file. * This predicate should thus not be used to block the tracking of use/def nodes, but only block the creation of new labelled edges. */ bindingset[node] - predicate inScope(DataFlow::Node node); + predicate inActiveFile(DataFlow::Node node); } private module Stage { @@ -1025,11 +1026,11 @@ module API { * Holds if `rhs` is the right-hand side of a definition of node `nd`. */ predicate rhs(TApiNode nd, DataFlow::Node rhs) { - (S::inScope(rhs) or S::isAdditionalDefRoot(nd)) and + (S::inActiveFile(rhs) or S::isAdditionalDefRoot(nd)) and exists(string m | nd = MkModuleExport(m) | exports(m, rhs)) or rhs(_, _, rhs) and - S::inScope(rhs) and + S::inActiveFile(rhs) and nd = MkDef(rhs) or S::isAdditionalDefRoot(nd) and @@ -1084,7 +1085,7 @@ module API { exists(EntryPoint e | lbl = Label::entryPoint(e) and ref = e.getASource() and - S::inScope(ref) + S::inActiveFile(ref) ) or // property reads @@ -1286,7 +1287,7 @@ module API { * Holds if `ref` is a use of node `nd`. */ predicate use(TApiNode nd, DataFlow::Node ref) { - (S::inScope(ref) or S::isAdditionalUseRoot(nd)) and + (S::inActiveFile(ref) or S::isAdditionalUseRoot(nd)) and ( exists(string m, Module mod | nd = MkModuleDef(m) and mod = importableModule(m) | ref = DataFlow::moduleVarNode(mod) @@ -1313,7 +1314,7 @@ module API { ) or use(_, _, ref) and - S::inScope(ref) and + S::inActiveFile(ref) and nd = MkUse(ref) or S::isAdditionalUseRoot(nd) and @@ -1590,7 +1591,7 @@ module API { private predicate isOverlay() { databaseMetadata("isOverlay", "true") } bindingset[node] - predicate inScope(DataFlow::Node node) { + predicate inActiveFile(DataFlow::Node node) { // In the base database, compute everything in stage 1. // In an overlay database, do nothing in stage 1. not isOverlay() and exists(node) @@ -1691,7 +1692,7 @@ module API { } bindingset[node] - predicate inScope(DataFlow::Node node) { isInOverlayChangedFile(node) } + predicate inActiveFile(DataFlow::Node node) { isInOverlayChangedFile(node) } } private module Stage2 = Stage; @@ -1754,7 +1755,7 @@ module API { predicate isAdditionalDefRoot(Node node) { none() } bindingset[node] - predicate inScope(DataFlow::Node node) { any() } + predicate inActiveFile(DataFlow::Node node) { any() } } private module Full = Stage; From cf0b77074f1436ab04ef0a66845167e1721d192c Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 5 Jan 2026 11:22:23 +0100 Subject: [PATCH 080/263] JS: Workaround forceLocal not supporting 'result' column A bug made it into the release which causes compilation errors when forceLocal is used on a predicate with a result column. This commit works around the issue by converting the result column to a positional parameter, for the predicates that we use forceLocal on. It should be safe to revert this commit once the compiler fix has made it into a stable release. --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 141 ++++++++++-------- 1 file changed, 78 insertions(+), 63 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index e8717871ac2..3fcb2840fa0 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -132,7 +132,7 @@ module API { */ pragma[inline] DataFlow::Node getAValueReachableFromSource() { - Impl::trackUseNode(this.asSource()).flowsTo(result) + Impl::trackUseNode(this.asSource(), result.getALocalSource()) } /** @@ -171,7 +171,7 @@ module API { CallNode getMaybePromisifiedCall() { result = this.getACall() or - result = Impl::getAPromisifiedInvocation(this, _, _) + Impl::getAPromisifiedInvocation(this, _, _, result) } /** @@ -210,7 +210,7 @@ module API { * This is similar to `asSink()` but additionally includes nodes that transitively reach a sink by data flow. * See `asSink()` for examples. */ - DataFlow::Node getAValueReachingSink() { result = Impl::trackDefNode(this.asSink()) } + DataFlow::Node getAValueReachingSink() { Impl::trackDefNode(this.asSink(), result) } /** * Gets a node representing member `m` of this API component. @@ -855,7 +855,7 @@ module API { ) or exists(DataFlow::Node def, DataFlow::SourceNode pred | - rhs(base, def) and pred = trackDefNode(def) + rhs(base, def) and trackDefNode(def, pred) | // from `x` to a definition of `x.prop` exists(DataFlow::PropWrite pw | pw = pred.getAPropertyWrite() | @@ -956,8 +956,11 @@ module API { lbl = Label::spreadArgument(i) ) or - exists(DataFlow::SourceNode src, DataFlow::PropWrite pw | - use(base, src) and pw = trackUseNode(src).getAPropertyWrite() and rhs = pw.getRhs() + exists(DataFlow::SourceNode src, DataFlow::SourceNode mid, DataFlow::PropWrite pw | + use(base, src) and + trackUseNode(src, mid) and + pw = mid.getAPropertyWrite() and + rhs = pw.getRhs() | lbl = Label::memberFromRef(pw) ) @@ -1099,7 +1102,7 @@ module API { ) or exists(DataFlow::SourceNode src, DataFlow::SourceNode pred | - use(base, src) and pred = trackUseNode(src) + use(base, src) and trackUseNode(src, pred) | lbl = Label::instance() and ref = pred.getAnInstantiation() @@ -1133,7 +1136,7 @@ module API { ) or exists(DataFlow::Node def, DataFlow::FunctionNode fn | - rhs(base, def) and fn = trackDefNode(def) + rhs(base, def) and trackDefNode(def, fn) | exists(int i | lbl = Label::parameter(i) and @@ -1145,7 +1148,7 @@ module API { ) or exists(DataFlow::Node def, DataFlow::ClassNode cls, int i | - rhs(base, def) and cls = trackDefNode(def) + rhs(base, def) and trackDefNode(def, cls) | lbl = Label::parameter(i) and ref = cls.getConstructor().getParameter(i) @@ -1188,7 +1191,7 @@ module API { private predicate useNodeFlowsToDecorator(TApiNode base, Decorator decorator) { exists(DataFlow::SourceNode decoratorSrc | use(base, decoratorSrc) and - trackUseNode(decoratorSrc).flowsToExpr(decorator.getExpression()) + trackUseNode(decoratorSrc, decorator.getExpression().flow().getALocalSource()) ) } @@ -1271,9 +1274,9 @@ module API { private predicate needsDefNode(DataFlow::ClassNode cls) { hasSemantics(cls) and ( - cls = trackDefNode(_) + trackDefNode(_, cls) or - cls.getAnInstanceReference() = trackDefNode(_) + trackDefNode(_, cls.getAnInstanceReference()) or needsDefNode(cls.getADirectSubClass()) or @@ -1296,8 +1299,8 @@ module API { exists(string m, Module mod | nd = MkModuleExport(m) and mod = importableModule(m) | ref = DataFlow::exportsVarNode(mod) or - exists(DataFlow::Node base | use(MkModuleDef(m), base) | - ref = trackUseNode(base).getAPropertyRead("exports") + exists(DataFlow::Node base, DataFlow::SourceNode mid | use(MkModuleDef(m), base) | + trackUseNode(base, mid) and ref = mid.getAPropertyRead("exports") ) ) or @@ -1415,34 +1418,36 @@ module API { } /** - * Gets a node that is inter-procedurally reachable from `nd`, which is a use of some node. + * Holds if `target` is inter-procedurally reachable from `nd`, which is a use of some node. */ - DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { - result = trackUseNode(nd, false, 0, "") + predicate trackUseNode(DataFlow::SourceNode nd, DataFlow::SourceNode target) { + target = trackUseNode(nd, false, 0, "") } /** * Gets a node whose forward tracking reaches `nd` in some state (e.g. possibly inside a content at this point). */ - DataFlow::SourceNode trackUseNodeAnyState(DataFlow::SourceNode nd) { - result = trackUseNode(nd, _, _, _, _) + predicate trackUseNodeAnyState(DataFlow::SourceNode nd, DataFlow::SourceNode target) { + target = trackUseNode(nd, _, _, _, _) } - private DataFlow::SourceNode trackDefNode(DataFlow::Node nd, DataFlow::TypeBackTracker t) { + private predicate trackDefNode( + DataFlow::Node nd, DataFlow::TypeBackTracker t, DataFlow::SourceNode target + ) { t.start() and rhs(_, nd) and - result = nd.getALocalSource() + target = nd.getALocalSource() or // additional backwards step from `require('m')` to `exports` or `module.exports` in m - exists(Import imp | imp.getImportedModuleNodeStrict() = trackDefNode(nd, t.continue()) | - result = DataFlow::exportsVarNode(imp.getImportedModule()) + exists(Import imp | trackDefNode(nd, t.continue(), imp.getImportedModuleNodeStrict()) | + target = DataFlow::exportsVarNode(imp.getImportedModule()) or - result = DataFlow::moduleVarNode(imp.getImportedModule()).getAPropertyRead("exports") + target = DataFlow::moduleVarNode(imp.getImportedModule()).getAPropertyRead("exports") ) or exists(ObjectExpr obj | - obj = trackDefNode(nd, t.continue()).asExpr() and - result = + trackDefNode(nd, t.continue(), obj.flow()) and + target = obj.getAProperty() .(SpreadProperty) .getInit() @@ -1452,7 +1457,7 @@ module API { .getALocalSource() ) or - t = defStep(nd, result) + t = defStep(nd, target) } /** @@ -1465,7 +1470,7 @@ module API { pragma[noopt] private DataFlow::TypeBackTracker defStep(DataFlow::Node nd, DataFlow::SourceNode prev) { exists(DataFlow::TypeBackTracker t, StepSummary summary, DataFlow::Node next | - next = trackDefNode(nd, t) and + trackDefNode(nd, t, next) and StepSummary::step(prev, next, summary) and result = t.prepend(summary) and // Block argument-passing into 'this' when it determines the call target @@ -1474,16 +1479,18 @@ module API { } /** - * Gets a node that inter-procedurally flows into `nd`, which is a definition of some node. + * Holds if `target` inter-procedurally flows into `nd`, which is a definition of some node. */ - DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { - result = trackDefNode(nd, DataFlow::TypeBackTracker::end()) + predicate trackDefNode(DataFlow::Node nd, DataFlow::SourceNode target) { + trackDefNode(nd, DataFlow::TypeBackTracker::end(), target) } /** * Gets a node reached by the backwards tracking of `nd` in some state (e.g. possibly inside a content at this point). */ - DataFlow::SourceNode trackDefNodeAnyState(DataFlow::Node nd) { result = trackDefNode(nd, _) } + predicate trackDefNodeAnyState(DataFlow::Node nd, DataFlow::SourceNode target) { + trackDefNode(nd, _, target) + } private DataFlow::SourceNode awaited(DataFlow::InvokeNode call, DataFlow::TypeTracker t) { t.startInPromise() and @@ -1539,10 +1546,11 @@ module API { ) ) or - exists(DataFlow::Node def | + exists(DataFlow::Node def, DataFlow::Node mid | rhs(pred, def) and lbl = Label::instance() and - succ = MkClassInstance(trackDefNode(def)) + trackDefNode(def, mid) and + succ = MkClassInstance(mid) ) or exists(string moduleName, string exportName | @@ -1554,14 +1562,14 @@ module API { exists(DataFlow::Node nd, DataFlow::FunctionNode f | f.getFunction().isAsync() and pred = MkDef(nd) and - f = trackDefNode(nd) and + trackDefNode(nd, f) and lbl = Label::return() and succ = MkDef(f.getReturnNode()) ) or exists(int bound, DataFlow::InvokeNode call | lbl = Label::parameter(bound + call.getNumArgument()) and - call = getAPromisifiedInvocation(pred, bound, succ) + getAPromisifiedInvocation(pred, bound, succ, call) ) } @@ -1569,11 +1577,13 @@ module API { * Gets a call to a promisified function represented by `callee` where * `bound` arguments have been bound. */ - DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { + predicate getAPromisifiedInvocation( + TApiNode callee, int bound, TApiNode succ, DataFlow::InvokeNode invoke + ) { exists(DataFlow::SourceNode src | use(callee, src) and - trackUseNode(src, true, bound, "").flowsTo(result.getCalleeNode()) and - succ = Impl::MkSyntheticCallbackArg(result) + trackUseNode(src, true, bound, "").flowsTo(invoke.getCalleeNode()) and + succ = Impl::MkSyntheticCallbackArg(invoke) ) } } @@ -1606,23 +1616,24 @@ module API { predicate rhs(TApiNode node, DataFlow::Node def) = forceLocal(Stage1::rhs/2)(node, def) - DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) = - forceLocal(Stage1::trackUseNode/1)(nd, result) + predicate trackUseNode(DataFlow::SourceNode nd, DataFlow::SourceNode target) = + forceLocal(Stage1::trackUseNode/2)(nd, target) - DataFlow::SourceNode trackUseNodeAnyState(DataFlow::SourceNode nd) = - forceLocal(Stage1::trackUseNodeAnyState/1)(nd, result) + predicate trackUseNodeAnyState(DataFlow::SourceNode nd, DataFlow::SourceNode target) = + forceLocal(Stage1::trackUseNodeAnyState/2)(nd, target) - DataFlow::SourceNode trackDefNode(DataFlow::Node nd) = - forceLocal(Stage1::trackDefNode/1)(nd, result) + predicate trackDefNode(DataFlow::Node nd, DataFlow::SourceNode target) = + forceLocal(Stage1::trackDefNode/2)(nd, target) - DataFlow::SourceNode trackDefNodeAnyState(DataFlow::Node nd) = - forceLocal(Stage1::trackDefNodeAnyState/1)(nd, result) + predicate trackDefNodeAnyState(DataFlow::Node nd, DataFlow::SourceNode target) = + forceLocal(Stage1::trackDefNodeAnyState/2)(nd, target) predicate edge(TApiNode pred, Label::ApiLabel lbl, TApiNode succ) = forceLocal(Stage1::edge/3)(pred, lbl, succ) - DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) = - forceLocal(Stage1::getAPromisifiedInvocation/3)(callee, bound, succ, result) + predicate getAPromisifiedInvocation( + TApiNode callee, int bound, TApiNode succ, DataFlow::InvokeNode invoke + ) = forceLocal(Stage1::getAPromisifiedInvocation/4)(callee, bound, succ, invoke) } private module Stage2Input implements StageInputSig { @@ -1651,8 +1662,9 @@ module API { /** Holds if use-node tracking starting at `nd` can reach a node in the overlay. */ pragma[nomagic] private predicate shouldTrackIntoOverlay(DataFlow::SourceNode nd) { - exists(DataFlow::Node overlayNode | - stepIntoOverlay(Stage1Local::trackUseNodeAnyState(nd), overlayNode) + exists(DataFlow::Node mid | + Stage1Local::trackUseNodeAnyState(nd, mid) and + stepIntoOverlay(mid, _) ) } @@ -1677,8 +1689,9 @@ module API { /** Holds if def-node tracking starting at `nd` can reach a node in the overlay. */ pragma[nomagic] private predicate shouldBacktrackIntoOverlay(DataFlow::Node nd) { - exists(DataFlow::Node overlayNode | - stepOutOfOverlay(overlayNode, Stage1Local::trackDefNodeAnyState(nd)) + exists(DataFlow::Node mid | + Stage1Local::trackDefNodeAnyState(nd, mid) and + stepOutOfOverlay(_, mid) ) } @@ -1714,17 +1727,17 @@ module API { } cached - DataFlow::SourceNode trackUseNode(DataFlow::SourceNode nd) { - result = Stage1Local::trackUseNode(nd) + predicate trackUseNode(DataFlow::SourceNode nd, DataFlow::SourceNode target) { + Stage1Local::trackUseNode(nd, target) or - result = Stage2::trackUseNode(nd) + Stage2::trackUseNode(nd, target) } cached - DataFlow::SourceNode trackDefNode(DataFlow::Node nd) { - result = Stage1Local::trackDefNode(nd) + predicate trackDefNode(DataFlow::Node nd, DataFlow::SourceNode target) { + Stage1Local::trackDefNode(nd, target) or - result = Stage2::trackDefNode(nd) + Stage2::trackDefNode(nd, target) } cached @@ -1735,10 +1748,12 @@ module API { } cached - DataFlow::InvokeNode getAPromisifiedInvocation(TApiNode callee, int bound, TApiNode succ) { - result = Stage1Local::getAPromisifiedInvocation(callee, bound, succ) + predicate getAPromisifiedInvocation( + TApiNode callee, int bound, TApiNode succ, DataFlow::InvokeNode invoke + ) { + Stage1Local::getAPromisifiedInvocation(callee, bound, succ, invoke) or - result = Stage2::getAPromisifiedInvocation(callee, bound, succ) + Stage2::getAPromisifiedInvocation(callee, bound, succ, invoke) } } @@ -1808,7 +1823,7 @@ module API { InvokeNode() { this = callee.getReturn().asSource() or this = callee.getInstance().asSource() or - this = Impl::getAPromisifiedInvocation(callee, _, _) + Impl::getAPromisifiedInvocation(callee, _, _, this) } /** Gets the API node for the `i`th parameter of this invocation. */ From 647d11a6ced98a5fdd7499d2bdd2a5cda6155630 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:02:31 +0100 Subject: [PATCH 081/263] C++: Add test for C++23 multidimensional subscript operators --- .../subscript_operator/PrintAST.expected | 69 +++++++++++++++++++ .../subscript_operator/PrintAST.qlref | 1 + .../library-tests/subscript_operator/test.cpp | 12 ++++ 3 files changed, 82 insertions(+) create mode 100644 cpp/ql/test/library-tests/subscript_operator/PrintAST.expected create mode 100644 cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref create mode 100644 cpp/ql/test/library-tests/subscript_operator/test.cpp diff --git a/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected new file mode 100644 index 00000000000..9bfa6888ec8 --- /dev/null +++ b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected @@ -0,0 +1,69 @@ +#-----| [CopyAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag const&) +#-----| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const __va_list_tag & +#-----| [MoveAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag&&) +#-----| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] __va_list_tag && +test.cpp: +# 3| [CopyAssignmentOperator] S& S::operator=(S const&) +# 3| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const S & +# 3| [MoveAssignmentOperator] S& S::operator=(S&&) +# 3| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] S && +# 5| [MemberFunction] int S::operator[](int, int) +# 5| : +# 5| getParameter(0): [Parameter] i +# 5| Type = [IntType] int +# 5| getParameter(1): [Parameter] j +# 5| Type = [IntType] int +# 5| getEntryPoint(): [BlockStmt] { ... } +# 6| getStmt(0): [ReturnStmt] return ... +# 6| getExpr(): [ArrayExpr] access to array +# 6| Type = [IntType] int +# 6| ValueCategory = prvalue(load) +# 6| getArrayBase(): [ArrayExpr] access to array +# 6| Type = [ArrayType] int[2] +# 6| ValueCategory = lvalue +# 6| getArrayBase(): [ImplicitThisFieldAccess,PointerFieldAccess] xs +# 6| Type = [ArrayType] int[2][2] +# 6| ValueCategory = lvalue +# 6| getQualifier(): [ThisExpr] this +# 6| Type = [PointerType] S * +# 6| ValueCategory = prvalue(load) +# 6| getArrayOffset(): [VariableAccess] i +# 6| Type = [IntType] int +# 6| ValueCategory = prvalue(load) +#-----| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +#-----| Type = [PointerType] int(*)[2] +#-----| ValueCategory = prvalue +# 6| getArrayOffset(): [VariableAccess] j +# 6| Type = [IntType] int +# 6| ValueCategory = prvalue(load) +# 6| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion +# 6| Type = [IntPointerType] int * +# 6| ValueCategory = prvalue +# 10| [TopLevelFunction] int foo(S) +# 10| : +# 10| getParameter(0): [Parameter] s +# 10| Type = [Struct] S +# 10| getEntryPoint(): [BlockStmt] { ... } +# 11| getStmt(0): [ReturnStmt] return ... +# 11| getExpr(): [OverloadedArrayExpr] call to operator[] +# 11| Type = [IntType] int +# 11| ValueCategory = prvalue +# 11| getArrayBase(): [VariableAccess] s +# 11| Type = [Struct] S +# 11| ValueCategory = lvalue +# 11| getArrayOffset(): [Literal] 1 +# 11| Type = [IntType] int +# 11| Value = [Literal] 1 +# 11| ValueCategory = prvalue +# 11| getArgument(1): [Literal] 2 +# 11| Type = [IntType] int +# 11| Value = [Literal] 2 +# 11| ValueCategory = prvalue diff --git a/cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref b/cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref new file mode 100644 index 00000000000..6fcb30ac7a6 --- /dev/null +++ b/cpp/ql/test/library-tests/subscript_operator/PrintAST.qlref @@ -0,0 +1 @@ +semmle/code/cpp/PrintAST.ql \ No newline at end of file diff --git a/cpp/ql/test/library-tests/subscript_operator/test.cpp b/cpp/ql/test/library-tests/subscript_operator/test.cpp new file mode 100644 index 00000000000..647ad916c9c --- /dev/null +++ b/cpp/ql/test/library-tests/subscript_operator/test.cpp @@ -0,0 +1,12 @@ +// semmle-extractor-options: -std=c++23 + +struct S { + int xs[2][2]; + int operator[](int i, int j) { + return xs[i][j]; + } +}; + +int foo(S s) { + return s[1, 2]; +} From 3907fc7e5aa00bda84f0843d308a132bb73e7701 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:03:59 +0100 Subject: [PATCH 082/263] C++: Add predicates to support multidimensional subscript operators --- cpp/ql/lib/semmle/code/cpp/PrintAST.qll | 9 ++++++--- cpp/ql/lib/semmle/code/cpp/exprs/Call.qll | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/PrintAST.qll b/cpp/ql/lib/semmle/code/cpp/PrintAST.qll index 4c13125cdbb..cf9ecd21ca9 100644 --- a/cpp/ql/lib/semmle/code/cpp/PrintAST.qll +++ b/cpp/ql/lib/semmle/code/cpp/PrintAST.qll @@ -1050,10 +1050,10 @@ private predicate namedExprChildPredicates(Expr expr, Element ele, string pred) expr.(Call).getQualifier() = ele and pred = "getQualifier()" or - // OverloadedArrayExpr::getArrayBase/0 and OverloadedArrayExpr::getArrayOffset/0 also consider arguments, and are already handled below. + // OverloadedArrayExpr::getArrayBase/0 and OverloadedArrayExpr::getArrayOffset/1 also consider arguments, and are already handled below. exists(int n, Expr arg | expr.(Call).getArgument(n) = arg | not expr.(OverloadedArrayExpr).getArrayBase() = arg and - not expr.(OverloadedArrayExpr).getArrayOffset() = arg and + not expr.(OverloadedArrayExpr).getAnArrayOffset() = arg and arg = ele and pred = "getArgument(" + n.toString() + ")" ) @@ -1062,7 +1062,10 @@ private predicate namedExprChildPredicates(Expr expr, Element ele, string pred) or expr.(OverloadedArrayExpr).getArrayBase() = ele and pred = "getArrayBase()" or - expr.(OverloadedArrayExpr).getArrayOffset() = ele and pred = "getArrayOffset()" + exists(int n | + expr.(OverloadedArrayExpr).getArrayOffset(n) = ele and + pred = "getArrayOffset(" + n.toString() + ")" + ) or // OverloadedPointerDereferenceExpr::getExpr/0 also considers qualifiers, and is already handled above for all Call classes. not expr.(OverloadedPointerDereferenceExpr).getQualifier() = diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll index 24ae703697c..f5c8ef291f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll @@ -388,9 +388,20 @@ class OverloadedArrayExpr extends FunctionCall { /** * Gets the expression giving the index. */ - Expr getArrayOffset() { - if exists(this.getQualifier()) then result = this.getChild(0) else result = this.getChild(1) + Expr getArrayOffset() { result = this.getArrayOffset(0) } + + /** + * Gets the expression giving the nth index. + */ + Expr getArrayOffset(int n) { + n >= 0 and + if exists(this.getQualifier()) then result = this.getChild(n) else result = this.getChild(n + 1) } + + /** + * Gets an expression giving an index. + */ + Expr getAnArrayOffset() { result = this.getArrayOffset(_) } } /** From e0f8b1254e90eb2357581ecfd652d0a12a430c45 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:09:15 +0100 Subject: [PATCH 083/263] C++: Update expected test results --- cpp/ql/test/library-tests/ir/ir/PrintAST.expected | 2 +- .../test/library-tests/subscript_operator/PrintAST.expected | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index e6f88ceb778..a9dd614a9ae 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -24309,7 +24309,7 @@ ir.cpp: # 2727| getArrayBase(): [VariableAccess] x # 2727| Type = [SpecifiedType] const WithBracketOperator # 2727| ValueCategory = lvalue -# 2727| getArrayOffset(): [VariableAccess] i +# 2727| getArrayOffset(0): [VariableAccess] i # 2727| Type = [IntType] int # 2727| ValueCategory = prvalue(load) # 2727| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference) diff --git a/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected index 9bfa6888ec8..fd092b64a10 100644 --- a/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected +++ b/cpp/ql/test/library-tests/subscript_operator/PrintAST.expected @@ -59,11 +59,11 @@ test.cpp: # 11| getArrayBase(): [VariableAccess] s # 11| Type = [Struct] S # 11| ValueCategory = lvalue -# 11| getArrayOffset(): [Literal] 1 +# 11| getArrayOffset(0): [Literal] 1 # 11| Type = [IntType] int # 11| Value = [Literal] 1 # 11| ValueCategory = prvalue -# 11| getArgument(1): [Literal] 2 +# 11| getArrayOffset(1): [Literal] 2 # 11| Type = [IntType] int # 11| Value = [Literal] 2 # 11| ValueCategory = prvalue From 4c3fb0c7c44da94768b0d9f1399cd007f9447b8d Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:21:30 +0100 Subject: [PATCH 084/263] C++: Deprecate getArrayOffset/0 --- cpp/ql/lib/semmle/code/cpp/exprs/Call.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll index f5c8ef291f6..4ef241e3d25 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Call.qll @@ -387,8 +387,10 @@ class OverloadedArrayExpr extends FunctionCall { /** * Gets the expression giving the index. + * + * DEPRECATED: Use getArrayOffset/1 instead. */ - Expr getArrayOffset() { result = this.getArrayOffset(0) } + deprecated Expr getArrayOffset() { result = this.getArrayOffset(0) } /** * Gets the expression giving the nth index. From 9ceb091f85b671fa64afe93d50eedb2865521a49 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:54:02 +0100 Subject: [PATCH 085/263] C++: Update predicate after `getAnArrayOffset/0` deprecation --- cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll b/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll index 0e316e86892..b613472c776 100644 --- a/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll +++ b/cpp/ql/src/jsf/lib/section_4_21_Operators/AV_Rule_166.qll @@ -13,7 +13,7 @@ class SizeofImpureExprOperator extends SizeofExprOperator { not e.(OverloadedPointerDereferenceExpr).getExpr().isPure() and not exists(OverloadedArrayExpr op | op = e | op.getArrayBase().isPure() and - op.getArrayOffset().isPure() + forall(Expr offset | offset = op.getAnArrayOffset() | offset.isPure()) ) ) } From 72f1aa9381d90acd0280dc6eba0c17de507fec92 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 8 Jan 2026 13:59:39 +0100 Subject: [PATCH 086/263] C++: Add change notes --- .../2026-01-08-multidimensional-subscript-operator-1.md | 4 ++++ .../2026-01-08-multidimensional-subscript-operator-2.md | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md create mode 100644 cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md diff --git a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md new file mode 100644 index 00000000000..c0ed98ac50b --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Predicates `getArrayOffset/1` and `getAnArrayOffset` have been added to the `OverloadedArrayExpr` class to support C++23 multidimensional subscript operators. diff --git a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md new file mode 100644 index 00000000000..0ce3bf38535 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md @@ -0,0 +1,4 @@ +--- +category: deprecated +--- +* The `OverloadedArrayExpr::getArrayOffset/0` predicate has been deprecated. Use `OverloadedArrayExpr::getArrayOffset/1` and `OverloadedArrayExpr::getAnArrayOffset` instead. From af5adbac30bd18c8e31c61150281c6e320be9c7d Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 8 Jan 2026 15:02:34 +0100 Subject: [PATCH 087/263] SSA: Improve performance of finding relevant phi input nodes. --- shared/ssa/codeql/ssa/Ssa.qll | 72 ++++++++++++++++++++++++++++++----- 1 file changed, 62 insertions(+), 10 deletions(-) diff --git a/shared/ssa/codeql/ssa/Ssa.qll b/shared/ssa/codeql/ssa/Ssa.qll index 26f3d9f9771..b58d28c534f 100644 --- a/shared/ssa/codeql/ssa/Ssa.qll +++ b/shared/ssa/codeql/ssa/Ssa.qll @@ -2081,6 +2081,54 @@ module Make< ) } + pragma[nomagic] + private predicate phiInputHasRead(SsaPhiExt phi, BasicBlock input) { + exists(DfInput::getARead(getAPhiInputDef(phi, input))) + } + + /** Holds if `bb` is the target end of a branch edge of a guard and the guard controls `bb`. */ + pragma[nomagic] + private predicate guardControlledBranchTarget(BasicBlock bb) { + exists(BasicBlock guard | + any(DfInput::Guard g).hasValueBranchEdge(guard, bb, _) and + dominatingEdge(guard, bb) + ) + } + + /** + * Holds if `prev` is the block containing the unique predecessor of `phi` + * that reaches `phi` through the input block `input`, and that `mid` is a + * block in the dominator tree between `prev` and `input` that is + * guard-equivalent with `input` in the sense that the set of guards + * controlling `mid` is the same as the set of guards controlling `input`. + * + * This is restricted to phi inputs that are actually read. + */ + private predicate phiInputGuardEquivalenceReaches( + BasicBlock prev, BasicBlock mid, SsaPhiExt phi, BasicBlock input + ) { + phiInputHasRead(phi, input) and + AdjacentSsaRefs::adjacentRefPhi(prev, _, input, phi.getBasicBlock(), phi.getSourceVariable()) and + mid = input + or + exists(BasicBlock mid0 | + phiInputGuardEquivalenceReaches(prev, mid0, phi, input) and + not guardControlledBranchTarget(mid0) and + mid0 != prev and + mid = mid0.getImmediateDominator() + ) + } + + /** + * Holds if the immediately preceding reference to the input to `phi` from + * the block `input` is guard-equivalent with `input`. + * + * This is restricted to phi inputs that are actually read. + */ + private predicate phiInputIsGuardEquivalentWithPreviousRef(SsaPhiExt phi, BasicBlock input) { + exists(BasicBlock prev | phiInputGuardEquivalenceReaches(prev, prev, phi, input)) + } + /** * Holds if the input to `phi` from the block `input` might be relevant for * barrier guards as a separately synthesized `TSsaInputNode`. @@ -2095,7 +2143,7 @@ module Make< or DfInput::supportBarrierGuardsOnPhiEdges() and // If the input isn't explicitly read then a guard cannot check it. - exists(DfInput::getARead(getAPhiInputDef(phi, input))) and + phiInputHasRead(phi, input) and ( // The input node is relevant either if it sits directly on a branch // edge for a guard, @@ -2114,15 +2162,19 @@ module Make< // } // // phi-read node for `x` // ``` - exists(BasicBlock prev | - AdjacentSsaRefs::adjacentRefPhi(prev, _, input, phi.getBasicBlock(), - phi.getSourceVariable()) and - prev != input and - exists(DfInput::Guard g, DfInput::GuardValue val | - DfInput::guardDirectlyControlsBlock(g, input, val) and - not DfInput::guardDirectlyControlsBlock(g, prev, val) - ) - ) + not phiInputIsGuardEquivalentWithPreviousRef(phi, input) + // An equivalent, but less performant, way to express this is as follows: + // ``` + // exists(BasicBlock prev | + // AdjacentSsaRefs::adjacentRefPhi(prev, _, input, phi.getBasicBlock(), + // phi.getSourceVariable()) and + // prev != input and + // exists(DfInput::Guard g, DfInput::GuardValue val | + // DfInput::guardDirectlyControlsBlock(g, input, val) and + // not DfInput::guardDirectlyControlsBlock(g, prev, val) + // ) + // ) + // ``` ) } From 9af432d2f9b78d341de188efa05e1227c2bb8049 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Sat, 4 Oct 2025 16:19:00 +0200 Subject: [PATCH 088/263] C++: Add simple range analysis tests for inequalities --- .../SimpleRangeAnalysis/lowerBound.expected | 1285 +-- .../SimpleRangeAnalysis/nrOfBounds.expected | 6900 +++++++++-------- .../SimpleRangeAnalysis/ternaryLower.expected | 295 +- .../SimpleRangeAnalysis/ternaryUpper.expected | 295 +- .../rangeanalysis/SimpleRangeAnalysis/test.c | 11 + .../SimpleRangeAnalysis/upperBound.expected | 1283 +-- 6 files changed, 5103 insertions(+), 4966 deletions(-) diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected index eb1dbc7b93f..8fe3b0ea0a1 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected @@ -352,664 +352,679 @@ | test.c:333:10:333:14 | total | -2147483648 | | test.c:341:32:341:34 | odd | 9007199254740991 | | test.c:343:10:343:16 | shifted | 4503599627370495 | -| test.c:348:7:348:7 | x | -2147483648 | -| test.c:352:10:352:10 | i | 0 | -| test.c:353:5:353:5 | i | 0 | -| test.c:355:3:355:3 | d | -2147483648 | -| test.c:355:7:355:7 | i | 3 | -| test.c:356:7:356:7 | x | 0 | -| test.c:357:9:357:9 | d | 3 | -| test.c:357:14:357:14 | x | 0 | -| test.c:367:3:367:4 | y1 | 0 | -| test.c:367:8:367:8 | x | 0 | -| test.c:367:18:367:18 | x | 0 | -| test.c:368:3:368:4 | y2 | 0 | -| test.c:368:8:368:8 | x | 0 | -| test.c:368:24:368:24 | x | 0 | -| test.c:369:3:369:4 | y3 | 0 | -| test.c:370:3:370:4 | y4 | 0 | -| test.c:371:3:371:4 | y5 | 0 | -| test.c:372:3:372:4 | y6 | 0 | -| test.c:373:3:373:4 | y7 | 0 | -| test.c:374:3:374:4 | y8 | 0 | -| test.c:375:7:375:7 | x | 0 | -| test.c:376:5:376:6 | y3 | 0 | -| test.c:376:10:376:10 | x | 0 | -| test.c:377:5:377:6 | y4 | 0 | -| test.c:377:10:377:10 | x | 0 | -| test.c:378:5:378:6 | y5 | 0 | -| test.c:378:11:378:11 | x | 0 | -| test.c:379:5:379:6 | y6 | 0 | -| test.c:379:27:379:27 | x | 0 | -| test.c:380:5:380:6 | y7 | 0 | -| test.c:380:27:380:27 | x | 0 | -| test.c:381:5:381:6 | y8 | 0 | -| test.c:381:28:381:28 | x | 0 | -| test.c:383:10:383:11 | y1 | 0 | -| test.c:383:15:383:16 | y2 | 0 | -| test.c:383:20:383:21 | y3 | 0 | -| test.c:383:25:383:26 | y4 | 0 | -| test.c:383:30:383:31 | y5 | 0 | -| test.c:383:35:383:36 | y6 | 0 | -| test.c:383:40:383:41 | y7 | 0 | -| test.c:383:45:383:46 | y8 | 0 | -| test.c:389:3:389:4 | y1 | 0 | -| test.c:389:8:389:8 | x | 0 | -| test.c:389:18:389:18 | x | 101 | -| test.c:390:3:390:4 | y2 | 0 | -| test.c:390:8:390:8 | x | 0 | -| test.c:390:25:390:25 | x | 101 | -| test.c:391:3:391:4 | y3 | 0 | -| test.c:392:3:392:4 | y4 | 0 | -| test.c:393:3:393:4 | y5 | 0 | -| test.c:394:7:394:7 | x | 0 | -| test.c:395:5:395:6 | y3 | 0 | -| test.c:395:11:395:11 | x | 300 | -| test.c:396:5:396:6 | y4 | 0 | -| test.c:396:11:396:11 | x | 300 | -| test.c:397:5:397:6 | y5 | 0 | -| test.c:397:27:397:27 | x | 300 | -| test.c:399:10:399:11 | y1 | 101 | -| test.c:399:15:399:16 | y2 | 101 | -| test.c:399:20:399:21 | y3 | 0 | -| test.c:399:25:399:26 | y4 | 100 | -| test.c:399:30:399:31 | y5 | 0 | -| test.c:404:14:404:14 | m | -Infinity | -| test.c:404:18:404:18 | n | -Infinity | -| test.c:404:22:404:22 | o | -Infinity | -| test.c:404:26:404:26 | p | -Infinity | -| test.c:404:30:404:30 | q | -Infinity | -| test.c:405:14:405:14 | m | -Infinity | -| test.c:405:18:405:18 | n | -Infinity | -| test.c:405:22:405:22 | o | -Infinity | -| test.c:405:26:405:26 | p | -Infinity | -| test.c:405:30:405:30 | q | -Infinity | -| test.c:406:14:406:14 | m | -Infinity | -| test.c:406:18:406:18 | n | -Infinity | -| test.c:406:22:406:22 | o | -Infinity | -| test.c:406:26:406:26 | p | -Infinity | -| test.c:406:30:406:30 | q | -Infinity | -| test.c:407:14:407:14 | m | -Infinity | -| test.c:407:18:407:18 | n | -Infinity | -| test.c:407:22:407:22 | o | -Infinity | -| test.c:407:26:407:26 | p | -Infinity | -| test.c:407:30:407:30 | q | -Infinity | -| test.c:408:14:408:14 | m | -Infinity | -| test.c:408:18:408:18 | n | -Infinity | -| test.c:408:22:408:22 | o | -Infinity | -| test.c:408:26:408:26 | p | -Infinity | -| test.c:408:30:408:30 | q | -Infinity | -| test.c:409:14:409:14 | m | -Infinity | -| test.c:409:18:409:18 | n | -Infinity | -| test.c:409:22:409:22 | o | -Infinity | -| test.c:409:26:409:26 | p | -Infinity | -| test.c:409:30:409:30 | q | -Infinity | -| test.c:410:14:410:14 | m | -Infinity | -| test.c:410:18:410:18 | n | -Infinity | -| test.c:410:22:410:22 | o | -Infinity | -| test.c:410:26:410:26 | p | -Infinity | -| test.c:410:30:410:30 | q | -Infinity | -| test.c:411:14:411:14 | m | -Infinity | -| test.c:411:18:411:18 | n | -Infinity | -| test.c:411:22:411:22 | o | -Infinity | -| test.c:411:26:411:26 | p | -Infinity | -| test.c:411:30:411:30 | q | -Infinity | -| test.c:412:14:412:14 | m | -Infinity | -| test.c:412:18:412:18 | n | -Infinity | -| test.c:412:22:412:22 | o | -Infinity | -| test.c:412:26:412:26 | p | -Infinity | -| test.c:412:30:412:30 | q | -Infinity | -| test.c:413:14:413:14 | m | -Infinity | -| test.c:413:18:413:18 | n | -Infinity | -| test.c:413:22:413:22 | o | -Infinity | -| test.c:413:26:413:26 | p | -Infinity | -| test.c:413:30:413:30 | q | -Infinity | -| test.c:414:14:414:14 | m | -Infinity | -| test.c:414:18:414:18 | n | -Infinity | -| test.c:414:22:414:22 | o | -Infinity | -| test.c:414:26:414:26 | p | -Infinity | -| test.c:414:30:414:30 | q | -Infinity | +| test.c:348:27:348:27 | e | 0 | +| test.c:348:40:348:40 | e | 0.5 | +| test.c:349:25:349:25 | e | 0 | +| test.c:349:39:349:39 | e | 0 | +| test.c:350:27:350:27 | e | 0 | +| test.c:350:40:350:40 | e | 0.333333 | +| test.c:351:27:351:27 | e | 0 | +| test.c:351:40:351:40 | e | 0.5 | +| test.c:352:27:352:27 | e | 0 | +| test.c:352:41:352:41 | e | 8.5 | +| test.c:354:10:354:12 | bi1 | 0.5 | +| test.c:354:16:354:18 | bi2 | 0 | +| test.c:354:22:354:24 | bi3 | 0.333333 | +| test.c:354:28:354:30 | bi4 | 0.5 | +| test.c:354:34:354:36 | bi5 | 2 | +| test.c:359:7:359:7 | x | -2147483648 | +| test.c:363:10:363:10 | i | 0 | +| test.c:364:5:364:5 | i | 0 | +| test.c:366:3:366:3 | d | -2147483648 | +| test.c:366:7:366:7 | i | 3 | +| test.c:367:7:367:7 | x | 0 | +| test.c:368:9:368:9 | d | 3 | +| test.c:368:14:368:14 | x | 0 | +| test.c:378:3:378:4 | y1 | 0 | +| test.c:378:8:378:8 | x | 0 | +| test.c:378:18:378:18 | x | 0 | +| test.c:379:3:379:4 | y2 | 0 | +| test.c:379:8:379:8 | x | 0 | +| test.c:379:24:379:24 | x | 0 | +| test.c:380:3:380:4 | y3 | 0 | +| test.c:381:3:381:4 | y4 | 0 | +| test.c:382:3:382:4 | y5 | 0 | +| test.c:383:3:383:4 | y6 | 0 | +| test.c:384:3:384:4 | y7 | 0 | +| test.c:385:3:385:4 | y8 | 0 | +| test.c:386:7:386:7 | x | 0 | +| test.c:387:5:387:6 | y3 | 0 | +| test.c:387:10:387:10 | x | 0 | +| test.c:388:5:388:6 | y4 | 0 | +| test.c:388:10:388:10 | x | 0 | +| test.c:389:5:389:6 | y5 | 0 | +| test.c:389:11:389:11 | x | 0 | +| test.c:390:5:390:6 | y6 | 0 | +| test.c:390:27:390:27 | x | 0 | +| test.c:391:5:391:6 | y7 | 0 | +| test.c:391:27:391:27 | x | 0 | +| test.c:392:5:392:6 | y8 | 0 | +| test.c:392:28:392:28 | x | 0 | +| test.c:394:10:394:11 | y1 | 0 | +| test.c:394:15:394:16 | y2 | 0 | +| test.c:394:20:394:21 | y3 | 0 | +| test.c:394:25:394:26 | y4 | 0 | +| test.c:394:30:394:31 | y5 | 0 | +| test.c:394:35:394:36 | y6 | 0 | +| test.c:394:40:394:41 | y7 | 0 | +| test.c:394:45:394:46 | y8 | 0 | +| test.c:400:3:400:4 | y1 | 0 | +| test.c:400:8:400:8 | x | 0 | +| test.c:400:18:400:18 | x | 101 | +| test.c:401:3:401:4 | y2 | 0 | +| test.c:401:8:401:8 | x | 0 | +| test.c:401:25:401:25 | x | 101 | +| test.c:402:3:402:4 | y3 | 0 | +| test.c:403:3:403:4 | y4 | 0 | +| test.c:404:3:404:4 | y5 | 0 | +| test.c:405:7:405:7 | x | 0 | +| test.c:406:5:406:6 | y3 | 0 | +| test.c:406:11:406:11 | x | 300 | +| test.c:407:5:407:6 | y4 | 0 | +| test.c:407:11:407:11 | x | 300 | +| test.c:408:5:408:6 | y5 | 0 | +| test.c:408:27:408:27 | x | 300 | +| test.c:410:10:410:11 | y1 | 101 | +| test.c:410:15:410:16 | y2 | 101 | +| test.c:410:20:410:21 | y3 | 0 | +| test.c:410:25:410:26 | y4 | 100 | +| test.c:410:30:410:31 | y5 | 0 | | test.c:415:14:415:14 | m | -Infinity | | test.c:415:18:415:18 | n | -Infinity | | test.c:415:22:415:22 | o | -Infinity | | test.c:415:26:415:26 | p | -Infinity | | test.c:415:30:415:30 | q | -Infinity | -| test.c:421:19:421:19 | a | 0.143339 | -| test.c:421:23:421:23 | b | 0.222479 | -| test.c:421:27:421:27 | c | 0.051213 | -| test.c:421:31:421:31 | d | 0.369769 | -| test.c:421:35:421:35 | e | 0.105977 | -| test.c:421:39:421:39 | f | 0.107867 | -| test.c:421:43:421:43 | g | 0.025243 | -| test.c:421:47:421:47 | h | 0.149635 | -| test.c:421:51:421:51 | i | 0.053282 | -| test.c:421:55:421:55 | j | 0.276432 | -| test.c:421:59:421:59 | k | 0.205191 | -| test.c:421:63:421:63 | l | 0.132041 | -| test.c:423:10:423:15 | output | 1.842468 | -| test.c:430:7:430:9 | rhs | 0 | -| test.c:430:19:430:21 | rhs | 0 | -| test.c:431:7:431:9 | rhs | 0 | -| test.c:431:19:431:21 | rhs | 0 | -| test.c:432:7:432:9 | rhs | 0 | -| test.c:432:19:432:21 | rhs | 0 | -| test.c:433:7:433:9 | rhs | 0 | -| test.c:433:19:433:21 | rhs | 0 | -| test.c:434:7:434:9 | rhs | 0 | -| test.c:434:19:434:21 | rhs | 0 | -| test.c:435:10:435:12 | rhs | 0 | -| test.c:439:7:439:7 | a | -2147483648 | -| test.c:440:9:440:9 | b | -2147483648 | -| test.c:441:7:441:7 | a | 17 | -| test.c:441:12:441:12 | b | 23 | -| test.c:443:9:443:9 | a | 17 | -| test.c:444:7:444:7 | b | -2147483648 | -| test.c:449:11:449:11 | a | -2147483648 | -| test.c:449:15:449:15 | b | -2147483648 | -| test.c:450:10:450:10 | a | -2147483648 | -| test.c:450:14:450:14 | b | -2147483648 | -| test.c:457:10:457:11 | ip | 0 | -| test.c:457:20:457:21 | ip | 0 | -| test.c:457:40:457:41 | ip | 0 | -| test.c:458:14:458:15 | ip | 1 | -| test.c:459:14:459:15 | ip | 0 | -| test.c:459:34:459:35 | ip | 0 | -| test.c:460:11:460:12 | ip | 0 | -| test.c:461:13:461:14 | ip | 0 | -| test.c:462:14:462:15 | ip | 0 | -| test.c:463:14:463:15 | ip | 0 | -| test.c:464:15:464:16 | ip | 0 | -| test.c:464:41:464:42 | ip | 0 | -| test.c:464:52:464:53 | ip | 0 | -| test.c:464:67:464:68 | ip | 0 | -| test.c:464:78:464:79 | ip | 0 | -| test.c:465:18:465:19 | ip | 0 | -| test.c:466:23:466:24 | ip | 0 | -| test.c:466:34:466:35 | ip | 0 | -| test.c:467:25:467:26 | ip | 0 | +| test.c:416:14:416:14 | m | -Infinity | +| test.c:416:18:416:18 | n | -Infinity | +| test.c:416:22:416:22 | o | -Infinity | +| test.c:416:26:416:26 | p | -Infinity | +| test.c:416:30:416:30 | q | -Infinity | +| test.c:417:14:417:14 | m | -Infinity | +| test.c:417:18:417:18 | n | -Infinity | +| test.c:417:22:417:22 | o | -Infinity | +| test.c:417:26:417:26 | p | -Infinity | +| test.c:417:30:417:30 | q | -Infinity | +| test.c:418:14:418:14 | m | -Infinity | +| test.c:418:18:418:18 | n | -Infinity | +| test.c:418:22:418:22 | o | -Infinity | +| test.c:418:26:418:26 | p | -Infinity | +| test.c:418:30:418:30 | q | -Infinity | +| test.c:419:14:419:14 | m | -Infinity | +| test.c:419:18:419:18 | n | -Infinity | +| test.c:419:22:419:22 | o | -Infinity | +| test.c:419:26:419:26 | p | -Infinity | +| test.c:419:30:419:30 | q | -Infinity | +| test.c:420:14:420:14 | m | -Infinity | +| test.c:420:18:420:18 | n | -Infinity | +| test.c:420:22:420:22 | o | -Infinity | +| test.c:420:26:420:26 | p | -Infinity | +| test.c:420:30:420:30 | q | -Infinity | +| test.c:421:14:421:14 | m | -Infinity | +| test.c:421:18:421:18 | n | -Infinity | +| test.c:421:22:421:22 | o | -Infinity | +| test.c:421:26:421:26 | p | -Infinity | +| test.c:421:30:421:30 | q | -Infinity | +| test.c:422:14:422:14 | m | -Infinity | +| test.c:422:18:422:18 | n | -Infinity | +| test.c:422:22:422:22 | o | -Infinity | +| test.c:422:26:422:26 | p | -Infinity | +| test.c:422:30:422:30 | q | -Infinity | +| test.c:423:14:423:14 | m | -Infinity | +| test.c:423:18:423:18 | n | -Infinity | +| test.c:423:22:423:22 | o | -Infinity | +| test.c:423:26:423:26 | p | -Infinity | +| test.c:423:30:423:30 | q | -Infinity | +| test.c:424:14:424:14 | m | -Infinity | +| test.c:424:18:424:18 | n | -Infinity | +| test.c:424:22:424:22 | o | -Infinity | +| test.c:424:26:424:26 | p | -Infinity | +| test.c:424:30:424:30 | q | -Infinity | +| test.c:425:14:425:14 | m | -Infinity | +| test.c:425:18:425:18 | n | -Infinity | +| test.c:425:22:425:22 | o | -Infinity | +| test.c:425:26:425:26 | p | -Infinity | +| test.c:425:30:425:30 | q | -Infinity | +| test.c:426:14:426:14 | m | -Infinity | +| test.c:426:18:426:18 | n | -Infinity | +| test.c:426:22:426:22 | o | -Infinity | +| test.c:426:26:426:26 | p | -Infinity | +| test.c:426:30:426:30 | q | -Infinity | +| test.c:432:19:432:19 | a | 0.143339 | +| test.c:432:23:432:23 | b | 0.222479 | +| test.c:432:27:432:27 | c | 0.051213 | +| test.c:432:31:432:31 | d | 0.369769 | +| test.c:432:35:432:35 | e | 0.105977 | +| test.c:432:39:432:39 | f | 0.107867 | +| test.c:432:43:432:43 | g | 0.025243 | +| test.c:432:47:432:47 | h | 0.149635 | +| test.c:432:51:432:51 | i | 0.053282 | +| test.c:432:55:432:55 | j | 0.276432 | +| test.c:432:59:432:59 | k | 0.205191 | +| test.c:432:63:432:63 | l | 0.132041 | +| test.c:434:10:434:15 | output | 1.842468 | +| test.c:441:7:441:9 | rhs | 0 | +| test.c:441:19:441:21 | rhs | 0 | +| test.c:442:7:442:9 | rhs | 0 | +| test.c:442:19:442:21 | rhs | 0 | +| test.c:443:7:443:9 | rhs | 0 | +| test.c:443:19:443:21 | rhs | 0 | +| test.c:444:7:444:9 | rhs | 0 | +| test.c:444:19:444:21 | rhs | 0 | +| test.c:445:7:445:9 | rhs | 0 | +| test.c:445:19:445:21 | rhs | 0 | +| test.c:446:10:446:12 | rhs | 0 | +| test.c:450:7:450:7 | a | -2147483648 | +| test.c:451:9:451:9 | b | -2147483648 | +| test.c:452:7:452:7 | a | 17 | +| test.c:452:12:452:12 | b | 23 | +| test.c:454:9:454:9 | a | 17 | +| test.c:455:7:455:7 | b | -2147483648 | +| test.c:460:11:460:11 | a | -2147483648 | +| test.c:460:15:460:15 | b | -2147483648 | +| test.c:461:10:461:10 | a | -2147483648 | +| test.c:461:14:461:14 | b | -2147483648 | +| test.c:468:10:468:11 | ip | 0 | | test.c:468:20:468:21 | ip | 0 | -| test.c:469:11:469:12 | ip | 0 | -| test.c:469:26:469:27 | ip | 0 | -| test.c:470:16:470:17 | ip | 0 | -| test.c:471:16:471:17 | ip | 0 | -| test.c:472:16:472:17 | ip | 0 | -| test.c:473:17:473:18 | ip | 0 | -| test.c:474:22:474:23 | ip | 0 | -| test.c:474:33:474:34 | ip | 0 | -| test.c:474:48:474:49 | ip | 0 | -| test.c:474:59:474:60 | ip | 0 | -| test.c:475:20:475:21 | ip | 0 | -| test.c:476:25:476:26 | ip | 0 | -| test.c:476:36:476:37 | ip | 0 | -| test.c:477:27:477:28 | ip | 0 | -| test.c:478:22:478:23 | ip | 0 | -| test.c:479:15:479:16 | ip | 0 | -| test.c:479:30:479:31 | ip | 0 | +| test.c:468:40:468:41 | ip | 0 | +| test.c:469:14:469:15 | ip | 1 | +| test.c:470:14:470:15 | ip | 0 | +| test.c:470:34:470:35 | ip | 0 | +| test.c:471:11:471:12 | ip | 0 | +| test.c:472:13:472:14 | ip | 0 | +| test.c:473:14:473:15 | ip | 0 | +| test.c:474:14:474:15 | ip | 0 | +| test.c:475:15:475:16 | ip | 0 | +| test.c:475:41:475:42 | ip | 0 | +| test.c:475:52:475:53 | ip | 0 | +| test.c:475:67:475:68 | ip | 0 | +| test.c:475:78:475:79 | ip | 0 | +| test.c:476:18:476:19 | ip | 0 | +| test.c:477:23:477:24 | ip | 0 | +| test.c:477:34:477:35 | ip | 0 | +| test.c:478:25:478:26 | ip | 0 | +| test.c:479:20:479:21 | ip | 0 | | test.c:480:11:480:12 | ip | 0 | -| test.c:481:12:481:13 | ip | 0 | -| test.c:482:12:482:13 | ip | 0 | -| test.c:483:13:483:14 | ip | 0 | -| test.c:483:39:483:40 | ip | 0 | -| test.c:483:50:483:51 | ip | 0 | -| test.c:483:65:483:66 | ip | 0 | -| test.c:483:76:483:77 | ip | 0 | -| test.c:484:16:484:17 | ip | 0 | -| test.c:485:21:485:22 | ip | 0 | -| test.c:485:32:485:33 | ip | 0 | -| test.c:486:23:486:24 | ip | 0 | -| test.c:487:18:487:19 | ip | 0 | -| test.c:488:11:488:12 | ip | 0 | -| test.c:488:17:488:18 | ip | 0 | -| test.c:488:37:488:38 | ip | 0 | -| test.c:488:43:488:44 | ip | 0 | -| test.c:489:14:489:15 | ip | 0 | -| test.c:490:14:490:15 | ip | 0 | -| test.c:491:14:491:15 | ip | 0 | -| test.c:492:15:492:16 | ip | 0 | -| test.c:492:41:492:42 | ip | 0 | -| test.c:492:52:492:53 | ip | 0 | -| test.c:492:67:492:68 | ip | 0 | -| test.c:492:78:492:79 | ip | 0 | -| test.c:493:18:493:19 | ip | 0 | -| test.c:494:23:494:24 | ip | 0 | -| test.c:494:34:494:35 | ip | 0 | -| test.c:495:25:495:26 | ip | 0 | -| test.c:496:20:496:21 | ip | 0 | -| test.c:497:14:497:15 | ip | 0 | -| test.c:497:20:497:21 | ip | 0 | -| test.c:498:16:498:17 | ip | 0 | -| test.c:499:12:499:13 | ip | 0 | +| test.c:480:26:480:27 | ip | 0 | +| test.c:481:16:481:17 | ip | 0 | +| test.c:482:16:482:17 | ip | 0 | +| test.c:483:16:483:17 | ip | 0 | +| test.c:484:17:484:18 | ip | 0 | +| test.c:485:22:485:23 | ip | 0 | +| test.c:485:33:485:34 | ip | 0 | +| test.c:485:48:485:49 | ip | 0 | +| test.c:485:59:485:60 | ip | 0 | +| test.c:486:20:486:21 | ip | 0 | +| test.c:487:25:487:26 | ip | 0 | +| test.c:487:36:487:37 | ip | 0 | +| test.c:488:27:488:28 | ip | 0 | +| test.c:489:22:489:23 | ip | 0 | +| test.c:490:15:490:16 | ip | 0 | +| test.c:490:30:490:31 | ip | 0 | +| test.c:491:11:491:12 | ip | 0 | +| test.c:492:12:492:13 | ip | 0 | +| test.c:493:12:493:13 | ip | 0 | +| test.c:494:13:494:14 | ip | 0 | +| test.c:494:39:494:40 | ip | 0 | +| test.c:494:50:494:51 | ip | 0 | +| test.c:494:65:494:66 | ip | 0 | +| test.c:494:76:494:77 | ip | 0 | +| test.c:495:16:495:17 | ip | 0 | +| test.c:496:21:496:22 | ip | 0 | +| test.c:496:32:496:33 | ip | 0 | +| test.c:497:23:497:24 | ip | 0 | +| test.c:498:18:498:19 | ip | 0 | +| test.c:499:11:499:12 | ip | 0 | +| test.c:499:17:499:18 | ip | 0 | +| test.c:499:37:499:38 | ip | 0 | +| test.c:499:43:499:44 | ip | 0 | | test.c:500:14:500:15 | ip | 0 | -| test.c:501:15:501:16 | ip | 0 | -| test.c:502:16:502:17 | ip | 0 | -| test.c:503:16:503:17 | ip | 0 | -| test.c:504:17:504:18 | ip | 0 | -| test.c:505:22:505:23 | ip | 0 | -| test.c:505:33:505:34 | ip | 0 | -| test.c:505:48:505:49 | ip | 0 | -| test.c:505:59:505:60 | ip | 0 | -| test.c:506:20:506:21 | ip | 0 | -| test.c:507:25:507:26 | ip | 0 | -| test.c:507:36:507:37 | ip | 0 | -| test.c:508:27:508:28 | ip | 0 | -| test.c:509:22:509:23 | ip | 0 | -| test.c:510:13:510:14 | ip | 0 | -| test.c:510:28:510:29 | ip | 0 | -| test.c:511:18:511:19 | ip | 0 | -| test.c:512:18:512:19 | ip | 0 | -| test.c:513:18:513:19 | ip | 0 | -| test.c:514:19:514:20 | ip | 0 | -| test.c:515:24:515:25 | ip | 0 | -| test.c:515:35:515:36 | ip | 0 | -| test.c:515:50:515:51 | ip | 0 | -| test.c:515:61:515:62 | ip | 0 | +| test.c:501:14:501:15 | ip | 0 | +| test.c:502:14:502:15 | ip | 0 | +| test.c:503:15:503:16 | ip | 0 | +| test.c:503:41:503:42 | ip | 0 | +| test.c:503:52:503:53 | ip | 0 | +| test.c:503:67:503:68 | ip | 0 | +| test.c:503:78:503:79 | ip | 0 | +| test.c:504:18:504:19 | ip | 0 | +| test.c:505:23:505:24 | ip | 0 | +| test.c:505:34:505:35 | ip | 0 | +| test.c:506:25:506:26 | ip | 0 | +| test.c:507:20:507:21 | ip | 0 | +| test.c:508:14:508:15 | ip | 0 | +| test.c:508:20:508:21 | ip | 0 | +| test.c:509:16:509:17 | ip | 0 | +| test.c:510:12:510:13 | ip | 0 | +| test.c:511:14:511:15 | ip | 0 | +| test.c:512:15:512:16 | ip | 0 | +| test.c:513:16:513:17 | ip | 0 | +| test.c:514:16:514:17 | ip | 0 | +| test.c:515:17:515:18 | ip | 0 | | test.c:516:22:516:23 | ip | 0 | -| test.c:517:27:517:28 | ip | 0 | -| test.c:517:38:517:39 | ip | 0 | -| test.c:518:29:518:30 | ip | 0 | -| test.c:519:24:519:25 | ip | 0 | -| test.c:520:17:520:18 | ip | 0 | -| test.c:520:32:520:33 | ip | 0 | -| test.c:521:14:521:15 | ip | 0 | +| test.c:516:33:516:34 | ip | 0 | +| test.c:516:48:516:49 | ip | 0 | +| test.c:516:59:516:60 | ip | 0 | +| test.c:517:20:517:21 | ip | 0 | +| test.c:518:25:518:26 | ip | 0 | +| test.c:518:36:518:37 | ip | 0 | +| test.c:519:27:519:28 | ip | 0 | +| test.c:520:22:520:23 | ip | 0 | +| test.c:521:13:521:14 | ip | 0 | +| test.c:521:28:521:29 | ip | 0 | | test.c:522:18:522:19 | ip | 0 | | test.c:523:18:523:19 | ip | 0 | -| test.c:524:19:524:20 | ip | 0 | -| test.c:525:24:525:25 | ip | 0 | -| test.c:525:35:525:36 | ip | 0 | -| test.c:525:50:525:51 | ip | 0 | -| test.c:525:61:525:62 | ip | 0 | -| test.c:526:22:526:23 | ip | 0 | -| test.c:527:27:527:28 | ip | 0 | -| test.c:527:38:527:39 | ip | 0 | -| test.c:528:29:528:30 | ip | 0 | -| test.c:529:24:529:25 | ip | 0 | -| test.c:530:17:530:18 | ip | 0 | -| test.c:530:23:530:24 | ip | 0 | -| test.c:530:43:530:44 | ip | 0 | -| test.c:530:49:530:50 | ip | 0 | -| test.c:531:16:531:17 | ip | 0 | -| test.c:532:16:532:17 | ip | 0 | -| test.c:533:16:533:17 | ip | 0 | -| test.c:534:17:534:18 | ip | 0 | -| test.c:535:22:535:23 | ip | 0 | -| test.c:535:33:535:34 | ip | 0 | -| test.c:535:48:535:49 | ip | 0 | -| test.c:535:59:535:60 | ip | 0 | -| test.c:536:20:536:21 | ip | 0 | -| test.c:537:25:537:26 | ip | 0 | -| test.c:537:36:537:37 | ip | 0 | +| test.c:524:18:524:19 | ip | 0 | +| test.c:525:19:525:20 | ip | 0 | +| test.c:526:24:526:25 | ip | 0 | +| test.c:526:35:526:36 | ip | 0 | +| test.c:526:50:526:51 | ip | 0 | +| test.c:526:61:526:62 | ip | 0 | +| test.c:527:22:527:23 | ip | 0 | +| test.c:528:27:528:28 | ip | 0 | +| test.c:528:38:528:39 | ip | 0 | +| test.c:529:29:529:30 | ip | 0 | +| test.c:530:24:530:25 | ip | 0 | +| test.c:531:17:531:18 | ip | 0 | +| test.c:531:32:531:33 | ip | 0 | +| test.c:532:14:532:15 | ip | 0 | +| test.c:533:18:533:19 | ip | 0 | +| test.c:534:18:534:19 | ip | 0 | +| test.c:535:19:535:20 | ip | 0 | +| test.c:536:24:536:25 | ip | 0 | +| test.c:536:35:536:36 | ip | 0 | +| test.c:536:50:536:51 | ip | 0 | +| test.c:536:61:536:62 | ip | 0 | +| test.c:537:22:537:23 | ip | 0 | | test.c:538:27:538:28 | ip | 0 | -| test.c:539:22:539:23 | ip | 0 | -| test.c:540:16:540:17 | ip | 0 | -| test.c:540:22:540:23 | ip | 0 | -| test.c:541:18:541:19 | ip | 0 | -| test.c:542:14:542:15 | ip | 0 | -| test.c:543:14:543:15 | ip | 0 | -| test.c:543:24:543:25 | ip | 0 | -| test.c:543:44:543:45 | ip | 0 | -| test.c:544:16:544:17 | ip | 1 | -| test.c:545:16:545:17 | ip | 0 | -| test.c:545:36:545:37 | ip | 0 | -| test.c:546:14:546:15 | ip | 0 | -| test.c:547:19:547:20 | ip | 0 | -| test.c:548:20:548:21 | ip | 0 | -| test.c:549:20:549:21 | ip | 0 | -| test.c:550:21:550:22 | ip | 0 | -| test.c:551:26:551:27 | ip | 0 | -| test.c:551:37:551:38 | ip | 0 | -| test.c:551:52:551:53 | ip | 0 | -| test.c:551:63:551:64 | ip | 0 | -| test.c:552:24:552:25 | ip | 0 | -| test.c:553:29:553:30 | ip | 0 | -| test.c:553:40:553:41 | ip | 0 | -| test.c:554:31:554:32 | ip | 0 | -| test.c:555:26:555:27 | ip | 0 | -| test.c:556:17:556:18 | ip | 0 | -| test.c:556:32:556:33 | ip | 0 | -| test.c:557:22:557:23 | ip | 0 | -| test.c:558:22:558:23 | ip | 0 | -| test.c:559:22:559:23 | ip | 0 | -| test.c:560:23:560:24 | ip | 0 | -| test.c:561:28:561:29 | ip | 0 | -| test.c:561:39:561:40 | ip | 0 | -| test.c:561:54:561:55 | ip | 0 | -| test.c:561:65:561:66 | ip | 0 | +| test.c:538:38:538:39 | ip | 0 | +| test.c:539:29:539:30 | ip | 0 | +| test.c:540:24:540:25 | ip | 0 | +| test.c:541:17:541:18 | ip | 0 | +| test.c:541:23:541:24 | ip | 0 | +| test.c:541:43:541:44 | ip | 0 | +| test.c:541:49:541:50 | ip | 0 | +| test.c:542:16:542:17 | ip | 0 | +| test.c:543:16:543:17 | ip | 0 | +| test.c:544:16:544:17 | ip | 0 | +| test.c:545:17:545:18 | ip | 0 | +| test.c:546:22:546:23 | ip | 0 | +| test.c:546:33:546:34 | ip | 0 | +| test.c:546:48:546:49 | ip | 0 | +| test.c:546:59:546:60 | ip | 0 | +| test.c:547:20:547:21 | ip | 0 | +| test.c:548:25:548:26 | ip | 0 | +| test.c:548:36:548:37 | ip | 0 | +| test.c:549:27:549:28 | ip | 0 | +| test.c:550:22:550:23 | ip | 0 | +| test.c:551:16:551:17 | ip | 0 | +| test.c:551:22:551:23 | ip | 0 | +| test.c:552:18:552:19 | ip | 0 | +| test.c:553:14:553:15 | ip | 0 | +| test.c:554:14:554:15 | ip | 0 | +| test.c:554:24:554:25 | ip | 0 | +| test.c:554:44:554:45 | ip | 0 | +| test.c:555:16:555:17 | ip | 1 | +| test.c:556:16:556:17 | ip | 0 | +| test.c:556:36:556:37 | ip | 0 | +| test.c:557:14:557:15 | ip | 0 | +| test.c:558:19:558:20 | ip | 0 | +| test.c:559:20:559:21 | ip | 0 | +| test.c:560:20:560:21 | ip | 0 | +| test.c:561:21:561:22 | ip | 0 | | test.c:562:26:562:27 | ip | 0 | -| test.c:563:31:563:32 | ip | 0 | -| test.c:563:42:563:43 | ip | 0 | -| test.c:564:33:564:34 | ip | 0 | -| test.c:565:28:565:29 | ip | 0 | -| test.c:566:21:566:22 | ip | 0 | -| test.c:566:36:566:37 | ip | 0 | +| test.c:562:37:562:38 | ip | 0 | +| test.c:562:52:562:53 | ip | 0 | +| test.c:562:63:562:64 | ip | 0 | +| test.c:563:24:563:25 | ip | 0 | +| test.c:564:29:564:30 | ip | 0 | +| test.c:564:40:564:41 | ip | 0 | +| test.c:565:31:565:32 | ip | 0 | +| test.c:566:26:566:27 | ip | 0 | | test.c:567:17:567:18 | ip | 0 | -| test.c:568:18:568:19 | ip | 0 | -| test.c:569:18:569:19 | ip | 0 | -| test.c:570:19:570:20 | ip | 0 | -| test.c:571:24:571:25 | ip | 0 | -| test.c:571:35:571:36 | ip | 0 | -| test.c:571:50:571:51 | ip | 0 | -| test.c:571:61:571:62 | ip | 0 | -| test.c:572:22:572:23 | ip | 0 | -| test.c:573:27:573:28 | ip | 0 | -| test.c:573:38:573:39 | ip | 0 | -| test.c:574:29:574:30 | ip | 0 | -| test.c:575:24:575:25 | ip | 0 | -| test.c:576:17:576:18 | ip | 0 | -| test.c:576:23:576:24 | ip | 0 | -| test.c:576:43:576:44 | ip | 0 | -| test.c:576:49:576:50 | ip | 0 | -| test.c:577:20:577:21 | ip | 0 | -| test.c:578:20:578:21 | ip | 0 | -| test.c:579:20:579:21 | ip | 0 | -| test.c:580:21:580:22 | ip | 0 | -| test.c:581:26:581:27 | ip | 0 | -| test.c:581:37:581:38 | ip | 0 | -| test.c:581:52:581:53 | ip | 0 | -| test.c:581:63:581:64 | ip | 0 | +| test.c:567:32:567:33 | ip | 0 | +| test.c:568:22:568:23 | ip | 0 | +| test.c:569:22:569:23 | ip | 0 | +| test.c:570:22:570:23 | ip | 0 | +| test.c:571:23:571:24 | ip | 0 | +| test.c:572:28:572:29 | ip | 0 | +| test.c:572:39:572:40 | ip | 0 | +| test.c:572:54:572:55 | ip | 0 | +| test.c:572:65:572:66 | ip | 0 | +| test.c:573:26:573:27 | ip | 0 | +| test.c:574:31:574:32 | ip | 0 | +| test.c:574:42:574:43 | ip | 0 | +| test.c:575:33:575:34 | ip | 0 | +| test.c:576:28:576:29 | ip | 0 | +| test.c:577:21:577:22 | ip | 0 | +| test.c:577:36:577:37 | ip | 0 | +| test.c:578:17:578:18 | ip | 0 | +| test.c:579:18:579:19 | ip | 0 | +| test.c:580:18:580:19 | ip | 0 | +| test.c:581:19:581:20 | ip | 0 | | test.c:582:24:582:25 | ip | 0 | -| test.c:583:29:583:30 | ip | 0 | -| test.c:583:40:583:41 | ip | 0 | -| test.c:584:31:584:32 | ip | 0 | -| test.c:585:26:585:27 | ip | 0 | -| test.c:586:20:586:21 | ip | 0 | -| test.c:586:26:586:27 | ip | 0 | -| test.c:587:22:587:23 | ip | 0 | -| test.c:588:18:588:19 | ip | 0 | -| test.c:589:16:589:17 | ip | 0 | -| test.c:590:17:590:18 | ip | 0 | -| test.c:591:18:591:19 | ip | 0 | -| test.c:592:18:592:19 | ip | 0 | -| test.c:593:19:593:20 | ip | 0 | -| test.c:594:24:594:25 | ip | 0 | -| test.c:594:35:594:36 | ip | 0 | -| test.c:594:50:594:51 | ip | 0 | -| test.c:594:61:594:62 | ip | 0 | -| test.c:595:22:595:23 | ip | 0 | -| test.c:596:27:596:28 | ip | 0 | -| test.c:596:38:596:39 | ip | 0 | -| test.c:597:29:597:30 | ip | 0 | -| test.c:598:24:598:25 | ip | 0 | -| test.c:599:15:599:16 | ip | 0 | -| test.c:599:30:599:31 | ip | 0 | -| test.c:600:20:600:21 | ip | 0 | -| test.c:601:20:601:21 | ip | 0 | -| test.c:602:20:602:21 | ip | 0 | -| test.c:603:21:603:22 | ip | 0 | -| test.c:604:26:604:27 | ip | 0 | -| test.c:604:37:604:38 | ip | 0 | -| test.c:604:52:604:53 | ip | 0 | -| test.c:604:63:604:64 | ip | 0 | +| test.c:582:35:582:36 | ip | 0 | +| test.c:582:50:582:51 | ip | 0 | +| test.c:582:61:582:62 | ip | 0 | +| test.c:583:22:583:23 | ip | 0 | +| test.c:584:27:584:28 | ip | 0 | +| test.c:584:38:584:39 | ip | 0 | +| test.c:585:29:585:30 | ip | 0 | +| test.c:586:24:586:25 | ip | 0 | +| test.c:587:17:587:18 | ip | 0 | +| test.c:587:23:587:24 | ip | 0 | +| test.c:587:43:587:44 | ip | 0 | +| test.c:587:49:587:50 | ip | 0 | +| test.c:588:20:588:21 | ip | 0 | +| test.c:589:20:589:21 | ip | 0 | +| test.c:590:20:590:21 | ip | 0 | +| test.c:591:21:591:22 | ip | 0 | +| test.c:592:26:592:27 | ip | 0 | +| test.c:592:37:592:38 | ip | 0 | +| test.c:592:52:592:53 | ip | 0 | +| test.c:592:63:592:64 | ip | 0 | +| test.c:593:24:593:25 | ip | 0 | +| test.c:594:29:594:30 | ip | 0 | +| test.c:594:40:594:41 | ip | 0 | +| test.c:595:31:595:32 | ip | 0 | +| test.c:596:26:596:27 | ip | 0 | +| test.c:597:20:597:21 | ip | 0 | +| test.c:597:26:597:27 | ip | 0 | +| test.c:598:22:598:23 | ip | 0 | +| test.c:599:18:599:19 | ip | 0 | +| test.c:600:16:600:17 | ip | 0 | +| test.c:601:17:601:18 | ip | 0 | +| test.c:602:18:602:19 | ip | 0 | +| test.c:603:18:603:19 | ip | 0 | +| test.c:604:19:604:20 | ip | 0 | | test.c:605:24:605:25 | ip | 0 | -| test.c:606:29:606:30 | ip | 0 | -| test.c:606:40:606:41 | ip | 0 | -| test.c:607:31:607:32 | ip | 0 | -| test.c:608:26:608:27 | ip | 0 | -| test.c:609:19:609:20 | ip | 0 | -| test.c:609:34:609:35 | ip | 0 | -| test.c:610:16:610:17 | ip | 0 | +| test.c:605:35:605:36 | ip | 0 | +| test.c:605:50:605:51 | ip | 0 | +| test.c:605:61:605:62 | ip | 0 | +| test.c:606:22:606:23 | ip | 0 | +| test.c:607:27:607:28 | ip | 0 | +| test.c:607:38:607:39 | ip | 0 | +| test.c:608:29:608:30 | ip | 0 | +| test.c:609:24:609:25 | ip | 0 | +| test.c:610:15:610:16 | ip | 0 | +| test.c:610:30:610:31 | ip | 0 | | test.c:611:20:611:21 | ip | 0 | | test.c:612:20:612:21 | ip | 0 | -| test.c:613:21:613:22 | ip | 0 | -| test.c:614:26:614:27 | ip | 0 | -| test.c:614:37:614:38 | ip | 0 | -| test.c:614:52:614:53 | ip | 0 | -| test.c:614:63:614:64 | ip | 0 | -| test.c:615:24:615:25 | ip | 0 | -| test.c:616:29:616:30 | ip | 0 | -| test.c:616:40:616:41 | ip | 0 | -| test.c:617:31:617:32 | ip | 0 | -| test.c:618:26:618:27 | ip | 0 | -| test.c:619:19:619:20 | ip | 0 | -| test.c:619:25:619:26 | ip | 0 | -| test.c:619:45:619:46 | ip | 0 | -| test.c:619:51:619:52 | ip | 0 | -| test.c:620:18:620:19 | ip | 0 | -| test.c:621:18:621:19 | ip | 0 | -| test.c:622:18:622:19 | ip | 0 | -| test.c:623:19:623:20 | ip | 0 | -| test.c:624:24:624:25 | ip | 0 | -| test.c:624:35:624:36 | ip | 0 | -| test.c:624:50:624:51 | ip | 0 | -| test.c:624:61:624:62 | ip | 0 | -| test.c:625:22:625:23 | ip | 0 | -| test.c:626:27:626:28 | ip | 0 | -| test.c:626:38:626:39 | ip | 0 | +| test.c:613:20:613:21 | ip | 0 | +| test.c:614:21:614:22 | ip | 0 | +| test.c:615:26:615:27 | ip | 0 | +| test.c:615:37:615:38 | ip | 0 | +| test.c:615:52:615:53 | ip | 0 | +| test.c:615:63:615:64 | ip | 0 | +| test.c:616:24:616:25 | ip | 0 | +| test.c:617:29:617:30 | ip | 0 | +| test.c:617:40:617:41 | ip | 0 | +| test.c:618:31:618:32 | ip | 0 | +| test.c:619:26:619:27 | ip | 0 | +| test.c:620:19:620:20 | ip | 0 | +| test.c:620:34:620:35 | ip | 0 | +| test.c:621:16:621:17 | ip | 0 | +| test.c:622:20:622:21 | ip | 0 | +| test.c:623:20:623:21 | ip | 0 | +| test.c:624:21:624:22 | ip | 0 | +| test.c:625:26:625:27 | ip | 0 | +| test.c:625:37:625:38 | ip | 0 | +| test.c:625:52:625:53 | ip | 0 | +| test.c:625:63:625:64 | ip | 0 | +| test.c:626:24:626:25 | ip | 0 | | test.c:627:29:627:30 | ip | 0 | -| test.c:628:24:628:25 | ip | 0 | -| test.c:629:18:629:19 | ip | 0 | -| test.c:629:24:629:25 | ip | 0 | -| test.c:630:20:630:21 | ip | 0 | -| test.c:631:16:631:17 | ip | 0 | -| test.c:632:10:632:23 | special_number | 0 | -| test.c:640:7:640:8 | c1 | -2147483648 | -| test.c:640:13:640:13 | x | 0 | -| test.c:641:7:641:8 | c2 | -2147483648 | -| test.c:641:13:641:13 | x | 0 | -| test.c:642:7:642:8 | c3 | -2147483648 | -| test.c:642:13:642:13 | x | 0 | -| test.c:643:7:643:8 | c4 | -2147483648 | -| test.c:643:13:643:13 | x | 0 | -| test.c:644:7:644:8 | c5 | -2147483648 | -| test.c:644:13:644:13 | x | 0 | -| test.c:645:7:645:8 | c1 | -2147483648 | -| test.c:645:13:645:14 | c2 | -2147483648 | -| test.c:645:19:645:19 | x | 0 | -| test.c:646:7:646:8 | c1 | -2147483648 | -| test.c:646:13:646:14 | c3 | -2147483648 | -| test.c:646:19:646:19 | x | 0 | -| test.c:647:7:647:8 | c1 | -2147483648 | -| test.c:647:13:647:14 | c4 | -2147483648 | -| test.c:647:19:647:19 | x | 0 | -| test.c:648:7:648:8 | c1 | -2147483648 | -| test.c:648:13:648:14 | c5 | -2147483648 | -| test.c:648:19:648:19 | x | 0 | -| test.c:649:7:649:8 | c2 | -2147483648 | -| test.c:649:13:649:14 | c3 | -2147483648 | -| test.c:649:19:649:19 | x | 0 | -| test.c:651:11:651:11 | x | 0 | -| test.c:651:15:651:15 | x | 0 | -| test.c:651:19:651:19 | x | 0 | -| test.c:651:23:651:23 | x | 0 | -| test.c:651:27:651:27 | x | 0 | -| test.c:651:31:651:31 | x | 0 | -| test.c:651:35:651:35 | x | 0 | -| test.c:651:39:651:39 | x | 0 | -| test.c:651:43:651:43 | x | 0 | -| test.c:651:47:651:47 | x | 0 | -| test.c:651:51:651:51 | x | 0 | -| test.c:651:55:651:55 | x | 0 | -| test.c:652:10:652:10 | y | -2147483648 | -| test.c:657:20:657:20 | x | 0 | -| test.c:657:30:657:30 | x | 0 | -| test.c:660:3:660:4 | y1 | 0 | -| test.c:660:11:660:11 | y | 0 | -| test.c:660:14:660:14 | y | 1 | -| test.c:661:3:661:4 | y2 | 0 | -| test.c:661:9:661:9 | y | 1 | -| test.c:661:14:661:14 | y | 2 | -| test.c:661:22:661:22 | y | 5 | -| test.c:662:10:662:11 | y1 | 1 | -| test.c:662:15:662:16 | y2 | 5 | -| test.c:670:3:670:3 | i | -2147483648 | -| test.c:671:7:671:7 | i | 10 | -| test.c:673:3:673:3 | i | -2147483648 | -| test.c:674:3:674:3 | i | 10 | -| test.c:675:7:675:7 | i | 20 | -| test.c:677:3:677:3 | i | -2147483648 | -| test.c:678:3:678:3 | i | 40 | -| test.c:679:7:679:7 | i | 30 | +| test.c:627:40:627:41 | ip | 0 | +| test.c:628:31:628:32 | ip | 0 | +| test.c:629:26:629:27 | ip | 0 | +| test.c:630:19:630:20 | ip | 0 | +| test.c:630:25:630:26 | ip | 0 | +| test.c:630:45:630:46 | ip | 0 | +| test.c:630:51:630:52 | ip | 0 | +| test.c:631:18:631:19 | ip | 0 | +| test.c:632:18:632:19 | ip | 0 | +| test.c:633:18:633:19 | ip | 0 | +| test.c:634:19:634:20 | ip | 0 | +| test.c:635:24:635:25 | ip | 0 | +| test.c:635:35:635:36 | ip | 0 | +| test.c:635:50:635:51 | ip | 0 | +| test.c:635:61:635:62 | ip | 0 | +| test.c:636:22:636:23 | ip | 0 | +| test.c:637:27:637:28 | ip | 0 | +| test.c:637:38:637:39 | ip | 0 | +| test.c:638:29:638:30 | ip | 0 | +| test.c:639:24:639:25 | ip | 0 | +| test.c:640:18:640:19 | ip | 0 | +| test.c:640:24:640:25 | ip | 0 | +| test.c:641:20:641:21 | ip | 0 | +| test.c:642:16:642:17 | ip | 0 | +| test.c:643:10:643:23 | special_number | 0 | +| test.c:651:7:651:8 | c1 | -2147483648 | +| test.c:651:13:651:13 | x | 0 | +| test.c:652:7:652:8 | c2 | -2147483648 | +| test.c:652:13:652:13 | x | 0 | +| test.c:653:7:653:8 | c3 | -2147483648 | +| test.c:653:13:653:13 | x | 0 | +| test.c:654:7:654:8 | c4 | -2147483648 | +| test.c:654:13:654:13 | x | 0 | +| test.c:655:7:655:8 | c5 | -2147483648 | +| test.c:655:13:655:13 | x | 0 | +| test.c:656:7:656:8 | c1 | -2147483648 | +| test.c:656:13:656:14 | c2 | -2147483648 | +| test.c:656:19:656:19 | x | 0 | +| test.c:657:7:657:8 | c1 | -2147483648 | +| test.c:657:13:657:14 | c3 | -2147483648 | +| test.c:657:19:657:19 | x | 0 | +| test.c:658:7:658:8 | c1 | -2147483648 | +| test.c:658:13:658:14 | c4 | -2147483648 | +| test.c:658:19:658:19 | x | 0 | +| test.c:659:7:659:8 | c1 | -2147483648 | +| test.c:659:13:659:14 | c5 | -2147483648 | +| test.c:659:19:659:19 | x | 0 | +| test.c:660:7:660:8 | c2 | -2147483648 | +| test.c:660:13:660:14 | c3 | -2147483648 | +| test.c:660:19:660:19 | x | 0 | +| test.c:662:11:662:11 | x | 0 | +| test.c:662:15:662:15 | x | 0 | +| test.c:662:19:662:19 | x | 0 | +| test.c:662:23:662:23 | x | 0 | +| test.c:662:27:662:27 | x | 0 | +| test.c:662:31:662:31 | x | 0 | +| test.c:662:35:662:35 | x | 0 | +| test.c:662:39:662:39 | x | 0 | +| test.c:662:43:662:43 | x | 0 | +| test.c:662:47:662:47 | x | 0 | +| test.c:662:51:662:51 | x | 0 | +| test.c:662:55:662:55 | x | 0 | +| test.c:663:10:663:10 | y | -2147483648 | +| test.c:668:20:668:20 | x | 0 | +| test.c:668:30:668:30 | x | 0 | +| test.c:671:3:671:4 | y1 | 0 | +| test.c:671:11:671:11 | y | 0 | +| test.c:671:14:671:14 | y | 1 | +| test.c:672:3:672:4 | y2 | 0 | +| test.c:672:9:672:9 | y | 1 | +| test.c:672:14:672:14 | y | 2 | +| test.c:672:22:672:22 | y | 5 | +| test.c:673:10:673:11 | y1 | 1 | +| test.c:673:15:673:16 | y2 | 5 | | test.c:681:3:681:3 | i | -2147483648 | -| test.c:681:7:681:7 | j | -2147483648 | -| test.c:682:7:682:7 | i | 40 | +| test.c:682:7:682:7 | i | 10 | | test.c:684:3:684:3 | i | -2147483648 | -| test.c:684:8:684:8 | j | 40 | -| test.c:685:7:685:7 | i | 50 | -| test.c:687:3:687:3 | i | -2147483648 | -| test.c:687:13:687:13 | j | 50 | -| test.c:688:7:688:7 | i | 60 | -| test.c:695:12:695:12 | a | 0 | -| test.c:695:17:695:17 | a | 3 | -| test.c:695:33:695:33 | b | 0 | -| test.c:695:38:695:38 | b | 5 | -| test.c:696:13:696:13 | a | 3 | -| test.c:696:15:696:15 | b | 5 | -| test.c:697:5:697:9 | total | 0 | -| test.c:697:14:697:14 | r | 15 | -| test.c:699:12:699:12 | a | 0 | -| test.c:699:17:699:17 | a | 3 | -| test.c:699:33:699:33 | b | 0 | -| test.c:699:38:699:38 | b | 0 | -| test.c:700:13:700:13 | a | 3 | -| test.c:700:15:700:15 | b | 0 | -| test.c:701:5:701:9 | total | 0 | -| test.c:701:14:701:14 | r | 0 | -| test.c:703:12:703:12 | a | 0 | -| test.c:703:17:703:17 | a | 3 | -| test.c:703:34:703:34 | b | 0 | -| test.c:703:39:703:39 | b | 13 | -| test.c:704:13:704:13 | a | 3 | -| test.c:704:15:704:15 | b | 13 | -| test.c:705:5:705:9 | total | 0 | -| test.c:705:14:705:14 | r | 39 | -| test.c:708:10:708:14 | total | 0 | -| test.c:714:12:714:12 | b | 0 | -| test.c:714:17:714:17 | b | 5 | -| test.c:715:16:715:16 | b | 5 | +| test.c:685:3:685:3 | i | 10 | +| test.c:686:7:686:7 | i | 20 | +| test.c:688:3:688:3 | i | -2147483648 | +| test.c:689:3:689:3 | i | 40 | +| test.c:690:7:690:7 | i | 30 | +| test.c:692:3:692:3 | i | -2147483648 | +| test.c:692:7:692:7 | j | -2147483648 | +| test.c:693:7:693:7 | i | 40 | +| test.c:695:3:695:3 | i | -2147483648 | +| test.c:695:8:695:8 | j | 40 | +| test.c:696:7:696:7 | i | 50 | +| test.c:698:3:698:3 | i | -2147483648 | +| test.c:698:13:698:13 | j | 50 | +| test.c:699:7:699:7 | i | 60 | +| test.c:706:12:706:12 | a | 0 | +| test.c:706:17:706:17 | a | 3 | +| test.c:706:33:706:33 | b | 0 | +| test.c:706:38:706:38 | b | 5 | +| test.c:707:13:707:13 | a | 3 | +| test.c:707:15:707:15 | b | 5 | +| test.c:708:5:708:9 | total | 0 | +| test.c:708:14:708:14 | r | 15 | +| test.c:710:12:710:12 | a | 0 | +| test.c:710:17:710:17 | a | 3 | +| test.c:710:33:710:33 | b | 0 | +| test.c:710:38:710:38 | b | 0 | +| test.c:711:13:711:13 | a | 3 | +| test.c:711:15:711:15 | b | 0 | +| test.c:712:5:712:9 | total | 0 | +| test.c:712:14:712:14 | r | 0 | +| test.c:714:12:714:12 | a | 0 | +| test.c:714:17:714:17 | a | 3 | +| test.c:714:34:714:34 | b | 0 | +| test.c:714:39:714:39 | b | 13 | +| test.c:715:13:715:13 | a | 3 | +| test.c:715:15:715:15 | b | 13 | | test.c:716:5:716:9 | total | 0 | -| test.c:716:14:716:14 | r | 55 | -| test.c:718:12:718:12 | b | 0 | -| test.c:718:17:718:17 | b | 0 | -| test.c:719:16:719:16 | b | 0 | -| test.c:720:5:720:9 | total | 0 | -| test.c:720:14:720:14 | r | 0 | -| test.c:722:13:722:13 | b | 0 | -| test.c:722:18:722:18 | b | 13 | -| test.c:723:16:723:16 | b | 13 | -| test.c:724:5:724:9 | total | 0 | -| test.c:724:14:724:14 | r | 143 | -| test.c:727:10:727:14 | total | 0 | -| test.c:732:3:732:3 | x | 0 | -| test.c:732:7:732:7 | y | 0 | -| test.c:733:3:733:4 | xy | 0 | -| test.c:733:8:733:8 | x | 1000000003 | -| test.c:733:12:733:12 | y | 1000000003 | -| test.c:734:10:734:11 | xy | 1000000006000000000 | -| test.c:739:3:739:3 | x | 0 | -| test.c:740:3:740:3 | y | 0 | -| test.c:741:3:741:4 | xy | 0 | -| test.c:741:8:741:8 | x | 274177 | -| test.c:741:12:741:12 | y | 67280421310721 | -| test.c:742:10:742:11 | xy | 18446744073709551616 | -| test.c:746:7:746:8 | ui | 0 | -| test.c:747:43:747:44 | ui | 10 | -| test.c:747:48:747:49 | ui | 10 | -| test.c:748:12:748:17 | result | 100 | -| test.c:750:7:750:8 | ul | 0 | -| test.c:751:28:751:29 | ul | 10 | -| test.c:751:33:751:34 | ul | 10 | -| test.c:752:12:752:17 | result | 0 | -| test.c:758:7:758:8 | ui | 0 | -| test.c:758:19:758:20 | ui | 0 | -| test.c:759:5:759:6 | ui | 2 | -| test.c:759:11:759:12 | ui | 2 | -| test.c:760:12:760:13 | ui | 4 | -| test.c:764:3:764:9 | uiconst | 10 | -| test.c:767:3:767:9 | ulconst | 10 | -| test.c:768:10:768:16 | uiconst | 40 | -| test.c:768:20:768:26 | ulconst | 40 | -| test.c:772:7:772:7 | i | -2147483648 | -| test.c:772:18:772:18 | i | -1 | -| test.c:773:5:773:5 | i | -2147483648 | -| test.c:773:13:773:13 | i | -1 | -| test.c:774:9:774:9 | i | -5 | -| test.c:776:5:776:5 | i | -2147483648 | -| test.c:776:9:776:9 | i | -5 | -| test.c:777:9:777:9 | i | -30 | -| test.c:779:5:779:5 | i | -30 | -| test.c:780:9:780:9 | i | -210 | -| test.c:782:5:782:5 | i | -210 | -| test.c:783:9:783:9 | i | -1155 | -| test.c:785:7:785:7 | i | -2147483648 | -| test.c:786:5:786:5 | i | -2147483648 | -| test.c:786:9:786:9 | i | -1 | -| test.c:787:9:787:9 | i | 1 | -| test.c:789:3:789:3 | i | -2147483648 | -| test.c:789:7:789:7 | i | -2147483648 | -| test.c:790:10:790:10 | i | -2147483648 | -| test.c:793:3:793:3 | i | -2147483648 | -| test.c:793:10:793:11 | sc | 1 | -| test.c:795:7:795:7 | i | -128 | -| test.c:802:7:802:7 | n | 0 | -| test.c:804:7:804:7 | n | 0 | -| test.c:805:9:805:9 | n | 1 | -| test.c:808:7:808:7 | n | 0 | -| test.c:809:9:809:9 | n | 1 | -| test.c:811:9:811:9 | n | 0 | -| test.c:814:8:814:8 | n | 0 | -| test.c:815:9:815:9 | n | 0 | -| test.c:817:9:817:9 | n | 1 | -| test.c:820:10:820:10 | n | 0 | -| test.c:821:5:821:5 | n | 1 | -| test.c:824:7:824:7 | n | 0 | -| test.c:828:7:828:7 | n | -32768 | -| test.c:831:7:831:7 | n | 0 | -| test.c:832:9:832:9 | n | 0 | -| test.c:834:9:834:9 | n | 1 | -| test.c:837:7:837:7 | n | 0 | -| test.c:838:9:838:9 | n | 1 | -| test.c:840:9:840:9 | n | 0 | -| test.c:843:10:843:10 | n | 0 | -| test.c:844:5:844:5 | n | 1 | -| test.c:847:7:847:7 | n | 0 | -| test.c:851:7:851:7 | n | -32768 | -| test.c:852:9:852:9 | n | -32768 | -| test.c:853:11:853:11 | n | 0 | -| test.c:857:7:857:7 | n | -32768 | -| test.c:858:13:858:13 | n | 5 | -| test.c:861:9:861:9 | n | 6 | -| test.c:864:7:864:7 | n | -32768 | -| test.c:864:22:864:22 | n | -32767 | -| test.c:865:9:865:9 | n | -32766 | +| test.c:716:14:716:14 | r | 39 | +| test.c:719:10:719:14 | total | 0 | +| test.c:725:12:725:12 | b | 0 | +| test.c:725:17:725:17 | b | 5 | +| test.c:726:16:726:16 | b | 5 | +| test.c:727:5:727:9 | total | 0 | +| test.c:727:14:727:14 | r | 55 | +| test.c:729:12:729:12 | b | 0 | +| test.c:729:17:729:17 | b | 0 | +| test.c:730:16:730:16 | b | 0 | +| test.c:731:5:731:9 | total | 0 | +| test.c:731:14:731:14 | r | 0 | +| test.c:733:13:733:13 | b | 0 | +| test.c:733:18:733:18 | b | 13 | +| test.c:734:16:734:16 | b | 13 | +| test.c:735:5:735:9 | total | 0 | +| test.c:735:14:735:14 | r | 143 | +| test.c:738:10:738:14 | total | 0 | +| test.c:743:3:743:3 | x | 0 | +| test.c:743:7:743:7 | y | 0 | +| test.c:744:3:744:4 | xy | 0 | +| test.c:744:8:744:8 | x | 1000000003 | +| test.c:744:12:744:12 | y | 1000000003 | +| test.c:745:10:745:11 | xy | 1000000006000000000 | +| test.c:750:3:750:3 | x | 0 | +| test.c:751:3:751:3 | y | 0 | +| test.c:752:3:752:4 | xy | 0 | +| test.c:752:8:752:8 | x | 274177 | +| test.c:752:12:752:12 | y | 67280421310721 | +| test.c:753:10:753:11 | xy | 18446744073709551616 | +| test.c:757:7:757:8 | ui | 0 | +| test.c:758:43:758:44 | ui | 10 | +| test.c:758:48:758:49 | ui | 10 | +| test.c:759:12:759:17 | result | 100 | +| test.c:761:7:761:8 | ul | 0 | +| test.c:762:28:762:29 | ul | 10 | +| test.c:762:33:762:34 | ul | 10 | +| test.c:763:12:763:17 | result | 0 | +| test.c:769:7:769:8 | ui | 0 | +| test.c:769:19:769:20 | ui | 0 | +| test.c:770:5:770:6 | ui | 2 | +| test.c:770:11:770:12 | ui | 2 | +| test.c:771:12:771:13 | ui | 4 | +| test.c:775:3:775:9 | uiconst | 10 | +| test.c:778:3:778:9 | ulconst | 10 | +| test.c:779:10:779:16 | uiconst | 40 | +| test.c:779:20:779:26 | ulconst | 40 | +| test.c:783:7:783:7 | i | -2147483648 | +| test.c:783:18:783:18 | i | -1 | +| test.c:784:5:784:5 | i | -2147483648 | +| test.c:784:13:784:13 | i | -1 | +| test.c:785:9:785:9 | i | -5 | +| test.c:787:5:787:5 | i | -2147483648 | +| test.c:787:9:787:9 | i | -5 | +| test.c:788:9:788:9 | i | -30 | +| test.c:790:5:790:5 | i | -30 | +| test.c:791:9:791:9 | i | -210 | +| test.c:793:5:793:5 | i | -210 | +| test.c:794:9:794:9 | i | -1155 | +| test.c:796:7:796:7 | i | -2147483648 | +| test.c:797:5:797:5 | i | -2147483648 | +| test.c:797:9:797:9 | i | -1 | +| test.c:798:9:798:9 | i | 1 | +| test.c:800:3:800:3 | i | -2147483648 | +| test.c:800:7:800:7 | i | -2147483648 | +| test.c:801:10:801:10 | i | -2147483648 | +| test.c:804:3:804:3 | i | -2147483648 | +| test.c:804:10:804:11 | sc | 1 | +| test.c:806:7:806:7 | i | -128 | +| test.c:813:7:813:7 | n | 0 | +| test.c:815:7:815:7 | n | 0 | +| test.c:816:9:816:9 | n | 1 | +| test.c:819:7:819:7 | n | 0 | +| test.c:820:9:820:9 | n | 1 | +| test.c:822:9:822:9 | n | 0 | +| test.c:825:8:825:8 | n | 0 | +| test.c:826:9:826:9 | n | 0 | +| test.c:828:9:828:9 | n | 1 | +| test.c:831:10:831:10 | n | 0 | +| test.c:832:5:832:5 | n | 1 | +| test.c:835:7:835:7 | n | 0 | +| test.c:839:7:839:7 | n | -32768 | +| test.c:842:7:842:7 | n | 0 | +| test.c:843:9:843:9 | n | 0 | +| test.c:845:9:845:9 | n | 1 | +| test.c:848:7:848:7 | n | 0 | +| test.c:849:9:849:9 | n | 1 | +| test.c:851:9:851:9 | n | 0 | +| test.c:854:10:854:10 | n | 0 | +| test.c:855:5:855:5 | n | 1 | +| test.c:858:7:858:7 | n | 0 | +| test.c:862:7:862:7 | n | -32768 | +| test.c:863:9:863:9 | n | -32768 | +| test.c:864:11:864:11 | n | 0 | | test.c:868:7:868:7 | n | -32768 | -| test.c:869:5:869:5 | n | 0 | -| test.c:869:10:869:10 | n | 1 | -| test.c:869:14:869:14 | n | 0 | -| test.c:870:6:870:6 | n | 0 | -| test.c:870:10:870:10 | n | 0 | -| test.c:870:14:870:14 | n | 1 | -| test.c:881:7:881:8 | ss | -32768 | -| test.c:882:9:882:10 | ss | 0 | -| test.c:885:7:885:8 | ss | -32768 | -| test.c:886:9:886:10 | ss | -32768 | -| test.c:889:14:889:15 | us | 0 | -| test.c:890:9:890:10 | us | 0 | -| test.c:893:14:893:15 | us | 0 | -| test.c:894:9:894:10 | us | 0 | -| test.c:897:7:897:8 | ss | -32768 | -| test.c:898:9:898:10 | ss | -32768 | -| test.c:901:7:901:8 | ss | -32768 | -| test.c:902:9:902:10 | ss | -1 | -| test.c:908:8:908:8 | s | -2147483648 | -| test.c:908:15:908:15 | s | 0 | -| test.c:908:23:908:23 | s | 0 | -| test.c:909:18:909:18 | s | 0 | -| test.c:909:22:909:22 | s | 0 | -| test.c:910:9:910:14 | result | 0 | -| test.c:916:7:916:7 | i | 0 | -| test.c:917:9:917:9 | i | -2147483648 | -| test.c:921:7:921:7 | u | 0 | -| test.c:922:9:922:9 | u | 0 | -| test.c:927:12:927:12 | s | -2147483648 | -| test.c:928:7:928:8 | s2 | -4 | -| test.c:933:7:933:7 | x | -2147483648 | -| test.c:934:9:934:9 | y | -2147483648 | -| test.c:938:7:938:7 | y | -2147483648 | -| test.c:947:7:947:7 | x | -2147483648 | -| test.c:952:7:952:7 | x | -2147483648 | -| test.c:959:8:959:8 | x | 2147483647 | -| test.c:959:12:959:12 | y | 256 | -| test.c:960:9:960:9 | x | 2147483647 | -| test.c:961:9:961:9 | y | 256 | +| test.c:869:13:869:13 | n | 5 | +| test.c:872:9:872:9 | n | 6 | +| test.c:875:7:875:7 | n | -32768 | +| test.c:875:22:875:22 | n | -32767 | +| test.c:876:9:876:9 | n | -32766 | +| test.c:879:7:879:7 | n | -32768 | +| test.c:880:5:880:5 | n | 0 | +| test.c:880:10:880:10 | n | 1 | +| test.c:880:14:880:14 | n | 0 | +| test.c:881:6:881:6 | n | 0 | +| test.c:881:10:881:10 | n | 0 | +| test.c:881:14:881:14 | n | 1 | +| test.c:892:7:892:8 | ss | -32768 | +| test.c:893:9:893:10 | ss | 0 | +| test.c:896:7:896:8 | ss | -32768 | +| test.c:897:9:897:10 | ss | -32768 | +| test.c:900:14:900:15 | us | 0 | +| test.c:901:9:901:10 | us | 0 | +| test.c:904:14:904:15 | us | 0 | +| test.c:905:9:905:10 | us | 0 | +| test.c:908:7:908:8 | ss | -32768 | +| test.c:909:9:909:10 | ss | -32768 | +| test.c:912:7:912:8 | ss | -32768 | +| test.c:913:9:913:10 | ss | -1 | +| test.c:919:8:919:8 | s | -2147483648 | +| test.c:919:15:919:15 | s | 0 | +| test.c:919:23:919:23 | s | 0 | +| test.c:920:18:920:18 | s | 0 | +| test.c:920:22:920:22 | s | 0 | +| test.c:921:9:921:14 | result | 0 | +| test.c:927:7:927:7 | i | 0 | +| test.c:928:9:928:9 | i | -2147483648 | +| test.c:932:7:932:7 | u | 0 | +| test.c:933:9:933:9 | u | 0 | +| test.c:938:12:938:12 | s | -2147483648 | +| test.c:939:7:939:8 | s2 | -4 | +| test.c:944:7:944:7 | x | -2147483648 | +| test.c:945:9:945:9 | y | -2147483648 | +| test.c:949:7:949:7 | y | -2147483648 | +| test.c:958:7:958:7 | x | -2147483648 | +| test.c:963:7:963:7 | x | -2147483648 | +| test.c:970:8:970:8 | x | 2147483647 | +| test.c:970:12:970:12 | y | 256 | +| test.c:971:9:971:9 | x | 2147483647 | +| test.c:972:9:972:9 | y | 256 | | test.cpp:10:7:10:7 | b | -2147483648 | | test.cpp:11:5:11:5 | x | -2147483648 | | test.cpp:13:10:13:10 | x | -2147483648 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected index 21d139a51a5..7d583e47f5b 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected @@ -976,3490 +976,3576 @@ estimateNrOfBounds | test.c:341:32:341:39 | ... >> ... | 1.0 | | test.c:341:39:341:39 | 1 | 1.0 | | test.c:343:10:343:16 | shifted | 1.0 | -| test.c:347:13:347:14 | 0 | 1.0 | -| test.c:348:7:348:7 | x | 1.0 | -| test.c:348:7:348:11 | ... < ... | 1.0 | -| test.c:348:11:348:11 | 0 | 1.0 | -| test.c:349:12:349:13 | - ... | 1.0 | -| test.c:349:13:349:13 | 1 | 1.0 | -| test.c:352:10:352:10 | i | 13.0 | -| test.c:352:10:352:14 | ... < ... | 1.0 | -| test.c:352:14:352:14 | 3 | 1.0 | -| test.c:353:5:353:5 | i | 13.0 | -| test.c:353:5:353:7 | ... ++ | 13.0 | -| test.c:355:3:355:3 | d | 1.0 | -| test.c:355:3:355:7 | ... = ... | 13.0 | -| test.c:355:7:355:7 | i | 13.0 | -| test.c:356:7:356:7 | x | 1.0 | -| test.c:356:7:356:11 | ... < ... | 1.0 | -| test.c:356:11:356:11 | 0 | 1.0 | -| test.c:357:9:357:9 | d | 13.0 | -| test.c:357:9:357:14 | ... > ... | 1.0 | -| test.c:357:13:357:14 | - ... | 1.0 | -| test.c:357:14:357:14 | x | 1.0 | -| test.c:358:14:358:14 | 1 | 1.0 | -| test.c:361:10:361:10 | 0 | 1.0 | -| test.c:367:3:367:4 | y1 | 1.0 | -| test.c:367:3:367:23 | ... = ... | 1.0 | -| test.c:367:8:367:8 | x | 1.0 | -| test.c:367:8:367:14 | ... < ... | 1.0 | -| test.c:367:8:367:23 | ... ? ... : ... | 1.0 | -| test.c:367:12:367:14 | 100 | 1.0 | -| test.c:367:12:367:14 | (unsigned int)... | 1.0 | -| test.c:367:18:367:18 | x | 1.0 | -| test.c:367:22:367:23 | 10 | 1.0 | -| test.c:367:22:367:23 | (unsigned int)... | 1.0 | -| test.c:368:3:368:4 | y2 | 1.0 | -| test.c:368:3:368:24 | ... = ... | 2.0 | -| test.c:368:8:368:8 | x | 2.0 | -| test.c:368:8:368:15 | ... >= ... | 1.0 | -| test.c:368:8:368:24 | ... ? ... : ... | 2.0 | -| test.c:368:13:368:15 | 100 | 1.0 | -| test.c:368:13:368:15 | (unsigned int)... | 1.0 | -| test.c:368:19:368:20 | 10 | 1.0 | -| test.c:368:19:368:20 | (unsigned int)... | 1.0 | -| test.c:368:24:368:24 | x | 2.0 | -| test.c:369:3:369:4 | y3 | 1.0 | -| test.c:369:3:369:8 | ... = ... | 1.0 | -| test.c:369:8:369:8 | 0 | 1.0 | -| test.c:369:8:369:8 | (unsigned int)... | 1.0 | -| test.c:370:3:370:4 | y4 | 1.0 | -| test.c:370:3:370:8 | ... = ... | 1.0 | -| test.c:370:8:370:8 | 0 | 1.0 | -| test.c:370:8:370:8 | (unsigned int)... | 1.0 | -| test.c:371:3:371:4 | y5 | 1.0 | -| test.c:371:3:371:8 | ... = ... | 1.0 | -| test.c:371:8:371:8 | 0 | 1.0 | -| test.c:371:8:371:8 | (unsigned int)... | 1.0 | -| test.c:372:3:372:4 | y6 | 1.0 | -| test.c:372:3:372:8 | ... = ... | 1.0 | -| test.c:372:8:372:8 | 0 | 1.0 | -| test.c:372:8:372:8 | (unsigned int)... | 1.0 | -| test.c:373:3:373:4 | y7 | 1.0 | -| test.c:373:3:373:8 | ... = ... | 1.0 | -| test.c:373:8:373:8 | 0 | 1.0 | -| test.c:373:8:373:8 | (unsigned int)... | 1.0 | -| test.c:374:3:374:4 | y8 | 1.0 | -| test.c:374:3:374:8 | ... = ... | 1.0 | -| test.c:374:8:374:8 | 0 | 1.0 | -| test.c:374:8:374:8 | (unsigned int)... | 1.0 | -| test.c:375:7:375:7 | x | 4.0 | -| test.c:375:7:375:13 | ... < ... | 1.0 | -| test.c:375:11:375:13 | 300 | 1.0 | -| test.c:375:11:375:13 | (unsigned int)... | 1.0 | -| test.c:376:5:376:6 | y3 | 1.0 | -| test.c:376:5:376:15 | ... = ... | 4.0 | -| test.c:376:10:376:10 | x | 4.0 | -| test.c:376:10:376:15 | ... ? ... : ... | 4.0 | -| test.c:376:15:376:15 | 5 | 1.0 | -| test.c:376:15:376:15 | (unsigned int)... | 1.0 | -| test.c:377:5:377:6 | y4 | 1.0 | -| test.c:377:5:377:17 | ... = ... | 4.0 | -| test.c:377:10:377:10 | x | 4.0 | -| test.c:377:10:377:17 | ... ? ... : ... | 4.0 | -| test.c:377:15:377:17 | 500 | 1.0 | -| test.c:377:15:377:17 | (unsigned int)... | 1.0 | -| test.c:378:5:378:6 | y5 | 1.0 | -| test.c:378:5:378:21 | ... = ... | 4.0 | -| test.c:378:10:378:14 | (...) | 4.0 | -| test.c:378:10:378:21 | ... ? ... : ... | 4.0 | -| test.c:378:11:378:11 | x | 4.0 | -| test.c:378:11:378:13 | ... + ... | 4.0 | -| test.c:378:13:378:13 | 1 | 1.0 | -| test.c:378:13:378:13 | (unsigned int)... | 1.0 | -| test.c:378:19:378:21 | 500 | 1.0 | -| test.c:378:19:378:21 | (unsigned int)... | 1.0 | -| test.c:379:5:379:6 | y6 | 1.0 | -| test.c:379:5:379:36 | ... = ... | 4.0 | -| test.c:379:10:379:31 | (...) | 4.0 | -| test.c:379:10:379:36 | (unsigned int)... | 4.0 | -| test.c:379:10:379:36 | ... ? ... : ... | 4.0 | -| test.c:379:11:379:30 | (unsigned char)... | 4.0 | -| test.c:379:26:379:30 | (...) | 4.0 | -| test.c:379:27:379:27 | x | 4.0 | -| test.c:379:27:379:29 | ... + ... | 4.0 | -| test.c:379:29:379:29 | 1 | 1.0 | -| test.c:379:29:379:29 | (unsigned int)... | 1.0 | -| test.c:379:36:379:36 | 5 | 1.0 | -| test.c:380:5:380:6 | y7 | 1.0 | -| test.c:380:5:380:38 | ... = ... | 4.0 | -| test.c:380:10:380:31 | (...) | 4.0 | -| test.c:380:10:380:38 | (unsigned int)... | 4.0 | -| test.c:380:10:380:38 | ... ? ... : ... | 4.0 | -| test.c:380:11:380:30 | (unsigned char)... | 4.0 | -| test.c:380:26:380:30 | (...) | 4.0 | -| test.c:380:27:380:27 | x | 4.0 | -| test.c:380:27:380:29 | ... + ... | 4.0 | -| test.c:380:29:380:29 | 1 | 1.0 | -| test.c:380:29:380:29 | (unsigned int)... | 1.0 | -| test.c:380:36:380:38 | 500 | 1.0 | -| test.c:381:5:381:6 | y8 | 1.0 | -| test.c:381:5:381:39 | ... = ... | 4.0 | -| test.c:381:10:381:32 | (...) | 4.0 | -| test.c:381:10:381:39 | (unsigned int)... | 4.0 | -| test.c:381:10:381:39 | ... ? ... : ... | 4.0 | -| test.c:381:11:381:31 | (unsigned short)... | 4.0 | -| test.c:381:27:381:31 | (...) | 4.0 | -| test.c:381:28:381:28 | x | 4.0 | -| test.c:381:28:381:30 | ... + ... | 4.0 | -| test.c:381:30:381:30 | 1 | 1.0 | -| test.c:381:30:381:30 | (unsigned int)... | 1.0 | -| test.c:381:37:381:39 | 500 | 1.0 | -| test.c:383:10:383:11 | y1 | 1.0 | -| test.c:383:10:383:16 | ... + ... | 2.0 | -| test.c:383:10:383:21 | ... + ... | 10.0 | -| test.c:383:10:383:26 | ... + ... | 50.0 | -| test.c:383:10:383:31 | ... + ... | 250.0 | -| test.c:383:10:383:36 | ... + ... | 1250.0 | -| test.c:383:10:383:41 | ... + ... | 6250.0 | -| test.c:383:10:383:46 | ... + ... | 31250.0 | -| test.c:383:15:383:16 | y2 | 2.0 | -| test.c:383:20:383:21 | y3 | 5.0 | -| test.c:383:25:383:26 | y4 | 5.0 | -| test.c:383:30:383:31 | y5 | 5.0 | -| test.c:383:35:383:36 | y6 | 5.0 | -| test.c:383:40:383:41 | y7 | 5.0 | -| test.c:383:45:383:46 | y8 | 5.0 | -| test.c:389:3:389:4 | y1 | 1.0 | -| test.c:389:3:389:24 | ... = ... | 1.0 | -| test.c:389:8:389:8 | x | 1.0 | -| test.c:389:8:389:14 | ... > ... | 1.0 | -| test.c:389:8:389:24 | ... ? ... : ... | 1.0 | -| test.c:389:12:389:14 | 100 | 1.0 | -| test.c:389:12:389:14 | (unsigned int)... | 1.0 | -| test.c:389:18:389:18 | x | 1.0 | -| test.c:389:22:389:24 | 110 | 1.0 | -| test.c:389:22:389:24 | (unsigned int)... | 1.0 | -| test.c:390:3:390:4 | y2 | 1.0 | -| test.c:390:3:390:25 | ... = ... | 2.0 | -| test.c:390:8:390:8 | x | 2.0 | -| test.c:390:8:390:15 | ... <= ... | 1.0 | -| test.c:390:8:390:25 | ... ? ... : ... | 2.0 | -| test.c:390:13:390:15 | 100 | 1.0 | -| test.c:390:13:390:15 | (unsigned int)... | 1.0 | -| test.c:390:19:390:21 | 110 | 1.0 | -| test.c:390:19:390:21 | (unsigned int)... | 1.0 | -| test.c:390:25:390:25 | x | 2.0 | -| test.c:391:3:391:4 | y3 | 1.0 | -| test.c:391:3:391:11 | ... = ... | 1.0 | -| test.c:391:8:391:11 | 1000 | 1.0 | -| test.c:391:8:391:11 | (unsigned int)... | 1.0 | -| test.c:392:3:392:4 | y4 | 1.0 | -| test.c:392:3:392:11 | ... = ... | 1.0 | -| test.c:392:8:392:11 | 1000 | 1.0 | -| test.c:392:8:392:11 | (unsigned int)... | 1.0 | -| test.c:393:3:393:4 | y5 | 1.0 | -| test.c:393:3:393:11 | ... = ... | 1.0 | -| test.c:393:8:393:11 | 1000 | 1.0 | -| test.c:393:8:393:11 | (unsigned int)... | 1.0 | -| test.c:394:7:394:7 | x | 4.0 | -| test.c:394:7:394:14 | ... >= ... | 1.0 | -| test.c:394:12:394:14 | 300 | 1.0 | -| test.c:394:12:394:14 | (unsigned int)... | 1.0 | -| test.c:395:5:395:6 | y3 | 1.0 | -| test.c:395:5:395:21 | ... = ... | 4.0 | -| test.c:395:10:395:16 | (...) | 4.0 | -| test.c:395:10:395:21 | ... ? ... : ... | 4.0 | -| test.c:395:11:395:11 | x | 4.0 | -| test.c:395:11:395:15 | ... - ... | 4.0 | -| test.c:395:13:395:15 | 300 | 1.0 | -| test.c:395:13:395:15 | (unsigned int)... | 1.0 | -| test.c:395:21:395:21 | 5 | 1.0 | -| test.c:395:21:395:21 | (unsigned int)... | 1.0 | -| test.c:396:5:396:6 | y4 | 1.0 | -| test.c:396:5:396:21 | ... = ... | 4.0 | -| test.c:396:10:396:16 | (...) | 4.0 | -| test.c:396:10:396:21 | ... ? ... : ... | 4.0 | -| test.c:396:11:396:11 | x | 4.0 | -| test.c:396:11:396:15 | ... - ... | 4.0 | -| test.c:396:13:396:15 | 200 | 1.0 | -| test.c:396:13:396:15 | (unsigned int)... | 1.0 | -| test.c:396:21:396:21 | 5 | 1.0 | -| test.c:396:21:396:21 | (unsigned int)... | 1.0 | -| test.c:397:5:397:6 | y5 | 1.0 | -| test.c:397:5:397:38 | ... = ... | 4.0 | -| test.c:397:10:397:33 | (...) | 4.0 | -| test.c:397:10:397:38 | (unsigned int)... | 4.0 | -| test.c:397:10:397:38 | ... ? ... : ... | 4.0 | -| test.c:397:11:397:32 | (unsigned char)... | 4.0 | -| test.c:397:26:397:32 | (...) | 4.0 | -| test.c:397:27:397:27 | x | 4.0 | -| test.c:397:27:397:31 | ... - ... | 4.0 | -| test.c:397:29:397:31 | 200 | 1.0 | -| test.c:397:29:397:31 | (unsigned int)... | 1.0 | -| test.c:397:38:397:38 | 5 | 1.0 | -| test.c:399:10:399:11 | y1 | 1.0 | -| test.c:399:10:399:16 | ... + ... | 2.0 | -| test.c:399:10:399:21 | ... + ... | 10.0 | -| test.c:399:10:399:26 | ... + ... | 50.0 | -| test.c:399:10:399:31 | ... + ... | 250.0 | -| test.c:399:15:399:16 | y2 | 2.0 | -| test.c:399:20:399:21 | y3 | 5.0 | -| test.c:399:25:399:26 | y4 | 5.0 | -| test.c:399:30:399:31 | y5 | 5.0 | -| test.c:404:14:404:14 | m | 1.0 | -| test.c:404:14:404:108 | ... ? ... : ... | 1.0 | -| test.c:404:18:404:18 | n | 1.0 | -| test.c:404:18:404:95 | ... ? ... : ... | 1.0 | -| test.c:404:22:404:22 | o | 1.0 | -| test.c:404:22:404:82 | ... ? ... : ... | 1.0 | -| test.c:404:26:404:26 | p | 1.0 | -| test.c:404:26:404:69 | ... ? ... : ... | 1.0 | -| test.c:404:30:404:30 | q | 1.0 | -| test.c:404:30:404:56 | ... ? ... : ... | 1.0 | -| test.c:404:34:404:43 | 0.4743882700000000008 | 1.0 | -| test.c:404:47:404:56 | 0.1433388700000000071 | 1.0 | -| test.c:404:60:404:69 | 0.3527920299999999787 | 1.0 | -| test.c:404:73:404:82 | 0.3920645799999999959 | 1.0 | -| test.c:404:86:404:95 | 0.2154022499999999896 | 1.0 | -| test.c:404:99:404:108 | 0.4049680500000000238 | 1.0 | -| test.c:405:14:405:14 | m | 2.0 | -| test.c:405:14:405:108 | ... ? ... : ... | 1.0 | -| test.c:405:18:405:18 | n | 3.0 | -| test.c:405:18:405:95 | ... ? ... : ... | 1.0 | -| test.c:405:22:405:22 | o | 3.0 | -| test.c:405:22:405:82 | ... ? ... : ... | 1.0 | -| test.c:405:26:405:26 | p | 3.0 | -| test.c:405:26:405:69 | ... ? ... : ... | 1.0 | -| test.c:405:30:405:30 | q | 3.0 | -| test.c:405:30:405:56 | ... ? ... : ... | 1.0 | -| test.c:405:34:405:43 | 0.3418334800000000229 | 1.0 | -| test.c:405:47:405:56 | 0.3533464000000000049 | 1.0 | -| test.c:405:60:405:69 | 0.2224785300000000077 | 1.0 | -| test.c:405:73:405:82 | 0.326618929999999974 | 1.0 | -| test.c:405:86:405:95 | 0.5927046500000000551 | 1.0 | -| test.c:405:99:405:108 | 0.5297741000000000255 | 1.0 | -| test.c:406:14:406:14 | m | 4.0 | -| test.c:406:14:406:108 | ... ? ... : ... | 1.0 | -| test.c:406:18:406:18 | n | 9.0 | -| test.c:406:18:406:95 | ... ? ... : ... | 1.0 | -| test.c:406:22:406:22 | o | 9.0 | -| test.c:406:22:406:82 | ... ? ... : ... | 1.0 | -| test.c:406:26:406:26 | p | 9.0 | -| test.c:406:26:406:69 | ... ? ... : ... | 1.0 | -| test.c:406:30:406:30 | q | 9.0 | -| test.c:406:30:406:56 | ... ? ... : ... | 1.0 | -| test.c:406:34:406:43 | 0.774296030000000024 | 1.0 | -| test.c:406:47:406:56 | 0.3147808400000000062 | 1.0 | -| test.c:406:60:406:69 | 0.3123551399999999756 | 1.0 | -| test.c:406:73:406:82 | 0.05121255999999999725 | 1.0 | -| test.c:406:86:406:95 | 0.7931074500000000471 | 1.0 | -| test.c:406:99:406:108 | 0.6798145100000000385 | 1.0 | -| test.c:407:14:407:14 | m | 8.0 | -| test.c:407:14:407:108 | ... ? ... : ... | 1.0 | -| test.c:407:18:407:18 | n | 27.0 | -| test.c:407:18:407:95 | ... ? ... : ... | 1.0 | -| test.c:407:22:407:22 | o | 27.0 | -| test.c:407:22:407:82 | ... ? ... : ... | 1.0 | -| test.c:407:26:407:26 | p | 27.0 | -| test.c:407:26:407:69 | ... ? ... : ... | 1.0 | -| test.c:407:30:407:30 | q | 27.0 | -| test.c:407:30:407:56 | ... ? ... : ... | 1.0 | -| test.c:407:34:407:43 | 0.4472955599999999809 | 1.0 | -| test.c:407:47:407:56 | 0.8059920200000000312 | 1.0 | -| test.c:407:60:407:69 | 0.9899726199999999698 | 1.0 | -| test.c:407:73:407:82 | 0.5995273199999999747 | 1.0 | -| test.c:407:86:407:95 | 0.3697694799999999837 | 1.0 | -| test.c:407:99:407:108 | 0.8386683499999999514 | 1.0 | -| test.c:408:14:408:14 | m | 16.0 | -| test.c:408:14:408:108 | ... ? ... : ... | 1.0 | -| test.c:408:18:408:18 | n | 81.0 | -| test.c:408:18:408:95 | ... ? ... : ... | 1.0 | -| test.c:408:22:408:22 | o | 81.0 | -| test.c:408:22:408:82 | ... ? ... : ... | 1.0 | -| test.c:408:26:408:26 | p | 81.0 | -| test.c:408:26:408:69 | ... ? ... : ... | 1.0 | -| test.c:408:30:408:30 | q | 81.0 | -| test.c:408:30:408:56 | ... ? ... : ... | 1.0 | -| test.c:408:34:408:43 | 0.4931182800000000199 | 1.0 | -| test.c:408:47:408:56 | 0.9038991100000000056 | 1.0 | -| test.c:408:60:408:69 | 0.1059771199999999941 | 1.0 | -| test.c:408:73:408:82 | 0.2177842600000000073 | 1.0 | -| test.c:408:86:408:95 | 0.7248596600000000167 | 1.0 | -| test.c:408:99:408:108 | 0.6873487400000000136 | 1.0 | -| test.c:409:14:409:14 | m | 32.0 | -| test.c:409:14:409:108 | ... ? ... : ... | 1.0 | -| test.c:409:18:409:18 | n | 243.0 | -| test.c:409:18:409:95 | ... ? ... : ... | 1.0 | -| test.c:409:22:409:22 | o | 243.0 | -| test.c:409:22:409:82 | ... ? ... : ... | 1.0 | -| test.c:409:26:409:26 | p | 243.0 | -| test.c:409:26:409:69 | ... ? ... : ... | 1.0 | -| test.c:409:30:409:30 | q | 243.0 | -| test.c:409:30:409:56 | ... ? ... : ... | 1.0 | -| test.c:409:34:409:43 | 0.4745284799999999747 | 1.0 | -| test.c:409:47:409:56 | 0.107866500000000004 | 1.0 | -| test.c:409:60:409:69 | 0.1188457599999999947 | 1.0 | -| test.c:409:73:409:82 | 0.7616405200000000431 | 1.0 | -| test.c:409:86:409:95 | 0.3480889200000000239 | 1.0 | -| test.c:409:99:409:108 | 0.584408649999999974 | 1.0 | -| test.c:410:14:410:14 | m | 64.0 | -| test.c:410:14:410:108 | ... ? ... : ... | 1.0 | -| test.c:410:18:410:18 | n | 729.0 | -| test.c:410:18:410:95 | ... ? ... : ... | 1.0 | -| test.c:410:22:410:22 | o | 729.0 | -| test.c:410:22:410:82 | ... ? ... : ... | 1.0 | -| test.c:410:26:410:26 | p | 729.0 | -| test.c:410:26:410:69 | ... ? ... : ... | 1.0 | -| test.c:410:30:410:30 | q | 729.0 | -| test.c:410:30:410:56 | ... ? ... : ... | 1.0 | -| test.c:410:34:410:43 | 0.02524326 | 1.0 | -| test.c:410:47:410:56 | 0.8290504600000000446 | 1.0 | -| test.c:410:60:410:69 | 0.95823075000000002 | 1.0 | -| test.c:410:73:410:82 | 0.1251655799999999985 | 1.0 | -| test.c:410:86:410:95 | 0.8523517900000000536 | 1.0 | -| test.c:410:99:410:108 | 0.3623238400000000081 | 1.0 | -| test.c:411:14:411:14 | m | 128.0 | -| test.c:411:14:411:108 | ... ? ... : ... | 1.0 | -| test.c:411:18:411:18 | n | 2187.0 | -| test.c:411:18:411:95 | ... ? ... : ... | 1.0 | -| test.c:411:22:411:22 | o | 2187.0 | -| test.c:411:22:411:82 | ... ? ... : ... | 1.0 | -| test.c:411:26:411:26 | p | 2187.0 | -| test.c:411:26:411:69 | ... ? ... : ... | 1.0 | -| test.c:411:30:411:30 | q | 2187.0 | -| test.c:411:30:411:56 | ... ? ... : ... | 1.0 | -| test.c:411:34:411:43 | 0.3870862600000000153 | 1.0 | -| test.c:411:47:411:56 | 0.3287604399999999871 | 1.0 | -| test.c:411:60:411:69 | 0.1496348500000000137 | 1.0 | -| test.c:411:73:411:82 | 0.4504110800000000192 | 1.0 | -| test.c:411:86:411:95 | 0.4864090899999999884 | 1.0 | -| test.c:411:99:411:108 | 0.8433127200000000157 | 1.0 | -| test.c:412:14:412:14 | m | 256.0 | -| test.c:412:14:412:108 | ... ? ... : ... | 1.0 | -| test.c:412:18:412:18 | n | 6561.0 | -| test.c:412:18:412:95 | ... ? ... : ... | 1.0 | -| test.c:412:22:412:22 | o | 6561.0 | -| test.c:412:22:412:82 | ... ? ... : ... | 1.0 | -| test.c:412:26:412:26 | p | 6561.0 | -| test.c:412:26:412:69 | ... ? ... : ... | 1.0 | -| test.c:412:30:412:30 | q | 6561.0 | -| test.c:412:30:412:56 | ... ? ... : ... | 1.0 | -| test.c:412:34:412:43 | 0.1575506299999999971 | 1.0 | -| test.c:412:47:412:56 | 0.7708683299999999905 | 1.0 | -| test.c:412:60:412:69 | 0.2642848099999999811 | 1.0 | -| test.c:412:73:412:82 | 0.1480050800000000111 | 1.0 | -| test.c:412:86:412:95 | 0.374281430000000026 | 1.0 | -| test.c:412:99:412:108 | 0.05328182000000000057 | 1.0 | -| test.c:413:14:413:14 | m | 512.0 | -| test.c:413:14:413:108 | ... ? ... : ... | 1.0 | -| test.c:413:18:413:18 | n | 19683.0 | -| test.c:413:18:413:95 | ... ? ... : ... | 1.0 | -| test.c:413:22:413:22 | o | 19683.0 | -| test.c:413:22:413:82 | ... ? ... : ... | 1.0 | -| test.c:413:26:413:26 | p | 19683.0 | -| test.c:413:26:413:69 | ... ? ... : ... | 1.0 | -| test.c:413:30:413:30 | q | 19683.0 | -| test.c:413:30:413:56 | ... ? ... : ... | 1.0 | -| test.c:413:34:413:43 | 0.4173653600000000186 | 1.0 | -| test.c:413:47:413:56 | 0.7682662799999999681 | 1.0 | -| test.c:413:60:413:69 | 0.2764323799999999776 | 1.0 | -| test.c:413:73:413:82 | 0.5567927400000000082 | 1.0 | -| test.c:413:86:413:95 | 0.3946885700000000163 | 1.0 | -| test.c:413:99:413:108 | 0.6907214400000000198 | 1.0 | -| test.c:414:14:414:14 | m | 1024.0 | -| test.c:414:14:414:108 | ... ? ... : ... | 1.0 | -| test.c:414:18:414:18 | n | 59049.0 | -| test.c:414:18:414:95 | ... ? ... : ... | 1.0 | -| test.c:414:22:414:22 | o | 59049.0 | -| test.c:414:22:414:82 | ... ? ... : ... | 1.0 | -| test.c:414:26:414:26 | p | 59049.0 | -| test.c:414:26:414:69 | ... ? ... : ... | 1.0 | -| test.c:414:30:414:30 | q | 59049.0 | -| test.c:414:30:414:56 | ... ? ... : ... | 1.0 | -| test.c:414:34:414:43 | 0.8895534499999999678 | 1.0 | -| test.c:414:47:414:56 | 0.2990482400000000207 | 1.0 | -| test.c:414:60:414:69 | 0.7624258299999999711 | 1.0 | -| test.c:414:73:414:82 | 0.2051910999999999874 | 1.0 | -| test.c:414:86:414:95 | 0.8874555899999999609 | 1.0 | -| test.c:414:99:414:108 | 0.8137279800000000174 | 1.0 | -| test.c:415:14:415:14 | m | 2048.0 | +| test.c:348:22:348:32 | (...) | 1.0 | +| test.c:348:22:348:36 | ... > ... | 1.0 | +| test.c:348:22:348:44 | ... ? ... : ... | 1.0 | +| test.c:348:23:348:23 | 2 | 1.0 | +| test.c:348:23:348:23 | (unsigned int)... | 1.0 | +| test.c:348:23:348:27 | ... * ... | 1.0 | +| test.c:348:23:348:31 | ... + ... | 1.0 | +| test.c:348:27:348:27 | e | 1.0 | +| test.c:348:31:348:31 | 1 | 1.0 | +| test.c:348:31:348:31 | (unsigned int)... | 1.0 | +| test.c:348:36:348:36 | 0 | 1.0 | +| test.c:348:36:348:36 | (unsigned int)... | 1.0 | +| test.c:348:40:348:40 | e | 1.0 | +| test.c:348:44:348:44 | 2 | 1.0 | +| test.c:348:44:348:44 | (unsigned int)... | 1.0 | +| test.c:349:20:349:30 | (...) | 2.0 | +| test.c:349:20:349:35 | ... >= ... | 1.0 | +| test.c:349:20:349:43 | (signed int)... | 2.0 | +| test.c:349:20:349:43 | ... ? ... : ... | 2.0 | +| test.c:349:21:349:21 | 2 | 1.0 | +| test.c:349:21:349:21 | (unsigned int)... | 1.0 | +| test.c:349:21:349:25 | ... * ... | 2.0 | +| test.c:349:21:349:29 | ... + ... | 2.0 | +| test.c:349:25:349:25 | e | 2.0 | +| test.c:349:29:349:29 | 1 | 1.0 | +| test.c:349:29:349:29 | (unsigned int)... | 1.0 | +| test.c:349:35:349:35 | 0 | 1.0 | +| test.c:349:35:349:35 | (unsigned int)... | 1.0 | +| test.c:349:39:349:39 | e | 2.0 | +| test.c:349:43:349:43 | 2 | 1.0 | +| test.c:349:43:349:43 | (unsigned int)... | 1.0 | +| test.c:350:22:350:32 | (...) | 4.0 | +| test.c:350:22:350:36 | ... > ... | 1.0 | +| test.c:350:22:350:44 | ... ? ... : ... | 4.0 | +| test.c:350:23:350:23 | 3 | 1.0 | +| test.c:350:23:350:23 | (unsigned int)... | 1.0 | +| test.c:350:23:350:27 | ... * ... | 4.0 | +| test.c:350:23:350:31 | ... + ... | 4.0 | +| test.c:350:27:350:27 | e | 4.0 | +| test.c:350:31:350:31 | 2 | 1.0 | +| test.c:350:31:350:31 | (unsigned int)... | 1.0 | +| test.c:350:36:350:36 | 0 | 1.0 | +| test.c:350:36:350:36 | (unsigned int)... | 1.0 | +| test.c:350:40:350:40 | e | 4.0 | +| test.c:350:44:350:44 | 2 | 1.0 | +| test.c:350:44:350:44 | (unsigned int)... | 1.0 | +| test.c:351:22:351:32 | (...) | 8.0 | +| test.c:351:22:351:36 | ... > ... | 1.0 | +| test.c:351:22:351:44 | ... ? ... : ... | 8.0 | +| test.c:351:23:351:23 | 2 | 1.0 | +| test.c:351:23:351:23 | (unsigned int)... | 1.0 | +| test.c:351:23:351:27 | ... * ... | 8.0 | +| test.c:351:23:351:31 | ... + ... | 8.0 | +| test.c:351:27:351:27 | e | 8.0 | +| test.c:351:31:351:31 | 1 | 1.0 | +| test.c:351:31:351:31 | (unsigned int)... | 1.0 | +| test.c:351:36:351:36 | 0 | 1.0 | +| test.c:351:36:351:36 | (unsigned int)... | 1.0 | +| test.c:351:40:351:40 | e | 8.0 | +| test.c:351:44:351:44 | 2 | 1.0 | +| test.c:351:44:351:44 | (unsigned int)... | 1.0 | +| test.c:352:22:352:32 | (...) | 16.0 | +| test.c:352:22:352:37 | ... > ... | 1.0 | +| test.c:352:22:352:45 | ... ? ... : ... | 16.0 | +| test.c:352:23:352:23 | 2 | 1.0 | +| test.c:352:23:352:23 | (unsigned int)... | 1.0 | +| test.c:352:23:352:27 | ... * ... | 16.0 | +| test.c:352:23:352:31 | ... + ... | 16.0 | +| test.c:352:27:352:27 | e | 16.0 | +| test.c:352:31:352:31 | 1 | 1.0 | +| test.c:352:31:352:31 | (unsigned int)... | 1.0 | +| test.c:352:36:352:37 | 16 | 1.0 | +| test.c:352:36:352:37 | (unsigned int)... | 1.0 | +| test.c:352:41:352:41 | e | 16.0 | +| test.c:352:45:352:45 | 2 | 1.0 | +| test.c:352:45:352:45 | (unsigned int)... | 1.0 | +| test.c:354:10:354:12 | bi1 | 1.0 | +| test.c:354:10:354:18 | ... + ... | 2.0 | +| test.c:354:10:354:24 | ... + ... | 8.0 | +| test.c:354:10:354:30 | ... + ... | 64.0 | +| test.c:354:10:354:36 | ... + ... | 1024.0 | +| test.c:354:16:354:18 | (unsigned int)... | 2.0 | +| test.c:354:16:354:18 | bi2 | 2.0 | +| test.c:354:22:354:24 | bi3 | 4.0 | +| test.c:354:28:354:30 | bi4 | 8.0 | +| test.c:354:34:354:36 | bi5 | 16.0 | +| test.c:358:13:358:14 | 0 | 1.0 | +| test.c:359:7:359:7 | x | 1.0 | +| test.c:359:7:359:11 | ... < ... | 1.0 | +| test.c:359:11:359:11 | 0 | 1.0 | +| test.c:360:12:360:13 | - ... | 1.0 | +| test.c:360:13:360:13 | 1 | 1.0 | +| test.c:363:10:363:10 | i | 13.0 | +| test.c:363:10:363:14 | ... < ... | 1.0 | +| test.c:363:14:363:14 | 3 | 1.0 | +| test.c:364:5:364:5 | i | 13.0 | +| test.c:364:5:364:7 | ... ++ | 13.0 | +| test.c:366:3:366:3 | d | 1.0 | +| test.c:366:3:366:7 | ... = ... | 13.0 | +| test.c:366:7:366:7 | i | 13.0 | +| test.c:367:7:367:7 | x | 1.0 | +| test.c:367:7:367:11 | ... < ... | 1.0 | +| test.c:367:11:367:11 | 0 | 1.0 | +| test.c:368:9:368:9 | d | 13.0 | +| test.c:368:9:368:14 | ... > ... | 1.0 | +| test.c:368:13:368:14 | - ... | 1.0 | +| test.c:368:14:368:14 | x | 1.0 | +| test.c:369:14:369:14 | 1 | 1.0 | +| test.c:372:10:372:10 | 0 | 1.0 | +| test.c:378:3:378:4 | y1 | 1.0 | +| test.c:378:3:378:23 | ... = ... | 1.0 | +| test.c:378:8:378:8 | x | 1.0 | +| test.c:378:8:378:14 | ... < ... | 1.0 | +| test.c:378:8:378:23 | ... ? ... : ... | 1.0 | +| test.c:378:12:378:14 | 100 | 1.0 | +| test.c:378:12:378:14 | (unsigned int)... | 1.0 | +| test.c:378:18:378:18 | x | 1.0 | +| test.c:378:22:378:23 | 10 | 1.0 | +| test.c:378:22:378:23 | (unsigned int)... | 1.0 | +| test.c:379:3:379:4 | y2 | 1.0 | +| test.c:379:3:379:24 | ... = ... | 2.0 | +| test.c:379:8:379:8 | x | 2.0 | +| test.c:379:8:379:15 | ... >= ... | 1.0 | +| test.c:379:8:379:24 | ... ? ... : ... | 2.0 | +| test.c:379:13:379:15 | 100 | 1.0 | +| test.c:379:13:379:15 | (unsigned int)... | 1.0 | +| test.c:379:19:379:20 | 10 | 1.0 | +| test.c:379:19:379:20 | (unsigned int)... | 1.0 | +| test.c:379:24:379:24 | x | 2.0 | +| test.c:380:3:380:4 | y3 | 1.0 | +| test.c:380:3:380:8 | ... = ... | 1.0 | +| test.c:380:8:380:8 | 0 | 1.0 | +| test.c:380:8:380:8 | (unsigned int)... | 1.0 | +| test.c:381:3:381:4 | y4 | 1.0 | +| test.c:381:3:381:8 | ... = ... | 1.0 | +| test.c:381:8:381:8 | 0 | 1.0 | +| test.c:381:8:381:8 | (unsigned int)... | 1.0 | +| test.c:382:3:382:4 | y5 | 1.0 | +| test.c:382:3:382:8 | ... = ... | 1.0 | +| test.c:382:8:382:8 | 0 | 1.0 | +| test.c:382:8:382:8 | (unsigned int)... | 1.0 | +| test.c:383:3:383:4 | y6 | 1.0 | +| test.c:383:3:383:8 | ... = ... | 1.0 | +| test.c:383:8:383:8 | 0 | 1.0 | +| test.c:383:8:383:8 | (unsigned int)... | 1.0 | +| test.c:384:3:384:4 | y7 | 1.0 | +| test.c:384:3:384:8 | ... = ... | 1.0 | +| test.c:384:8:384:8 | 0 | 1.0 | +| test.c:384:8:384:8 | (unsigned int)... | 1.0 | +| test.c:385:3:385:4 | y8 | 1.0 | +| test.c:385:3:385:8 | ... = ... | 1.0 | +| test.c:385:8:385:8 | 0 | 1.0 | +| test.c:385:8:385:8 | (unsigned int)... | 1.0 | +| test.c:386:7:386:7 | x | 4.0 | +| test.c:386:7:386:13 | ... < ... | 1.0 | +| test.c:386:11:386:13 | 300 | 1.0 | +| test.c:386:11:386:13 | (unsigned int)... | 1.0 | +| test.c:387:5:387:6 | y3 | 1.0 | +| test.c:387:5:387:15 | ... = ... | 4.0 | +| test.c:387:10:387:10 | x | 4.0 | +| test.c:387:10:387:15 | ... ? ... : ... | 4.0 | +| test.c:387:15:387:15 | 5 | 1.0 | +| test.c:387:15:387:15 | (unsigned int)... | 1.0 | +| test.c:388:5:388:6 | y4 | 1.0 | +| test.c:388:5:388:17 | ... = ... | 4.0 | +| test.c:388:10:388:10 | x | 4.0 | +| test.c:388:10:388:17 | ... ? ... : ... | 4.0 | +| test.c:388:15:388:17 | 500 | 1.0 | +| test.c:388:15:388:17 | (unsigned int)... | 1.0 | +| test.c:389:5:389:6 | y5 | 1.0 | +| test.c:389:5:389:21 | ... = ... | 4.0 | +| test.c:389:10:389:14 | (...) | 4.0 | +| test.c:389:10:389:21 | ... ? ... : ... | 4.0 | +| test.c:389:11:389:11 | x | 4.0 | +| test.c:389:11:389:13 | ... + ... | 4.0 | +| test.c:389:13:389:13 | 1 | 1.0 | +| test.c:389:13:389:13 | (unsigned int)... | 1.0 | +| test.c:389:19:389:21 | 500 | 1.0 | +| test.c:389:19:389:21 | (unsigned int)... | 1.0 | +| test.c:390:5:390:6 | y6 | 1.0 | +| test.c:390:5:390:36 | ... = ... | 4.0 | +| test.c:390:10:390:31 | (...) | 4.0 | +| test.c:390:10:390:36 | (unsigned int)... | 4.0 | +| test.c:390:10:390:36 | ... ? ... : ... | 4.0 | +| test.c:390:11:390:30 | (unsigned char)... | 4.0 | +| test.c:390:26:390:30 | (...) | 4.0 | +| test.c:390:27:390:27 | x | 4.0 | +| test.c:390:27:390:29 | ... + ... | 4.0 | +| test.c:390:29:390:29 | 1 | 1.0 | +| test.c:390:29:390:29 | (unsigned int)... | 1.0 | +| test.c:390:36:390:36 | 5 | 1.0 | +| test.c:391:5:391:6 | y7 | 1.0 | +| test.c:391:5:391:38 | ... = ... | 4.0 | +| test.c:391:10:391:31 | (...) | 4.0 | +| test.c:391:10:391:38 | (unsigned int)... | 4.0 | +| test.c:391:10:391:38 | ... ? ... : ... | 4.0 | +| test.c:391:11:391:30 | (unsigned char)... | 4.0 | +| test.c:391:26:391:30 | (...) | 4.0 | +| test.c:391:27:391:27 | x | 4.0 | +| test.c:391:27:391:29 | ... + ... | 4.0 | +| test.c:391:29:391:29 | 1 | 1.0 | +| test.c:391:29:391:29 | (unsigned int)... | 1.0 | +| test.c:391:36:391:38 | 500 | 1.0 | +| test.c:392:5:392:6 | y8 | 1.0 | +| test.c:392:5:392:39 | ... = ... | 4.0 | +| test.c:392:10:392:32 | (...) | 4.0 | +| test.c:392:10:392:39 | (unsigned int)... | 4.0 | +| test.c:392:10:392:39 | ... ? ... : ... | 4.0 | +| test.c:392:11:392:31 | (unsigned short)... | 4.0 | +| test.c:392:27:392:31 | (...) | 4.0 | +| test.c:392:28:392:28 | x | 4.0 | +| test.c:392:28:392:30 | ... + ... | 4.0 | +| test.c:392:30:392:30 | 1 | 1.0 | +| test.c:392:30:392:30 | (unsigned int)... | 1.0 | +| test.c:392:37:392:39 | 500 | 1.0 | +| test.c:394:10:394:11 | y1 | 1.0 | +| test.c:394:10:394:16 | ... + ... | 2.0 | +| test.c:394:10:394:21 | ... + ... | 10.0 | +| test.c:394:10:394:26 | ... + ... | 50.0 | +| test.c:394:10:394:31 | ... + ... | 250.0 | +| test.c:394:10:394:36 | ... + ... | 1250.0 | +| test.c:394:10:394:41 | ... + ... | 6250.0 | +| test.c:394:10:394:46 | ... + ... | 31250.0 | +| test.c:394:15:394:16 | y2 | 2.0 | +| test.c:394:20:394:21 | y3 | 5.0 | +| test.c:394:25:394:26 | y4 | 5.0 | +| test.c:394:30:394:31 | y5 | 5.0 | +| test.c:394:35:394:36 | y6 | 5.0 | +| test.c:394:40:394:41 | y7 | 5.0 | +| test.c:394:45:394:46 | y8 | 5.0 | +| test.c:400:3:400:4 | y1 | 1.0 | +| test.c:400:3:400:24 | ... = ... | 1.0 | +| test.c:400:8:400:8 | x | 1.0 | +| test.c:400:8:400:14 | ... > ... | 1.0 | +| test.c:400:8:400:24 | ... ? ... : ... | 1.0 | +| test.c:400:12:400:14 | 100 | 1.0 | +| test.c:400:12:400:14 | (unsigned int)... | 1.0 | +| test.c:400:18:400:18 | x | 1.0 | +| test.c:400:22:400:24 | 110 | 1.0 | +| test.c:400:22:400:24 | (unsigned int)... | 1.0 | +| test.c:401:3:401:4 | y2 | 1.0 | +| test.c:401:3:401:25 | ... = ... | 2.0 | +| test.c:401:8:401:8 | x | 2.0 | +| test.c:401:8:401:15 | ... <= ... | 1.0 | +| test.c:401:8:401:25 | ... ? ... : ... | 2.0 | +| test.c:401:13:401:15 | 100 | 1.0 | +| test.c:401:13:401:15 | (unsigned int)... | 1.0 | +| test.c:401:19:401:21 | 110 | 1.0 | +| test.c:401:19:401:21 | (unsigned int)... | 1.0 | +| test.c:401:25:401:25 | x | 2.0 | +| test.c:402:3:402:4 | y3 | 1.0 | +| test.c:402:3:402:11 | ... = ... | 1.0 | +| test.c:402:8:402:11 | 1000 | 1.0 | +| test.c:402:8:402:11 | (unsigned int)... | 1.0 | +| test.c:403:3:403:4 | y4 | 1.0 | +| test.c:403:3:403:11 | ... = ... | 1.0 | +| test.c:403:8:403:11 | 1000 | 1.0 | +| test.c:403:8:403:11 | (unsigned int)... | 1.0 | +| test.c:404:3:404:4 | y5 | 1.0 | +| test.c:404:3:404:11 | ... = ... | 1.0 | +| test.c:404:8:404:11 | 1000 | 1.0 | +| test.c:404:8:404:11 | (unsigned int)... | 1.0 | +| test.c:405:7:405:7 | x | 4.0 | +| test.c:405:7:405:14 | ... >= ... | 1.0 | +| test.c:405:12:405:14 | 300 | 1.0 | +| test.c:405:12:405:14 | (unsigned int)... | 1.0 | +| test.c:406:5:406:6 | y3 | 1.0 | +| test.c:406:5:406:21 | ... = ... | 4.0 | +| test.c:406:10:406:16 | (...) | 4.0 | +| test.c:406:10:406:21 | ... ? ... : ... | 4.0 | +| test.c:406:11:406:11 | x | 4.0 | +| test.c:406:11:406:15 | ... - ... | 4.0 | +| test.c:406:13:406:15 | 300 | 1.0 | +| test.c:406:13:406:15 | (unsigned int)... | 1.0 | +| test.c:406:21:406:21 | 5 | 1.0 | +| test.c:406:21:406:21 | (unsigned int)... | 1.0 | +| test.c:407:5:407:6 | y4 | 1.0 | +| test.c:407:5:407:21 | ... = ... | 4.0 | +| test.c:407:10:407:16 | (...) | 4.0 | +| test.c:407:10:407:21 | ... ? ... : ... | 4.0 | +| test.c:407:11:407:11 | x | 4.0 | +| test.c:407:11:407:15 | ... - ... | 4.0 | +| test.c:407:13:407:15 | 200 | 1.0 | +| test.c:407:13:407:15 | (unsigned int)... | 1.0 | +| test.c:407:21:407:21 | 5 | 1.0 | +| test.c:407:21:407:21 | (unsigned int)... | 1.0 | +| test.c:408:5:408:6 | y5 | 1.0 | +| test.c:408:5:408:38 | ... = ... | 4.0 | +| test.c:408:10:408:33 | (...) | 4.0 | +| test.c:408:10:408:38 | (unsigned int)... | 4.0 | +| test.c:408:10:408:38 | ... ? ... : ... | 4.0 | +| test.c:408:11:408:32 | (unsigned char)... | 4.0 | +| test.c:408:26:408:32 | (...) | 4.0 | +| test.c:408:27:408:27 | x | 4.0 | +| test.c:408:27:408:31 | ... - ... | 4.0 | +| test.c:408:29:408:31 | 200 | 1.0 | +| test.c:408:29:408:31 | (unsigned int)... | 1.0 | +| test.c:408:38:408:38 | 5 | 1.0 | +| test.c:410:10:410:11 | y1 | 1.0 | +| test.c:410:10:410:16 | ... + ... | 2.0 | +| test.c:410:10:410:21 | ... + ... | 10.0 | +| test.c:410:10:410:26 | ... + ... | 50.0 | +| test.c:410:10:410:31 | ... + ... | 250.0 | +| test.c:410:15:410:16 | y2 | 2.0 | +| test.c:410:20:410:21 | y3 | 5.0 | +| test.c:410:25:410:26 | y4 | 5.0 | +| test.c:410:30:410:31 | y5 | 5.0 | +| test.c:415:14:415:14 | m | 1.0 | | test.c:415:14:415:108 | ... ? ... : ... | 1.0 | -| test.c:415:18:415:18 | n | 177147.0 | +| test.c:415:18:415:18 | n | 1.0 | | test.c:415:18:415:95 | ... ? ... : ... | 1.0 | -| test.c:415:22:415:22 | o | 177147.0 | +| test.c:415:22:415:22 | o | 1.0 | | test.c:415:22:415:82 | ... ? ... : ... | 1.0 | -| test.c:415:26:415:26 | p | 177147.0 | +| test.c:415:26:415:26 | p | 1.0 | | test.c:415:26:415:69 | ... ? ... : ... | 1.0 | -| test.c:415:30:415:30 | q | 177147.0 | +| test.c:415:30:415:30 | q | 1.0 | | test.c:415:30:415:56 | ... ? ... : ... | 1.0 | -| test.c:415:34:415:43 | 0.4218627600000000033 | 1.0 | -| test.c:415:47:415:56 | 0.5384335799999999672 | 1.0 | -| test.c:415:60:415:69 | 0.4499667900000000054 | 1.0 | -| test.c:415:73:415:82 | 0.1320411400000000013 | 1.0 | -| test.c:415:86:415:95 | 0.5203124099999999475 | 1.0 | -| test.c:415:99:415:108 | 0.4276264699999999808 | 1.0 | -| test.c:421:19:421:19 | a | 1.0 | -| test.c:421:19:421:23 | ... + ... | 1.0 | -| test.c:421:19:421:27 | ... + ... | 1.0 | -| test.c:421:19:421:31 | ... + ... | 1.0 | -| test.c:421:19:421:35 | ... + ... | 1.0 | -| test.c:421:19:421:39 | ... + ... | 1.0 | -| test.c:421:19:421:43 | ... + ... | 1.0 | -| test.c:421:19:421:47 | ... + ... | 1.0 | -| test.c:421:19:421:51 | ... + ... | 1.0 | -| test.c:421:19:421:55 | ... + ... | 1.0 | -| test.c:421:19:421:59 | ... + ... | 1.0 | -| test.c:421:19:421:63 | ... + ... | 1.0 | -| test.c:421:23:421:23 | b | 1.0 | -| test.c:421:27:421:27 | c | 1.0 | -| test.c:421:31:421:31 | d | 1.0 | -| test.c:421:35:421:35 | e | 1.0 | -| test.c:421:39:421:39 | f | 1.0 | -| test.c:421:43:421:43 | g | 1.0 | -| test.c:421:47:421:47 | h | 1.0 | -| test.c:421:51:421:51 | i | 1.0 | -| test.c:421:55:421:55 | j | 1.0 | -| test.c:421:59:421:59 | k | 1.0 | -| test.c:421:63:421:63 | l | 1.0 | -| test.c:423:10:423:15 | output | 1.0 | -| test.c:430:7:430:9 | rhs | 1.0 | -| test.c:430:7:430:14 | ... < ... | 1.0 | -| test.c:430:13:430:14 | 12 | 1.0 | -| test.c:430:13:430:14 | (unsigned int)... | 1.0 | -| test.c:430:19:430:21 | rhs | 1.0 | -| test.c:430:19:430:26 | ... << ... | 1.0 | -| test.c:430:26:430:26 | 1 | 1.0 | -| test.c:431:7:431:9 | rhs | 2.0 | -| test.c:431:7:431:14 | ... < ... | 1.0 | -| test.c:431:13:431:14 | 13 | 1.0 | -| test.c:431:13:431:14 | (unsigned int)... | 1.0 | -| test.c:431:19:431:21 | rhs | 2.0 | -| test.c:431:19:431:26 | ... << ... | 1.0 | -| test.c:431:26:431:26 | 1 | 1.0 | -| test.c:432:7:432:9 | rhs | 3.0 | -| test.c:432:7:432:14 | ... < ... | 1.0 | -| test.c:432:13:432:14 | 14 | 1.0 | -| test.c:432:13:432:14 | (unsigned int)... | 1.0 | -| test.c:432:19:432:21 | rhs | 3.0 | -| test.c:432:19:432:26 | ... << ... | 1.0 | -| test.c:432:26:432:26 | 1 | 1.0 | -| test.c:433:7:433:9 | rhs | 4.0 | -| test.c:433:7:433:14 | ... < ... | 1.0 | -| test.c:433:13:433:14 | 15 | 1.0 | -| test.c:433:13:433:14 | (unsigned int)... | 1.0 | -| test.c:433:19:433:21 | rhs | 4.0 | -| test.c:433:19:433:26 | ... << ... | 1.0 | -| test.c:433:26:433:26 | 1 | 1.0 | -| test.c:434:7:434:9 | rhs | 5.0 | -| test.c:434:7:434:14 | ... < ... | 1.0 | -| test.c:434:13:434:14 | 16 | 1.0 | -| test.c:434:13:434:14 | (unsigned int)... | 1.0 | -| test.c:434:19:434:21 | rhs | 5.0 | -| test.c:434:19:434:26 | ... << ... | 1.0 | -| test.c:434:26:434:26 | 1 | 1.0 | -| test.c:435:10:435:12 | (int)... | 6.0 | -| test.c:435:10:435:12 | rhs | 6.0 | -| test.c:439:7:439:7 | a | 1.0 | -| test.c:439:7:439:13 | ... == ... | 1.0 | -| test.c:439:12:439:13 | 17 | 1.0 | -| test.c:440:9:440:9 | b | 1.0 | -| test.c:440:9:440:15 | ... == ... | 1.0 | -| test.c:440:14:440:15 | 23 | 1.0 | -| test.c:441:7:441:7 | a | 1.0 | -| test.c:441:7:441:12 | ... += ... | 1.0 | -| test.c:441:12:441:12 | b | 1.0 | -| test.c:443:9:443:9 | a | 2.0 | -| test.c:443:9:443:15 | ... == ... | 1.0 | -| test.c:443:14:443:15 | 18 | 1.0 | -| test.c:444:7:444:7 | b | 1.0 | -| test.c:444:7:444:12 | ... = ... | 1.0 | -| test.c:444:11:444:12 | 10 | 1.0 | -| test.c:449:11:449:11 | a | 4.0 | -| test.c:449:11:449:15 | ... + ... | 16.0 | -| test.c:449:15:449:15 | b | 4.0 | -| test.c:450:10:450:10 | a | 4.0 | -| test.c:450:10:450:14 | ... + ... | 16.0 | -| test.c:450:14:450:14 | b | 4.0 | -| test.c:457:4:459:50 | (...) | 1.0 | -| test.c:457:4:542:26 | ... > ... | 1.0 | -| test.c:457:4:631:27 | ... ? ... : ... | 1.297918419127476E201 | -| test.c:457:5:457:6 | 14 | 1.0 | -| test.c:457:5:457:6 | (unsigned int)... | 1.0 | -| test.c:457:5:457:11 | ... * ... | 1.0 | -| test.c:457:5:457:55 | ... > ... | 1.0 | -| test.c:457:5:459:49 | ... ? ... : ... | 1.0 | -| test.c:457:10:457:11 | ip | 1.0 | -| test.c:457:15:457:26 | (...) | 1.0 | -| test.c:457:15:457:31 | ... * ... | 1.0 | -| test.c:457:15:457:55 | ... + ... | 1.0 | -| test.c:457:16:457:16 | 2 | 1.0 | -| test.c:457:16:457:16 | (unsigned int)... | 1.0 | -| test.c:457:16:457:21 | ... * ... | 1.0 | -| test.c:457:16:457:25 | ... + ... | 1.0 | -| test.c:457:20:457:21 | ip | 1.0 | -| test.c:457:25:457:25 | 1 | 1.0 | -| test.c:457:25:457:25 | (unsigned int)... | 1.0 | -| test.c:457:30:457:31 | 17 | 1.0 | -| test.c:457:30:457:31 | (unsigned int)... | 1.0 | -| test.c:457:35:457:50 | (...) | 1.0 | -| test.c:457:35:457:55 | ... * ... | 1.0 | -| test.c:457:36:457:36 | 2 | 1.0 | -| test.c:457:36:457:36 | (unsigned int)... | 1.0 | -| test.c:457:36:457:41 | ... * ... | 1.0 | -| test.c:457:36:457:45 | ... + ... | 1.0 | -| test.c:457:36:457:49 | ... + ... | 1.0 | -| test.c:457:40:457:41 | ip | 1.0 | -| test.c:457:45:457:45 | 1 | 1.0 | -| test.c:457:45:457:45 | (unsigned int)... | 1.0 | -| test.c:457:49:457:49 | 1 | 1.0 | -| test.c:457:49:457:49 | (unsigned int)... | 1.0 | -| test.c:457:54:457:55 | 17 | 1.0 | -| test.c:457:54:457:55 | (unsigned int)... | 1.0 | -| test.c:458:9:458:10 | 14 | 1.0 | -| test.c:458:9:458:10 | (unsigned int)... | 1.0 | -| test.c:458:9:458:15 | ... * ... | 1.0 | -| test.c:458:14:458:15 | ip | 1.0 | -| test.c:459:9:459:20 | (...) | 1.0 | -| test.c:459:9:459:25 | ... * ... | 1.0 | -| test.c:459:9:459:49 | ... + ... | 1.0 | -| test.c:459:10:459:10 | 2 | 1.0 | -| test.c:459:10:459:10 | (unsigned int)... | 1.0 | -| test.c:459:10:459:15 | ... * ... | 1.0 | -| test.c:459:10:459:19 | ... + ... | 1.0 | -| test.c:459:14:459:15 | ip | 1.0 | -| test.c:459:19:459:19 | 1 | 1.0 | -| test.c:459:19:459:19 | (unsigned int)... | 1.0 | -| test.c:459:24:459:25 | 14 | 1.0 | -| test.c:459:24:459:25 | (unsigned int)... | 1.0 | -| test.c:459:29:459:44 | (...) | 1.0 | -| test.c:459:29:459:49 | ... * ... | 1.0 | -| test.c:459:30:459:30 | 2 | 1.0 | -| test.c:459:30:459:30 | (unsigned int)... | 1.0 | -| test.c:459:30:459:35 | ... * ... | 1.0 | -| test.c:459:30:459:39 | ... + ... | 1.0 | -| test.c:459:30:459:43 | ... + ... | 1.0 | -| test.c:459:34:459:35 | ip | 1.0 | -| test.c:459:39:459:39 | 1 | 1.0 | -| test.c:459:39:459:39 | (unsigned int)... | 1.0 | -| test.c:459:43:459:43 | 1 | 1.0 | -| test.c:459:43:459:43 | (unsigned int)... | 1.0 | -| test.c:459:48:459:49 | 17 | 1.0 | -| test.c:459:48:459:49 | (unsigned int)... | 1.0 | -| test.c:460:5:542:26 | (...) | 9.29462083211502E84 | -| test.c:460:6:460:6 | 2 | 1.0 | -| test.c:460:6:460:6 | (unsigned int)... | 1.0 | -| test.c:460:6:460:23 | ... * ... | 2.0 | -| test.c:460:6:479:42 | ... + ... | 4.524508125E10 | -| test.c:460:6:499:24 | ... > ... | 1.0 | -| test.c:460:6:542:25 | ... ? ... : ... | 9.29462083211502E84 | -| test.c:460:10:460:23 | (...) | 2.0 | -| test.c:460:11:460:12 | ip | 2.0 | -| test.c:460:11:460:17 | ... * ... | 2.0 | -| test.c:460:11:460:22 | ... + ... | 2.0 | -| test.c:460:16:460:17 | 14 | 1.0 | -| test.c:460:16:460:17 | (unsigned int)... | 1.0 | -| test.c:460:21:460:22 | 32 | 1.0 | -| test.c:460:21:460:22 | (unsigned int)... | 1.0 | -| test.c:461:7:479:42 | (...) | 2.2622540625E10 | -| test.c:461:8:461:8 | 4 | 1.0 | -| test.c:461:8:461:8 | (unsigned int)... | 1.0 | -| test.c:461:8:461:25 | ... * ... | 2.0 | -| test.c:461:8:462:26 | ... + ... | 4.0 | -| test.c:461:8:463:26 | ... + ... | 8.0 | -| test.c:461:8:468:22 | ... + ... | 1000.0 | -| test.c:461:8:469:37 | ... > ... | 1.0 | -| test.c:461:8:479:41 | ... ? ... : ... | 2.2622540625E10 | -| test.c:461:12:461:25 | (...) | 2.0 | -| test.c:461:13:461:14 | ip | 2.0 | -| test.c:461:13:461:19 | ... * ... | 2.0 | -| test.c:461:13:461:24 | ... + ... | 2.0 | -| test.c:461:18:461:19 | 14 | 1.0 | -| test.c:461:18:461:19 | (unsigned int)... | 1.0 | -| test.c:461:23:461:24 | 32 | 1.0 | -| test.c:461:23:461:24 | (unsigned int)... | 1.0 | -| test.c:462:9:462:26 | (...) | 2.0 | -| test.c:462:10:462:10 | 2 | 1.0 | -| test.c:462:10:462:10 | (unsigned int)... | 1.0 | -| test.c:462:10:462:15 | ... * ... | 2.0 | -| test.c:462:10:462:20 | ... * ... | 2.0 | -| test.c:462:10:462:25 | ... + ... | 2.0 | -| test.c:462:14:462:15 | ip | 2.0 | -| test.c:462:19:462:20 | 14 | 1.0 | -| test.c:462:19:462:20 | (unsigned int)... | 1.0 | -| test.c:462:24:462:25 | 32 | 1.0 | -| test.c:462:24:462:25 | (unsigned int)... | 1.0 | -| test.c:463:9:463:9 | 2 | 1.0 | -| test.c:463:9:463:9 | (unsigned int)... | 1.0 | -| test.c:463:9:463:26 | ... * ... | 2.0 | -| test.c:463:13:463:26 | (...) | 2.0 | -| test.c:463:14:463:15 | ip | 2.0 | -| test.c:463:14:463:20 | ... * ... | 2.0 | -| test.c:463:14:463:25 | ... + ... | 2.0 | -| test.c:463:19:463:20 | 14 | 1.0 | -| test.c:463:19:463:20 | (unsigned int)... | 1.0 | -| test.c:463:24:463:25 | 64 | 1.0 | -| test.c:463:24:463:25 | (unsigned int)... | 1.0 | -| test.c:464:9:468:22 | (...) | 125.0 | -| test.c:464:10:464:21 | (...) | 2.0 | -| test.c:464:10:464:26 | ... * ... | 2.0 | -| test.c:464:10:464:80 | ... > ... | 1.0 | -| test.c:464:10:468:21 | ... ? ... : ... | 125.0 | -| test.c:464:11:464:11 | 2 | 1.0 | -| test.c:464:11:464:11 | (unsigned int)... | 1.0 | -| test.c:464:11:464:16 | ... * ... | 2.0 | -| test.c:464:11:464:20 | ... + ... | 2.0 | -| test.c:464:15:464:16 | ip | 2.0 | -| test.c:464:20:464:20 | 1 | 1.0 | -| test.c:464:20:464:20 | (unsigned int)... | 1.0 | -| test.c:464:25:464:26 | 14 | 1.0 | -| test.c:464:25:464:26 | (unsigned int)... | 1.0 | -| test.c:464:30:464:80 | (...) | 4.0 | -| test.c:464:31:464:32 | 17 | 1.0 | -| test.c:464:31:464:32 | (unsigned int)... | 1.0 | -| test.c:464:31:464:43 | ... * ... | 2.0 | -| test.c:464:31:464:53 | ... > ... | 1.0 | -| test.c:464:31:464:79 | ... ? ... : ... | 4.0 | -| test.c:464:36:464:43 | (...) | 2.0 | -| test.c:464:37:464:37 | 2 | 1.0 | -| test.c:464:37:464:37 | (unsigned int)... | 1.0 | -| test.c:464:37:464:42 | ... * ... | 2.0 | -| test.c:464:41:464:42 | ip | 2.0 | -| test.c:464:47:464:48 | 17 | 1.0 | -| test.c:464:47:464:48 | (unsigned int)... | 1.0 | -| test.c:464:47:464:53 | ... * ... | 2.0 | -| test.c:464:52:464:53 | ip | 2.0 | -| test.c:464:57:464:58 | 17 | 1.0 | -| test.c:464:57:464:58 | (unsigned int)... | 1.0 | -| test.c:464:57:464:69 | ... * ... | 2.0 | -| test.c:464:62:464:69 | (...) | 2.0 | -| test.c:464:63:464:63 | 2 | 1.0 | -| test.c:464:63:464:63 | (unsigned int)... | 1.0 | -| test.c:464:63:464:68 | ... * ... | 2.0 | -| test.c:464:67:464:68 | ip | 2.0 | -| test.c:464:73:464:74 | 17 | 1.0 | -| test.c:464:73:464:74 | (unsigned int)... | 1.0 | -| test.c:464:73:464:79 | ... * ... | 2.0 | -| test.c:464:78:464:79 | ip | 2.0 | -| test.c:465:13:465:24 | (...) | 5.0 | -| test.c:465:13:465:29 | ... * ... | 5.0 | -| test.c:465:14:465:14 | 2 | 1.0 | -| test.c:465:14:465:14 | (unsigned int)... | 1.0 | -| test.c:465:14:465:19 | ... * ... | 5.0 | -| test.c:465:14:465:23 | ... + ... | 5.0 | -| test.c:465:18:465:19 | ip | 5.0 | -| test.c:465:23:465:23 | 1 | 1.0 | -| test.c:465:23:465:23 | (unsigned int)... | 1.0 | -| test.c:465:28:465:29 | 14 | 1.0 | -| test.c:465:28:465:29 | (unsigned int)... | 1.0 | -| test.c:466:13:466:14 | 14 | 1.0 | -| test.c:466:13:466:14 | (unsigned int)... | 1.0 | -| test.c:466:13:466:25 | ... * ... | 5.0 | -| test.c:466:13:466:35 | ... > ... | 1.0 | -| test.c:466:13:468:21 | ... ? ... : ... | 25.0 | -| test.c:466:18:466:25 | (...) | 5.0 | -| test.c:466:19:466:19 | 2 | 1.0 | -| test.c:466:19:466:19 | (unsigned int)... | 1.0 | -| test.c:466:19:466:24 | ... * ... | 5.0 | -| test.c:466:23:466:24 | ip | 5.0 | -| test.c:466:29:466:30 | 17 | 1.0 | -| test.c:466:29:466:30 | (unsigned int)... | 1.0 | -| test.c:466:29:466:35 | ... * ... | 5.0 | -| test.c:466:34:466:35 | ip | 5.0 | -| test.c:467:15:467:16 | 14 | 1.0 | -| test.c:467:15:467:16 | (unsigned int)... | 1.0 | -| test.c:467:15:467:27 | ... * ... | 5.0 | -| test.c:467:20:467:27 | (...) | 5.0 | -| test.c:467:21:467:21 | 2 | 1.0 | -| test.c:467:21:467:21 | (unsigned int)... | 1.0 | -| test.c:467:21:467:26 | ... * ... | 5.0 | -| test.c:467:25:467:26 | ip | 5.0 | -| test.c:468:15:468:16 | 14 | 1.0 | -| test.c:468:15:468:16 | (unsigned int)... | 1.0 | -| test.c:468:15:468:21 | ... * ... | 5.0 | -| test.c:468:20:468:21 | ip | 5.0 | -| test.c:469:7:469:7 | 2 | 1.0 | -| test.c:469:7:469:7 | (unsigned int)... | 1.0 | -| test.c:469:7:469:12 | ... * ... | 15.0 | -| test.c:469:7:469:17 | ... * ... | 15.0 | -| test.c:469:7:469:37 | ... + ... | 225.0 | -| test.c:469:11:469:12 | ip | 15.0 | -| test.c:469:16:469:17 | 14 | 1.0 | -| test.c:469:16:469:17 | (unsigned int)... | 1.0 | -| test.c:469:21:469:32 | (...) | 15.0 | -| test.c:469:21:469:37 | ... * ... | 15.0 | -| test.c:469:22:469:22 | 2 | 1.0 | -| test.c:469:22:469:22 | (unsigned int)... | 1.0 | -| test.c:469:22:469:27 | ... * ... | 15.0 | -| test.c:469:22:469:31 | ... + ... | 15.0 | -| test.c:469:26:469:27 | ip | 15.0 | -| test.c:469:31:469:31 | 1 | 1.0 | -| test.c:469:31:469:31 | (unsigned int)... | 1.0 | -| test.c:469:36:469:37 | 17 | 1.0 | -| test.c:469:36:469:37 | (unsigned int)... | 1.0 | -| test.c:470:11:470:11 | 4 | 1.0 | -| test.c:470:11:470:11 | (unsigned int)... | 1.0 | -| test.c:470:11:470:28 | ... * ... | 15.0 | -| test.c:470:11:471:28 | ... + ... | 225.0 | -| test.c:470:11:472:28 | ... + ... | 3375.0 | -| test.c:470:11:478:24 | ... + ... | 1.00544625E8 | -| test.c:470:15:470:28 | (...) | 15.0 | -| test.c:470:16:470:17 | ip | 15.0 | -| test.c:470:16:470:22 | ... * ... | 15.0 | -| test.c:470:16:470:27 | ... + ... | 15.0 | -| test.c:470:21:470:22 | 14 | 1.0 | -| test.c:470:21:470:22 | (unsigned int)... | 1.0 | -| test.c:470:26:470:27 | 32 | 1.0 | -| test.c:470:26:470:27 | (unsigned int)... | 1.0 | -| test.c:471:11:471:28 | (...) | 15.0 | -| test.c:471:12:471:12 | 2 | 1.0 | -| test.c:471:12:471:12 | (unsigned int)... | 1.0 | -| test.c:471:12:471:17 | ... * ... | 15.0 | -| test.c:471:12:471:22 | ... * ... | 15.0 | -| test.c:471:12:471:27 | ... + ... | 15.0 | -| test.c:471:16:471:17 | ip | 15.0 | -| test.c:471:21:471:22 | 14 | 1.0 | +| test.c:415:34:415:43 | 0.4743882700000000008 | 1.0 | +| test.c:415:47:415:56 | 0.1433388700000000071 | 1.0 | +| test.c:415:60:415:69 | 0.3527920299999999787 | 1.0 | +| test.c:415:73:415:82 | 0.3920645799999999959 | 1.0 | +| test.c:415:86:415:95 | 0.2154022499999999896 | 1.0 | +| test.c:415:99:415:108 | 0.4049680500000000238 | 1.0 | +| test.c:416:14:416:14 | m | 2.0 | +| test.c:416:14:416:108 | ... ? ... : ... | 1.0 | +| test.c:416:18:416:18 | n | 3.0 | +| test.c:416:18:416:95 | ... ? ... : ... | 1.0 | +| test.c:416:22:416:22 | o | 3.0 | +| test.c:416:22:416:82 | ... ? ... : ... | 1.0 | +| test.c:416:26:416:26 | p | 3.0 | +| test.c:416:26:416:69 | ... ? ... : ... | 1.0 | +| test.c:416:30:416:30 | q | 3.0 | +| test.c:416:30:416:56 | ... ? ... : ... | 1.0 | +| test.c:416:34:416:43 | 0.3418334800000000229 | 1.0 | +| test.c:416:47:416:56 | 0.3533464000000000049 | 1.0 | +| test.c:416:60:416:69 | 0.2224785300000000077 | 1.0 | +| test.c:416:73:416:82 | 0.326618929999999974 | 1.0 | +| test.c:416:86:416:95 | 0.5927046500000000551 | 1.0 | +| test.c:416:99:416:108 | 0.5297741000000000255 | 1.0 | +| test.c:417:14:417:14 | m | 4.0 | +| test.c:417:14:417:108 | ... ? ... : ... | 1.0 | +| test.c:417:18:417:18 | n | 9.0 | +| test.c:417:18:417:95 | ... ? ... : ... | 1.0 | +| test.c:417:22:417:22 | o | 9.0 | +| test.c:417:22:417:82 | ... ? ... : ... | 1.0 | +| test.c:417:26:417:26 | p | 9.0 | +| test.c:417:26:417:69 | ... ? ... : ... | 1.0 | +| test.c:417:30:417:30 | q | 9.0 | +| test.c:417:30:417:56 | ... ? ... : ... | 1.0 | +| test.c:417:34:417:43 | 0.774296030000000024 | 1.0 | +| test.c:417:47:417:56 | 0.3147808400000000062 | 1.0 | +| test.c:417:60:417:69 | 0.3123551399999999756 | 1.0 | +| test.c:417:73:417:82 | 0.05121255999999999725 | 1.0 | +| test.c:417:86:417:95 | 0.7931074500000000471 | 1.0 | +| test.c:417:99:417:108 | 0.6798145100000000385 | 1.0 | +| test.c:418:14:418:14 | m | 8.0 | +| test.c:418:14:418:108 | ... ? ... : ... | 1.0 | +| test.c:418:18:418:18 | n | 27.0 | +| test.c:418:18:418:95 | ... ? ... : ... | 1.0 | +| test.c:418:22:418:22 | o | 27.0 | +| test.c:418:22:418:82 | ... ? ... : ... | 1.0 | +| test.c:418:26:418:26 | p | 27.0 | +| test.c:418:26:418:69 | ... ? ... : ... | 1.0 | +| test.c:418:30:418:30 | q | 27.0 | +| test.c:418:30:418:56 | ... ? ... : ... | 1.0 | +| test.c:418:34:418:43 | 0.4472955599999999809 | 1.0 | +| test.c:418:47:418:56 | 0.8059920200000000312 | 1.0 | +| test.c:418:60:418:69 | 0.9899726199999999698 | 1.0 | +| test.c:418:73:418:82 | 0.5995273199999999747 | 1.0 | +| test.c:418:86:418:95 | 0.3697694799999999837 | 1.0 | +| test.c:418:99:418:108 | 0.8386683499999999514 | 1.0 | +| test.c:419:14:419:14 | m | 16.0 | +| test.c:419:14:419:108 | ... ? ... : ... | 1.0 | +| test.c:419:18:419:18 | n | 81.0 | +| test.c:419:18:419:95 | ... ? ... : ... | 1.0 | +| test.c:419:22:419:22 | o | 81.0 | +| test.c:419:22:419:82 | ... ? ... : ... | 1.0 | +| test.c:419:26:419:26 | p | 81.0 | +| test.c:419:26:419:69 | ... ? ... : ... | 1.0 | +| test.c:419:30:419:30 | q | 81.0 | +| test.c:419:30:419:56 | ... ? ... : ... | 1.0 | +| test.c:419:34:419:43 | 0.4931182800000000199 | 1.0 | +| test.c:419:47:419:56 | 0.9038991100000000056 | 1.0 | +| test.c:419:60:419:69 | 0.1059771199999999941 | 1.0 | +| test.c:419:73:419:82 | 0.2177842600000000073 | 1.0 | +| test.c:419:86:419:95 | 0.7248596600000000167 | 1.0 | +| test.c:419:99:419:108 | 0.6873487400000000136 | 1.0 | +| test.c:420:14:420:14 | m | 32.0 | +| test.c:420:14:420:108 | ... ? ... : ... | 1.0 | +| test.c:420:18:420:18 | n | 243.0 | +| test.c:420:18:420:95 | ... ? ... : ... | 1.0 | +| test.c:420:22:420:22 | o | 243.0 | +| test.c:420:22:420:82 | ... ? ... : ... | 1.0 | +| test.c:420:26:420:26 | p | 243.0 | +| test.c:420:26:420:69 | ... ? ... : ... | 1.0 | +| test.c:420:30:420:30 | q | 243.0 | +| test.c:420:30:420:56 | ... ? ... : ... | 1.0 | +| test.c:420:34:420:43 | 0.4745284799999999747 | 1.0 | +| test.c:420:47:420:56 | 0.107866500000000004 | 1.0 | +| test.c:420:60:420:69 | 0.1188457599999999947 | 1.0 | +| test.c:420:73:420:82 | 0.7616405200000000431 | 1.0 | +| test.c:420:86:420:95 | 0.3480889200000000239 | 1.0 | +| test.c:420:99:420:108 | 0.584408649999999974 | 1.0 | +| test.c:421:14:421:14 | m | 64.0 | +| test.c:421:14:421:108 | ... ? ... : ... | 1.0 | +| test.c:421:18:421:18 | n | 729.0 | +| test.c:421:18:421:95 | ... ? ... : ... | 1.0 | +| test.c:421:22:421:22 | o | 729.0 | +| test.c:421:22:421:82 | ... ? ... : ... | 1.0 | +| test.c:421:26:421:26 | p | 729.0 | +| test.c:421:26:421:69 | ... ? ... : ... | 1.0 | +| test.c:421:30:421:30 | q | 729.0 | +| test.c:421:30:421:56 | ... ? ... : ... | 1.0 | +| test.c:421:34:421:43 | 0.02524326 | 1.0 | +| test.c:421:47:421:56 | 0.8290504600000000446 | 1.0 | +| test.c:421:60:421:69 | 0.95823075000000002 | 1.0 | +| test.c:421:73:421:82 | 0.1251655799999999985 | 1.0 | +| test.c:421:86:421:95 | 0.8523517900000000536 | 1.0 | +| test.c:421:99:421:108 | 0.3623238400000000081 | 1.0 | +| test.c:422:14:422:14 | m | 128.0 | +| test.c:422:14:422:108 | ... ? ... : ... | 1.0 | +| test.c:422:18:422:18 | n | 2187.0 | +| test.c:422:18:422:95 | ... ? ... : ... | 1.0 | +| test.c:422:22:422:22 | o | 2187.0 | +| test.c:422:22:422:82 | ... ? ... : ... | 1.0 | +| test.c:422:26:422:26 | p | 2187.0 | +| test.c:422:26:422:69 | ... ? ... : ... | 1.0 | +| test.c:422:30:422:30 | q | 2187.0 | +| test.c:422:30:422:56 | ... ? ... : ... | 1.0 | +| test.c:422:34:422:43 | 0.3870862600000000153 | 1.0 | +| test.c:422:47:422:56 | 0.3287604399999999871 | 1.0 | +| test.c:422:60:422:69 | 0.1496348500000000137 | 1.0 | +| test.c:422:73:422:82 | 0.4504110800000000192 | 1.0 | +| test.c:422:86:422:95 | 0.4864090899999999884 | 1.0 | +| test.c:422:99:422:108 | 0.8433127200000000157 | 1.0 | +| test.c:423:14:423:14 | m | 256.0 | +| test.c:423:14:423:108 | ... ? ... : ... | 1.0 | +| test.c:423:18:423:18 | n | 6561.0 | +| test.c:423:18:423:95 | ... ? ... : ... | 1.0 | +| test.c:423:22:423:22 | o | 6561.0 | +| test.c:423:22:423:82 | ... ? ... : ... | 1.0 | +| test.c:423:26:423:26 | p | 6561.0 | +| test.c:423:26:423:69 | ... ? ... : ... | 1.0 | +| test.c:423:30:423:30 | q | 6561.0 | +| test.c:423:30:423:56 | ... ? ... : ... | 1.0 | +| test.c:423:34:423:43 | 0.1575506299999999971 | 1.0 | +| test.c:423:47:423:56 | 0.7708683299999999905 | 1.0 | +| test.c:423:60:423:69 | 0.2642848099999999811 | 1.0 | +| test.c:423:73:423:82 | 0.1480050800000000111 | 1.0 | +| test.c:423:86:423:95 | 0.374281430000000026 | 1.0 | +| test.c:423:99:423:108 | 0.05328182000000000057 | 1.0 | +| test.c:424:14:424:14 | m | 512.0 | +| test.c:424:14:424:108 | ... ? ... : ... | 1.0 | +| test.c:424:18:424:18 | n | 19683.0 | +| test.c:424:18:424:95 | ... ? ... : ... | 1.0 | +| test.c:424:22:424:22 | o | 19683.0 | +| test.c:424:22:424:82 | ... ? ... : ... | 1.0 | +| test.c:424:26:424:26 | p | 19683.0 | +| test.c:424:26:424:69 | ... ? ... : ... | 1.0 | +| test.c:424:30:424:30 | q | 19683.0 | +| test.c:424:30:424:56 | ... ? ... : ... | 1.0 | +| test.c:424:34:424:43 | 0.4173653600000000186 | 1.0 | +| test.c:424:47:424:56 | 0.7682662799999999681 | 1.0 | +| test.c:424:60:424:69 | 0.2764323799999999776 | 1.0 | +| test.c:424:73:424:82 | 0.5567927400000000082 | 1.0 | +| test.c:424:86:424:95 | 0.3946885700000000163 | 1.0 | +| test.c:424:99:424:108 | 0.6907214400000000198 | 1.0 | +| test.c:425:14:425:14 | m | 1024.0 | +| test.c:425:14:425:108 | ... ? ... : ... | 1.0 | +| test.c:425:18:425:18 | n | 59049.0 | +| test.c:425:18:425:95 | ... ? ... : ... | 1.0 | +| test.c:425:22:425:22 | o | 59049.0 | +| test.c:425:22:425:82 | ... ? ... : ... | 1.0 | +| test.c:425:26:425:26 | p | 59049.0 | +| test.c:425:26:425:69 | ... ? ... : ... | 1.0 | +| test.c:425:30:425:30 | q | 59049.0 | +| test.c:425:30:425:56 | ... ? ... : ... | 1.0 | +| test.c:425:34:425:43 | 0.8895534499999999678 | 1.0 | +| test.c:425:47:425:56 | 0.2990482400000000207 | 1.0 | +| test.c:425:60:425:69 | 0.7624258299999999711 | 1.0 | +| test.c:425:73:425:82 | 0.2051910999999999874 | 1.0 | +| test.c:425:86:425:95 | 0.8874555899999999609 | 1.0 | +| test.c:425:99:425:108 | 0.8137279800000000174 | 1.0 | +| test.c:426:14:426:14 | m | 2048.0 | +| test.c:426:14:426:108 | ... ? ... : ... | 1.0 | +| test.c:426:18:426:18 | n | 177147.0 | +| test.c:426:18:426:95 | ... ? ... : ... | 1.0 | +| test.c:426:22:426:22 | o | 177147.0 | +| test.c:426:22:426:82 | ... ? ... : ... | 1.0 | +| test.c:426:26:426:26 | p | 177147.0 | +| test.c:426:26:426:69 | ... ? ... : ... | 1.0 | +| test.c:426:30:426:30 | q | 177147.0 | +| test.c:426:30:426:56 | ... ? ... : ... | 1.0 | +| test.c:426:34:426:43 | 0.4218627600000000033 | 1.0 | +| test.c:426:47:426:56 | 0.5384335799999999672 | 1.0 | +| test.c:426:60:426:69 | 0.4499667900000000054 | 1.0 | +| test.c:426:73:426:82 | 0.1320411400000000013 | 1.0 | +| test.c:426:86:426:95 | 0.5203124099999999475 | 1.0 | +| test.c:426:99:426:108 | 0.4276264699999999808 | 1.0 | +| test.c:432:19:432:19 | a | 1.0 | +| test.c:432:19:432:23 | ... + ... | 1.0 | +| test.c:432:19:432:27 | ... + ... | 1.0 | +| test.c:432:19:432:31 | ... + ... | 1.0 | +| test.c:432:19:432:35 | ... + ... | 1.0 | +| test.c:432:19:432:39 | ... + ... | 1.0 | +| test.c:432:19:432:43 | ... + ... | 1.0 | +| test.c:432:19:432:47 | ... + ... | 1.0 | +| test.c:432:19:432:51 | ... + ... | 1.0 | +| test.c:432:19:432:55 | ... + ... | 1.0 | +| test.c:432:19:432:59 | ... + ... | 1.0 | +| test.c:432:19:432:63 | ... + ... | 1.0 | +| test.c:432:23:432:23 | b | 1.0 | +| test.c:432:27:432:27 | c | 1.0 | +| test.c:432:31:432:31 | d | 1.0 | +| test.c:432:35:432:35 | e | 1.0 | +| test.c:432:39:432:39 | f | 1.0 | +| test.c:432:43:432:43 | g | 1.0 | +| test.c:432:47:432:47 | h | 1.0 | +| test.c:432:51:432:51 | i | 1.0 | +| test.c:432:55:432:55 | j | 1.0 | +| test.c:432:59:432:59 | k | 1.0 | +| test.c:432:63:432:63 | l | 1.0 | +| test.c:434:10:434:15 | output | 1.0 | +| test.c:441:7:441:9 | rhs | 1.0 | +| test.c:441:7:441:14 | ... < ... | 1.0 | +| test.c:441:13:441:14 | 12 | 1.0 | +| test.c:441:13:441:14 | (unsigned int)... | 1.0 | +| test.c:441:19:441:21 | rhs | 1.0 | +| test.c:441:19:441:26 | ... << ... | 1.0 | +| test.c:441:26:441:26 | 1 | 1.0 | +| test.c:442:7:442:9 | rhs | 2.0 | +| test.c:442:7:442:14 | ... < ... | 1.0 | +| test.c:442:13:442:14 | 13 | 1.0 | +| test.c:442:13:442:14 | (unsigned int)... | 1.0 | +| test.c:442:19:442:21 | rhs | 2.0 | +| test.c:442:19:442:26 | ... << ... | 1.0 | +| test.c:442:26:442:26 | 1 | 1.0 | +| test.c:443:7:443:9 | rhs | 3.0 | +| test.c:443:7:443:14 | ... < ... | 1.0 | +| test.c:443:13:443:14 | 14 | 1.0 | +| test.c:443:13:443:14 | (unsigned int)... | 1.0 | +| test.c:443:19:443:21 | rhs | 3.0 | +| test.c:443:19:443:26 | ... << ... | 1.0 | +| test.c:443:26:443:26 | 1 | 1.0 | +| test.c:444:7:444:9 | rhs | 4.0 | +| test.c:444:7:444:14 | ... < ... | 1.0 | +| test.c:444:13:444:14 | 15 | 1.0 | +| test.c:444:13:444:14 | (unsigned int)... | 1.0 | +| test.c:444:19:444:21 | rhs | 4.0 | +| test.c:444:19:444:26 | ... << ... | 1.0 | +| test.c:444:26:444:26 | 1 | 1.0 | +| test.c:445:7:445:9 | rhs | 5.0 | +| test.c:445:7:445:14 | ... < ... | 1.0 | +| test.c:445:13:445:14 | 16 | 1.0 | +| test.c:445:13:445:14 | (unsigned int)... | 1.0 | +| test.c:445:19:445:21 | rhs | 5.0 | +| test.c:445:19:445:26 | ... << ... | 1.0 | +| test.c:445:26:445:26 | 1 | 1.0 | +| test.c:446:10:446:12 | (int)... | 6.0 | +| test.c:446:10:446:12 | rhs | 6.0 | +| test.c:450:7:450:7 | a | 1.0 | +| test.c:450:7:450:13 | ... == ... | 1.0 | +| test.c:450:12:450:13 | 17 | 1.0 | +| test.c:451:9:451:9 | b | 1.0 | +| test.c:451:9:451:15 | ... == ... | 1.0 | +| test.c:451:14:451:15 | 23 | 1.0 | +| test.c:452:7:452:7 | a | 1.0 | +| test.c:452:7:452:12 | ... += ... | 1.0 | +| test.c:452:12:452:12 | b | 1.0 | +| test.c:454:9:454:9 | a | 2.0 | +| test.c:454:9:454:15 | ... == ... | 1.0 | +| test.c:454:14:454:15 | 18 | 1.0 | +| test.c:455:7:455:7 | b | 1.0 | +| test.c:455:7:455:12 | ... = ... | 1.0 | +| test.c:455:11:455:12 | 10 | 1.0 | +| test.c:460:11:460:11 | a | 4.0 | +| test.c:460:11:460:15 | ... + ... | 16.0 | +| test.c:460:15:460:15 | b | 4.0 | +| test.c:461:10:461:10 | a | 4.0 | +| test.c:461:10:461:14 | ... + ... | 16.0 | +| test.c:461:14:461:14 | b | 4.0 | +| test.c:468:4:470:50 | (...) | 1.0 | +| test.c:468:4:553:26 | ... > ... | 1.0 | +| test.c:468:4:642:27 | ... ? ... : ... | 1.297918419127476E201 | +| test.c:468:5:468:6 | 14 | 1.0 | +| test.c:468:5:468:6 | (unsigned int)... | 1.0 | +| test.c:468:5:468:11 | ... * ... | 1.0 | +| test.c:468:5:468:55 | ... > ... | 1.0 | +| test.c:468:5:470:49 | ... ? ... : ... | 1.0 | +| test.c:468:10:468:11 | ip | 1.0 | +| test.c:468:15:468:26 | (...) | 1.0 | +| test.c:468:15:468:31 | ... * ... | 1.0 | +| test.c:468:15:468:55 | ... + ... | 1.0 | +| test.c:468:16:468:16 | 2 | 1.0 | +| test.c:468:16:468:16 | (unsigned int)... | 1.0 | +| test.c:468:16:468:21 | ... * ... | 1.0 | +| test.c:468:16:468:25 | ... + ... | 1.0 | +| test.c:468:20:468:21 | ip | 1.0 | +| test.c:468:25:468:25 | 1 | 1.0 | +| test.c:468:25:468:25 | (unsigned int)... | 1.0 | +| test.c:468:30:468:31 | 17 | 1.0 | +| test.c:468:30:468:31 | (unsigned int)... | 1.0 | +| test.c:468:35:468:50 | (...) | 1.0 | +| test.c:468:35:468:55 | ... * ... | 1.0 | +| test.c:468:36:468:36 | 2 | 1.0 | +| test.c:468:36:468:36 | (unsigned int)... | 1.0 | +| test.c:468:36:468:41 | ... * ... | 1.0 | +| test.c:468:36:468:45 | ... + ... | 1.0 | +| test.c:468:36:468:49 | ... + ... | 1.0 | +| test.c:468:40:468:41 | ip | 1.0 | +| test.c:468:45:468:45 | 1 | 1.0 | +| test.c:468:45:468:45 | (unsigned int)... | 1.0 | +| test.c:468:49:468:49 | 1 | 1.0 | +| test.c:468:49:468:49 | (unsigned int)... | 1.0 | +| test.c:468:54:468:55 | 17 | 1.0 | +| test.c:468:54:468:55 | (unsigned int)... | 1.0 | +| test.c:469:9:469:10 | 14 | 1.0 | +| test.c:469:9:469:10 | (unsigned int)... | 1.0 | +| test.c:469:9:469:15 | ... * ... | 1.0 | +| test.c:469:14:469:15 | ip | 1.0 | +| test.c:470:9:470:20 | (...) | 1.0 | +| test.c:470:9:470:25 | ... * ... | 1.0 | +| test.c:470:9:470:49 | ... + ... | 1.0 | +| test.c:470:10:470:10 | 2 | 1.0 | +| test.c:470:10:470:10 | (unsigned int)... | 1.0 | +| test.c:470:10:470:15 | ... * ... | 1.0 | +| test.c:470:10:470:19 | ... + ... | 1.0 | +| test.c:470:14:470:15 | ip | 1.0 | +| test.c:470:19:470:19 | 1 | 1.0 | +| test.c:470:19:470:19 | (unsigned int)... | 1.0 | +| test.c:470:24:470:25 | 14 | 1.0 | +| test.c:470:24:470:25 | (unsigned int)... | 1.0 | +| test.c:470:29:470:44 | (...) | 1.0 | +| test.c:470:29:470:49 | ... * ... | 1.0 | +| test.c:470:30:470:30 | 2 | 1.0 | +| test.c:470:30:470:30 | (unsigned int)... | 1.0 | +| test.c:470:30:470:35 | ... * ... | 1.0 | +| test.c:470:30:470:39 | ... + ... | 1.0 | +| test.c:470:30:470:43 | ... + ... | 1.0 | +| test.c:470:34:470:35 | ip | 1.0 | +| test.c:470:39:470:39 | 1 | 1.0 | +| test.c:470:39:470:39 | (unsigned int)... | 1.0 | +| test.c:470:43:470:43 | 1 | 1.0 | +| test.c:470:43:470:43 | (unsigned int)... | 1.0 | +| test.c:470:48:470:49 | 17 | 1.0 | +| test.c:470:48:470:49 | (unsigned int)... | 1.0 | +| test.c:471:5:553:26 | (...) | 9.29462083211502E84 | +| test.c:471:6:471:6 | 2 | 1.0 | +| test.c:471:6:471:6 | (unsigned int)... | 1.0 | +| test.c:471:6:471:23 | ... * ... | 2.0 | +| test.c:471:6:490:42 | ... + ... | 4.524508125E10 | +| test.c:471:6:510:24 | ... > ... | 1.0 | +| test.c:471:6:553:25 | ... ? ... : ... | 9.29462083211502E84 | +| test.c:471:10:471:23 | (...) | 2.0 | +| test.c:471:11:471:12 | ip | 2.0 | +| test.c:471:11:471:17 | ... * ... | 2.0 | +| test.c:471:11:471:22 | ... + ... | 2.0 | +| test.c:471:16:471:17 | 14 | 1.0 | +| test.c:471:16:471:17 | (unsigned int)... | 1.0 | +| test.c:471:21:471:22 | 32 | 1.0 | | test.c:471:21:471:22 | (unsigned int)... | 1.0 | -| test.c:471:26:471:27 | 32 | 1.0 | -| test.c:471:26:471:27 | (unsigned int)... | 1.0 | -| test.c:472:11:472:11 | 2 | 1.0 | -| test.c:472:11:472:11 | (unsigned int)... | 1.0 | -| test.c:472:11:472:28 | ... * ... | 15.0 | -| test.c:472:15:472:28 | (...) | 15.0 | -| test.c:472:16:472:17 | ip | 15.0 | -| test.c:472:16:472:22 | ... * ... | 15.0 | -| test.c:472:16:472:27 | ... + ... | 15.0 | -| test.c:472:21:472:22 | 14 | 1.0 | -| test.c:472:21:472:22 | (unsigned int)... | 1.0 | -| test.c:472:26:472:27 | 64 | 1.0 | -| test.c:472:26:472:27 | (unsigned int)... | 1.0 | -| test.c:473:11:478:24 | (...) | 29791.0 | -| test.c:473:12:473:23 | (...) | 15.0 | -| test.c:473:12:473:28 | ... * ... | 15.0 | -| test.c:473:12:474:61 | ... > ... | 1.0 | -| test.c:473:12:478:23 | ... ? ... : ... | 29791.0 | -| test.c:473:13:473:13 | 2 | 1.0 | -| test.c:473:13:473:13 | (unsigned int)... | 1.0 | -| test.c:473:13:473:18 | ... * ... | 15.0 | -| test.c:473:13:473:22 | ... + ... | 15.0 | -| test.c:473:17:473:18 | ip | 15.0 | -| test.c:473:22:473:22 | 1 | 1.0 | -| test.c:473:22:473:22 | (unsigned int)... | 1.0 | -| test.c:473:27:473:28 | 14 | 1.0 | -| test.c:473:27:473:28 | (unsigned int)... | 1.0 | -| test.c:474:11:474:61 | (...) | 225.0 | -| test.c:474:12:474:13 | 14 | 1.0 | -| test.c:474:12:474:13 | (unsigned int)... | 1.0 | -| test.c:474:12:474:24 | ... * ... | 15.0 | -| test.c:474:12:474:34 | ... > ... | 1.0 | -| test.c:474:12:474:60 | ... ? ... : ... | 225.0 | -| test.c:474:17:474:24 | (...) | 15.0 | -| test.c:474:18:474:18 | 2 | 1.0 | -| test.c:474:18:474:18 | (unsigned int)... | 1.0 | -| test.c:474:18:474:23 | ... * ... | 15.0 | -| test.c:474:22:474:23 | ip | 15.0 | -| test.c:474:28:474:29 | 17 | 1.0 | -| test.c:474:28:474:29 | (unsigned int)... | 1.0 | -| test.c:474:28:474:34 | ... * ... | 15.0 | -| test.c:474:33:474:34 | ip | 15.0 | -| test.c:474:38:474:39 | 17 | 1.0 | -| test.c:474:38:474:39 | (unsigned int)... | 1.0 | -| test.c:474:38:474:50 | ... * ... | 15.0 | -| test.c:474:43:474:50 | (...) | 15.0 | -| test.c:474:44:474:44 | 2 | 1.0 | -| test.c:474:44:474:44 | (unsigned int)... | 1.0 | -| test.c:474:44:474:49 | ... * ... | 15.0 | -| test.c:474:48:474:49 | ip | 15.0 | -| test.c:474:54:474:55 | 17 | 1.0 | -| test.c:474:54:474:55 | (unsigned int)... | 1.0 | -| test.c:474:54:474:60 | ... * ... | 15.0 | -| test.c:474:59:474:60 | ip | 15.0 | -| test.c:475:15:475:26 | (...) | 31.0 | -| test.c:475:15:475:31 | ... * ... | 31.0 | -| test.c:475:16:475:16 | 2 | 1.0 | -| test.c:475:16:475:16 | (unsigned int)... | 1.0 | -| test.c:475:16:475:21 | ... * ... | 31.0 | -| test.c:475:16:475:25 | ... + ... | 31.0 | -| test.c:475:20:475:21 | ip | 31.0 | -| test.c:475:25:475:25 | 1 | 1.0 | -| test.c:475:25:475:25 | (unsigned int)... | 1.0 | -| test.c:475:30:475:31 | 14 | 1.0 | -| test.c:475:30:475:31 | (unsigned int)... | 1.0 | -| test.c:476:15:476:16 | 14 | 1.0 | -| test.c:476:15:476:16 | (unsigned int)... | 1.0 | -| test.c:476:15:476:27 | ... * ... | 31.0 | -| test.c:476:15:476:37 | ... > ... | 1.0 | -| test.c:476:15:478:23 | ... ? ... : ... | 961.0 | -| test.c:476:20:476:27 | (...) | 31.0 | -| test.c:476:21:476:21 | 2 | 1.0 | -| test.c:476:21:476:21 | (unsigned int)... | 1.0 | -| test.c:476:21:476:26 | ... * ... | 31.0 | -| test.c:476:25:476:26 | ip | 31.0 | -| test.c:476:31:476:32 | 17 | 1.0 | -| test.c:476:31:476:32 | (unsigned int)... | 1.0 | -| test.c:476:31:476:37 | ... * ... | 31.0 | -| test.c:476:36:476:37 | ip | 31.0 | -| test.c:477:17:477:18 | 14 | 1.0 | -| test.c:477:17:477:18 | (unsigned int)... | 1.0 | -| test.c:477:17:477:29 | ... * ... | 31.0 | -| test.c:477:22:477:29 | (...) | 31.0 | -| test.c:477:23:477:23 | 2 | 1.0 | -| test.c:477:23:477:23 | (unsigned int)... | 1.0 | -| test.c:477:23:477:28 | ... * ... | 31.0 | -| test.c:477:27:477:28 | ip | 31.0 | -| test.c:478:17:478:18 | 14 | 1.0 | -| test.c:478:17:478:18 | (unsigned int)... | 1.0 | -| test.c:478:17:478:23 | ... * ... | 31.0 | -| test.c:478:22:478:23 | ip | 31.0 | -| test.c:479:11:479:11 | 2 | 1.0 | -| test.c:479:11:479:11 | (unsigned int)... | 1.0 | -| test.c:479:11:479:16 | ... * ... | 15.0 | -| test.c:479:11:479:21 | ... * ... | 15.0 | -| test.c:479:11:479:41 | ... + ... | 225.0 | -| test.c:479:15:479:16 | ip | 15.0 | -| test.c:479:20:479:21 | 14 | 1.0 | -| test.c:479:20:479:21 | (unsigned int)... | 1.0 | -| test.c:479:25:479:36 | (...) | 15.0 | -| test.c:479:25:479:41 | ... * ... | 15.0 | -| test.c:479:26:479:26 | 2 | 1.0 | -| test.c:479:26:479:26 | (unsigned int)... | 1.0 | -| test.c:479:26:479:31 | ... * ... | 15.0 | -| test.c:479:26:479:35 | ... + ... | 15.0 | -| test.c:479:30:479:31 | ip | 15.0 | -| test.c:479:35:479:35 | 1 | 1.0 | -| test.c:479:35:479:35 | (unsigned int)... | 1.0 | -| test.c:479:40:479:41 | 17 | 1.0 | -| test.c:479:40:479:41 | (unsigned int)... | 1.0 | -| test.c:480:5:499:24 | (...) | 6.6142118960740864E25 | -| test.c:480:6:480:6 | 4 | 1.0 | -| test.c:480:6:480:6 | (unsigned int)... | 1.0 | -| test.c:480:6:480:23 | ... * ... | 108.0 | -| test.c:480:6:481:24 | ... + ... | 11664.0 | -| test.c:480:6:482:24 | ... + ... | 1259712.0 | -| test.c:480:6:487:20 | ... + ... | 1.2872131505856E13 | -| test.c:480:6:488:55 | ... > ... | 1.0 | -| test.c:480:6:499:23 | ... ? ... : ... | 6.6142118960740864E25 | -| test.c:480:10:480:23 | (...) | 108.0 | -| test.c:480:11:480:12 | ip | 108.0 | -| test.c:480:11:480:17 | ... * ... | 108.0 | -| test.c:480:11:480:22 | ... + ... | 108.0 | +| test.c:472:7:490:42 | (...) | 2.2622540625E10 | +| test.c:472:8:472:8 | 4 | 1.0 | +| test.c:472:8:472:8 | (unsigned int)... | 1.0 | +| test.c:472:8:472:25 | ... * ... | 2.0 | +| test.c:472:8:473:26 | ... + ... | 4.0 | +| test.c:472:8:474:26 | ... + ... | 8.0 | +| test.c:472:8:479:22 | ... + ... | 1000.0 | +| test.c:472:8:480:37 | ... > ... | 1.0 | +| test.c:472:8:490:41 | ... ? ... : ... | 2.2622540625E10 | +| test.c:472:12:472:25 | (...) | 2.0 | +| test.c:472:13:472:14 | ip | 2.0 | +| test.c:472:13:472:19 | ... * ... | 2.0 | +| test.c:472:13:472:24 | ... + ... | 2.0 | +| test.c:472:18:472:19 | 14 | 1.0 | +| test.c:472:18:472:19 | (unsigned int)... | 1.0 | +| test.c:472:23:472:24 | 32 | 1.0 | +| test.c:472:23:472:24 | (unsigned int)... | 1.0 | +| test.c:473:9:473:26 | (...) | 2.0 | +| test.c:473:10:473:10 | 2 | 1.0 | +| test.c:473:10:473:10 | (unsigned int)... | 1.0 | +| test.c:473:10:473:15 | ... * ... | 2.0 | +| test.c:473:10:473:20 | ... * ... | 2.0 | +| test.c:473:10:473:25 | ... + ... | 2.0 | +| test.c:473:14:473:15 | ip | 2.0 | +| test.c:473:19:473:20 | 14 | 1.0 | +| test.c:473:19:473:20 | (unsigned int)... | 1.0 | +| test.c:473:24:473:25 | 32 | 1.0 | +| test.c:473:24:473:25 | (unsigned int)... | 1.0 | +| test.c:474:9:474:9 | 2 | 1.0 | +| test.c:474:9:474:9 | (unsigned int)... | 1.0 | +| test.c:474:9:474:26 | ... * ... | 2.0 | +| test.c:474:13:474:26 | (...) | 2.0 | +| test.c:474:14:474:15 | ip | 2.0 | +| test.c:474:14:474:20 | ... * ... | 2.0 | +| test.c:474:14:474:25 | ... + ... | 2.0 | +| test.c:474:19:474:20 | 14 | 1.0 | +| test.c:474:19:474:20 | (unsigned int)... | 1.0 | +| test.c:474:24:474:25 | 64 | 1.0 | +| test.c:474:24:474:25 | (unsigned int)... | 1.0 | +| test.c:475:9:479:22 | (...) | 125.0 | +| test.c:475:10:475:21 | (...) | 2.0 | +| test.c:475:10:475:26 | ... * ... | 2.0 | +| test.c:475:10:475:80 | ... > ... | 1.0 | +| test.c:475:10:479:21 | ... ? ... : ... | 125.0 | +| test.c:475:11:475:11 | 2 | 1.0 | +| test.c:475:11:475:11 | (unsigned int)... | 1.0 | +| test.c:475:11:475:16 | ... * ... | 2.0 | +| test.c:475:11:475:20 | ... + ... | 2.0 | +| test.c:475:15:475:16 | ip | 2.0 | +| test.c:475:20:475:20 | 1 | 1.0 | +| test.c:475:20:475:20 | (unsigned int)... | 1.0 | +| test.c:475:25:475:26 | 14 | 1.0 | +| test.c:475:25:475:26 | (unsigned int)... | 1.0 | +| test.c:475:30:475:80 | (...) | 4.0 | +| test.c:475:31:475:32 | 17 | 1.0 | +| test.c:475:31:475:32 | (unsigned int)... | 1.0 | +| test.c:475:31:475:43 | ... * ... | 2.0 | +| test.c:475:31:475:53 | ... > ... | 1.0 | +| test.c:475:31:475:79 | ... ? ... : ... | 4.0 | +| test.c:475:36:475:43 | (...) | 2.0 | +| test.c:475:37:475:37 | 2 | 1.0 | +| test.c:475:37:475:37 | (unsigned int)... | 1.0 | +| test.c:475:37:475:42 | ... * ... | 2.0 | +| test.c:475:41:475:42 | ip | 2.0 | +| test.c:475:47:475:48 | 17 | 1.0 | +| test.c:475:47:475:48 | (unsigned int)... | 1.0 | +| test.c:475:47:475:53 | ... * ... | 2.0 | +| test.c:475:52:475:53 | ip | 2.0 | +| test.c:475:57:475:58 | 17 | 1.0 | +| test.c:475:57:475:58 | (unsigned int)... | 1.0 | +| test.c:475:57:475:69 | ... * ... | 2.0 | +| test.c:475:62:475:69 | (...) | 2.0 | +| test.c:475:63:475:63 | 2 | 1.0 | +| test.c:475:63:475:63 | (unsigned int)... | 1.0 | +| test.c:475:63:475:68 | ... * ... | 2.0 | +| test.c:475:67:475:68 | ip | 2.0 | +| test.c:475:73:475:74 | 17 | 1.0 | +| test.c:475:73:475:74 | (unsigned int)... | 1.0 | +| test.c:475:73:475:79 | ... * ... | 2.0 | +| test.c:475:78:475:79 | ip | 2.0 | +| test.c:476:13:476:24 | (...) | 5.0 | +| test.c:476:13:476:29 | ... * ... | 5.0 | +| test.c:476:14:476:14 | 2 | 1.0 | +| test.c:476:14:476:14 | (unsigned int)... | 1.0 | +| test.c:476:14:476:19 | ... * ... | 5.0 | +| test.c:476:14:476:23 | ... + ... | 5.0 | +| test.c:476:18:476:19 | ip | 5.0 | +| test.c:476:23:476:23 | 1 | 1.0 | +| test.c:476:23:476:23 | (unsigned int)... | 1.0 | +| test.c:476:28:476:29 | 14 | 1.0 | +| test.c:476:28:476:29 | (unsigned int)... | 1.0 | +| test.c:477:13:477:14 | 14 | 1.0 | +| test.c:477:13:477:14 | (unsigned int)... | 1.0 | +| test.c:477:13:477:25 | ... * ... | 5.0 | +| test.c:477:13:477:35 | ... > ... | 1.0 | +| test.c:477:13:479:21 | ... ? ... : ... | 25.0 | +| test.c:477:18:477:25 | (...) | 5.0 | +| test.c:477:19:477:19 | 2 | 1.0 | +| test.c:477:19:477:19 | (unsigned int)... | 1.0 | +| test.c:477:19:477:24 | ... * ... | 5.0 | +| test.c:477:23:477:24 | ip | 5.0 | +| test.c:477:29:477:30 | 17 | 1.0 | +| test.c:477:29:477:30 | (unsigned int)... | 1.0 | +| test.c:477:29:477:35 | ... * ... | 5.0 | +| test.c:477:34:477:35 | ip | 5.0 | +| test.c:478:15:478:16 | 14 | 1.0 | +| test.c:478:15:478:16 | (unsigned int)... | 1.0 | +| test.c:478:15:478:27 | ... * ... | 5.0 | +| test.c:478:20:478:27 | (...) | 5.0 | +| test.c:478:21:478:21 | 2 | 1.0 | +| test.c:478:21:478:21 | (unsigned int)... | 1.0 | +| test.c:478:21:478:26 | ... * ... | 5.0 | +| test.c:478:25:478:26 | ip | 5.0 | +| test.c:479:15:479:16 | 14 | 1.0 | +| test.c:479:15:479:16 | (unsigned int)... | 1.0 | +| test.c:479:15:479:21 | ... * ... | 5.0 | +| test.c:479:20:479:21 | ip | 5.0 | +| test.c:480:7:480:7 | 2 | 1.0 | +| test.c:480:7:480:7 | (unsigned int)... | 1.0 | +| test.c:480:7:480:12 | ... * ... | 15.0 | +| test.c:480:7:480:17 | ... * ... | 15.0 | +| test.c:480:7:480:37 | ... + ... | 225.0 | +| test.c:480:11:480:12 | ip | 15.0 | | test.c:480:16:480:17 | 14 | 1.0 | | test.c:480:16:480:17 | (unsigned int)... | 1.0 | -| test.c:480:21:480:22 | 32 | 1.0 | -| test.c:480:21:480:22 | (unsigned int)... | 1.0 | -| test.c:481:7:481:24 | (...) | 108.0 | -| test.c:481:8:481:8 | 2 | 1.0 | -| test.c:481:8:481:8 | (unsigned int)... | 1.0 | -| test.c:481:8:481:13 | ... * ... | 108.0 | -| test.c:481:8:481:18 | ... * ... | 108.0 | -| test.c:481:8:481:23 | ... + ... | 108.0 | -| test.c:481:12:481:13 | ip | 108.0 | -| test.c:481:17:481:18 | 14 | 1.0 | -| test.c:481:17:481:18 | (unsigned int)... | 1.0 | -| test.c:481:22:481:23 | 32 | 1.0 | -| test.c:481:22:481:23 | (unsigned int)... | 1.0 | -| test.c:482:7:482:7 | 2 | 1.0 | -| test.c:482:7:482:7 | (unsigned int)... | 1.0 | -| test.c:482:7:482:24 | ... * ... | 108.0 | -| test.c:482:11:482:24 | (...) | 108.0 | -| test.c:482:12:482:13 | ip | 108.0 | -| test.c:482:12:482:18 | ... * ... | 108.0 | -| test.c:482:12:482:23 | ... + ... | 108.0 | -| test.c:482:17:482:18 | 14 | 1.0 | -| test.c:482:17:482:18 | (unsigned int)... | 1.0 | -| test.c:482:22:482:23 | 64 | 1.0 | -| test.c:482:22:482:23 | (unsigned int)... | 1.0 | -| test.c:483:7:487:20 | (...) | 1.0218313E7 | -| test.c:483:8:483:19 | (...) | 108.0 | -| test.c:483:8:483:24 | ... * ... | 108.0 | -| test.c:483:8:483:78 | ... > ... | 1.0 | -| test.c:483:8:487:19 | ... ? ... : ... | 1.0218313E7 | -| test.c:483:9:483:9 | 2 | 1.0 | -| test.c:483:9:483:9 | (unsigned int)... | 1.0 | -| test.c:483:9:483:14 | ... * ... | 108.0 | -| test.c:483:9:483:18 | ... + ... | 108.0 | -| test.c:483:13:483:14 | ip | 108.0 | -| test.c:483:18:483:18 | 1 | 1.0 | -| test.c:483:18:483:18 | (unsigned int)... | 1.0 | -| test.c:483:23:483:24 | 14 | 1.0 | -| test.c:483:23:483:24 | (unsigned int)... | 1.0 | -| test.c:483:28:483:78 | (...) | 11664.0 | -| test.c:483:29:483:30 | 17 | 1.0 | -| test.c:483:29:483:30 | (unsigned int)... | 1.0 | -| test.c:483:29:483:41 | ... * ... | 108.0 | -| test.c:483:29:483:51 | ... > ... | 1.0 | -| test.c:483:29:483:77 | ... ? ... : ... | 11664.0 | -| test.c:483:34:483:41 | (...) | 108.0 | -| test.c:483:35:483:35 | 2 | 1.0 | -| test.c:483:35:483:35 | (unsigned int)... | 1.0 | -| test.c:483:35:483:40 | ... * ... | 108.0 | -| test.c:483:39:483:40 | ip | 108.0 | -| test.c:483:45:483:46 | 17 | 1.0 | -| test.c:483:45:483:46 | (unsigned int)... | 1.0 | -| test.c:483:45:483:51 | ... * ... | 108.0 | -| test.c:483:50:483:51 | ip | 108.0 | -| test.c:483:55:483:56 | 17 | 1.0 | -| test.c:483:55:483:56 | (unsigned int)... | 1.0 | -| test.c:483:55:483:67 | ... * ... | 108.0 | -| test.c:483:60:483:67 | (...) | 108.0 | -| test.c:483:61:483:61 | 2 | 1.0 | -| test.c:483:61:483:61 | (unsigned int)... | 1.0 | -| test.c:483:61:483:66 | ... * ... | 108.0 | -| test.c:483:65:483:66 | ip | 108.0 | -| test.c:483:71:483:72 | 17 | 1.0 | -| test.c:483:71:483:72 | (unsigned int)... | 1.0 | -| test.c:483:71:483:77 | ... * ... | 108.0 | -| test.c:483:76:483:77 | ip | 108.0 | -| test.c:484:11:484:22 | (...) | 217.0 | -| test.c:484:11:484:27 | ... * ... | 217.0 | -| test.c:484:12:484:12 | 2 | 1.0 | -| test.c:484:12:484:12 | (unsigned int)... | 1.0 | -| test.c:484:12:484:17 | ... * ... | 217.0 | -| test.c:484:12:484:21 | ... + ... | 217.0 | -| test.c:484:16:484:17 | ip | 217.0 | -| test.c:484:21:484:21 | 1 | 1.0 | -| test.c:484:21:484:21 | (unsigned int)... | 1.0 | -| test.c:484:26:484:27 | 14 | 1.0 | -| test.c:484:26:484:27 | (unsigned int)... | 1.0 | -| test.c:485:11:485:12 | 14 | 1.0 | -| test.c:485:11:485:12 | (unsigned int)... | 1.0 | -| test.c:485:11:485:23 | ... * ... | 217.0 | -| test.c:485:11:485:33 | ... > ... | 1.0 | -| test.c:485:11:487:19 | ... ? ... : ... | 47089.0 | -| test.c:485:16:485:23 | (...) | 217.0 | -| test.c:485:17:485:17 | 2 | 1.0 | -| test.c:485:17:485:17 | (unsigned int)... | 1.0 | -| test.c:485:17:485:22 | ... * ... | 217.0 | -| test.c:485:21:485:22 | ip | 217.0 | -| test.c:485:27:485:28 | 17 | 1.0 | -| test.c:485:27:485:28 | (unsigned int)... | 1.0 | -| test.c:485:27:485:33 | ... * ... | 217.0 | -| test.c:485:32:485:33 | ip | 217.0 | -| test.c:486:13:486:14 | 14 | 1.0 | -| test.c:486:13:486:14 | (unsigned int)... | 1.0 | -| test.c:486:13:486:25 | ... * ... | 217.0 | -| test.c:486:18:486:25 | (...) | 217.0 | -| test.c:486:19:486:19 | 2 | 1.0 | -| test.c:486:19:486:19 | (unsigned int)... | 1.0 | -| test.c:486:19:486:24 | ... * ... | 217.0 | -| test.c:486:23:486:24 | ip | 217.0 | -| test.c:487:13:487:14 | 14 | 1.0 | -| test.c:487:13:487:14 | (unsigned int)... | 1.0 | -| test.c:487:13:487:19 | ... * ... | 217.0 | -| test.c:487:18:487:19 | ip | 217.0 | -| test.c:488:5:488:55 | (...) | 423801.0 | -| test.c:488:6:488:7 | 14 | 1.0 | -| test.c:488:6:488:7 | (unsigned int)... | 1.0 | -| test.c:488:6:488:12 | ... * ... | 651.0 | -| test.c:488:6:488:28 | ... > ... | 1.0 | -| test.c:488:6:488:54 | ... ? ... : ... | 423801.0 | -| test.c:488:11:488:12 | ip | 651.0 | -| test.c:488:16:488:23 | (...) | 651.0 | -| test.c:488:16:488:28 | ... * ... | 651.0 | -| test.c:488:17:488:18 | ip | 651.0 | -| test.c:488:17:488:22 | ... + ... | 651.0 | -| test.c:488:22:488:22 | 1 | 1.0 | -| test.c:488:22:488:22 | (unsigned int)... | 1.0 | -| test.c:488:27:488:28 | 17 | 1.0 | -| test.c:488:27:488:28 | (unsigned int)... | 1.0 | -| test.c:488:32:488:33 | 17 | 1.0 | -| test.c:488:32:488:33 | (unsigned int)... | 1.0 | -| test.c:488:32:488:38 | ... * ... | 651.0 | -| test.c:488:37:488:38 | ip | 651.0 | -| test.c:488:42:488:49 | (...) | 651.0 | -| test.c:488:42:488:54 | ... * ... | 651.0 | -| test.c:488:43:488:44 | ip | 651.0 | -| test.c:488:43:488:48 | ... + ... | 651.0 | -| test.c:488:48:488:48 | 1 | 1.0 | -| test.c:488:48:488:48 | (unsigned int)... | 1.0 | -| test.c:488:53:488:54 | 17 | 1.0 | -| test.c:488:53:488:54 | (unsigned int)... | 1.0 | -| test.c:489:9:489:9 | 4 | 1.0 | -| test.c:489:9:489:9 | (unsigned int)... | 1.0 | -| test.c:489:9:489:26 | ... * ... | 1302.0 | -| test.c:489:9:490:26 | ... + ... | 1695204.0 | -| test.c:489:9:491:26 | ... + ... | 2.207155608E9 | -| test.c:489:9:496:22 | ... + ... | 3.9017203216097214E19 | -| test.c:489:13:489:26 | (...) | 1302.0 | -| test.c:489:14:489:15 | ip | 1302.0 | -| test.c:489:14:489:20 | ... * ... | 1302.0 | -| test.c:489:14:489:25 | ... + ... | 1302.0 | -| test.c:489:19:489:20 | 14 | 1.0 | -| test.c:489:19:489:20 | (unsigned int)... | 1.0 | -| test.c:489:24:489:25 | 32 | 1.0 | -| test.c:489:24:489:25 | (unsigned int)... | 1.0 | -| test.c:490:9:490:26 | (...) | 1302.0 | -| test.c:490:10:490:10 | 2 | 1.0 | -| test.c:490:10:490:10 | (unsigned int)... | 1.0 | -| test.c:490:10:490:15 | ... * ... | 1302.0 | -| test.c:490:10:490:20 | ... * ... | 1302.0 | -| test.c:490:10:490:25 | ... + ... | 1302.0 | -| test.c:490:14:490:15 | ip | 1302.0 | -| test.c:490:19:490:20 | 14 | 1.0 | -| test.c:490:19:490:20 | (unsigned int)... | 1.0 | -| test.c:490:24:490:25 | 32 | 1.0 | -| test.c:490:24:490:25 | (unsigned int)... | 1.0 | -| test.c:491:9:491:9 | 2 | 1.0 | -| test.c:491:9:491:9 | (unsigned int)... | 1.0 | -| test.c:491:9:491:26 | ... * ... | 1302.0 | -| test.c:491:13:491:26 | (...) | 1302.0 | -| test.c:491:14:491:15 | ip | 1302.0 | -| test.c:491:14:491:20 | ... * ... | 1302.0 | -| test.c:491:14:491:25 | ... + ... | 1302.0 | -| test.c:491:19:491:20 | 14 | 1.0 | -| test.c:491:19:491:20 | (unsigned int)... | 1.0 | -| test.c:491:24:491:25 | 64 | 1.0 | -| test.c:491:24:491:25 | (unsigned int)... | 1.0 | -| test.c:492:9:496:22 | (...) | 1.7677595125E10 | -| test.c:492:10:492:21 | (...) | 1302.0 | -| test.c:492:10:492:26 | ... * ... | 1302.0 | -| test.c:492:10:492:80 | ... > ... | 1.0 | -| test.c:492:10:496:21 | ... ? ... : ... | 1.7677595125E10 | -| test.c:492:11:492:11 | 2 | 1.0 | -| test.c:492:11:492:11 | (unsigned int)... | 1.0 | -| test.c:492:11:492:16 | ... * ... | 1302.0 | -| test.c:492:11:492:20 | ... + ... | 1302.0 | -| test.c:492:15:492:16 | ip | 1302.0 | -| test.c:492:20:492:20 | 1 | 1.0 | -| test.c:492:20:492:20 | (unsigned int)... | 1.0 | -| test.c:492:25:492:26 | 14 | 1.0 | -| test.c:492:25:492:26 | (unsigned int)... | 1.0 | -| test.c:492:30:492:80 | (...) | 1695204.0 | -| test.c:492:31:492:32 | 17 | 1.0 | -| test.c:492:31:492:32 | (unsigned int)... | 1.0 | -| test.c:492:31:492:43 | ... * ... | 1302.0 | -| test.c:492:31:492:53 | ... > ... | 1.0 | -| test.c:492:31:492:79 | ... ? ... : ... | 1695204.0 | -| test.c:492:36:492:43 | (...) | 1302.0 | -| test.c:492:37:492:37 | 2 | 1.0 | -| test.c:492:37:492:37 | (unsigned int)... | 1.0 | -| test.c:492:37:492:42 | ... * ... | 1302.0 | -| test.c:492:41:492:42 | ip | 1302.0 | -| test.c:492:47:492:48 | 17 | 1.0 | -| test.c:492:47:492:48 | (unsigned int)... | 1.0 | -| test.c:492:47:492:53 | ... * ... | 1302.0 | -| test.c:492:52:492:53 | ip | 1302.0 | -| test.c:492:57:492:58 | 17 | 1.0 | -| test.c:492:57:492:58 | (unsigned int)... | 1.0 | -| test.c:492:57:492:69 | ... * ... | 1302.0 | -| test.c:492:62:492:69 | (...) | 1302.0 | -| test.c:492:63:492:63 | 2 | 1.0 | -| test.c:492:63:492:63 | (unsigned int)... | 1.0 | -| test.c:492:63:492:68 | ... * ... | 1302.0 | -| test.c:492:67:492:68 | ip | 1302.0 | -| test.c:492:73:492:74 | 17 | 1.0 | -| test.c:492:73:492:74 | (unsigned int)... | 1.0 | -| test.c:492:73:492:79 | ... * ... | 1302.0 | -| test.c:492:78:492:79 | ip | 1302.0 | -| test.c:493:13:493:24 | (...) | 2605.0 | -| test.c:493:13:493:29 | ... * ... | 2605.0 | -| test.c:493:14:493:14 | 2 | 1.0 | -| test.c:493:14:493:14 | (unsigned int)... | 1.0 | -| test.c:493:14:493:19 | ... * ... | 2605.0 | -| test.c:493:14:493:23 | ... + ... | 2605.0 | -| test.c:493:18:493:19 | ip | 2605.0 | -| test.c:493:23:493:23 | 1 | 1.0 | -| test.c:493:23:493:23 | (unsigned int)... | 1.0 | -| test.c:493:28:493:29 | 14 | 1.0 | -| test.c:493:28:493:29 | (unsigned int)... | 1.0 | -| test.c:494:13:494:14 | 14 | 1.0 | -| test.c:494:13:494:14 | (unsigned int)... | 1.0 | -| test.c:494:13:494:25 | ... * ... | 2605.0 | -| test.c:494:13:494:35 | ... > ... | 1.0 | -| test.c:494:13:496:21 | ... ? ... : ... | 6786025.0 | -| test.c:494:18:494:25 | (...) | 2605.0 | -| test.c:494:19:494:19 | 2 | 1.0 | -| test.c:494:19:494:19 | (unsigned int)... | 1.0 | -| test.c:494:19:494:24 | ... * ... | 2605.0 | -| test.c:494:23:494:24 | ip | 2605.0 | +| test.c:480:21:480:32 | (...) | 15.0 | +| test.c:480:21:480:37 | ... * ... | 15.0 | +| test.c:480:22:480:22 | 2 | 1.0 | +| test.c:480:22:480:22 | (unsigned int)... | 1.0 | +| test.c:480:22:480:27 | ... * ... | 15.0 | +| test.c:480:22:480:31 | ... + ... | 15.0 | +| test.c:480:26:480:27 | ip | 15.0 | +| test.c:480:31:480:31 | 1 | 1.0 | +| test.c:480:31:480:31 | (unsigned int)... | 1.0 | +| test.c:480:36:480:37 | 17 | 1.0 | +| test.c:480:36:480:37 | (unsigned int)... | 1.0 | +| test.c:481:11:481:11 | 4 | 1.0 | +| test.c:481:11:481:11 | (unsigned int)... | 1.0 | +| test.c:481:11:481:28 | ... * ... | 15.0 | +| test.c:481:11:482:28 | ... + ... | 225.0 | +| test.c:481:11:483:28 | ... + ... | 3375.0 | +| test.c:481:11:489:24 | ... + ... | 1.00544625E8 | +| test.c:481:15:481:28 | (...) | 15.0 | +| test.c:481:16:481:17 | ip | 15.0 | +| test.c:481:16:481:22 | ... * ... | 15.0 | +| test.c:481:16:481:27 | ... + ... | 15.0 | +| test.c:481:21:481:22 | 14 | 1.0 | +| test.c:481:21:481:22 | (unsigned int)... | 1.0 | +| test.c:481:26:481:27 | 32 | 1.0 | +| test.c:481:26:481:27 | (unsigned int)... | 1.0 | +| test.c:482:11:482:28 | (...) | 15.0 | +| test.c:482:12:482:12 | 2 | 1.0 | +| test.c:482:12:482:12 | (unsigned int)... | 1.0 | +| test.c:482:12:482:17 | ... * ... | 15.0 | +| test.c:482:12:482:22 | ... * ... | 15.0 | +| test.c:482:12:482:27 | ... + ... | 15.0 | +| test.c:482:16:482:17 | ip | 15.0 | +| test.c:482:21:482:22 | 14 | 1.0 | +| test.c:482:21:482:22 | (unsigned int)... | 1.0 | +| test.c:482:26:482:27 | 32 | 1.0 | +| test.c:482:26:482:27 | (unsigned int)... | 1.0 | +| test.c:483:11:483:11 | 2 | 1.0 | +| test.c:483:11:483:11 | (unsigned int)... | 1.0 | +| test.c:483:11:483:28 | ... * ... | 15.0 | +| test.c:483:15:483:28 | (...) | 15.0 | +| test.c:483:16:483:17 | ip | 15.0 | +| test.c:483:16:483:22 | ... * ... | 15.0 | +| test.c:483:16:483:27 | ... + ... | 15.0 | +| test.c:483:21:483:22 | 14 | 1.0 | +| test.c:483:21:483:22 | (unsigned int)... | 1.0 | +| test.c:483:26:483:27 | 64 | 1.0 | +| test.c:483:26:483:27 | (unsigned int)... | 1.0 | +| test.c:484:11:489:24 | (...) | 29791.0 | +| test.c:484:12:484:23 | (...) | 15.0 | +| test.c:484:12:484:28 | ... * ... | 15.0 | +| test.c:484:12:485:61 | ... > ... | 1.0 | +| test.c:484:12:489:23 | ... ? ... : ... | 29791.0 | +| test.c:484:13:484:13 | 2 | 1.0 | +| test.c:484:13:484:13 | (unsigned int)... | 1.0 | +| test.c:484:13:484:18 | ... * ... | 15.0 | +| test.c:484:13:484:22 | ... + ... | 15.0 | +| test.c:484:17:484:18 | ip | 15.0 | +| test.c:484:22:484:22 | 1 | 1.0 | +| test.c:484:22:484:22 | (unsigned int)... | 1.0 | +| test.c:484:27:484:28 | 14 | 1.0 | +| test.c:484:27:484:28 | (unsigned int)... | 1.0 | +| test.c:485:11:485:61 | (...) | 225.0 | +| test.c:485:12:485:13 | 14 | 1.0 | +| test.c:485:12:485:13 | (unsigned int)... | 1.0 | +| test.c:485:12:485:24 | ... * ... | 15.0 | +| test.c:485:12:485:34 | ... > ... | 1.0 | +| test.c:485:12:485:60 | ... ? ... : ... | 225.0 | +| test.c:485:17:485:24 | (...) | 15.0 | +| test.c:485:18:485:18 | 2 | 1.0 | +| test.c:485:18:485:18 | (unsigned int)... | 1.0 | +| test.c:485:18:485:23 | ... * ... | 15.0 | +| test.c:485:22:485:23 | ip | 15.0 | +| test.c:485:28:485:29 | 17 | 1.0 | +| test.c:485:28:485:29 | (unsigned int)... | 1.0 | +| test.c:485:28:485:34 | ... * ... | 15.0 | +| test.c:485:33:485:34 | ip | 15.0 | +| test.c:485:38:485:39 | 17 | 1.0 | +| test.c:485:38:485:39 | (unsigned int)... | 1.0 | +| test.c:485:38:485:50 | ... * ... | 15.0 | +| test.c:485:43:485:50 | (...) | 15.0 | +| test.c:485:44:485:44 | 2 | 1.0 | +| test.c:485:44:485:44 | (unsigned int)... | 1.0 | +| test.c:485:44:485:49 | ... * ... | 15.0 | +| test.c:485:48:485:49 | ip | 15.0 | +| test.c:485:54:485:55 | 17 | 1.0 | +| test.c:485:54:485:55 | (unsigned int)... | 1.0 | +| test.c:485:54:485:60 | ... * ... | 15.0 | +| test.c:485:59:485:60 | ip | 15.0 | +| test.c:486:15:486:26 | (...) | 31.0 | +| test.c:486:15:486:31 | ... * ... | 31.0 | +| test.c:486:16:486:16 | 2 | 1.0 | +| test.c:486:16:486:16 | (unsigned int)... | 1.0 | +| test.c:486:16:486:21 | ... * ... | 31.0 | +| test.c:486:16:486:25 | ... + ... | 31.0 | +| test.c:486:20:486:21 | ip | 31.0 | +| test.c:486:25:486:25 | 1 | 1.0 | +| test.c:486:25:486:25 | (unsigned int)... | 1.0 | +| test.c:486:30:486:31 | 14 | 1.0 | +| test.c:486:30:486:31 | (unsigned int)... | 1.0 | +| test.c:487:15:487:16 | 14 | 1.0 | +| test.c:487:15:487:16 | (unsigned int)... | 1.0 | +| test.c:487:15:487:27 | ... * ... | 31.0 | +| test.c:487:15:487:37 | ... > ... | 1.0 | +| test.c:487:15:489:23 | ... ? ... : ... | 961.0 | +| test.c:487:20:487:27 | (...) | 31.0 | +| test.c:487:21:487:21 | 2 | 1.0 | +| test.c:487:21:487:21 | (unsigned int)... | 1.0 | +| test.c:487:21:487:26 | ... * ... | 31.0 | +| test.c:487:25:487:26 | ip | 31.0 | +| test.c:487:31:487:32 | 17 | 1.0 | +| test.c:487:31:487:32 | (unsigned int)... | 1.0 | +| test.c:487:31:487:37 | ... * ... | 31.0 | +| test.c:487:36:487:37 | ip | 31.0 | +| test.c:488:17:488:18 | 14 | 1.0 | +| test.c:488:17:488:18 | (unsigned int)... | 1.0 | +| test.c:488:17:488:29 | ... * ... | 31.0 | +| test.c:488:22:488:29 | (...) | 31.0 | +| test.c:488:23:488:23 | 2 | 1.0 | +| test.c:488:23:488:23 | (unsigned int)... | 1.0 | +| test.c:488:23:488:28 | ... * ... | 31.0 | +| test.c:488:27:488:28 | ip | 31.0 | +| test.c:489:17:489:18 | 14 | 1.0 | +| test.c:489:17:489:18 | (unsigned int)... | 1.0 | +| test.c:489:17:489:23 | ... * ... | 31.0 | +| test.c:489:22:489:23 | ip | 31.0 | +| test.c:490:11:490:11 | 2 | 1.0 | +| test.c:490:11:490:11 | (unsigned int)... | 1.0 | +| test.c:490:11:490:16 | ... * ... | 15.0 | +| test.c:490:11:490:21 | ... * ... | 15.0 | +| test.c:490:11:490:41 | ... + ... | 225.0 | +| test.c:490:15:490:16 | ip | 15.0 | +| test.c:490:20:490:21 | 14 | 1.0 | +| test.c:490:20:490:21 | (unsigned int)... | 1.0 | +| test.c:490:25:490:36 | (...) | 15.0 | +| test.c:490:25:490:41 | ... * ... | 15.0 | +| test.c:490:26:490:26 | 2 | 1.0 | +| test.c:490:26:490:26 | (unsigned int)... | 1.0 | +| test.c:490:26:490:31 | ... * ... | 15.0 | +| test.c:490:26:490:35 | ... + ... | 15.0 | +| test.c:490:30:490:31 | ip | 15.0 | +| test.c:490:35:490:35 | 1 | 1.0 | +| test.c:490:35:490:35 | (unsigned int)... | 1.0 | +| test.c:490:40:490:41 | 17 | 1.0 | +| test.c:490:40:490:41 | (unsigned int)... | 1.0 | +| test.c:491:5:510:24 | (...) | 6.6142118960740864E25 | +| test.c:491:6:491:6 | 4 | 1.0 | +| test.c:491:6:491:6 | (unsigned int)... | 1.0 | +| test.c:491:6:491:23 | ... * ... | 108.0 | +| test.c:491:6:492:24 | ... + ... | 11664.0 | +| test.c:491:6:493:24 | ... + ... | 1259712.0 | +| test.c:491:6:498:20 | ... + ... | 1.2872131505856E13 | +| test.c:491:6:499:55 | ... > ... | 1.0 | +| test.c:491:6:510:23 | ... ? ... : ... | 6.6142118960740864E25 | +| test.c:491:10:491:23 | (...) | 108.0 | +| test.c:491:11:491:12 | ip | 108.0 | +| test.c:491:11:491:17 | ... * ... | 108.0 | +| test.c:491:11:491:22 | ... + ... | 108.0 | +| test.c:491:16:491:17 | 14 | 1.0 | +| test.c:491:16:491:17 | (unsigned int)... | 1.0 | +| test.c:491:21:491:22 | 32 | 1.0 | +| test.c:491:21:491:22 | (unsigned int)... | 1.0 | +| test.c:492:7:492:24 | (...) | 108.0 | +| test.c:492:8:492:8 | 2 | 1.0 | +| test.c:492:8:492:8 | (unsigned int)... | 1.0 | +| test.c:492:8:492:13 | ... * ... | 108.0 | +| test.c:492:8:492:18 | ... * ... | 108.0 | +| test.c:492:8:492:23 | ... + ... | 108.0 | +| test.c:492:12:492:13 | ip | 108.0 | +| test.c:492:17:492:18 | 14 | 1.0 | +| test.c:492:17:492:18 | (unsigned int)... | 1.0 | +| test.c:492:22:492:23 | 32 | 1.0 | +| test.c:492:22:492:23 | (unsigned int)... | 1.0 | +| test.c:493:7:493:7 | 2 | 1.0 | +| test.c:493:7:493:7 | (unsigned int)... | 1.0 | +| test.c:493:7:493:24 | ... * ... | 108.0 | +| test.c:493:11:493:24 | (...) | 108.0 | +| test.c:493:12:493:13 | ip | 108.0 | +| test.c:493:12:493:18 | ... * ... | 108.0 | +| test.c:493:12:493:23 | ... + ... | 108.0 | +| test.c:493:17:493:18 | 14 | 1.0 | +| test.c:493:17:493:18 | (unsigned int)... | 1.0 | +| test.c:493:22:493:23 | 64 | 1.0 | +| test.c:493:22:493:23 | (unsigned int)... | 1.0 | +| test.c:494:7:498:20 | (...) | 1.0218313E7 | +| test.c:494:8:494:19 | (...) | 108.0 | +| test.c:494:8:494:24 | ... * ... | 108.0 | +| test.c:494:8:494:78 | ... > ... | 1.0 | +| test.c:494:8:498:19 | ... ? ... : ... | 1.0218313E7 | +| test.c:494:9:494:9 | 2 | 1.0 | +| test.c:494:9:494:9 | (unsigned int)... | 1.0 | +| test.c:494:9:494:14 | ... * ... | 108.0 | +| test.c:494:9:494:18 | ... + ... | 108.0 | +| test.c:494:13:494:14 | ip | 108.0 | +| test.c:494:18:494:18 | 1 | 1.0 | +| test.c:494:18:494:18 | (unsigned int)... | 1.0 | +| test.c:494:23:494:24 | 14 | 1.0 | +| test.c:494:23:494:24 | (unsigned int)... | 1.0 | +| test.c:494:28:494:78 | (...) | 11664.0 | | test.c:494:29:494:30 | 17 | 1.0 | | test.c:494:29:494:30 | (unsigned int)... | 1.0 | -| test.c:494:29:494:35 | ... * ... | 2605.0 | -| test.c:494:34:494:35 | ip | 2605.0 | -| test.c:495:15:495:16 | 14 | 1.0 | -| test.c:495:15:495:16 | (unsigned int)... | 1.0 | -| test.c:495:15:495:27 | ... * ... | 2605.0 | -| test.c:495:20:495:27 | (...) | 2605.0 | -| test.c:495:21:495:21 | 2 | 1.0 | +| test.c:494:29:494:41 | ... * ... | 108.0 | +| test.c:494:29:494:51 | ... > ... | 1.0 | +| test.c:494:29:494:77 | ... ? ... : ... | 11664.0 | +| test.c:494:34:494:41 | (...) | 108.0 | +| test.c:494:35:494:35 | 2 | 1.0 | +| test.c:494:35:494:35 | (unsigned int)... | 1.0 | +| test.c:494:35:494:40 | ... * ... | 108.0 | +| test.c:494:39:494:40 | ip | 108.0 | +| test.c:494:45:494:46 | 17 | 1.0 | +| test.c:494:45:494:46 | (unsigned int)... | 1.0 | +| test.c:494:45:494:51 | ... * ... | 108.0 | +| test.c:494:50:494:51 | ip | 108.0 | +| test.c:494:55:494:56 | 17 | 1.0 | +| test.c:494:55:494:56 | (unsigned int)... | 1.0 | +| test.c:494:55:494:67 | ... * ... | 108.0 | +| test.c:494:60:494:67 | (...) | 108.0 | +| test.c:494:61:494:61 | 2 | 1.0 | +| test.c:494:61:494:61 | (unsigned int)... | 1.0 | +| test.c:494:61:494:66 | ... * ... | 108.0 | +| test.c:494:65:494:66 | ip | 108.0 | +| test.c:494:71:494:72 | 17 | 1.0 | +| test.c:494:71:494:72 | (unsigned int)... | 1.0 | +| test.c:494:71:494:77 | ... * ... | 108.0 | +| test.c:494:76:494:77 | ip | 108.0 | +| test.c:495:11:495:22 | (...) | 217.0 | +| test.c:495:11:495:27 | ... * ... | 217.0 | +| test.c:495:12:495:12 | 2 | 1.0 | +| test.c:495:12:495:12 | (unsigned int)... | 1.0 | +| test.c:495:12:495:17 | ... * ... | 217.0 | +| test.c:495:12:495:21 | ... + ... | 217.0 | +| test.c:495:16:495:17 | ip | 217.0 | +| test.c:495:21:495:21 | 1 | 1.0 | | test.c:495:21:495:21 | (unsigned int)... | 1.0 | -| test.c:495:21:495:26 | ... * ... | 2605.0 | -| test.c:495:25:495:26 | ip | 2605.0 | -| test.c:496:15:496:16 | 14 | 1.0 | -| test.c:496:15:496:16 | (unsigned int)... | 1.0 | -| test.c:496:15:496:21 | ... * ... | 2605.0 | -| test.c:496:20:496:21 | ip | 2605.0 | -| test.c:497:9:497:10 | 14 | 1.0 | -| test.c:497:9:497:10 | (unsigned int)... | 1.0 | -| test.c:497:9:497:15 | ... * ... | 1302.0 | -| test.c:497:9:497:31 | ... > ... | 1.0 | -| test.c:497:9:499:23 | ... ? ... : ... | 1695204.0 | -| test.c:497:14:497:15 | ip | 1302.0 | -| test.c:497:19:497:26 | (...) | 1302.0 | -| test.c:497:19:497:31 | ... * ... | 1302.0 | -| test.c:497:20:497:21 | ip | 1302.0 | -| test.c:497:20:497:25 | ... + ... | 1302.0 | -| test.c:497:25:497:25 | 1 | 1.0 | -| test.c:497:25:497:25 | (unsigned int)... | 1.0 | -| test.c:497:30:497:31 | 17 | 1.0 | -| test.c:497:30:497:31 | (unsigned int)... | 1.0 | -| test.c:498:11:498:12 | 14 | 1.0 | -| test.c:498:11:498:12 | (unsigned int)... | 1.0 | -| test.c:498:11:498:17 | ... * ... | 1302.0 | -| test.c:498:16:498:17 | ip | 1302.0 | -| test.c:499:11:499:18 | (...) | 1302.0 | -| test.c:499:11:499:23 | ... * ... | 1302.0 | -| test.c:499:12:499:13 | ip | 1302.0 | -| test.c:499:12:499:17 | ... + ... | 1302.0 | -| test.c:499:17:499:17 | 1 | 1.0 | -| test.c:499:17:499:17 | (unsigned int)... | 1.0 | -| test.c:499:22:499:23 | 14 | 1.0 | -| test.c:499:22:499:23 | (unsigned int)... | 1.0 | -| test.c:500:9:500:9 | 2 | 1.0 | +| test.c:495:26:495:27 | 14 | 1.0 | +| test.c:495:26:495:27 | (unsigned int)... | 1.0 | +| test.c:496:11:496:12 | 14 | 1.0 | +| test.c:496:11:496:12 | (unsigned int)... | 1.0 | +| test.c:496:11:496:23 | ... * ... | 217.0 | +| test.c:496:11:496:33 | ... > ... | 1.0 | +| test.c:496:11:498:19 | ... ? ... : ... | 47089.0 | +| test.c:496:16:496:23 | (...) | 217.0 | +| test.c:496:17:496:17 | 2 | 1.0 | +| test.c:496:17:496:17 | (unsigned int)... | 1.0 | +| test.c:496:17:496:22 | ... * ... | 217.0 | +| test.c:496:21:496:22 | ip | 217.0 | +| test.c:496:27:496:28 | 17 | 1.0 | +| test.c:496:27:496:28 | (unsigned int)... | 1.0 | +| test.c:496:27:496:33 | ... * ... | 217.0 | +| test.c:496:32:496:33 | ip | 217.0 | +| test.c:497:13:497:14 | 14 | 1.0 | +| test.c:497:13:497:14 | (unsigned int)... | 1.0 | +| test.c:497:13:497:25 | ... * ... | 217.0 | +| test.c:497:18:497:25 | (...) | 217.0 | +| test.c:497:19:497:19 | 2 | 1.0 | +| test.c:497:19:497:19 | (unsigned int)... | 1.0 | +| test.c:497:19:497:24 | ... * ... | 217.0 | +| test.c:497:23:497:24 | ip | 217.0 | +| test.c:498:13:498:14 | 14 | 1.0 | +| test.c:498:13:498:14 | (unsigned int)... | 1.0 | +| test.c:498:13:498:19 | ... * ... | 217.0 | +| test.c:498:18:498:19 | ip | 217.0 | +| test.c:499:5:499:55 | (...) | 423801.0 | +| test.c:499:6:499:7 | 14 | 1.0 | +| test.c:499:6:499:7 | (unsigned int)... | 1.0 | +| test.c:499:6:499:12 | ... * ... | 651.0 | +| test.c:499:6:499:28 | ... > ... | 1.0 | +| test.c:499:6:499:54 | ... ? ... : ... | 423801.0 | +| test.c:499:11:499:12 | ip | 651.0 | +| test.c:499:16:499:23 | (...) | 651.0 | +| test.c:499:16:499:28 | ... * ... | 651.0 | +| test.c:499:17:499:18 | ip | 651.0 | +| test.c:499:17:499:22 | ... + ... | 651.0 | +| test.c:499:22:499:22 | 1 | 1.0 | +| test.c:499:22:499:22 | (unsigned int)... | 1.0 | +| test.c:499:27:499:28 | 17 | 1.0 | +| test.c:499:27:499:28 | (unsigned int)... | 1.0 | +| test.c:499:32:499:33 | 17 | 1.0 | +| test.c:499:32:499:33 | (unsigned int)... | 1.0 | +| test.c:499:32:499:38 | ... * ... | 651.0 | +| test.c:499:37:499:38 | ip | 651.0 | +| test.c:499:42:499:49 | (...) | 651.0 | +| test.c:499:42:499:54 | ... * ... | 651.0 | +| test.c:499:43:499:44 | ip | 651.0 | +| test.c:499:43:499:48 | ... + ... | 651.0 | +| test.c:499:48:499:48 | 1 | 1.0 | +| test.c:499:48:499:48 | (unsigned int)... | 1.0 | +| test.c:499:53:499:54 | 17 | 1.0 | +| test.c:499:53:499:54 | (unsigned int)... | 1.0 | +| test.c:500:9:500:9 | 4 | 1.0 | | test.c:500:9:500:9 | (unsigned int)... | 1.0 | -| test.c:500:9:500:26 | ... * ... | 10419.0 | -| test.c:500:9:520:44 | ... + ... | 1.9449636104972528E43 | -| test.c:500:13:500:26 | (...) | 10419.0 | -| test.c:500:14:500:15 | ip | 10419.0 | -| test.c:500:14:500:20 | ... * ... | 10419.0 | -| test.c:500:14:500:25 | ... + ... | 10419.0 | +| test.c:500:9:500:26 | ... * ... | 1302.0 | +| test.c:500:9:501:26 | ... + ... | 1695204.0 | +| test.c:500:9:502:26 | ... + ... | 2.207155608E9 | +| test.c:500:9:507:22 | ... + ... | 3.9017203216097214E19 | +| test.c:500:13:500:26 | (...) | 1302.0 | +| test.c:500:14:500:15 | ip | 1302.0 | +| test.c:500:14:500:20 | ... * ... | 1302.0 | +| test.c:500:14:500:25 | ... + ... | 1302.0 | | test.c:500:19:500:20 | 14 | 1.0 | | test.c:500:19:500:20 | (unsigned int)... | 1.0 | | test.c:500:24:500:25 | 32 | 1.0 | | test.c:500:24:500:25 | (unsigned int)... | 1.0 | -| test.c:501:9:520:44 | (...) | 1.8667469147684545E39 | -| test.c:501:10:501:10 | 4 | 1.0 | +| test.c:501:9:501:26 | (...) | 1302.0 | +| test.c:501:10:501:10 | 2 | 1.0 | | test.c:501:10:501:10 | (unsigned int)... | 1.0 | -| test.c:501:10:501:27 | ... * ... | 10419.0 | -| test.c:501:10:502:28 | ... + ... | 1.08555561E8 | -| test.c:501:10:503:28 | ... + ... | 1.131040390059E12 | -| test.c:501:10:509:24 | ... + ... | 1.0235492350954187E25 | -| test.c:501:10:510:39 | ... > ... | 1.0 | -| test.c:501:10:520:43 | ... ? ... : ... | 1.8667469147684545E39 | -| test.c:501:14:501:27 | (...) | 10419.0 | -| test.c:501:15:501:16 | ip | 10419.0 | -| test.c:501:15:501:21 | ... * ... | 10419.0 | -| test.c:501:15:501:26 | ... + ... | 10419.0 | -| test.c:501:20:501:21 | 14 | 1.0 | -| test.c:501:20:501:21 | (unsigned int)... | 1.0 | -| test.c:501:25:501:26 | 32 | 1.0 | -| test.c:501:25:501:26 | (unsigned int)... | 1.0 | -| test.c:502:11:502:28 | (...) | 10419.0 | -| test.c:502:12:502:12 | 2 | 1.0 | -| test.c:502:12:502:12 | (unsigned int)... | 1.0 | -| test.c:502:12:502:17 | ... * ... | 10419.0 | -| test.c:502:12:502:22 | ... * ... | 10419.0 | -| test.c:502:12:502:27 | ... + ... | 10419.0 | -| test.c:502:16:502:17 | ip | 10419.0 | -| test.c:502:21:502:22 | 14 | 1.0 | -| test.c:502:21:502:22 | (unsigned int)... | 1.0 | -| test.c:502:26:502:27 | 32 | 1.0 | -| test.c:502:26:502:27 | (unsigned int)... | 1.0 | +| test.c:501:10:501:15 | ... * ... | 1302.0 | +| test.c:501:10:501:20 | ... * ... | 1302.0 | +| test.c:501:10:501:25 | ... + ... | 1302.0 | +| test.c:501:14:501:15 | ip | 1302.0 | +| test.c:501:19:501:20 | 14 | 1.0 | +| test.c:501:19:501:20 | (unsigned int)... | 1.0 | +| test.c:501:24:501:25 | 32 | 1.0 | +| test.c:501:24:501:25 | (unsigned int)... | 1.0 | +| test.c:502:9:502:9 | 2 | 1.0 | +| test.c:502:9:502:9 | (unsigned int)... | 1.0 | +| test.c:502:9:502:26 | ... * ... | 1302.0 | +| test.c:502:13:502:26 | (...) | 1302.0 | +| test.c:502:14:502:15 | ip | 1302.0 | +| test.c:502:14:502:20 | ... * ... | 1302.0 | +| test.c:502:14:502:25 | ... + ... | 1302.0 | +| test.c:502:19:502:20 | 14 | 1.0 | +| test.c:502:19:502:20 | (unsigned int)... | 1.0 | +| test.c:502:24:502:25 | 64 | 1.0 | +| test.c:502:24:502:25 | (unsigned int)... | 1.0 | +| test.c:503:9:507:22 | (...) | 1.7677595125E10 | +| test.c:503:10:503:21 | (...) | 1302.0 | +| test.c:503:10:503:26 | ... * ... | 1302.0 | +| test.c:503:10:503:80 | ... > ... | 1.0 | +| test.c:503:10:507:21 | ... ? ... : ... | 1.7677595125E10 | | test.c:503:11:503:11 | 2 | 1.0 | | test.c:503:11:503:11 | (unsigned int)... | 1.0 | -| test.c:503:11:503:28 | ... * ... | 10419.0 | -| test.c:503:15:503:28 | (...) | 10419.0 | -| test.c:503:16:503:17 | ip | 10419.0 | -| test.c:503:16:503:22 | ... * ... | 10419.0 | -| test.c:503:16:503:27 | ... + ... | 10419.0 | -| test.c:503:21:503:22 | 14 | 1.0 | -| test.c:503:21:503:22 | (unsigned int)... | 1.0 | -| test.c:503:26:503:27 | 64 | 1.0 | -| test.c:503:26:503:27 | (unsigned int)... | 1.0 | -| test.c:504:11:509:24 | (...) | 9.049625849719E12 | -| test.c:504:12:504:23 | (...) | 10419.0 | -| test.c:504:12:504:28 | ... * ... | 10419.0 | -| test.c:504:12:505:61 | ... > ... | 1.0 | -| test.c:504:12:509:23 | ... ? ... : ... | 9.049625849719E12 | -| test.c:504:13:504:13 | 2 | 1.0 | -| test.c:504:13:504:13 | (unsigned int)... | 1.0 | -| test.c:504:13:504:18 | ... * ... | 10419.0 | -| test.c:504:13:504:22 | ... + ... | 10419.0 | -| test.c:504:17:504:18 | ip | 10419.0 | -| test.c:504:22:504:22 | 1 | 1.0 | -| test.c:504:22:504:22 | (unsigned int)... | 1.0 | -| test.c:504:27:504:28 | 14 | 1.0 | -| test.c:504:27:504:28 | (unsigned int)... | 1.0 | -| test.c:505:11:505:61 | (...) | 1.08555561E8 | -| test.c:505:12:505:13 | 14 | 1.0 | -| test.c:505:12:505:13 | (unsigned int)... | 1.0 | -| test.c:505:12:505:24 | ... * ... | 10419.0 | -| test.c:505:12:505:34 | ... > ... | 1.0 | -| test.c:505:12:505:60 | ... ? ... : ... | 1.08555561E8 | -| test.c:505:17:505:24 | (...) | 10419.0 | -| test.c:505:18:505:18 | 2 | 1.0 | -| test.c:505:18:505:18 | (unsigned int)... | 1.0 | -| test.c:505:18:505:23 | ... * ... | 10419.0 | -| test.c:505:22:505:23 | ip | 10419.0 | -| test.c:505:28:505:29 | 17 | 1.0 | -| test.c:505:28:505:29 | (unsigned int)... | 1.0 | -| test.c:505:28:505:34 | ... * ... | 10419.0 | -| test.c:505:33:505:34 | ip | 10419.0 | -| test.c:505:38:505:39 | 17 | 1.0 | -| test.c:505:38:505:39 | (unsigned int)... | 1.0 | -| test.c:505:38:505:50 | ... * ... | 10419.0 | -| test.c:505:43:505:50 | (...) | 10419.0 | -| test.c:505:44:505:44 | 2 | 1.0 | -| test.c:505:44:505:44 | (unsigned int)... | 1.0 | -| test.c:505:44:505:49 | ... * ... | 10419.0 | -| test.c:505:48:505:49 | ip | 10419.0 | -| test.c:505:54:505:55 | 17 | 1.0 | -| test.c:505:54:505:55 | (unsigned int)... | 1.0 | -| test.c:505:54:505:60 | ... * ... | 10419.0 | -| test.c:505:59:505:60 | ip | 10419.0 | -| test.c:506:15:506:26 | (...) | 20839.0 | -| test.c:506:15:506:31 | ... * ... | 20839.0 | -| test.c:506:16:506:16 | 2 | 1.0 | -| test.c:506:16:506:16 | (unsigned int)... | 1.0 | -| test.c:506:16:506:21 | ... * ... | 20839.0 | -| test.c:506:16:506:25 | ... + ... | 20839.0 | -| test.c:506:20:506:21 | ip | 20839.0 | -| test.c:506:25:506:25 | 1 | 1.0 | -| test.c:506:25:506:25 | (unsigned int)... | 1.0 | -| test.c:506:30:506:31 | 14 | 1.0 | -| test.c:506:30:506:31 | (unsigned int)... | 1.0 | +| test.c:503:11:503:16 | ... * ... | 1302.0 | +| test.c:503:11:503:20 | ... + ... | 1302.0 | +| test.c:503:15:503:16 | ip | 1302.0 | +| test.c:503:20:503:20 | 1 | 1.0 | +| test.c:503:20:503:20 | (unsigned int)... | 1.0 | +| test.c:503:25:503:26 | 14 | 1.0 | +| test.c:503:25:503:26 | (unsigned int)... | 1.0 | +| test.c:503:30:503:80 | (...) | 1695204.0 | +| test.c:503:31:503:32 | 17 | 1.0 | +| test.c:503:31:503:32 | (unsigned int)... | 1.0 | +| test.c:503:31:503:43 | ... * ... | 1302.0 | +| test.c:503:31:503:53 | ... > ... | 1.0 | +| test.c:503:31:503:79 | ... ? ... : ... | 1695204.0 | +| test.c:503:36:503:43 | (...) | 1302.0 | +| test.c:503:37:503:37 | 2 | 1.0 | +| test.c:503:37:503:37 | (unsigned int)... | 1.0 | +| test.c:503:37:503:42 | ... * ... | 1302.0 | +| test.c:503:41:503:42 | ip | 1302.0 | +| test.c:503:47:503:48 | 17 | 1.0 | +| test.c:503:47:503:48 | (unsigned int)... | 1.0 | +| test.c:503:47:503:53 | ... * ... | 1302.0 | +| test.c:503:52:503:53 | ip | 1302.0 | +| test.c:503:57:503:58 | 17 | 1.0 | +| test.c:503:57:503:58 | (unsigned int)... | 1.0 | +| test.c:503:57:503:69 | ... * ... | 1302.0 | +| test.c:503:62:503:69 | (...) | 1302.0 | +| test.c:503:63:503:63 | 2 | 1.0 | +| test.c:503:63:503:63 | (unsigned int)... | 1.0 | +| test.c:503:63:503:68 | ... * ... | 1302.0 | +| test.c:503:67:503:68 | ip | 1302.0 | +| test.c:503:73:503:74 | 17 | 1.0 | +| test.c:503:73:503:74 | (unsigned int)... | 1.0 | +| test.c:503:73:503:79 | ... * ... | 1302.0 | +| test.c:503:78:503:79 | ip | 1302.0 | +| test.c:504:13:504:24 | (...) | 2605.0 | +| test.c:504:13:504:29 | ... * ... | 2605.0 | +| test.c:504:14:504:14 | 2 | 1.0 | +| test.c:504:14:504:14 | (unsigned int)... | 1.0 | +| test.c:504:14:504:19 | ... * ... | 2605.0 | +| test.c:504:14:504:23 | ... + ... | 2605.0 | +| test.c:504:18:504:19 | ip | 2605.0 | +| test.c:504:23:504:23 | 1 | 1.0 | +| test.c:504:23:504:23 | (unsigned int)... | 1.0 | +| test.c:504:28:504:29 | 14 | 1.0 | +| test.c:504:28:504:29 | (unsigned int)... | 1.0 | +| test.c:505:13:505:14 | 14 | 1.0 | +| test.c:505:13:505:14 | (unsigned int)... | 1.0 | +| test.c:505:13:505:25 | ... * ... | 2605.0 | +| test.c:505:13:505:35 | ... > ... | 1.0 | +| test.c:505:13:507:21 | ... ? ... : ... | 6786025.0 | +| test.c:505:18:505:25 | (...) | 2605.0 | +| test.c:505:19:505:19 | 2 | 1.0 | +| test.c:505:19:505:19 | (unsigned int)... | 1.0 | +| test.c:505:19:505:24 | ... * ... | 2605.0 | +| test.c:505:23:505:24 | ip | 2605.0 | +| test.c:505:29:505:30 | 17 | 1.0 | +| test.c:505:29:505:30 | (unsigned int)... | 1.0 | +| test.c:505:29:505:35 | ... * ... | 2605.0 | +| test.c:505:34:505:35 | ip | 2605.0 | +| test.c:506:15:506:16 | 14 | 1.0 | +| test.c:506:15:506:16 | (unsigned int)... | 1.0 | +| test.c:506:15:506:27 | ... * ... | 2605.0 | +| test.c:506:20:506:27 | (...) | 2605.0 | +| test.c:506:21:506:21 | 2 | 1.0 | +| test.c:506:21:506:21 | (unsigned int)... | 1.0 | +| test.c:506:21:506:26 | ... * ... | 2605.0 | +| test.c:506:25:506:26 | ip | 2605.0 | | test.c:507:15:507:16 | 14 | 1.0 | | test.c:507:15:507:16 | (unsigned int)... | 1.0 | -| test.c:507:15:507:27 | ... * ... | 20839.0 | -| test.c:507:15:507:37 | ... > ... | 1.0 | -| test.c:507:15:509:23 | ... ? ... : ... | 4.34263921E8 | -| test.c:507:20:507:27 | (...) | 20839.0 | -| test.c:507:21:507:21 | 2 | 1.0 | -| test.c:507:21:507:21 | (unsigned int)... | 1.0 | -| test.c:507:21:507:26 | ... * ... | 20839.0 | -| test.c:507:25:507:26 | ip | 20839.0 | -| test.c:507:31:507:32 | 17 | 1.0 | -| test.c:507:31:507:32 | (unsigned int)... | 1.0 | -| test.c:507:31:507:37 | ... * ... | 20839.0 | -| test.c:507:36:507:37 | ip | 20839.0 | -| test.c:508:17:508:18 | 14 | 1.0 | -| test.c:508:17:508:18 | (unsigned int)... | 1.0 | -| test.c:508:17:508:29 | ... * ... | 20839.0 | -| test.c:508:22:508:29 | (...) | 20839.0 | -| test.c:508:23:508:23 | 2 | 1.0 | -| test.c:508:23:508:23 | (unsigned int)... | 1.0 | -| test.c:508:23:508:28 | ... * ... | 20839.0 | -| test.c:508:27:508:28 | ip | 20839.0 | -| test.c:509:17:509:18 | 14 | 1.0 | -| test.c:509:17:509:18 | (unsigned int)... | 1.0 | -| test.c:509:17:509:23 | ... * ... | 20839.0 | -| test.c:509:22:509:23 | ip | 20839.0 | -| test.c:510:9:510:9 | 2 | 1.0 | -| test.c:510:9:510:9 | (unsigned int)... | 1.0 | -| test.c:510:9:510:14 | ... * ... | 62517.0 | -| test.c:510:9:510:19 | ... * ... | 62517.0 | -| test.c:510:9:510:39 | ... + ... | 3.908375289E9 | -| test.c:510:13:510:14 | ip | 62517.0 | -| test.c:510:18:510:19 | 14 | 1.0 | -| test.c:510:18:510:19 | (unsigned int)... | 1.0 | -| test.c:510:23:510:34 | (...) | 62517.0 | -| test.c:510:23:510:39 | ... * ... | 62517.0 | -| test.c:510:24:510:24 | 2 | 1.0 | -| test.c:510:24:510:24 | (unsigned int)... | 1.0 | -| test.c:510:24:510:29 | ... * ... | 62517.0 | -| test.c:510:24:510:33 | ... + ... | 62517.0 | -| test.c:510:28:510:29 | ip | 62517.0 | -| test.c:510:33:510:33 | 1 | 1.0 | -| test.c:510:33:510:33 | (unsigned int)... | 1.0 | -| test.c:510:38:510:39 | 17 | 1.0 | -| test.c:510:38:510:39 | (unsigned int)... | 1.0 | -| test.c:511:13:511:13 | 4 | 1.0 | -| test.c:511:13:511:13 | (unsigned int)... | 1.0 | -| test.c:511:13:511:30 | ... * ... | 62517.0 | -| test.c:511:13:512:30 | ... + ... | 3.908375289E9 | -| test.c:511:13:513:30 | ... + ... | 2.44339897942413E14 | -| test.c:511:13:519:26 | ... + ... | 4.7762734556795386E29 | -| test.c:511:17:511:30 | (...) | 62517.0 | -| test.c:511:18:511:19 | ip | 62517.0 | -| test.c:511:18:511:24 | ... * ... | 62517.0 | -| test.c:511:18:511:29 | ... + ... | 62517.0 | -| test.c:511:23:511:24 | 14 | 1.0 | -| test.c:511:23:511:24 | (unsigned int)... | 1.0 | -| test.c:511:28:511:29 | 32 | 1.0 | -| test.c:511:28:511:29 | (unsigned int)... | 1.0 | -| test.c:512:13:512:30 | (...) | 62517.0 | -| test.c:512:14:512:14 | 2 | 1.0 | -| test.c:512:14:512:14 | (unsigned int)... | 1.0 | -| test.c:512:14:512:19 | ... * ... | 62517.0 | -| test.c:512:14:512:24 | ... * ... | 62517.0 | -| test.c:512:14:512:29 | ... + ... | 62517.0 | -| test.c:512:18:512:19 | ip | 62517.0 | -| test.c:512:23:512:24 | 14 | 1.0 | -| test.c:512:23:512:24 | (unsigned int)... | 1.0 | -| test.c:512:28:512:29 | 32 | 1.0 | -| test.c:512:28:512:29 | (unsigned int)... | 1.0 | -| test.c:513:13:513:13 | 2 | 1.0 | -| test.c:513:13:513:13 | (unsigned int)... | 1.0 | -| test.c:513:13:513:30 | ... * ... | 62517.0 | -| test.c:513:17:513:30 | (...) | 62517.0 | -| test.c:513:18:513:19 | ip | 62517.0 | -| test.c:513:18:513:24 | ... * ... | 62517.0 | -| test.c:513:18:513:29 | ... + ... | 62517.0 | -| test.c:513:23:513:24 | 14 | 1.0 | -| test.c:513:23:513:24 | (unsigned int)... | 1.0 | -| test.c:513:28:513:29 | 64 | 1.0 | -| test.c:513:28:513:29 | (unsigned int)... | 1.0 | -| test.c:514:13:519:26 | (...) | 1.954766084417875E15 | -| test.c:514:14:514:25 | (...) | 62517.0 | -| test.c:514:14:514:30 | ... * ... | 62517.0 | -| test.c:514:14:515:63 | ... > ... | 1.0 | -| test.c:514:14:519:25 | ... ? ... : ... | 1.954766084417875E15 | -| test.c:514:15:514:15 | 2 | 1.0 | -| test.c:514:15:514:15 | (unsigned int)... | 1.0 | -| test.c:514:15:514:20 | ... * ... | 62517.0 | -| test.c:514:15:514:24 | ... + ... | 62517.0 | -| test.c:514:19:514:20 | ip | 62517.0 | -| test.c:514:24:514:24 | 1 | 1.0 | -| test.c:514:24:514:24 | (unsigned int)... | 1.0 | -| test.c:514:29:514:30 | 14 | 1.0 | -| test.c:514:29:514:30 | (unsigned int)... | 1.0 | -| test.c:515:13:515:63 | (...) | 3.908375289E9 | -| test.c:515:14:515:15 | 14 | 1.0 | -| test.c:515:14:515:15 | (unsigned int)... | 1.0 | -| test.c:515:14:515:26 | ... * ... | 62517.0 | -| test.c:515:14:515:36 | ... > ... | 1.0 | -| test.c:515:14:515:62 | ... ? ... : ... | 3.908375289E9 | -| test.c:515:19:515:26 | (...) | 62517.0 | -| test.c:515:20:515:20 | 2 | 1.0 | -| test.c:515:20:515:20 | (unsigned int)... | 1.0 | -| test.c:515:20:515:25 | ... * ... | 62517.0 | -| test.c:515:24:515:25 | ip | 62517.0 | -| test.c:515:30:515:31 | 17 | 1.0 | -| test.c:515:30:515:31 | (unsigned int)... | 1.0 | -| test.c:515:30:515:36 | ... * ... | 62517.0 | -| test.c:515:35:515:36 | ip | 62517.0 | -| test.c:515:40:515:41 | 17 | 1.0 | -| test.c:515:40:515:41 | (unsigned int)... | 1.0 | -| test.c:515:40:515:52 | ... * ... | 62517.0 | -| test.c:515:45:515:52 | (...) | 62517.0 | -| test.c:515:46:515:46 | 2 | 1.0 | -| test.c:515:46:515:46 | (unsigned int)... | 1.0 | -| test.c:515:46:515:51 | ... * ... | 62517.0 | -| test.c:515:50:515:51 | ip | 62517.0 | -| test.c:515:56:515:57 | 17 | 1.0 | -| test.c:515:56:515:57 | (unsigned int)... | 1.0 | -| test.c:515:56:515:62 | ... * ... | 62517.0 | -| test.c:515:61:515:62 | ip | 62517.0 | -| test.c:516:17:516:28 | (...) | 125035.0 | -| test.c:516:17:516:33 | ... * ... | 125035.0 | +| test.c:507:15:507:21 | ... * ... | 2605.0 | +| test.c:507:20:507:21 | ip | 2605.0 | +| test.c:508:9:508:10 | 14 | 1.0 | +| test.c:508:9:508:10 | (unsigned int)... | 1.0 | +| test.c:508:9:508:15 | ... * ... | 1302.0 | +| test.c:508:9:508:31 | ... > ... | 1.0 | +| test.c:508:9:510:23 | ... ? ... : ... | 1695204.0 | +| test.c:508:14:508:15 | ip | 1302.0 | +| test.c:508:19:508:26 | (...) | 1302.0 | +| test.c:508:19:508:31 | ... * ... | 1302.0 | +| test.c:508:20:508:21 | ip | 1302.0 | +| test.c:508:20:508:25 | ... + ... | 1302.0 | +| test.c:508:25:508:25 | 1 | 1.0 | +| test.c:508:25:508:25 | (unsigned int)... | 1.0 | +| test.c:508:30:508:31 | 17 | 1.0 | +| test.c:508:30:508:31 | (unsigned int)... | 1.0 | +| test.c:509:11:509:12 | 14 | 1.0 | +| test.c:509:11:509:12 | (unsigned int)... | 1.0 | +| test.c:509:11:509:17 | ... * ... | 1302.0 | +| test.c:509:16:509:17 | ip | 1302.0 | +| test.c:510:11:510:18 | (...) | 1302.0 | +| test.c:510:11:510:23 | ... * ... | 1302.0 | +| test.c:510:12:510:13 | ip | 1302.0 | +| test.c:510:12:510:17 | ... + ... | 1302.0 | +| test.c:510:17:510:17 | 1 | 1.0 | +| test.c:510:17:510:17 | (unsigned int)... | 1.0 | +| test.c:510:22:510:23 | 14 | 1.0 | +| test.c:510:22:510:23 | (unsigned int)... | 1.0 | +| test.c:511:9:511:9 | 2 | 1.0 | +| test.c:511:9:511:9 | (unsigned int)... | 1.0 | +| test.c:511:9:511:26 | ... * ... | 10419.0 | +| test.c:511:9:531:44 | ... + ... | 1.9449636104972528E43 | +| test.c:511:13:511:26 | (...) | 10419.0 | +| test.c:511:14:511:15 | ip | 10419.0 | +| test.c:511:14:511:20 | ... * ... | 10419.0 | +| test.c:511:14:511:25 | ... + ... | 10419.0 | +| test.c:511:19:511:20 | 14 | 1.0 | +| test.c:511:19:511:20 | (unsigned int)... | 1.0 | +| test.c:511:24:511:25 | 32 | 1.0 | +| test.c:511:24:511:25 | (unsigned int)... | 1.0 | +| test.c:512:9:531:44 | (...) | 1.8667469147684545E39 | +| test.c:512:10:512:10 | 4 | 1.0 | +| test.c:512:10:512:10 | (unsigned int)... | 1.0 | +| test.c:512:10:512:27 | ... * ... | 10419.0 | +| test.c:512:10:513:28 | ... + ... | 1.08555561E8 | +| test.c:512:10:514:28 | ... + ... | 1.131040390059E12 | +| test.c:512:10:520:24 | ... + ... | 1.0235492350954187E25 | +| test.c:512:10:521:39 | ... > ... | 1.0 | +| test.c:512:10:531:43 | ... ? ... : ... | 1.8667469147684545E39 | +| test.c:512:14:512:27 | (...) | 10419.0 | +| test.c:512:15:512:16 | ip | 10419.0 | +| test.c:512:15:512:21 | ... * ... | 10419.0 | +| test.c:512:15:512:26 | ... + ... | 10419.0 | +| test.c:512:20:512:21 | 14 | 1.0 | +| test.c:512:20:512:21 | (unsigned int)... | 1.0 | +| test.c:512:25:512:26 | 32 | 1.0 | +| test.c:512:25:512:26 | (unsigned int)... | 1.0 | +| test.c:513:11:513:28 | (...) | 10419.0 | +| test.c:513:12:513:12 | 2 | 1.0 | +| test.c:513:12:513:12 | (unsigned int)... | 1.0 | +| test.c:513:12:513:17 | ... * ... | 10419.0 | +| test.c:513:12:513:22 | ... * ... | 10419.0 | +| test.c:513:12:513:27 | ... + ... | 10419.0 | +| test.c:513:16:513:17 | ip | 10419.0 | +| test.c:513:21:513:22 | 14 | 1.0 | +| test.c:513:21:513:22 | (unsigned int)... | 1.0 | +| test.c:513:26:513:27 | 32 | 1.0 | +| test.c:513:26:513:27 | (unsigned int)... | 1.0 | +| test.c:514:11:514:11 | 2 | 1.0 | +| test.c:514:11:514:11 | (unsigned int)... | 1.0 | +| test.c:514:11:514:28 | ... * ... | 10419.0 | +| test.c:514:15:514:28 | (...) | 10419.0 | +| test.c:514:16:514:17 | ip | 10419.0 | +| test.c:514:16:514:22 | ... * ... | 10419.0 | +| test.c:514:16:514:27 | ... + ... | 10419.0 | +| test.c:514:21:514:22 | 14 | 1.0 | +| test.c:514:21:514:22 | (unsigned int)... | 1.0 | +| test.c:514:26:514:27 | 64 | 1.0 | +| test.c:514:26:514:27 | (unsigned int)... | 1.0 | +| test.c:515:11:520:24 | (...) | 9.049625849719E12 | +| test.c:515:12:515:23 | (...) | 10419.0 | +| test.c:515:12:515:28 | ... * ... | 10419.0 | +| test.c:515:12:516:61 | ... > ... | 1.0 | +| test.c:515:12:520:23 | ... ? ... : ... | 9.049625849719E12 | +| test.c:515:13:515:13 | 2 | 1.0 | +| test.c:515:13:515:13 | (unsigned int)... | 1.0 | +| test.c:515:13:515:18 | ... * ... | 10419.0 | +| test.c:515:13:515:22 | ... + ... | 10419.0 | +| test.c:515:17:515:18 | ip | 10419.0 | +| test.c:515:22:515:22 | 1 | 1.0 | +| test.c:515:22:515:22 | (unsigned int)... | 1.0 | +| test.c:515:27:515:28 | 14 | 1.0 | +| test.c:515:27:515:28 | (unsigned int)... | 1.0 | +| test.c:516:11:516:61 | (...) | 1.08555561E8 | +| test.c:516:12:516:13 | 14 | 1.0 | +| test.c:516:12:516:13 | (unsigned int)... | 1.0 | +| test.c:516:12:516:24 | ... * ... | 10419.0 | +| test.c:516:12:516:34 | ... > ... | 1.0 | +| test.c:516:12:516:60 | ... ? ... : ... | 1.08555561E8 | +| test.c:516:17:516:24 | (...) | 10419.0 | | test.c:516:18:516:18 | 2 | 1.0 | | test.c:516:18:516:18 | (unsigned int)... | 1.0 | -| test.c:516:18:516:23 | ... * ... | 125035.0 | -| test.c:516:18:516:27 | ... + ... | 125035.0 | -| test.c:516:22:516:23 | ip | 125035.0 | -| test.c:516:27:516:27 | 1 | 1.0 | -| test.c:516:27:516:27 | (unsigned int)... | 1.0 | -| test.c:516:32:516:33 | 14 | 1.0 | -| test.c:516:32:516:33 | (unsigned int)... | 1.0 | -| test.c:517:17:517:18 | 14 | 1.0 | -| test.c:517:17:517:18 | (unsigned int)... | 1.0 | -| test.c:517:17:517:29 | ... * ... | 125035.0 | -| test.c:517:17:517:39 | ... > ... | 1.0 | -| test.c:517:17:519:25 | ... ? ... : ... | 1.5633751225E10 | -| test.c:517:22:517:29 | (...) | 125035.0 | -| test.c:517:23:517:23 | 2 | 1.0 | -| test.c:517:23:517:23 | (unsigned int)... | 1.0 | -| test.c:517:23:517:28 | ... * ... | 125035.0 | -| test.c:517:27:517:28 | ip | 125035.0 | -| test.c:517:33:517:34 | 17 | 1.0 | -| test.c:517:33:517:34 | (unsigned int)... | 1.0 | -| test.c:517:33:517:39 | ... * ... | 125035.0 | -| test.c:517:38:517:39 | ip | 125035.0 | -| test.c:518:19:518:20 | 14 | 1.0 | -| test.c:518:19:518:20 | (unsigned int)... | 1.0 | -| test.c:518:19:518:31 | ... * ... | 125035.0 | -| test.c:518:24:518:31 | (...) | 125035.0 | -| test.c:518:25:518:25 | 2 | 1.0 | -| test.c:518:25:518:25 | (unsigned int)... | 1.0 | -| test.c:518:25:518:30 | ... * ... | 125035.0 | -| test.c:518:29:518:30 | ip | 125035.0 | -| test.c:519:19:519:20 | 14 | 1.0 | -| test.c:519:19:519:20 | (unsigned int)... | 1.0 | -| test.c:519:19:519:25 | ... * ... | 125035.0 | -| test.c:519:24:519:25 | ip | 125035.0 | -| test.c:520:13:520:13 | 2 | 1.0 | -| test.c:520:13:520:13 | (unsigned int)... | 1.0 | -| test.c:520:13:520:18 | ... * ... | 62517.0 | -| test.c:520:13:520:23 | ... * ... | 62517.0 | -| test.c:520:13:520:43 | ... + ... | 3.908375289E9 | -| test.c:520:17:520:18 | ip | 62517.0 | -| test.c:520:22:520:23 | 14 | 1.0 | -| test.c:520:22:520:23 | (unsigned int)... | 1.0 | -| test.c:520:27:520:38 | (...) | 62517.0 | -| test.c:520:27:520:43 | ... * ... | 62517.0 | -| test.c:520:28:520:28 | 2 | 1.0 | -| test.c:520:28:520:28 | (unsigned int)... | 1.0 | -| test.c:520:28:520:33 | ... * ... | 62517.0 | -| test.c:520:28:520:37 | ... + ... | 62517.0 | -| test.c:520:32:520:33 | ip | 62517.0 | -| test.c:520:37:520:37 | 1 | 1.0 | -| test.c:520:37:520:37 | (unsigned int)... | 1.0 | -| test.c:520:42:520:43 | 17 | 1.0 | -| test.c:520:42:520:43 | (unsigned int)... | 1.0 | -| test.c:521:9:521:9 | 4 | 1.0 | +| test.c:516:18:516:23 | ... * ... | 10419.0 | +| test.c:516:22:516:23 | ip | 10419.0 | +| test.c:516:28:516:29 | 17 | 1.0 | +| test.c:516:28:516:29 | (unsigned int)... | 1.0 | +| test.c:516:28:516:34 | ... * ... | 10419.0 | +| test.c:516:33:516:34 | ip | 10419.0 | +| test.c:516:38:516:39 | 17 | 1.0 | +| test.c:516:38:516:39 | (unsigned int)... | 1.0 | +| test.c:516:38:516:50 | ... * ... | 10419.0 | +| test.c:516:43:516:50 | (...) | 10419.0 | +| test.c:516:44:516:44 | 2 | 1.0 | +| test.c:516:44:516:44 | (unsigned int)... | 1.0 | +| test.c:516:44:516:49 | ... * ... | 10419.0 | +| test.c:516:48:516:49 | ip | 10419.0 | +| test.c:516:54:516:55 | 17 | 1.0 | +| test.c:516:54:516:55 | (unsigned int)... | 1.0 | +| test.c:516:54:516:60 | ... * ... | 10419.0 | +| test.c:516:59:516:60 | ip | 10419.0 | +| test.c:517:15:517:26 | (...) | 20839.0 | +| test.c:517:15:517:31 | ... * ... | 20839.0 | +| test.c:517:16:517:16 | 2 | 1.0 | +| test.c:517:16:517:16 | (unsigned int)... | 1.0 | +| test.c:517:16:517:21 | ... * ... | 20839.0 | +| test.c:517:16:517:25 | ... + ... | 20839.0 | +| test.c:517:20:517:21 | ip | 20839.0 | +| test.c:517:25:517:25 | 1 | 1.0 | +| test.c:517:25:517:25 | (unsigned int)... | 1.0 | +| test.c:517:30:517:31 | 14 | 1.0 | +| test.c:517:30:517:31 | (unsigned int)... | 1.0 | +| test.c:518:15:518:16 | 14 | 1.0 | +| test.c:518:15:518:16 | (unsigned int)... | 1.0 | +| test.c:518:15:518:27 | ... * ... | 20839.0 | +| test.c:518:15:518:37 | ... > ... | 1.0 | +| test.c:518:15:520:23 | ... ? ... : ... | 4.34263921E8 | +| test.c:518:20:518:27 | (...) | 20839.0 | +| test.c:518:21:518:21 | 2 | 1.0 | +| test.c:518:21:518:21 | (unsigned int)... | 1.0 | +| test.c:518:21:518:26 | ... * ... | 20839.0 | +| test.c:518:25:518:26 | ip | 20839.0 | +| test.c:518:31:518:32 | 17 | 1.0 | +| test.c:518:31:518:32 | (unsigned int)... | 1.0 | +| test.c:518:31:518:37 | ... * ... | 20839.0 | +| test.c:518:36:518:37 | ip | 20839.0 | +| test.c:519:17:519:18 | 14 | 1.0 | +| test.c:519:17:519:18 | (unsigned int)... | 1.0 | +| test.c:519:17:519:29 | ... * ... | 20839.0 | +| test.c:519:22:519:29 | (...) | 20839.0 | +| test.c:519:23:519:23 | 2 | 1.0 | +| test.c:519:23:519:23 | (unsigned int)... | 1.0 | +| test.c:519:23:519:28 | ... * ... | 20839.0 | +| test.c:519:27:519:28 | ip | 20839.0 | +| test.c:520:17:520:18 | 14 | 1.0 | +| test.c:520:17:520:18 | (unsigned int)... | 1.0 | +| test.c:520:17:520:23 | ... * ... | 20839.0 | +| test.c:520:22:520:23 | ip | 20839.0 | +| test.c:521:9:521:9 | 2 | 1.0 | | test.c:521:9:521:9 | (unsigned int)... | 1.0 | -| test.c:521:9:521:26 | ... * ... | 10419.0 | -| test.c:521:9:522:30 | ... + ... | 1.08555561E8 | -| test.c:521:9:523:30 | ... + ... | 1.131040390059E12 | -| test.c:521:9:529:26 | ... + ... | 1.0235492350954187E25 | -| test.c:521:9:530:61 | ... > ... | 1.0 | -| test.c:521:9:542:25 | ... ? ... : ... | 4.778814771623795E41 | -| test.c:521:13:521:26 | (...) | 10419.0 | -| test.c:521:14:521:15 | ip | 10419.0 | -| test.c:521:14:521:20 | ... * ... | 10419.0 | -| test.c:521:14:521:25 | ... + ... | 10419.0 | -| test.c:521:19:521:20 | 14 | 1.0 | -| test.c:521:19:521:20 | (unsigned int)... | 1.0 | -| test.c:521:24:521:25 | 32 | 1.0 | -| test.c:521:24:521:25 | (unsigned int)... | 1.0 | -| test.c:522:13:522:30 | (...) | 10419.0 | -| test.c:522:14:522:14 | 2 | 1.0 | -| test.c:522:14:522:14 | (unsigned int)... | 1.0 | -| test.c:522:14:522:19 | ... * ... | 10419.0 | -| test.c:522:14:522:24 | ... * ... | 10419.0 | -| test.c:522:14:522:29 | ... + ... | 10419.0 | -| test.c:522:18:522:19 | ip | 10419.0 | +| test.c:521:9:521:14 | ... * ... | 62517.0 | +| test.c:521:9:521:19 | ... * ... | 62517.0 | +| test.c:521:9:521:39 | ... + ... | 3.908375289E9 | +| test.c:521:13:521:14 | ip | 62517.0 | +| test.c:521:18:521:19 | 14 | 1.0 | +| test.c:521:18:521:19 | (unsigned int)... | 1.0 | +| test.c:521:23:521:34 | (...) | 62517.0 | +| test.c:521:23:521:39 | ... * ... | 62517.0 | +| test.c:521:24:521:24 | 2 | 1.0 | +| test.c:521:24:521:24 | (unsigned int)... | 1.0 | +| test.c:521:24:521:29 | ... * ... | 62517.0 | +| test.c:521:24:521:33 | ... + ... | 62517.0 | +| test.c:521:28:521:29 | ip | 62517.0 | +| test.c:521:33:521:33 | 1 | 1.0 | +| test.c:521:33:521:33 | (unsigned int)... | 1.0 | +| test.c:521:38:521:39 | 17 | 1.0 | +| test.c:521:38:521:39 | (unsigned int)... | 1.0 | +| test.c:522:13:522:13 | 4 | 1.0 | +| test.c:522:13:522:13 | (unsigned int)... | 1.0 | +| test.c:522:13:522:30 | ... * ... | 62517.0 | +| test.c:522:13:523:30 | ... + ... | 3.908375289E9 | +| test.c:522:13:524:30 | ... + ... | 2.44339897942413E14 | +| test.c:522:13:530:26 | ... + ... | 4.7762734556795386E29 | +| test.c:522:17:522:30 | (...) | 62517.0 | +| test.c:522:18:522:19 | ip | 62517.0 | +| test.c:522:18:522:24 | ... * ... | 62517.0 | +| test.c:522:18:522:29 | ... + ... | 62517.0 | | test.c:522:23:522:24 | 14 | 1.0 | | test.c:522:23:522:24 | (unsigned int)... | 1.0 | | test.c:522:28:522:29 | 32 | 1.0 | | test.c:522:28:522:29 | (unsigned int)... | 1.0 | -| test.c:523:13:523:13 | 2 | 1.0 | -| test.c:523:13:523:13 | (unsigned int)... | 1.0 | -| test.c:523:13:523:30 | ... * ... | 10419.0 | -| test.c:523:17:523:30 | (...) | 10419.0 | -| test.c:523:18:523:19 | ip | 10419.0 | -| test.c:523:18:523:24 | ... * ... | 10419.0 | -| test.c:523:18:523:29 | ... + ... | 10419.0 | +| test.c:523:13:523:30 | (...) | 62517.0 | +| test.c:523:14:523:14 | 2 | 1.0 | +| test.c:523:14:523:14 | (unsigned int)... | 1.0 | +| test.c:523:14:523:19 | ... * ... | 62517.0 | +| test.c:523:14:523:24 | ... * ... | 62517.0 | +| test.c:523:14:523:29 | ... + ... | 62517.0 | +| test.c:523:18:523:19 | ip | 62517.0 | | test.c:523:23:523:24 | 14 | 1.0 | | test.c:523:23:523:24 | (unsigned int)... | 1.0 | -| test.c:523:28:523:29 | 64 | 1.0 | +| test.c:523:28:523:29 | 32 | 1.0 | | test.c:523:28:523:29 | (unsigned int)... | 1.0 | -| test.c:524:13:529:26 | (...) | 9.049625849719E12 | -| test.c:524:14:524:25 | (...) | 10419.0 | -| test.c:524:14:524:30 | ... * ... | 10419.0 | -| test.c:524:14:525:63 | ... > ... | 1.0 | -| test.c:524:14:529:25 | ... ? ... : ... | 9.049625849719E12 | -| test.c:524:15:524:15 | 2 | 1.0 | -| test.c:524:15:524:15 | (unsigned int)... | 1.0 | -| test.c:524:15:524:20 | ... * ... | 10419.0 | -| test.c:524:15:524:24 | ... + ... | 10419.0 | -| test.c:524:19:524:20 | ip | 10419.0 | -| test.c:524:24:524:24 | 1 | 1.0 | -| test.c:524:24:524:24 | (unsigned int)... | 1.0 | -| test.c:524:29:524:30 | 14 | 1.0 | -| test.c:524:29:524:30 | (unsigned int)... | 1.0 | -| test.c:525:13:525:63 | (...) | 1.08555561E8 | -| test.c:525:14:525:15 | 14 | 1.0 | -| test.c:525:14:525:15 | (unsigned int)... | 1.0 | -| test.c:525:14:525:26 | ... * ... | 10419.0 | -| test.c:525:14:525:36 | ... > ... | 1.0 | -| test.c:525:14:525:62 | ... ? ... : ... | 1.08555561E8 | -| test.c:525:19:525:26 | (...) | 10419.0 | -| test.c:525:20:525:20 | 2 | 1.0 | -| test.c:525:20:525:20 | (unsigned int)... | 1.0 | -| test.c:525:20:525:25 | ... * ... | 10419.0 | -| test.c:525:24:525:25 | ip | 10419.0 | -| test.c:525:30:525:31 | 17 | 1.0 | -| test.c:525:30:525:31 | (unsigned int)... | 1.0 | -| test.c:525:30:525:36 | ... * ... | 10419.0 | -| test.c:525:35:525:36 | ip | 10419.0 | -| test.c:525:40:525:41 | 17 | 1.0 | -| test.c:525:40:525:41 | (unsigned int)... | 1.0 | -| test.c:525:40:525:52 | ... * ... | 10419.0 | -| test.c:525:45:525:52 | (...) | 10419.0 | -| test.c:525:46:525:46 | 2 | 1.0 | -| test.c:525:46:525:46 | (unsigned int)... | 1.0 | -| test.c:525:46:525:51 | ... * ... | 10419.0 | -| test.c:525:50:525:51 | ip | 10419.0 | -| test.c:525:56:525:57 | 17 | 1.0 | -| test.c:525:56:525:57 | (unsigned int)... | 1.0 | -| test.c:525:56:525:62 | ... * ... | 10419.0 | -| test.c:525:61:525:62 | ip | 10419.0 | -| test.c:526:17:526:28 | (...) | 20839.0 | -| test.c:526:17:526:33 | ... * ... | 20839.0 | -| test.c:526:18:526:18 | 2 | 1.0 | -| test.c:526:18:526:18 | (unsigned int)... | 1.0 | -| test.c:526:18:526:23 | ... * ... | 20839.0 | -| test.c:526:18:526:27 | ... + ... | 20839.0 | -| test.c:526:22:526:23 | ip | 20839.0 | -| test.c:526:27:526:27 | 1 | 1.0 | -| test.c:526:27:526:27 | (unsigned int)... | 1.0 | -| test.c:526:32:526:33 | 14 | 1.0 | -| test.c:526:32:526:33 | (unsigned int)... | 1.0 | -| test.c:527:17:527:18 | 14 | 1.0 | -| test.c:527:17:527:18 | (unsigned int)... | 1.0 | -| test.c:527:17:527:29 | ... * ... | 20839.0 | -| test.c:527:17:527:39 | ... > ... | 1.0 | -| test.c:527:17:529:25 | ... ? ... : ... | 4.34263921E8 | -| test.c:527:22:527:29 | (...) | 20839.0 | -| test.c:527:23:527:23 | 2 | 1.0 | -| test.c:527:23:527:23 | (unsigned int)... | 1.0 | -| test.c:527:23:527:28 | ... * ... | 20839.0 | -| test.c:527:27:527:28 | ip | 20839.0 | -| test.c:527:33:527:34 | 17 | 1.0 | -| test.c:527:33:527:34 | (unsigned int)... | 1.0 | -| test.c:527:33:527:39 | ... * ... | 20839.0 | -| test.c:527:38:527:39 | ip | 20839.0 | -| test.c:528:19:528:20 | 14 | 1.0 | -| test.c:528:19:528:20 | (unsigned int)... | 1.0 | -| test.c:528:19:528:31 | ... * ... | 20839.0 | -| test.c:528:24:528:31 | (...) | 20839.0 | -| test.c:528:25:528:25 | 2 | 1.0 | -| test.c:528:25:528:25 | (unsigned int)... | 1.0 | -| test.c:528:25:528:30 | ... * ... | 20839.0 | -| test.c:528:29:528:30 | ip | 20839.0 | +| test.c:524:13:524:13 | 2 | 1.0 | +| test.c:524:13:524:13 | (unsigned int)... | 1.0 | +| test.c:524:13:524:30 | ... * ... | 62517.0 | +| test.c:524:17:524:30 | (...) | 62517.0 | +| test.c:524:18:524:19 | ip | 62517.0 | +| test.c:524:18:524:24 | ... * ... | 62517.0 | +| test.c:524:18:524:29 | ... + ... | 62517.0 | +| test.c:524:23:524:24 | 14 | 1.0 | +| test.c:524:23:524:24 | (unsigned int)... | 1.0 | +| test.c:524:28:524:29 | 64 | 1.0 | +| test.c:524:28:524:29 | (unsigned int)... | 1.0 | +| test.c:525:13:530:26 | (...) | 1.954766084417875E15 | +| test.c:525:14:525:25 | (...) | 62517.0 | +| test.c:525:14:525:30 | ... * ... | 62517.0 | +| test.c:525:14:526:63 | ... > ... | 1.0 | +| test.c:525:14:530:25 | ... ? ... : ... | 1.954766084417875E15 | +| test.c:525:15:525:15 | 2 | 1.0 | +| test.c:525:15:525:15 | (unsigned int)... | 1.0 | +| test.c:525:15:525:20 | ... * ... | 62517.0 | +| test.c:525:15:525:24 | ... + ... | 62517.0 | +| test.c:525:19:525:20 | ip | 62517.0 | +| test.c:525:24:525:24 | 1 | 1.0 | +| test.c:525:24:525:24 | (unsigned int)... | 1.0 | +| test.c:525:29:525:30 | 14 | 1.0 | +| test.c:525:29:525:30 | (unsigned int)... | 1.0 | +| test.c:526:13:526:63 | (...) | 3.908375289E9 | +| test.c:526:14:526:15 | 14 | 1.0 | +| test.c:526:14:526:15 | (unsigned int)... | 1.0 | +| test.c:526:14:526:26 | ... * ... | 62517.0 | +| test.c:526:14:526:36 | ... > ... | 1.0 | +| test.c:526:14:526:62 | ... ? ... : ... | 3.908375289E9 | +| test.c:526:19:526:26 | (...) | 62517.0 | +| test.c:526:20:526:20 | 2 | 1.0 | +| test.c:526:20:526:20 | (unsigned int)... | 1.0 | +| test.c:526:20:526:25 | ... * ... | 62517.0 | +| test.c:526:24:526:25 | ip | 62517.0 | +| test.c:526:30:526:31 | 17 | 1.0 | +| test.c:526:30:526:31 | (unsigned int)... | 1.0 | +| test.c:526:30:526:36 | ... * ... | 62517.0 | +| test.c:526:35:526:36 | ip | 62517.0 | +| test.c:526:40:526:41 | 17 | 1.0 | +| test.c:526:40:526:41 | (unsigned int)... | 1.0 | +| test.c:526:40:526:52 | ... * ... | 62517.0 | +| test.c:526:45:526:52 | (...) | 62517.0 | +| test.c:526:46:526:46 | 2 | 1.0 | +| test.c:526:46:526:46 | (unsigned int)... | 1.0 | +| test.c:526:46:526:51 | ... * ... | 62517.0 | +| test.c:526:50:526:51 | ip | 62517.0 | +| test.c:526:56:526:57 | 17 | 1.0 | +| test.c:526:56:526:57 | (unsigned int)... | 1.0 | +| test.c:526:56:526:62 | ... * ... | 62517.0 | +| test.c:526:61:526:62 | ip | 62517.0 | +| test.c:527:17:527:28 | (...) | 125035.0 | +| test.c:527:17:527:33 | ... * ... | 125035.0 | +| test.c:527:18:527:18 | 2 | 1.0 | +| test.c:527:18:527:18 | (unsigned int)... | 1.0 | +| test.c:527:18:527:23 | ... * ... | 125035.0 | +| test.c:527:18:527:27 | ... + ... | 125035.0 | +| test.c:527:22:527:23 | ip | 125035.0 | +| test.c:527:27:527:27 | 1 | 1.0 | +| test.c:527:27:527:27 | (unsigned int)... | 1.0 | +| test.c:527:32:527:33 | 14 | 1.0 | +| test.c:527:32:527:33 | (unsigned int)... | 1.0 | +| test.c:528:17:528:18 | 14 | 1.0 | +| test.c:528:17:528:18 | (unsigned int)... | 1.0 | +| test.c:528:17:528:29 | ... * ... | 125035.0 | +| test.c:528:17:528:39 | ... > ... | 1.0 | +| test.c:528:17:530:25 | ... ? ... : ... | 1.5633751225E10 | +| test.c:528:22:528:29 | (...) | 125035.0 | +| test.c:528:23:528:23 | 2 | 1.0 | +| test.c:528:23:528:23 | (unsigned int)... | 1.0 | +| test.c:528:23:528:28 | ... * ... | 125035.0 | +| test.c:528:27:528:28 | ip | 125035.0 | +| test.c:528:33:528:34 | 17 | 1.0 | +| test.c:528:33:528:34 | (unsigned int)... | 1.0 | +| test.c:528:33:528:39 | ... * ... | 125035.0 | +| test.c:528:38:528:39 | ip | 125035.0 | | test.c:529:19:529:20 | 14 | 1.0 | | test.c:529:19:529:20 | (unsigned int)... | 1.0 | -| test.c:529:19:529:25 | ... * ... | 20839.0 | -| test.c:529:24:529:25 | ip | 20839.0 | -| test.c:530:11:530:61 | (...) | 3.908375289E9 | -| test.c:530:12:530:13 | 14 | 1.0 | -| test.c:530:12:530:13 | (unsigned int)... | 1.0 | -| test.c:530:12:530:18 | ... * ... | 62517.0 | -| test.c:530:12:530:34 | ... > ... | 1.0 | -| test.c:530:12:530:60 | ... ? ... : ... | 3.908375289E9 | -| test.c:530:17:530:18 | ip | 62517.0 | -| test.c:530:22:530:29 | (...) | 62517.0 | -| test.c:530:22:530:34 | ... * ... | 62517.0 | -| test.c:530:23:530:24 | ip | 62517.0 | -| test.c:530:23:530:28 | ... + ... | 62517.0 | -| test.c:530:28:530:28 | 1 | 1.0 | -| test.c:530:28:530:28 | (unsigned int)... | 1.0 | -| test.c:530:33:530:34 | 17 | 1.0 | -| test.c:530:33:530:34 | (unsigned int)... | 1.0 | -| test.c:530:38:530:39 | 17 | 1.0 | -| test.c:530:38:530:39 | (unsigned int)... | 1.0 | -| test.c:530:38:530:44 | ... * ... | 62517.0 | -| test.c:530:43:530:44 | ip | 62517.0 | -| test.c:530:48:530:55 | (...) | 62517.0 | -| test.c:530:48:530:60 | ... * ... | 62517.0 | -| test.c:530:49:530:50 | ip | 62517.0 | -| test.c:530:49:530:54 | ... + ... | 62517.0 | -| test.c:530:54:530:54 | 1 | 1.0 | -| test.c:530:54:530:54 | (unsigned int)... | 1.0 | -| test.c:530:59:530:60 | 17 | 1.0 | -| test.c:530:59:530:60 | (unsigned int)... | 1.0 | -| test.c:531:11:531:11 | 4 | 1.0 | -| test.c:531:11:531:11 | (unsigned int)... | 1.0 | -| test.c:531:11:531:28 | ... * ... | 125034.0 | -| test.c:531:11:532:28 | ... + ... | 1.5633501156E10 | -| test.c:531:11:533:28 | ... + ... | 1.954719183539304E15 | -| test.c:531:11:539:24 | ... + ... | 3.056778340269433E31 | -| test.c:531:15:531:28 | (...) | 125034.0 | -| test.c:531:16:531:17 | ip | 125034.0 | -| test.c:531:16:531:22 | ... * ... | 125034.0 | -| test.c:531:16:531:27 | ... + ... | 125034.0 | -| test.c:531:21:531:22 | 14 | 1.0 | -| test.c:531:21:531:22 | (unsigned int)... | 1.0 | -| test.c:531:26:531:27 | 32 | 1.0 | -| test.c:531:26:531:27 | (unsigned int)... | 1.0 | -| test.c:532:11:532:28 | (...) | 125034.0 | -| test.c:532:12:532:12 | 2 | 1.0 | -| test.c:532:12:532:12 | (unsigned int)... | 1.0 | -| test.c:532:12:532:17 | ... * ... | 125034.0 | -| test.c:532:12:532:22 | ... * ... | 125034.0 | -| test.c:532:12:532:27 | ... + ... | 125034.0 | -| test.c:532:16:532:17 | ip | 125034.0 | -| test.c:532:21:532:22 | 14 | 1.0 | -| test.c:532:21:532:22 | (unsigned int)... | 1.0 | -| test.c:532:26:532:27 | 32 | 1.0 | -| test.c:532:26:532:27 | (unsigned int)... | 1.0 | -| test.c:533:11:533:11 | 2 | 1.0 | -| test.c:533:11:533:11 | (unsigned int)... | 1.0 | -| test.c:533:11:533:28 | ... * ... | 125034.0 | -| test.c:533:15:533:28 | (...) | 125034.0 | -| test.c:533:16:533:17 | ip | 125034.0 | -| test.c:533:16:533:22 | ... * ... | 125034.0 | -| test.c:533:16:533:27 | ... + ... | 125034.0 | -| test.c:533:21:533:22 | 14 | 1.0 | -| test.c:533:21:533:22 | (unsigned int)... | 1.0 | -| test.c:533:26:533:27 | 64 | 1.0 | -| test.c:533:26:533:27 | (unsigned int)... | 1.0 | -| test.c:534:11:539:24 | (...) | 1.5637941071078508E16 | -| test.c:534:12:534:23 | (...) | 125034.0 | -| test.c:534:12:534:28 | ... * ... | 125034.0 | -| test.c:534:12:535:61 | ... > ... | 1.0 | -| test.c:534:12:539:23 | ... ? ... : ... | 1.5637941071078508E16 | +| test.c:529:19:529:31 | ... * ... | 125035.0 | +| test.c:529:24:529:31 | (...) | 125035.0 | +| test.c:529:25:529:25 | 2 | 1.0 | +| test.c:529:25:529:25 | (unsigned int)... | 1.0 | +| test.c:529:25:529:30 | ... * ... | 125035.0 | +| test.c:529:29:529:30 | ip | 125035.0 | +| test.c:530:19:530:20 | 14 | 1.0 | +| test.c:530:19:530:20 | (unsigned int)... | 1.0 | +| test.c:530:19:530:25 | ... * ... | 125035.0 | +| test.c:530:24:530:25 | ip | 125035.0 | +| test.c:531:13:531:13 | 2 | 1.0 | +| test.c:531:13:531:13 | (unsigned int)... | 1.0 | +| test.c:531:13:531:18 | ... * ... | 62517.0 | +| test.c:531:13:531:23 | ... * ... | 62517.0 | +| test.c:531:13:531:43 | ... + ... | 3.908375289E9 | +| test.c:531:17:531:18 | ip | 62517.0 | +| test.c:531:22:531:23 | 14 | 1.0 | +| test.c:531:22:531:23 | (unsigned int)... | 1.0 | +| test.c:531:27:531:38 | (...) | 62517.0 | +| test.c:531:27:531:43 | ... * ... | 62517.0 | +| test.c:531:28:531:28 | 2 | 1.0 | +| test.c:531:28:531:28 | (unsigned int)... | 1.0 | +| test.c:531:28:531:33 | ... * ... | 62517.0 | +| test.c:531:28:531:37 | ... + ... | 62517.0 | +| test.c:531:32:531:33 | ip | 62517.0 | +| test.c:531:37:531:37 | 1 | 1.0 | +| test.c:531:37:531:37 | (unsigned int)... | 1.0 | +| test.c:531:42:531:43 | 17 | 1.0 | +| test.c:531:42:531:43 | (unsigned int)... | 1.0 | +| test.c:532:9:532:9 | 4 | 1.0 | +| test.c:532:9:532:9 | (unsigned int)... | 1.0 | +| test.c:532:9:532:26 | ... * ... | 10419.0 | +| test.c:532:9:533:30 | ... + ... | 1.08555561E8 | +| test.c:532:9:534:30 | ... + ... | 1.131040390059E12 | +| test.c:532:9:540:26 | ... + ... | 1.0235492350954187E25 | +| test.c:532:9:541:61 | ... > ... | 1.0 | +| test.c:532:9:553:25 | ... ? ... : ... | 4.778814771623795E41 | +| test.c:532:13:532:26 | (...) | 10419.0 | +| test.c:532:14:532:15 | ip | 10419.0 | +| test.c:532:14:532:20 | ... * ... | 10419.0 | +| test.c:532:14:532:25 | ... + ... | 10419.0 | +| test.c:532:19:532:20 | 14 | 1.0 | +| test.c:532:19:532:20 | (unsigned int)... | 1.0 | +| test.c:532:24:532:25 | 32 | 1.0 | +| test.c:532:24:532:25 | (unsigned int)... | 1.0 | +| test.c:533:13:533:30 | (...) | 10419.0 | +| test.c:533:14:533:14 | 2 | 1.0 | +| test.c:533:14:533:14 | (unsigned int)... | 1.0 | +| test.c:533:14:533:19 | ... * ... | 10419.0 | +| test.c:533:14:533:24 | ... * ... | 10419.0 | +| test.c:533:14:533:29 | ... + ... | 10419.0 | +| test.c:533:18:533:19 | ip | 10419.0 | +| test.c:533:23:533:24 | 14 | 1.0 | +| test.c:533:23:533:24 | (unsigned int)... | 1.0 | +| test.c:533:28:533:29 | 32 | 1.0 | +| test.c:533:28:533:29 | (unsigned int)... | 1.0 | | test.c:534:13:534:13 | 2 | 1.0 | | test.c:534:13:534:13 | (unsigned int)... | 1.0 | -| test.c:534:13:534:18 | ... * ... | 125034.0 | -| test.c:534:13:534:22 | ... + ... | 125034.0 | -| test.c:534:17:534:18 | ip | 125034.0 | -| test.c:534:22:534:22 | 1 | 1.0 | -| test.c:534:22:534:22 | (unsigned int)... | 1.0 | -| test.c:534:27:534:28 | 14 | 1.0 | -| test.c:534:27:534:28 | (unsigned int)... | 1.0 | -| test.c:535:11:535:61 | (...) | 1.5633501156E10 | -| test.c:535:12:535:13 | 14 | 1.0 | -| test.c:535:12:535:13 | (unsigned int)... | 1.0 | -| test.c:535:12:535:24 | ... * ... | 125034.0 | -| test.c:535:12:535:34 | ... > ... | 1.0 | -| test.c:535:12:535:60 | ... ? ... : ... | 1.5633501156E10 | -| test.c:535:17:535:24 | (...) | 125034.0 | -| test.c:535:18:535:18 | 2 | 1.0 | -| test.c:535:18:535:18 | (unsigned int)... | 1.0 | -| test.c:535:18:535:23 | ... * ... | 125034.0 | -| test.c:535:22:535:23 | ip | 125034.0 | -| test.c:535:28:535:29 | 17 | 1.0 | -| test.c:535:28:535:29 | (unsigned int)... | 1.0 | -| test.c:535:28:535:34 | ... * ... | 125034.0 | -| test.c:535:33:535:34 | ip | 125034.0 | -| test.c:535:38:535:39 | 17 | 1.0 | -| test.c:535:38:535:39 | (unsigned int)... | 1.0 | -| test.c:535:38:535:50 | ... * ... | 125034.0 | -| test.c:535:43:535:50 | (...) | 125034.0 | -| test.c:535:44:535:44 | 2 | 1.0 | -| test.c:535:44:535:44 | (unsigned int)... | 1.0 | -| test.c:535:44:535:49 | ... * ... | 125034.0 | -| test.c:535:48:535:49 | ip | 125034.0 | -| test.c:535:54:535:55 | 17 | 1.0 | -| test.c:535:54:535:55 | (unsigned int)... | 1.0 | -| test.c:535:54:535:60 | ... * ... | 125034.0 | -| test.c:535:59:535:60 | ip | 125034.0 | -| test.c:536:15:536:26 | (...) | 250069.0 | -| test.c:536:15:536:31 | ... * ... | 250069.0 | -| test.c:536:16:536:16 | 2 | 1.0 | -| test.c:536:16:536:16 | (unsigned int)... | 1.0 | -| test.c:536:16:536:21 | ... * ... | 250069.0 | -| test.c:536:16:536:25 | ... + ... | 250069.0 | -| test.c:536:20:536:21 | ip | 250069.0 | -| test.c:536:25:536:25 | 1 | 1.0 | -| test.c:536:25:536:25 | (unsigned int)... | 1.0 | -| test.c:536:30:536:31 | 14 | 1.0 | +| test.c:534:13:534:30 | ... * ... | 10419.0 | +| test.c:534:17:534:30 | (...) | 10419.0 | +| test.c:534:18:534:19 | ip | 10419.0 | +| test.c:534:18:534:24 | ... * ... | 10419.0 | +| test.c:534:18:534:29 | ... + ... | 10419.0 | +| test.c:534:23:534:24 | 14 | 1.0 | +| test.c:534:23:534:24 | (unsigned int)... | 1.0 | +| test.c:534:28:534:29 | 64 | 1.0 | +| test.c:534:28:534:29 | (unsigned int)... | 1.0 | +| test.c:535:13:540:26 | (...) | 9.049625849719E12 | +| test.c:535:14:535:25 | (...) | 10419.0 | +| test.c:535:14:535:30 | ... * ... | 10419.0 | +| test.c:535:14:536:63 | ... > ... | 1.0 | +| test.c:535:14:540:25 | ... ? ... : ... | 9.049625849719E12 | +| test.c:535:15:535:15 | 2 | 1.0 | +| test.c:535:15:535:15 | (unsigned int)... | 1.0 | +| test.c:535:15:535:20 | ... * ... | 10419.0 | +| test.c:535:15:535:24 | ... + ... | 10419.0 | +| test.c:535:19:535:20 | ip | 10419.0 | +| test.c:535:24:535:24 | 1 | 1.0 | +| test.c:535:24:535:24 | (unsigned int)... | 1.0 | +| test.c:535:29:535:30 | 14 | 1.0 | +| test.c:535:29:535:30 | (unsigned int)... | 1.0 | +| test.c:536:13:536:63 | (...) | 1.08555561E8 | +| test.c:536:14:536:15 | 14 | 1.0 | +| test.c:536:14:536:15 | (unsigned int)... | 1.0 | +| test.c:536:14:536:26 | ... * ... | 10419.0 | +| test.c:536:14:536:36 | ... > ... | 1.0 | +| test.c:536:14:536:62 | ... ? ... : ... | 1.08555561E8 | +| test.c:536:19:536:26 | (...) | 10419.0 | +| test.c:536:20:536:20 | 2 | 1.0 | +| test.c:536:20:536:20 | (unsigned int)... | 1.0 | +| test.c:536:20:536:25 | ... * ... | 10419.0 | +| test.c:536:24:536:25 | ip | 10419.0 | +| test.c:536:30:536:31 | 17 | 1.0 | | test.c:536:30:536:31 | (unsigned int)... | 1.0 | -| test.c:537:15:537:16 | 14 | 1.0 | -| test.c:537:15:537:16 | (unsigned int)... | 1.0 | -| test.c:537:15:537:27 | ... * ... | 250069.0 | -| test.c:537:15:537:37 | ... > ... | 1.0 | -| test.c:537:15:539:23 | ... ? ... : ... | 6.2534504761E10 | -| test.c:537:20:537:27 | (...) | 250069.0 | -| test.c:537:21:537:21 | 2 | 1.0 | -| test.c:537:21:537:21 | (unsigned int)... | 1.0 | -| test.c:537:21:537:26 | ... * ... | 250069.0 | -| test.c:537:25:537:26 | ip | 250069.0 | -| test.c:537:31:537:32 | 17 | 1.0 | -| test.c:537:31:537:32 | (unsigned int)... | 1.0 | -| test.c:537:31:537:37 | ... * ... | 250069.0 | -| test.c:537:36:537:37 | ip | 250069.0 | +| test.c:536:30:536:36 | ... * ... | 10419.0 | +| test.c:536:35:536:36 | ip | 10419.0 | +| test.c:536:40:536:41 | 17 | 1.0 | +| test.c:536:40:536:41 | (unsigned int)... | 1.0 | +| test.c:536:40:536:52 | ... * ... | 10419.0 | +| test.c:536:45:536:52 | (...) | 10419.0 | +| test.c:536:46:536:46 | 2 | 1.0 | +| test.c:536:46:536:46 | (unsigned int)... | 1.0 | +| test.c:536:46:536:51 | ... * ... | 10419.0 | +| test.c:536:50:536:51 | ip | 10419.0 | +| test.c:536:56:536:57 | 17 | 1.0 | +| test.c:536:56:536:57 | (unsigned int)... | 1.0 | +| test.c:536:56:536:62 | ... * ... | 10419.0 | +| test.c:536:61:536:62 | ip | 10419.0 | +| test.c:537:17:537:28 | (...) | 20839.0 | +| test.c:537:17:537:33 | ... * ... | 20839.0 | +| test.c:537:18:537:18 | 2 | 1.0 | +| test.c:537:18:537:18 | (unsigned int)... | 1.0 | +| test.c:537:18:537:23 | ... * ... | 20839.0 | +| test.c:537:18:537:27 | ... + ... | 20839.0 | +| test.c:537:22:537:23 | ip | 20839.0 | +| test.c:537:27:537:27 | 1 | 1.0 | +| test.c:537:27:537:27 | (unsigned int)... | 1.0 | +| test.c:537:32:537:33 | 14 | 1.0 | +| test.c:537:32:537:33 | (unsigned int)... | 1.0 | | test.c:538:17:538:18 | 14 | 1.0 | | test.c:538:17:538:18 | (unsigned int)... | 1.0 | -| test.c:538:17:538:29 | ... * ... | 250069.0 | -| test.c:538:22:538:29 | (...) | 250069.0 | +| test.c:538:17:538:29 | ... * ... | 20839.0 | +| test.c:538:17:538:39 | ... > ... | 1.0 | +| test.c:538:17:540:25 | ... ? ... : ... | 4.34263921E8 | +| test.c:538:22:538:29 | (...) | 20839.0 | | test.c:538:23:538:23 | 2 | 1.0 | | test.c:538:23:538:23 | (unsigned int)... | 1.0 | -| test.c:538:23:538:28 | ... * ... | 250069.0 | -| test.c:538:27:538:28 | ip | 250069.0 | -| test.c:539:17:539:18 | 14 | 1.0 | -| test.c:539:17:539:18 | (unsigned int)... | 1.0 | -| test.c:539:17:539:23 | ... * ... | 250069.0 | -| test.c:539:22:539:23 | ip | 250069.0 | -| test.c:540:11:540:12 | 14 | 1.0 | -| test.c:540:11:540:12 | (unsigned int)... | 1.0 | -| test.c:540:11:540:17 | ... * ... | 125034.0 | -| test.c:540:11:540:33 | ... > ... | 1.0 | -| test.c:540:11:542:25 | ... ? ... : ... | 1.5633501156E10 | -| test.c:540:16:540:17 | ip | 125034.0 | -| test.c:540:21:540:28 | (...) | 125034.0 | -| test.c:540:21:540:33 | ... * ... | 125034.0 | -| test.c:540:22:540:23 | ip | 125034.0 | -| test.c:540:22:540:27 | ... + ... | 125034.0 | -| test.c:540:27:540:27 | 1 | 1.0 | -| test.c:540:27:540:27 | (unsigned int)... | 1.0 | -| test.c:540:32:540:33 | 17 | 1.0 | -| test.c:540:32:540:33 | (unsigned int)... | 1.0 | -| test.c:541:13:541:14 | 14 | 1.0 | -| test.c:541:13:541:14 | (unsigned int)... | 1.0 | -| test.c:541:13:541:19 | ... * ... | 125034.0 | -| test.c:541:18:541:19 | ip | 125034.0 | -| test.c:542:13:542:20 | (...) | 125034.0 | -| test.c:542:13:542:25 | ... * ... | 125034.0 | -| test.c:542:14:542:15 | ip | 125034.0 | -| test.c:542:14:542:19 | ... + ... | 125034.0 | -| test.c:542:19:542:19 | 1 | 1.0 | -| test.c:542:19:542:19 | (unsigned int)... | 1.0 | -| test.c:542:24:542:25 | 14 | 1.0 | -| test.c:542:24:542:25 | (unsigned int)... | 1.0 | -| test.c:543:9:543:10 | 14 | 1.0 | -| test.c:543:9:543:10 | (unsigned int)... | 1.0 | -| test.c:543:9:543:15 | ... * ... | 1437897.0 | -| test.c:543:9:543:59 | ... > ... | 1.0 | -| test.c:543:9:545:51 | ... ? ... : ... | 2.9729207539701335E18 | -| test.c:543:14:543:15 | ip | 1437897.0 | -| test.c:543:19:543:30 | (...) | 1437897.0 | -| test.c:543:19:543:35 | ... * ... | 1437897.0 | -| test.c:543:19:543:59 | ... + ... | 2.067547782609E12 | -| test.c:543:20:543:20 | 2 | 1.0 | -| test.c:543:20:543:20 | (unsigned int)... | 1.0 | -| test.c:543:20:543:25 | ... * ... | 1437897.0 | -| test.c:543:20:543:29 | ... + ... | 1437897.0 | -| test.c:543:24:543:25 | ip | 1437897.0 | -| test.c:543:29:543:29 | 1 | 1.0 | -| test.c:543:29:543:29 | (unsigned int)... | 1.0 | -| test.c:543:34:543:35 | 17 | 1.0 | -| test.c:543:34:543:35 | (unsigned int)... | 1.0 | -| test.c:543:39:543:54 | (...) | 1437897.0 | -| test.c:543:39:543:59 | ... * ... | 1437897.0 | -| test.c:543:40:543:40 | 2 | 1.0 | -| test.c:543:40:543:40 | (unsigned int)... | 1.0 | -| test.c:543:40:543:45 | ... * ... | 1437897.0 | -| test.c:543:40:543:49 | ... + ... | 1437897.0 | -| test.c:543:40:543:53 | ... + ... | 1437897.0 | -| test.c:543:44:543:45 | ip | 1437897.0 | -| test.c:543:49:543:49 | 1 | 1.0 | -| test.c:543:49:543:49 | (unsigned int)... | 1.0 | -| test.c:543:53:543:53 | 1 | 1.0 | -| test.c:543:53:543:53 | (unsigned int)... | 1.0 | -| test.c:543:58:543:59 | 17 | 1.0 | -| test.c:543:58:543:59 | (unsigned int)... | 1.0 | -| test.c:544:11:544:12 | 14 | 1.0 | -| test.c:544:11:544:12 | (unsigned int)... | 1.0 | -| test.c:544:11:544:17 | ... * ... | 1437897.0 | -| test.c:544:16:544:17 | ip | 1437897.0 | -| test.c:545:11:545:22 | (...) | 1437897.0 | -| test.c:545:11:545:27 | ... * ... | 1437897.0 | -| test.c:545:11:545:51 | ... + ... | 2.067547782609E12 | -| test.c:545:12:545:12 | 2 | 1.0 | -| test.c:545:12:545:12 | (unsigned int)... | 1.0 | -| test.c:545:12:545:17 | ... * ... | 1437897.0 | -| test.c:545:12:545:21 | ... + ... | 1437897.0 | -| test.c:545:16:545:17 | ip | 1437897.0 | -| test.c:545:21:545:21 | 1 | 1.0 | -| test.c:545:21:545:21 | (unsigned int)... | 1.0 | -| test.c:545:26:545:27 | 14 | 1.0 | -| test.c:545:26:545:27 | (unsigned int)... | 1.0 | -| test.c:545:31:545:46 | (...) | 1437897.0 | -| test.c:545:31:545:51 | ... * ... | 1437897.0 | -| test.c:545:32:545:32 | 2 | 1.0 | -| test.c:545:32:545:32 | (unsigned int)... | 1.0 | -| test.c:545:32:545:37 | ... * ... | 1437897.0 | -| test.c:545:32:545:41 | ... + ... | 1437897.0 | -| test.c:545:32:545:45 | ... + ... | 1437897.0 | -| test.c:545:36:545:37 | ip | 1437897.0 | -| test.c:545:41:545:41 | 1 | 1.0 | -| test.c:545:41:545:41 | (unsigned int)... | 1.0 | -| test.c:545:45:545:45 | 1 | 1.0 | -| test.c:545:45:545:45 | (unsigned int)... | 1.0 | -| test.c:545:50:545:51 | 17 | 1.0 | -| test.c:545:50:545:51 | (unsigned int)... | 1.0 | -| test.c:546:9:546:9 | 2 | 1.0 | -| test.c:546:9:546:9 | (unsigned int)... | 1.0 | -| test.c:546:9:546:26 | ... * ... | 1437897.0 | -| test.c:546:9:566:48 | ... + ... | 3.5306223994138077E62 | -| test.c:546:9:588:30 | ... > ... | 1.0 | -| test.c:546:9:631:27 | ... ? ... : ... | 4.3658022750663434E182 | -| test.c:546:13:546:26 | (...) | 1437897.0 | -| test.c:546:14:546:15 | ip | 1437897.0 | -| test.c:546:14:546:20 | ... * ... | 1437897.0 | -| test.c:546:14:546:25 | ... + ... | 1437897.0 | -| test.c:546:19:546:20 | 14 | 1.0 | -| test.c:546:19:546:20 | (unsigned int)... | 1.0 | -| test.c:546:24:546:25 | 32 | 1.0 | -| test.c:546:24:546:25 | (unsigned int)... | 1.0 | -| test.c:547:13:566:48 | (...) | 2.4554070280512497E56 | -| test.c:547:14:547:14 | 4 | 1.0 | -| test.c:547:14:547:14 | (unsigned int)... | 1.0 | -| test.c:547:14:547:31 | ... * ... | 1437897.0 | -| test.c:547:14:548:32 | ... + ... | 2.067547782609E12 | -| test.c:547:14:549:32 | ... + ... | 2.9729207539701335E18 | -| test.c:547:14:555:28 | ... + ... | 7.070613623498497E37 | -| test.c:547:14:556:43 | ... > ... | 1.0 | -| test.c:547:14:566:47 | ... ? ... : ... | 2.4554070280512497E56 | -| test.c:547:18:547:31 | (...) | 1437897.0 | -| test.c:547:19:547:20 | ip | 1437897.0 | -| test.c:547:19:547:25 | ... * ... | 1437897.0 | -| test.c:547:19:547:30 | ... + ... | 1437897.0 | -| test.c:547:24:547:25 | 14 | 1.0 | -| test.c:547:24:547:25 | (unsigned int)... | 1.0 | -| test.c:547:29:547:30 | 32 | 1.0 | -| test.c:547:29:547:30 | (unsigned int)... | 1.0 | -| test.c:548:15:548:32 | (...) | 1437897.0 | -| test.c:548:16:548:16 | 2 | 1.0 | -| test.c:548:16:548:16 | (unsigned int)... | 1.0 | -| test.c:548:16:548:21 | ... * ... | 1437897.0 | -| test.c:548:16:548:26 | ... * ... | 1437897.0 | -| test.c:548:16:548:31 | ... + ... | 1437897.0 | -| test.c:548:20:548:21 | ip | 1437897.0 | -| test.c:548:25:548:26 | 14 | 1.0 | -| test.c:548:25:548:26 | (unsigned int)... | 1.0 | -| test.c:548:30:548:31 | 32 | 1.0 | -| test.c:548:30:548:31 | (unsigned int)... | 1.0 | -| test.c:549:15:549:15 | 2 | 1.0 | -| test.c:549:15:549:15 | (unsigned int)... | 1.0 | -| test.c:549:15:549:32 | ... * ... | 1437897.0 | -| test.c:549:19:549:32 | (...) | 1437897.0 | -| test.c:549:20:549:21 | ip | 1437897.0 | -| test.c:549:20:549:26 | ... * ... | 1437897.0 | -| test.c:549:20:549:31 | ... + ... | 1437897.0 | -| test.c:549:25:549:26 | 14 | 1.0 | -| test.c:549:25:549:26 | (unsigned int)... | 1.0 | -| test.c:549:30:549:31 | 64 | 1.0 | -| test.c:549:30:549:31 | (unsigned int)... | 1.0 | -| test.c:550:15:555:28 | (...) | 2.3783390842343084E19 | -| test.c:550:16:550:27 | (...) | 1437897.0 | -| test.c:550:16:550:32 | ... * ... | 1437897.0 | -| test.c:550:16:551:65 | ... > ... | 1.0 | -| test.c:550:16:555:27 | ... ? ... : ... | 2.3783390842343084E19 | -| test.c:550:17:550:17 | 2 | 1.0 | -| test.c:550:17:550:17 | (unsigned int)... | 1.0 | -| test.c:550:17:550:22 | ... * ... | 1437897.0 | -| test.c:550:17:550:26 | ... + ... | 1437897.0 | -| test.c:550:21:550:22 | ip | 1437897.0 | -| test.c:550:26:550:26 | 1 | 1.0 | -| test.c:550:26:550:26 | (unsigned int)... | 1.0 | -| test.c:550:31:550:32 | 14 | 1.0 | -| test.c:550:31:550:32 | (unsigned int)... | 1.0 | -| test.c:551:15:551:65 | (...) | 2.067547782609E12 | -| test.c:551:16:551:17 | 14 | 1.0 | -| test.c:551:16:551:17 | (unsigned int)... | 1.0 | -| test.c:551:16:551:28 | ... * ... | 1437897.0 | -| test.c:551:16:551:38 | ... > ... | 1.0 | -| test.c:551:16:551:64 | ... ? ... : ... | 2.067547782609E12 | -| test.c:551:21:551:28 | (...) | 1437897.0 | -| test.c:551:22:551:22 | 2 | 1.0 | -| test.c:551:22:551:22 | (unsigned int)... | 1.0 | -| test.c:551:22:551:27 | ... * ... | 1437897.0 | -| test.c:551:26:551:27 | ip | 1437897.0 | +| test.c:538:23:538:28 | ... * ... | 20839.0 | +| test.c:538:27:538:28 | ip | 20839.0 | +| test.c:538:33:538:34 | 17 | 1.0 | +| test.c:538:33:538:34 | (unsigned int)... | 1.0 | +| test.c:538:33:538:39 | ... * ... | 20839.0 | +| test.c:538:38:538:39 | ip | 20839.0 | +| test.c:539:19:539:20 | 14 | 1.0 | +| test.c:539:19:539:20 | (unsigned int)... | 1.0 | +| test.c:539:19:539:31 | ... * ... | 20839.0 | +| test.c:539:24:539:31 | (...) | 20839.0 | +| test.c:539:25:539:25 | 2 | 1.0 | +| test.c:539:25:539:25 | (unsigned int)... | 1.0 | +| test.c:539:25:539:30 | ... * ... | 20839.0 | +| test.c:539:29:539:30 | ip | 20839.0 | +| test.c:540:19:540:20 | 14 | 1.0 | +| test.c:540:19:540:20 | (unsigned int)... | 1.0 | +| test.c:540:19:540:25 | ... * ... | 20839.0 | +| test.c:540:24:540:25 | ip | 20839.0 | +| test.c:541:11:541:61 | (...) | 3.908375289E9 | +| test.c:541:12:541:13 | 14 | 1.0 | +| test.c:541:12:541:13 | (unsigned int)... | 1.0 | +| test.c:541:12:541:18 | ... * ... | 62517.0 | +| test.c:541:12:541:34 | ... > ... | 1.0 | +| test.c:541:12:541:60 | ... ? ... : ... | 3.908375289E9 | +| test.c:541:17:541:18 | ip | 62517.0 | +| test.c:541:22:541:29 | (...) | 62517.0 | +| test.c:541:22:541:34 | ... * ... | 62517.0 | +| test.c:541:23:541:24 | ip | 62517.0 | +| test.c:541:23:541:28 | ... + ... | 62517.0 | +| test.c:541:28:541:28 | 1 | 1.0 | +| test.c:541:28:541:28 | (unsigned int)... | 1.0 | +| test.c:541:33:541:34 | 17 | 1.0 | +| test.c:541:33:541:34 | (unsigned int)... | 1.0 | +| test.c:541:38:541:39 | 17 | 1.0 | +| test.c:541:38:541:39 | (unsigned int)... | 1.0 | +| test.c:541:38:541:44 | ... * ... | 62517.0 | +| test.c:541:43:541:44 | ip | 62517.0 | +| test.c:541:48:541:55 | (...) | 62517.0 | +| test.c:541:48:541:60 | ... * ... | 62517.0 | +| test.c:541:49:541:50 | ip | 62517.0 | +| test.c:541:49:541:54 | ... + ... | 62517.0 | +| test.c:541:54:541:54 | 1 | 1.0 | +| test.c:541:54:541:54 | (unsigned int)... | 1.0 | +| test.c:541:59:541:60 | 17 | 1.0 | +| test.c:541:59:541:60 | (unsigned int)... | 1.0 | +| test.c:542:11:542:11 | 4 | 1.0 | +| test.c:542:11:542:11 | (unsigned int)... | 1.0 | +| test.c:542:11:542:28 | ... * ... | 125034.0 | +| test.c:542:11:543:28 | ... + ... | 1.5633501156E10 | +| test.c:542:11:544:28 | ... + ... | 1.954719183539304E15 | +| test.c:542:11:550:24 | ... + ... | 3.056778340269433E31 | +| test.c:542:15:542:28 | (...) | 125034.0 | +| test.c:542:16:542:17 | ip | 125034.0 | +| test.c:542:16:542:22 | ... * ... | 125034.0 | +| test.c:542:16:542:27 | ... + ... | 125034.0 | +| test.c:542:21:542:22 | 14 | 1.0 | +| test.c:542:21:542:22 | (unsigned int)... | 1.0 | +| test.c:542:26:542:27 | 32 | 1.0 | +| test.c:542:26:542:27 | (unsigned int)... | 1.0 | +| test.c:543:11:543:28 | (...) | 125034.0 | +| test.c:543:12:543:12 | 2 | 1.0 | +| test.c:543:12:543:12 | (unsigned int)... | 1.0 | +| test.c:543:12:543:17 | ... * ... | 125034.0 | +| test.c:543:12:543:22 | ... * ... | 125034.0 | +| test.c:543:12:543:27 | ... + ... | 125034.0 | +| test.c:543:16:543:17 | ip | 125034.0 | +| test.c:543:21:543:22 | 14 | 1.0 | +| test.c:543:21:543:22 | (unsigned int)... | 1.0 | +| test.c:543:26:543:27 | 32 | 1.0 | +| test.c:543:26:543:27 | (unsigned int)... | 1.0 | +| test.c:544:11:544:11 | 2 | 1.0 | +| test.c:544:11:544:11 | (unsigned int)... | 1.0 | +| test.c:544:11:544:28 | ... * ... | 125034.0 | +| test.c:544:15:544:28 | (...) | 125034.0 | +| test.c:544:16:544:17 | ip | 125034.0 | +| test.c:544:16:544:22 | ... * ... | 125034.0 | +| test.c:544:16:544:27 | ... + ... | 125034.0 | +| test.c:544:21:544:22 | 14 | 1.0 | +| test.c:544:21:544:22 | (unsigned int)... | 1.0 | +| test.c:544:26:544:27 | 64 | 1.0 | +| test.c:544:26:544:27 | (unsigned int)... | 1.0 | +| test.c:545:11:550:24 | (...) | 1.5637941071078508E16 | +| test.c:545:12:545:23 | (...) | 125034.0 | +| test.c:545:12:545:28 | ... * ... | 125034.0 | +| test.c:545:12:546:61 | ... > ... | 1.0 | +| test.c:545:12:550:23 | ... ? ... : ... | 1.5637941071078508E16 | +| test.c:545:13:545:13 | 2 | 1.0 | +| test.c:545:13:545:13 | (unsigned int)... | 1.0 | +| test.c:545:13:545:18 | ... * ... | 125034.0 | +| test.c:545:13:545:22 | ... + ... | 125034.0 | +| test.c:545:17:545:18 | ip | 125034.0 | +| test.c:545:22:545:22 | 1 | 1.0 | +| test.c:545:22:545:22 | (unsigned int)... | 1.0 | +| test.c:545:27:545:28 | 14 | 1.0 | +| test.c:545:27:545:28 | (unsigned int)... | 1.0 | +| test.c:546:11:546:61 | (...) | 1.5633501156E10 | +| test.c:546:12:546:13 | 14 | 1.0 | +| test.c:546:12:546:13 | (unsigned int)... | 1.0 | +| test.c:546:12:546:24 | ... * ... | 125034.0 | +| test.c:546:12:546:34 | ... > ... | 1.0 | +| test.c:546:12:546:60 | ... ? ... : ... | 1.5633501156E10 | +| test.c:546:17:546:24 | (...) | 125034.0 | +| test.c:546:18:546:18 | 2 | 1.0 | +| test.c:546:18:546:18 | (unsigned int)... | 1.0 | +| test.c:546:18:546:23 | ... * ... | 125034.0 | +| test.c:546:22:546:23 | ip | 125034.0 | +| test.c:546:28:546:29 | 17 | 1.0 | +| test.c:546:28:546:29 | (unsigned int)... | 1.0 | +| test.c:546:28:546:34 | ... * ... | 125034.0 | +| test.c:546:33:546:34 | ip | 125034.0 | +| test.c:546:38:546:39 | 17 | 1.0 | +| test.c:546:38:546:39 | (unsigned int)... | 1.0 | +| test.c:546:38:546:50 | ... * ... | 125034.0 | +| test.c:546:43:546:50 | (...) | 125034.0 | +| test.c:546:44:546:44 | 2 | 1.0 | +| test.c:546:44:546:44 | (unsigned int)... | 1.0 | +| test.c:546:44:546:49 | ... * ... | 125034.0 | +| test.c:546:48:546:49 | ip | 125034.0 | +| test.c:546:54:546:55 | 17 | 1.0 | +| test.c:546:54:546:55 | (unsigned int)... | 1.0 | +| test.c:546:54:546:60 | ... * ... | 125034.0 | +| test.c:546:59:546:60 | ip | 125034.0 | +| test.c:547:15:547:26 | (...) | 250069.0 | +| test.c:547:15:547:31 | ... * ... | 250069.0 | +| test.c:547:16:547:16 | 2 | 1.0 | +| test.c:547:16:547:16 | (unsigned int)... | 1.0 | +| test.c:547:16:547:21 | ... * ... | 250069.0 | +| test.c:547:16:547:25 | ... + ... | 250069.0 | +| test.c:547:20:547:21 | ip | 250069.0 | +| test.c:547:25:547:25 | 1 | 1.0 | +| test.c:547:25:547:25 | (unsigned int)... | 1.0 | +| test.c:547:30:547:31 | 14 | 1.0 | +| test.c:547:30:547:31 | (unsigned int)... | 1.0 | +| test.c:548:15:548:16 | 14 | 1.0 | +| test.c:548:15:548:16 | (unsigned int)... | 1.0 | +| test.c:548:15:548:27 | ... * ... | 250069.0 | +| test.c:548:15:548:37 | ... > ... | 1.0 | +| test.c:548:15:550:23 | ... ? ... : ... | 6.2534504761E10 | +| test.c:548:20:548:27 | (...) | 250069.0 | +| test.c:548:21:548:21 | 2 | 1.0 | +| test.c:548:21:548:21 | (unsigned int)... | 1.0 | +| test.c:548:21:548:26 | ... * ... | 250069.0 | +| test.c:548:25:548:26 | ip | 250069.0 | +| test.c:548:31:548:32 | 17 | 1.0 | +| test.c:548:31:548:32 | (unsigned int)... | 1.0 | +| test.c:548:31:548:37 | ... * ... | 250069.0 | +| test.c:548:36:548:37 | ip | 250069.0 | +| test.c:549:17:549:18 | 14 | 1.0 | +| test.c:549:17:549:18 | (unsigned int)... | 1.0 | +| test.c:549:17:549:29 | ... * ... | 250069.0 | +| test.c:549:22:549:29 | (...) | 250069.0 | +| test.c:549:23:549:23 | 2 | 1.0 | +| test.c:549:23:549:23 | (unsigned int)... | 1.0 | +| test.c:549:23:549:28 | ... * ... | 250069.0 | +| test.c:549:27:549:28 | ip | 250069.0 | +| test.c:550:17:550:18 | 14 | 1.0 | +| test.c:550:17:550:18 | (unsigned int)... | 1.0 | +| test.c:550:17:550:23 | ... * ... | 250069.0 | +| test.c:550:22:550:23 | ip | 250069.0 | +| test.c:551:11:551:12 | 14 | 1.0 | +| test.c:551:11:551:12 | (unsigned int)... | 1.0 | +| test.c:551:11:551:17 | ... * ... | 125034.0 | +| test.c:551:11:551:33 | ... > ... | 1.0 | +| test.c:551:11:553:25 | ... ? ... : ... | 1.5633501156E10 | +| test.c:551:16:551:17 | ip | 125034.0 | +| test.c:551:21:551:28 | (...) | 125034.0 | +| test.c:551:21:551:33 | ... * ... | 125034.0 | +| test.c:551:22:551:23 | ip | 125034.0 | +| test.c:551:22:551:27 | ... + ... | 125034.0 | +| test.c:551:27:551:27 | 1 | 1.0 | +| test.c:551:27:551:27 | (unsigned int)... | 1.0 | | test.c:551:32:551:33 | 17 | 1.0 | | test.c:551:32:551:33 | (unsigned int)... | 1.0 | -| test.c:551:32:551:38 | ... * ... | 1437897.0 | -| test.c:551:37:551:38 | ip | 1437897.0 | -| test.c:551:42:551:43 | 17 | 1.0 | -| test.c:551:42:551:43 | (unsigned int)... | 1.0 | -| test.c:551:42:551:54 | ... * ... | 1437897.0 | -| test.c:551:47:551:54 | (...) | 1437897.0 | -| test.c:551:48:551:48 | 2 | 1.0 | -| test.c:551:48:551:48 | (unsigned int)... | 1.0 | -| test.c:551:48:551:53 | ... * ... | 1437897.0 | -| test.c:551:52:551:53 | ip | 1437897.0 | -| test.c:551:58:551:59 | 17 | 1.0 | -| test.c:551:58:551:59 | (unsigned int)... | 1.0 | -| test.c:551:58:551:64 | ... * ... | 1437897.0 | -| test.c:551:63:551:64 | ip | 1437897.0 | -| test.c:552:19:552:30 | (...) | 2875795.0 | -| test.c:552:19:552:35 | ... * ... | 2875795.0 | -| test.c:552:20:552:20 | 2 | 1.0 | -| test.c:552:20:552:20 | (unsigned int)... | 1.0 | -| test.c:552:20:552:25 | ... * ... | 2875795.0 | -| test.c:552:20:552:29 | ... + ... | 2875795.0 | -| test.c:552:24:552:25 | ip | 2875795.0 | -| test.c:552:29:552:29 | 1 | 1.0 | -| test.c:552:29:552:29 | (unsigned int)... | 1.0 | -| test.c:552:34:552:35 | 14 | 1.0 | -| test.c:552:34:552:35 | (unsigned int)... | 1.0 | -| test.c:553:19:553:20 | 14 | 1.0 | -| test.c:553:19:553:20 | (unsigned int)... | 1.0 | -| test.c:553:19:553:31 | ... * ... | 2875795.0 | -| test.c:553:19:553:41 | ... > ... | 1.0 | -| test.c:553:19:555:27 | ... ? ... : ... | 8.270196882025E12 | -| test.c:553:24:553:31 | (...) | 2875795.0 | -| test.c:553:25:553:25 | 2 | 1.0 | -| test.c:553:25:553:25 | (unsigned int)... | 1.0 | -| test.c:553:25:553:30 | ... * ... | 2875795.0 | -| test.c:553:29:553:30 | ip | 2875795.0 | -| test.c:553:35:553:36 | 17 | 1.0 | -| test.c:553:35:553:36 | (unsigned int)... | 1.0 | -| test.c:553:35:553:41 | ... * ... | 2875795.0 | -| test.c:553:40:553:41 | ip | 2875795.0 | -| test.c:554:21:554:22 | 14 | 1.0 | -| test.c:554:21:554:22 | (unsigned int)... | 1.0 | -| test.c:554:21:554:33 | ... * ... | 2875795.0 | -| test.c:554:26:554:33 | (...) | 2875795.0 | -| test.c:554:27:554:27 | 2 | 1.0 | -| test.c:554:27:554:27 | (unsigned int)... | 1.0 | -| test.c:554:27:554:32 | ... * ... | 2875795.0 | -| test.c:554:31:554:32 | ip | 2875795.0 | -| test.c:555:21:555:22 | 14 | 1.0 | -| test.c:555:21:555:22 | (unsigned int)... | 1.0 | -| test.c:555:21:555:27 | ... * ... | 2875795.0 | -| test.c:555:26:555:27 | ip | 2875795.0 | -| test.c:556:13:556:13 | 2 | 1.0 | -| test.c:556:13:556:13 | (unsigned int)... | 1.0 | -| test.c:556:13:556:18 | ... * ... | 8627385.0 | -| test.c:556:13:556:23 | ... * ... | 8627385.0 | -| test.c:556:13:556:43 | ... + ... | 7.4431771938225E13 | -| test.c:556:17:556:18 | ip | 8627385.0 | -| test.c:556:22:556:23 | 14 | 1.0 | -| test.c:556:22:556:23 | (unsigned int)... | 1.0 | -| test.c:556:27:556:38 | (...) | 8627385.0 | -| test.c:556:27:556:43 | ... * ... | 8627385.0 | -| test.c:556:28:556:28 | 2 | 1.0 | -| test.c:556:28:556:28 | (unsigned int)... | 1.0 | -| test.c:556:28:556:33 | ... * ... | 8627385.0 | -| test.c:556:28:556:37 | ... + ... | 8627385.0 | -| test.c:556:32:556:33 | ip | 8627385.0 | -| test.c:556:37:556:37 | 1 | 1.0 | -| test.c:556:37:556:37 | (unsigned int)... | 1.0 | -| test.c:556:42:556:43 | 17 | 1.0 | -| test.c:556:42:556:43 | (unsigned int)... | 1.0 | -| test.c:557:17:557:17 | 4 | 1.0 | -| test.c:557:17:557:17 | (unsigned int)... | 1.0 | -| test.c:557:17:557:34 | ... * ... | 8627385.0 | -| test.c:557:17:558:34 | ... + ... | 7.4431771938225E13 | -| test.c:557:17:559:34 | ... + ... | 6.421515527432633E20 | -| test.c:557:17:565:30 | ... + ... | 3.298869507082441E42 | -| test.c:557:21:557:34 | (...) | 8627385.0 | -| test.c:557:22:557:23 | ip | 8627385.0 | -| test.c:557:22:557:28 | ... * ... | 8627385.0 | -| test.c:557:22:557:33 | ... + ... | 8627385.0 | -| test.c:557:27:557:28 | 14 | 1.0 | -| test.c:557:27:557:28 | (unsigned int)... | 1.0 | -| test.c:557:32:557:33 | 32 | 1.0 | -| test.c:557:32:557:33 | (unsigned int)... | 1.0 | -| test.c:558:17:558:34 | (...) | 8627385.0 | -| test.c:558:18:558:18 | 2 | 1.0 | -| test.c:558:18:558:18 | (unsigned int)... | 1.0 | -| test.c:558:18:558:23 | ... * ... | 8627385.0 | -| test.c:558:18:558:28 | ... * ... | 8627385.0 | -| test.c:558:18:558:33 | ... + ... | 8627385.0 | -| test.c:558:22:558:23 | ip | 8627385.0 | -| test.c:558:27:558:28 | 14 | 1.0 | -| test.c:558:27:558:28 | (unsigned int)... | 1.0 | -| test.c:558:32:558:33 | 32 | 1.0 | -| test.c:558:32:558:33 | (unsigned int)... | 1.0 | -| test.c:559:17:559:17 | 2 | 1.0 | -| test.c:559:17:559:17 | (unsigned int)... | 1.0 | -| test.c:559:17:559:34 | ... * ... | 8627385.0 | -| test.c:559:21:559:34 | (...) | 8627385.0 | -| test.c:559:22:559:23 | ip | 8627385.0 | -| test.c:559:22:559:28 | ... * ... | 8627385.0 | -| test.c:559:22:559:33 | ... + ... | 8627385.0 | -| test.c:559:27:559:28 | 14 | 1.0 | -| test.c:559:27:559:28 | (unsigned int)... | 1.0 | -| test.c:559:32:559:33 | 64 | 1.0 | -| test.c:559:32:559:33 | (unsigned int)... | 1.0 | -| test.c:560:17:565:30 | (...) | 5.137213315127421E21 | -| test.c:560:18:560:29 | (...) | 8627385.0 | -| test.c:560:18:560:34 | ... * ... | 8627385.0 | -| test.c:560:18:561:67 | ... > ... | 1.0 | -| test.c:560:18:565:29 | ... ? ... : ... | 5.137213315127421E21 | -| test.c:560:19:560:19 | 2 | 1.0 | -| test.c:560:19:560:19 | (unsigned int)... | 1.0 | -| test.c:560:19:560:24 | ... * ... | 8627385.0 | -| test.c:560:19:560:28 | ... + ... | 8627385.0 | -| test.c:560:23:560:24 | ip | 8627385.0 | -| test.c:560:28:560:28 | 1 | 1.0 | -| test.c:560:28:560:28 | (unsigned int)... | 1.0 | -| test.c:560:33:560:34 | 14 | 1.0 | -| test.c:560:33:560:34 | (unsigned int)... | 1.0 | -| test.c:561:17:561:67 | (...) | 7.4431771938225E13 | -| test.c:561:18:561:19 | 14 | 1.0 | -| test.c:561:18:561:19 | (unsigned int)... | 1.0 | -| test.c:561:18:561:30 | ... * ... | 8627385.0 | -| test.c:561:18:561:40 | ... > ... | 1.0 | -| test.c:561:18:561:66 | ... ? ... : ... | 7.4431771938225E13 | -| test.c:561:23:561:30 | (...) | 8627385.0 | -| test.c:561:24:561:24 | 2 | 1.0 | -| test.c:561:24:561:24 | (unsigned int)... | 1.0 | -| test.c:561:24:561:29 | ... * ... | 8627385.0 | -| test.c:561:28:561:29 | ip | 8627385.0 | -| test.c:561:34:561:35 | 17 | 1.0 | -| test.c:561:34:561:35 | (unsigned int)... | 1.0 | -| test.c:561:34:561:40 | ... * ... | 8627385.0 | -| test.c:561:39:561:40 | ip | 8627385.0 | -| test.c:561:44:561:45 | 17 | 1.0 | -| test.c:561:44:561:45 | (unsigned int)... | 1.0 | -| test.c:561:44:561:56 | ... * ... | 8627385.0 | -| test.c:561:49:561:56 | (...) | 8627385.0 | -| test.c:561:50:561:50 | 2 | 1.0 | -| test.c:561:50:561:50 | (unsigned int)... | 1.0 | -| test.c:561:50:561:55 | ... * ... | 8627385.0 | -| test.c:561:54:561:55 | ip | 8627385.0 | -| test.c:561:60:561:61 | 17 | 1.0 | -| test.c:561:60:561:61 | (unsigned int)... | 1.0 | -| test.c:561:60:561:66 | ... * ... | 8627385.0 | -| test.c:561:65:561:66 | ip | 8627385.0 | -| test.c:562:21:562:32 | (...) | 1.7254771E7 | -| test.c:562:21:562:37 | ... * ... | 1.7254771E7 | +| test.c:552:13:552:14 | 14 | 1.0 | +| test.c:552:13:552:14 | (unsigned int)... | 1.0 | +| test.c:552:13:552:19 | ... * ... | 125034.0 | +| test.c:552:18:552:19 | ip | 125034.0 | +| test.c:553:13:553:20 | (...) | 125034.0 | +| test.c:553:13:553:25 | ... * ... | 125034.0 | +| test.c:553:14:553:15 | ip | 125034.0 | +| test.c:553:14:553:19 | ... + ... | 125034.0 | +| test.c:553:19:553:19 | 1 | 1.0 | +| test.c:553:19:553:19 | (unsigned int)... | 1.0 | +| test.c:553:24:553:25 | 14 | 1.0 | +| test.c:553:24:553:25 | (unsigned int)... | 1.0 | +| test.c:554:9:554:10 | 14 | 1.0 | +| test.c:554:9:554:10 | (unsigned int)... | 1.0 | +| test.c:554:9:554:15 | ... * ... | 1437897.0 | +| test.c:554:9:554:59 | ... > ... | 1.0 | +| test.c:554:9:556:51 | ... ? ... : ... | 2.9729207539701335E18 | +| test.c:554:14:554:15 | ip | 1437897.0 | +| test.c:554:19:554:30 | (...) | 1437897.0 | +| test.c:554:19:554:35 | ... * ... | 1437897.0 | +| test.c:554:19:554:59 | ... + ... | 2.067547782609E12 | +| test.c:554:20:554:20 | 2 | 1.0 | +| test.c:554:20:554:20 | (unsigned int)... | 1.0 | +| test.c:554:20:554:25 | ... * ... | 1437897.0 | +| test.c:554:20:554:29 | ... + ... | 1437897.0 | +| test.c:554:24:554:25 | ip | 1437897.0 | +| test.c:554:29:554:29 | 1 | 1.0 | +| test.c:554:29:554:29 | (unsigned int)... | 1.0 | +| test.c:554:34:554:35 | 17 | 1.0 | +| test.c:554:34:554:35 | (unsigned int)... | 1.0 | +| test.c:554:39:554:54 | (...) | 1437897.0 | +| test.c:554:39:554:59 | ... * ... | 1437897.0 | +| test.c:554:40:554:40 | 2 | 1.0 | +| test.c:554:40:554:40 | (unsigned int)... | 1.0 | +| test.c:554:40:554:45 | ... * ... | 1437897.0 | +| test.c:554:40:554:49 | ... + ... | 1437897.0 | +| test.c:554:40:554:53 | ... + ... | 1437897.0 | +| test.c:554:44:554:45 | ip | 1437897.0 | +| test.c:554:49:554:49 | 1 | 1.0 | +| test.c:554:49:554:49 | (unsigned int)... | 1.0 | +| test.c:554:53:554:53 | 1 | 1.0 | +| test.c:554:53:554:53 | (unsigned int)... | 1.0 | +| test.c:554:58:554:59 | 17 | 1.0 | +| test.c:554:58:554:59 | (unsigned int)... | 1.0 | +| test.c:555:11:555:12 | 14 | 1.0 | +| test.c:555:11:555:12 | (unsigned int)... | 1.0 | +| test.c:555:11:555:17 | ... * ... | 1437897.0 | +| test.c:555:16:555:17 | ip | 1437897.0 | +| test.c:556:11:556:22 | (...) | 1437897.0 | +| test.c:556:11:556:27 | ... * ... | 1437897.0 | +| test.c:556:11:556:51 | ... + ... | 2.067547782609E12 | +| test.c:556:12:556:12 | 2 | 1.0 | +| test.c:556:12:556:12 | (unsigned int)... | 1.0 | +| test.c:556:12:556:17 | ... * ... | 1437897.0 | +| test.c:556:12:556:21 | ... + ... | 1437897.0 | +| test.c:556:16:556:17 | ip | 1437897.0 | +| test.c:556:21:556:21 | 1 | 1.0 | +| test.c:556:21:556:21 | (unsigned int)... | 1.0 | +| test.c:556:26:556:27 | 14 | 1.0 | +| test.c:556:26:556:27 | (unsigned int)... | 1.0 | +| test.c:556:31:556:46 | (...) | 1437897.0 | +| test.c:556:31:556:51 | ... * ... | 1437897.0 | +| test.c:556:32:556:32 | 2 | 1.0 | +| test.c:556:32:556:32 | (unsigned int)... | 1.0 | +| test.c:556:32:556:37 | ... * ... | 1437897.0 | +| test.c:556:32:556:41 | ... + ... | 1437897.0 | +| test.c:556:32:556:45 | ... + ... | 1437897.0 | +| test.c:556:36:556:37 | ip | 1437897.0 | +| test.c:556:41:556:41 | 1 | 1.0 | +| test.c:556:41:556:41 | (unsigned int)... | 1.0 | +| test.c:556:45:556:45 | 1 | 1.0 | +| test.c:556:45:556:45 | (unsigned int)... | 1.0 | +| test.c:556:50:556:51 | 17 | 1.0 | +| test.c:556:50:556:51 | (unsigned int)... | 1.0 | +| test.c:557:9:557:9 | 2 | 1.0 | +| test.c:557:9:557:9 | (unsigned int)... | 1.0 | +| test.c:557:9:557:26 | ... * ... | 1437897.0 | +| test.c:557:9:577:48 | ... + ... | 3.5306223994138077E62 | +| test.c:557:9:599:30 | ... > ... | 1.0 | +| test.c:557:9:642:27 | ... ? ... : ... | 4.3658022750663434E182 | +| test.c:557:13:557:26 | (...) | 1437897.0 | +| test.c:557:14:557:15 | ip | 1437897.0 | +| test.c:557:14:557:20 | ... * ... | 1437897.0 | +| test.c:557:14:557:25 | ... + ... | 1437897.0 | +| test.c:557:19:557:20 | 14 | 1.0 | +| test.c:557:19:557:20 | (unsigned int)... | 1.0 | +| test.c:557:24:557:25 | 32 | 1.0 | +| test.c:557:24:557:25 | (unsigned int)... | 1.0 | +| test.c:558:13:577:48 | (...) | 2.4554070280512497E56 | +| test.c:558:14:558:14 | 4 | 1.0 | +| test.c:558:14:558:14 | (unsigned int)... | 1.0 | +| test.c:558:14:558:31 | ... * ... | 1437897.0 | +| test.c:558:14:559:32 | ... + ... | 2.067547782609E12 | +| test.c:558:14:560:32 | ... + ... | 2.9729207539701335E18 | +| test.c:558:14:566:28 | ... + ... | 7.070613623498497E37 | +| test.c:558:14:567:43 | ... > ... | 1.0 | +| test.c:558:14:577:47 | ... ? ... : ... | 2.4554070280512497E56 | +| test.c:558:18:558:31 | (...) | 1437897.0 | +| test.c:558:19:558:20 | ip | 1437897.0 | +| test.c:558:19:558:25 | ... * ... | 1437897.0 | +| test.c:558:19:558:30 | ... + ... | 1437897.0 | +| test.c:558:24:558:25 | 14 | 1.0 | +| test.c:558:24:558:25 | (unsigned int)... | 1.0 | +| test.c:558:29:558:30 | 32 | 1.0 | +| test.c:558:29:558:30 | (unsigned int)... | 1.0 | +| test.c:559:15:559:32 | (...) | 1437897.0 | +| test.c:559:16:559:16 | 2 | 1.0 | +| test.c:559:16:559:16 | (unsigned int)... | 1.0 | +| test.c:559:16:559:21 | ... * ... | 1437897.0 | +| test.c:559:16:559:26 | ... * ... | 1437897.0 | +| test.c:559:16:559:31 | ... + ... | 1437897.0 | +| test.c:559:20:559:21 | ip | 1437897.0 | +| test.c:559:25:559:26 | 14 | 1.0 | +| test.c:559:25:559:26 | (unsigned int)... | 1.0 | +| test.c:559:30:559:31 | 32 | 1.0 | +| test.c:559:30:559:31 | (unsigned int)... | 1.0 | +| test.c:560:15:560:15 | 2 | 1.0 | +| test.c:560:15:560:15 | (unsigned int)... | 1.0 | +| test.c:560:15:560:32 | ... * ... | 1437897.0 | +| test.c:560:19:560:32 | (...) | 1437897.0 | +| test.c:560:20:560:21 | ip | 1437897.0 | +| test.c:560:20:560:26 | ... * ... | 1437897.0 | +| test.c:560:20:560:31 | ... + ... | 1437897.0 | +| test.c:560:25:560:26 | 14 | 1.0 | +| test.c:560:25:560:26 | (unsigned int)... | 1.0 | +| test.c:560:30:560:31 | 64 | 1.0 | +| test.c:560:30:560:31 | (unsigned int)... | 1.0 | +| test.c:561:15:566:28 | (...) | 2.3783390842343084E19 | +| test.c:561:16:561:27 | (...) | 1437897.0 | +| test.c:561:16:561:32 | ... * ... | 1437897.0 | +| test.c:561:16:562:65 | ... > ... | 1.0 | +| test.c:561:16:566:27 | ... ? ... : ... | 2.3783390842343084E19 | +| test.c:561:17:561:17 | 2 | 1.0 | +| test.c:561:17:561:17 | (unsigned int)... | 1.0 | +| test.c:561:17:561:22 | ... * ... | 1437897.0 | +| test.c:561:17:561:26 | ... + ... | 1437897.0 | +| test.c:561:21:561:22 | ip | 1437897.0 | +| test.c:561:26:561:26 | 1 | 1.0 | +| test.c:561:26:561:26 | (unsigned int)... | 1.0 | +| test.c:561:31:561:32 | 14 | 1.0 | +| test.c:561:31:561:32 | (unsigned int)... | 1.0 | +| test.c:562:15:562:65 | (...) | 2.067547782609E12 | +| test.c:562:16:562:17 | 14 | 1.0 | +| test.c:562:16:562:17 | (unsigned int)... | 1.0 | +| test.c:562:16:562:28 | ... * ... | 1437897.0 | +| test.c:562:16:562:38 | ... > ... | 1.0 | +| test.c:562:16:562:64 | ... ? ... : ... | 2.067547782609E12 | +| test.c:562:21:562:28 | (...) | 1437897.0 | | test.c:562:22:562:22 | 2 | 1.0 | | test.c:562:22:562:22 | (unsigned int)... | 1.0 | -| test.c:562:22:562:27 | ... * ... | 1.7254771E7 | -| test.c:562:22:562:31 | ... + ... | 1.7254771E7 | -| test.c:562:26:562:27 | ip | 1.7254771E7 | -| test.c:562:31:562:31 | 1 | 1.0 | -| test.c:562:31:562:31 | (unsigned int)... | 1.0 | -| test.c:562:36:562:37 | 14 | 1.0 | -| test.c:562:36:562:37 | (unsigned int)... | 1.0 | -| test.c:563:21:563:22 | 14 | 1.0 | -| test.c:563:21:563:22 | (unsigned int)... | 1.0 | -| test.c:563:21:563:33 | ... * ... | 1.7254771E7 | -| test.c:563:21:563:43 | ... > ... | 1.0 | -| test.c:563:21:565:29 | ... ? ... : ... | 2.97727122262441E14 | -| test.c:563:26:563:33 | (...) | 1.7254771E7 | -| test.c:563:27:563:27 | 2 | 1.0 | -| test.c:563:27:563:27 | (unsigned int)... | 1.0 | -| test.c:563:27:563:32 | ... * ... | 1.7254771E7 | -| test.c:563:31:563:32 | ip | 1.7254771E7 | -| test.c:563:37:563:38 | 17 | 1.0 | -| test.c:563:37:563:38 | (unsigned int)... | 1.0 | -| test.c:563:37:563:43 | ... * ... | 1.7254771E7 | -| test.c:563:42:563:43 | ip | 1.7254771E7 | -| test.c:564:23:564:24 | 14 | 1.0 | -| test.c:564:23:564:24 | (unsigned int)... | 1.0 | -| test.c:564:23:564:35 | ... * ... | 1.7254771E7 | -| test.c:564:28:564:35 | (...) | 1.7254771E7 | -| test.c:564:29:564:29 | 2 | 1.0 | -| test.c:564:29:564:29 | (unsigned int)... | 1.0 | -| test.c:564:29:564:34 | ... * ... | 1.7254771E7 | -| test.c:564:33:564:34 | ip | 1.7254771E7 | -| test.c:565:23:565:24 | 14 | 1.0 | -| test.c:565:23:565:24 | (unsigned int)... | 1.0 | -| test.c:565:23:565:29 | ... * ... | 1.7254771E7 | -| test.c:565:28:565:29 | ip | 1.7254771E7 | -| test.c:566:17:566:17 | 2 | 1.0 | -| test.c:566:17:566:17 | (unsigned int)... | 1.0 | -| test.c:566:17:566:22 | ... * ... | 8627385.0 | -| test.c:566:17:566:27 | ... * ... | 8627385.0 | -| test.c:566:17:566:47 | ... + ... | 7.4431771938225E13 | -| test.c:566:21:566:22 | ip | 8627385.0 | -| test.c:566:26:566:27 | 14 | 1.0 | -| test.c:566:26:566:27 | (unsigned int)... | 1.0 | -| test.c:566:31:566:42 | (...) | 8627385.0 | -| test.c:566:31:566:47 | ... * ... | 8627385.0 | -| test.c:566:32:566:32 | 2 | 1.0 | -| test.c:566:32:566:32 | (unsigned int)... | 1.0 | -| test.c:566:32:566:37 | ... * ... | 8627385.0 | -| test.c:566:32:566:41 | ... + ... | 8627385.0 | -| test.c:566:36:566:37 | ip | 8627385.0 | -| test.c:566:41:566:41 | 1 | 1.0 | -| test.c:566:41:566:41 | (unsigned int)... | 1.0 | -| test.c:566:46:566:47 | 17 | 1.0 | -| test.c:566:46:566:47 | (unsigned int)... | 1.0 | -| test.c:567:11:588:30 | (...) | 6.08636382738973E71 | -| test.c:567:12:567:12 | 4 | 1.0 | -| test.c:567:12:567:12 | (unsigned int)... | 1.0 | -| test.c:567:12:567:29 | ... * ... | 6.0391698E7 | -| test.c:567:12:568:30 | ... + ... | 3.647157187323204E15 | -| test.c:567:12:569:30 | ... + ... | 2.2025801541535236E23 | -| test.c:567:12:575:26 | ... + ... | 3.881087564774641E47 | -| test.c:567:12:576:61 | ... > ... | 1.0 | -| test.c:567:12:588:29 | ... ? ... : ... | 6.08636382738973E71 | -| test.c:567:16:567:29 | (...) | 6.0391698E7 | -| test.c:567:17:567:18 | ip | 6.0391698E7 | -| test.c:567:17:567:23 | ... * ... | 6.0391698E7 | -| test.c:567:17:567:28 | ... + ... | 6.0391698E7 | +| test.c:562:22:562:27 | ... * ... | 1437897.0 | +| test.c:562:26:562:27 | ip | 1437897.0 | +| test.c:562:32:562:33 | 17 | 1.0 | +| test.c:562:32:562:33 | (unsigned int)... | 1.0 | +| test.c:562:32:562:38 | ... * ... | 1437897.0 | +| test.c:562:37:562:38 | ip | 1437897.0 | +| test.c:562:42:562:43 | 17 | 1.0 | +| test.c:562:42:562:43 | (unsigned int)... | 1.0 | +| test.c:562:42:562:54 | ... * ... | 1437897.0 | +| test.c:562:47:562:54 | (...) | 1437897.0 | +| test.c:562:48:562:48 | 2 | 1.0 | +| test.c:562:48:562:48 | (unsigned int)... | 1.0 | +| test.c:562:48:562:53 | ... * ... | 1437897.0 | +| test.c:562:52:562:53 | ip | 1437897.0 | +| test.c:562:58:562:59 | 17 | 1.0 | +| test.c:562:58:562:59 | (unsigned int)... | 1.0 | +| test.c:562:58:562:64 | ... * ... | 1437897.0 | +| test.c:562:63:562:64 | ip | 1437897.0 | +| test.c:563:19:563:30 | (...) | 2875795.0 | +| test.c:563:19:563:35 | ... * ... | 2875795.0 | +| test.c:563:20:563:20 | 2 | 1.0 | +| test.c:563:20:563:20 | (unsigned int)... | 1.0 | +| test.c:563:20:563:25 | ... * ... | 2875795.0 | +| test.c:563:20:563:29 | ... + ... | 2875795.0 | +| test.c:563:24:563:25 | ip | 2875795.0 | +| test.c:563:29:563:29 | 1 | 1.0 | +| test.c:563:29:563:29 | (unsigned int)... | 1.0 | +| test.c:563:34:563:35 | 14 | 1.0 | +| test.c:563:34:563:35 | (unsigned int)... | 1.0 | +| test.c:564:19:564:20 | 14 | 1.0 | +| test.c:564:19:564:20 | (unsigned int)... | 1.0 | +| test.c:564:19:564:31 | ... * ... | 2875795.0 | +| test.c:564:19:564:41 | ... > ... | 1.0 | +| test.c:564:19:566:27 | ... ? ... : ... | 8.270196882025E12 | +| test.c:564:24:564:31 | (...) | 2875795.0 | +| test.c:564:25:564:25 | 2 | 1.0 | +| test.c:564:25:564:25 | (unsigned int)... | 1.0 | +| test.c:564:25:564:30 | ... * ... | 2875795.0 | +| test.c:564:29:564:30 | ip | 2875795.0 | +| test.c:564:35:564:36 | 17 | 1.0 | +| test.c:564:35:564:36 | (unsigned int)... | 1.0 | +| test.c:564:35:564:41 | ... * ... | 2875795.0 | +| test.c:564:40:564:41 | ip | 2875795.0 | +| test.c:565:21:565:22 | 14 | 1.0 | +| test.c:565:21:565:22 | (unsigned int)... | 1.0 | +| test.c:565:21:565:33 | ... * ... | 2875795.0 | +| test.c:565:26:565:33 | (...) | 2875795.0 | +| test.c:565:27:565:27 | 2 | 1.0 | +| test.c:565:27:565:27 | (unsigned int)... | 1.0 | +| test.c:565:27:565:32 | ... * ... | 2875795.0 | +| test.c:565:31:565:32 | ip | 2875795.0 | +| test.c:566:21:566:22 | 14 | 1.0 | +| test.c:566:21:566:22 | (unsigned int)... | 1.0 | +| test.c:566:21:566:27 | ... * ... | 2875795.0 | +| test.c:566:26:566:27 | ip | 2875795.0 | +| test.c:567:13:567:13 | 2 | 1.0 | +| test.c:567:13:567:13 | (unsigned int)... | 1.0 | +| test.c:567:13:567:18 | ... * ... | 8627385.0 | +| test.c:567:13:567:23 | ... * ... | 8627385.0 | +| test.c:567:13:567:43 | ... + ... | 7.4431771938225E13 | +| test.c:567:17:567:18 | ip | 8627385.0 | | test.c:567:22:567:23 | 14 | 1.0 | | test.c:567:22:567:23 | (unsigned int)... | 1.0 | -| test.c:567:27:567:28 | 32 | 1.0 | -| test.c:567:27:567:28 | (unsigned int)... | 1.0 | -| test.c:568:13:568:30 | (...) | 6.0391698E7 | -| test.c:568:14:568:14 | 2 | 1.0 | -| test.c:568:14:568:14 | (unsigned int)... | 1.0 | -| test.c:568:14:568:19 | ... * ... | 6.0391698E7 | -| test.c:568:14:568:24 | ... * ... | 6.0391698E7 | -| test.c:568:14:568:29 | ... + ... | 6.0391698E7 | -| test.c:568:18:568:19 | ip | 6.0391698E7 | -| test.c:568:23:568:24 | 14 | 1.0 | -| test.c:568:23:568:24 | (unsigned int)... | 1.0 | -| test.c:568:28:568:29 | 32 | 1.0 | -| test.c:568:28:568:29 | (unsigned int)... | 1.0 | -| test.c:569:13:569:13 | 2 | 1.0 | -| test.c:569:13:569:13 | (unsigned int)... | 1.0 | -| test.c:569:13:569:30 | ... * ... | 6.0391698E7 | -| test.c:569:17:569:30 | (...) | 6.0391698E7 | -| test.c:569:18:569:19 | ip | 6.0391698E7 | -| test.c:569:18:569:24 | ... * ... | 6.0391698E7 | -| test.c:569:18:569:29 | ... + ... | 6.0391698E7 | -| test.c:569:23:569:24 | 14 | 1.0 | -| test.c:569:23:569:24 | (unsigned int)... | 1.0 | -| test.c:569:28:569:29 | 64 | 1.0 | -| test.c:569:28:569:29 | (unsigned int)... | 1.0 | -| test.c:570:13:575:26 | (...) | 1.7620641670887053E24 | -| test.c:570:14:570:25 | (...) | 6.0391698E7 | -| test.c:570:14:570:30 | ... * ... | 6.0391698E7 | -| test.c:570:14:571:63 | ... > ... | 1.0 | -| test.c:570:14:575:25 | ... ? ... : ... | 1.7620641670887053E24 | -| test.c:570:15:570:15 | 2 | 1.0 | -| test.c:570:15:570:15 | (unsigned int)... | 1.0 | -| test.c:570:15:570:20 | ... * ... | 6.0391698E7 | -| test.c:570:15:570:24 | ... + ... | 6.0391698E7 | -| test.c:570:19:570:20 | ip | 6.0391698E7 | -| test.c:570:24:570:24 | 1 | 1.0 | -| test.c:570:24:570:24 | (unsigned int)... | 1.0 | -| test.c:570:29:570:30 | 14 | 1.0 | -| test.c:570:29:570:30 | (unsigned int)... | 1.0 | -| test.c:571:13:571:63 | (...) | 3.647157187323204E15 | -| test.c:571:14:571:15 | 14 | 1.0 | -| test.c:571:14:571:15 | (unsigned int)... | 1.0 | -| test.c:571:14:571:26 | ... * ... | 6.0391698E7 | -| test.c:571:14:571:36 | ... > ... | 1.0 | -| test.c:571:14:571:62 | ... ? ... : ... | 3.647157187323204E15 | -| test.c:571:19:571:26 | (...) | 6.0391698E7 | -| test.c:571:20:571:20 | 2 | 1.0 | -| test.c:571:20:571:20 | (unsigned int)... | 1.0 | -| test.c:571:20:571:25 | ... * ... | 6.0391698E7 | -| test.c:571:24:571:25 | ip | 6.0391698E7 | -| test.c:571:30:571:31 | 17 | 1.0 | -| test.c:571:30:571:31 | (unsigned int)... | 1.0 | -| test.c:571:30:571:36 | ... * ... | 6.0391698E7 | -| test.c:571:35:571:36 | ip | 6.0391698E7 | -| test.c:571:40:571:41 | 17 | 1.0 | -| test.c:571:40:571:41 | (unsigned int)... | 1.0 | -| test.c:571:40:571:52 | ... * ... | 6.0391698E7 | -| test.c:571:45:571:52 | (...) | 6.0391698E7 | -| test.c:571:46:571:46 | 2 | 1.0 | -| test.c:571:46:571:46 | (unsigned int)... | 1.0 | -| test.c:571:46:571:51 | ... * ... | 6.0391698E7 | -| test.c:571:50:571:51 | ip | 6.0391698E7 | -| test.c:571:56:571:57 | 17 | 1.0 | -| test.c:571:56:571:57 | (unsigned int)... | 1.0 | -| test.c:571:56:571:62 | ... * ... | 6.0391698E7 | -| test.c:571:61:571:62 | ip | 6.0391698E7 | -| test.c:572:17:572:28 | (...) | 1.20783397E8 | -| test.c:572:17:572:33 | ... * ... | 1.20783397E8 | -| test.c:572:18:572:18 | 2 | 1.0 | -| test.c:572:18:572:18 | (unsigned int)... | 1.0 | -| test.c:572:18:572:23 | ... * ... | 1.20783397E8 | -| test.c:572:18:572:27 | ... + ... | 1.20783397E8 | -| test.c:572:22:572:23 | ip | 1.20783397E8 | -| test.c:572:27:572:27 | 1 | 1.0 | -| test.c:572:27:572:27 | (unsigned int)... | 1.0 | -| test.c:572:32:572:33 | 14 | 1.0 | -| test.c:572:32:572:33 | (unsigned int)... | 1.0 | -| test.c:573:17:573:18 | 14 | 1.0 | -| test.c:573:17:573:18 | (unsigned int)... | 1.0 | -| test.c:573:17:573:29 | ... * ... | 1.20783397E8 | -| test.c:573:17:573:39 | ... > ... | 1.0 | -| test.c:573:17:575:25 | ... ? ... : ... | 1.4588628990859608E16 | -| test.c:573:22:573:29 | (...) | 1.20783397E8 | -| test.c:573:23:573:23 | 2 | 1.0 | -| test.c:573:23:573:23 | (unsigned int)... | 1.0 | -| test.c:573:23:573:28 | ... * ... | 1.20783397E8 | -| test.c:573:27:573:28 | ip | 1.20783397E8 | -| test.c:573:33:573:34 | 17 | 1.0 | -| test.c:573:33:573:34 | (unsigned int)... | 1.0 | -| test.c:573:33:573:39 | ... * ... | 1.20783397E8 | -| test.c:573:38:573:39 | ip | 1.20783397E8 | -| test.c:574:19:574:20 | 14 | 1.0 | -| test.c:574:19:574:20 | (unsigned int)... | 1.0 | -| test.c:574:19:574:31 | ... * ... | 1.20783397E8 | -| test.c:574:24:574:31 | (...) | 1.20783397E8 | -| test.c:574:25:574:25 | 2 | 1.0 | -| test.c:574:25:574:25 | (unsigned int)... | 1.0 | -| test.c:574:25:574:30 | ... * ... | 1.20783397E8 | -| test.c:574:29:574:30 | ip | 1.20783397E8 | -| test.c:575:19:575:20 | 14 | 1.0 | -| test.c:575:19:575:20 | (unsigned int)... | 1.0 | -| test.c:575:19:575:25 | ... * ... | 1.20783397E8 | -| test.c:575:24:575:25 | ip | 1.20783397E8 | -| test.c:576:11:576:61 | (...) | 1.3129766091773648E17 | -| test.c:576:12:576:13 | 14 | 1.0 | -| test.c:576:12:576:13 | (unsigned int)... | 1.0 | -| test.c:576:12:576:18 | ... * ... | 3.62350191E8 | -| test.c:576:12:576:34 | ... > ... | 1.0 | -| test.c:576:12:576:60 | ... ? ... : ... | 1.3129766091773648E17 | -| test.c:576:17:576:18 | ip | 3.62350191E8 | -| test.c:576:22:576:29 | (...) | 3.62350191E8 | -| test.c:576:22:576:34 | ... * ... | 3.62350191E8 | -| test.c:576:23:576:24 | ip | 3.62350191E8 | -| test.c:576:23:576:28 | ... + ... | 3.62350191E8 | -| test.c:576:28:576:28 | 1 | 1.0 | -| test.c:576:28:576:28 | (unsigned int)... | 1.0 | -| test.c:576:33:576:34 | 17 | 1.0 | -| test.c:576:33:576:34 | (unsigned int)... | 1.0 | -| test.c:576:38:576:39 | 17 | 1.0 | -| test.c:576:38:576:39 | (unsigned int)... | 1.0 | -| test.c:576:38:576:44 | ... * ... | 3.62350191E8 | -| test.c:576:43:576:44 | ip | 3.62350191E8 | -| test.c:576:48:576:55 | (...) | 3.62350191E8 | -| test.c:576:48:576:60 | ... * ... | 3.62350191E8 | -| test.c:576:49:576:50 | ip | 3.62350191E8 | -| test.c:576:49:576:54 | ... + ... | 3.62350191E8 | -| test.c:576:54:576:54 | 1 | 1.0 | -| test.c:576:54:576:54 | (unsigned int)... | 1.0 | -| test.c:576:59:576:60 | 17 | 1.0 | -| test.c:576:59:576:60 | (unsigned int)... | 1.0 | -| test.c:577:15:577:15 | 4 | 1.0 | -| test.c:577:15:577:15 | (unsigned int)... | 1.0 | -| test.c:577:15:577:32 | ... * ... | 7.24700382E8 | -| test.c:577:15:578:32 | ... + ... | 5.251906436709459E17 | -| test.c:577:15:579:32 | ... + ... | 3.806058600911604E26 | -| test.c:577:15:585:28 | ... + ... | 1.1588865682845433E54 | -| test.c:577:19:577:32 | (...) | 7.24700382E8 | -| test.c:577:20:577:21 | ip | 7.24700382E8 | -| test.c:577:20:577:26 | ... * ... | 7.24700382E8 | -| test.c:577:20:577:31 | ... + ... | 7.24700382E8 | -| test.c:577:25:577:26 | 14 | 1.0 | -| test.c:577:25:577:26 | (unsigned int)... | 1.0 | -| test.c:577:30:577:31 | 32 | 1.0 | -| test.c:577:30:577:31 | (unsigned int)... | 1.0 | -| test.c:578:15:578:32 | (...) | 7.24700382E8 | -| test.c:578:16:578:16 | 2 | 1.0 | -| test.c:578:16:578:16 | (unsigned int)... | 1.0 | -| test.c:578:16:578:21 | ... * ... | 7.24700382E8 | -| test.c:578:16:578:26 | ... * ... | 7.24700382E8 | -| test.c:578:16:578:31 | ... + ... | 7.24700382E8 | -| test.c:578:20:578:21 | ip | 7.24700382E8 | -| test.c:578:25:578:26 | 14 | 1.0 | -| test.c:578:25:578:26 | (unsigned int)... | 1.0 | -| test.c:578:30:578:31 | 32 | 1.0 | -| test.c:578:30:578:31 | (unsigned int)... | 1.0 | -| test.c:579:15:579:15 | 2 | 1.0 | -| test.c:579:15:579:15 | (unsigned int)... | 1.0 | -| test.c:579:15:579:32 | ... * ... | 7.24700382E8 | -| test.c:579:19:579:32 | (...) | 7.24700382E8 | -| test.c:579:20:579:21 | ip | 7.24700382E8 | -| test.c:579:20:579:26 | ... * ... | 7.24700382E8 | -| test.c:579:20:579:31 | ... + ... | 7.24700382E8 | -| test.c:579:25:579:26 | 14 | 1.0 | -| test.c:579:25:579:26 | (unsigned int)... | 1.0 | -| test.c:579:30:579:31 | 64 | 1.0 | -| test.c:579:30:579:31 | (unsigned int)... | 1.0 | -| test.c:580:15:585:28 | (...) | 3.044846887031571E27 | -| test.c:580:16:580:27 | (...) | 7.24700382E8 | -| test.c:580:16:580:32 | ... * ... | 7.24700382E8 | -| test.c:580:16:581:65 | ... > ... | 1.0 | -| test.c:580:16:585:27 | ... ? ... : ... | 3.044846887031571E27 | -| test.c:580:17:580:17 | 2 | 1.0 | -| test.c:580:17:580:17 | (unsigned int)... | 1.0 | -| test.c:580:17:580:22 | ... * ... | 7.24700382E8 | -| test.c:580:17:580:26 | ... + ... | 7.24700382E8 | -| test.c:580:21:580:22 | ip | 7.24700382E8 | -| test.c:580:26:580:26 | 1 | 1.0 | -| test.c:580:26:580:26 | (unsigned int)... | 1.0 | -| test.c:580:31:580:32 | 14 | 1.0 | -| test.c:580:31:580:32 | (unsigned int)... | 1.0 | -| test.c:581:15:581:65 | (...) | 5.251906436709459E17 | -| test.c:581:16:581:17 | 14 | 1.0 | -| test.c:581:16:581:17 | (unsigned int)... | 1.0 | -| test.c:581:16:581:28 | ... * ... | 7.24700382E8 | -| test.c:581:16:581:38 | ... > ... | 1.0 | -| test.c:581:16:581:64 | ... ? ... : ... | 5.251906436709459E17 | -| test.c:581:21:581:28 | (...) | 7.24700382E8 | -| test.c:581:22:581:22 | 2 | 1.0 | -| test.c:581:22:581:22 | (unsigned int)... | 1.0 | -| test.c:581:22:581:27 | ... * ... | 7.24700382E8 | -| test.c:581:26:581:27 | ip | 7.24700382E8 | -| test.c:581:32:581:33 | 17 | 1.0 | -| test.c:581:32:581:33 | (unsigned int)... | 1.0 | -| test.c:581:32:581:38 | ... * ... | 7.24700382E8 | -| test.c:581:37:581:38 | ip | 7.24700382E8 | -| test.c:581:42:581:43 | 17 | 1.0 | -| test.c:581:42:581:43 | (unsigned int)... | 1.0 | -| test.c:581:42:581:54 | ... * ... | 7.24700382E8 | -| test.c:581:47:581:54 | (...) | 7.24700382E8 | -| test.c:581:48:581:48 | 2 | 1.0 | -| test.c:581:48:581:48 | (unsigned int)... | 1.0 | -| test.c:581:48:581:53 | ... * ... | 7.24700382E8 | -| test.c:581:52:581:53 | ip | 7.24700382E8 | -| test.c:581:58:581:59 | 17 | 1.0 | -| test.c:581:58:581:59 | (unsigned int)... | 1.0 | -| test.c:581:58:581:64 | ... * ... | 7.24700382E8 | -| test.c:581:63:581:64 | ip | 7.24700382E8 | -| test.c:582:19:582:30 | (...) | 1.449400765E9 | -| test.c:582:19:582:35 | ... * ... | 1.449400765E9 | +| test.c:567:27:567:38 | (...) | 8627385.0 | +| test.c:567:27:567:43 | ... * ... | 8627385.0 | +| test.c:567:28:567:28 | 2 | 1.0 | +| test.c:567:28:567:28 | (unsigned int)... | 1.0 | +| test.c:567:28:567:33 | ... * ... | 8627385.0 | +| test.c:567:28:567:37 | ... + ... | 8627385.0 | +| test.c:567:32:567:33 | ip | 8627385.0 | +| test.c:567:37:567:37 | 1 | 1.0 | +| test.c:567:37:567:37 | (unsigned int)... | 1.0 | +| test.c:567:42:567:43 | 17 | 1.0 | +| test.c:567:42:567:43 | (unsigned int)... | 1.0 | +| test.c:568:17:568:17 | 4 | 1.0 | +| test.c:568:17:568:17 | (unsigned int)... | 1.0 | +| test.c:568:17:568:34 | ... * ... | 8627385.0 | +| test.c:568:17:569:34 | ... + ... | 7.4431771938225E13 | +| test.c:568:17:570:34 | ... + ... | 6.421515527432633E20 | +| test.c:568:17:576:30 | ... + ... | 3.298869507082441E42 | +| test.c:568:21:568:34 | (...) | 8627385.0 | +| test.c:568:22:568:23 | ip | 8627385.0 | +| test.c:568:22:568:28 | ... * ... | 8627385.0 | +| test.c:568:22:568:33 | ... + ... | 8627385.0 | +| test.c:568:27:568:28 | 14 | 1.0 | +| test.c:568:27:568:28 | (unsigned int)... | 1.0 | +| test.c:568:32:568:33 | 32 | 1.0 | +| test.c:568:32:568:33 | (unsigned int)... | 1.0 | +| test.c:569:17:569:34 | (...) | 8627385.0 | +| test.c:569:18:569:18 | 2 | 1.0 | +| test.c:569:18:569:18 | (unsigned int)... | 1.0 | +| test.c:569:18:569:23 | ... * ... | 8627385.0 | +| test.c:569:18:569:28 | ... * ... | 8627385.0 | +| test.c:569:18:569:33 | ... + ... | 8627385.0 | +| test.c:569:22:569:23 | ip | 8627385.0 | +| test.c:569:27:569:28 | 14 | 1.0 | +| test.c:569:27:569:28 | (unsigned int)... | 1.0 | +| test.c:569:32:569:33 | 32 | 1.0 | +| test.c:569:32:569:33 | (unsigned int)... | 1.0 | +| test.c:570:17:570:17 | 2 | 1.0 | +| test.c:570:17:570:17 | (unsigned int)... | 1.0 | +| test.c:570:17:570:34 | ... * ... | 8627385.0 | +| test.c:570:21:570:34 | (...) | 8627385.0 | +| test.c:570:22:570:23 | ip | 8627385.0 | +| test.c:570:22:570:28 | ... * ... | 8627385.0 | +| test.c:570:22:570:33 | ... + ... | 8627385.0 | +| test.c:570:27:570:28 | 14 | 1.0 | +| test.c:570:27:570:28 | (unsigned int)... | 1.0 | +| test.c:570:32:570:33 | 64 | 1.0 | +| test.c:570:32:570:33 | (unsigned int)... | 1.0 | +| test.c:571:17:576:30 | (...) | 5.137213315127421E21 | +| test.c:571:18:571:29 | (...) | 8627385.0 | +| test.c:571:18:571:34 | ... * ... | 8627385.0 | +| test.c:571:18:572:67 | ... > ... | 1.0 | +| test.c:571:18:576:29 | ... ? ... : ... | 5.137213315127421E21 | +| test.c:571:19:571:19 | 2 | 1.0 | +| test.c:571:19:571:19 | (unsigned int)... | 1.0 | +| test.c:571:19:571:24 | ... * ... | 8627385.0 | +| test.c:571:19:571:28 | ... + ... | 8627385.0 | +| test.c:571:23:571:24 | ip | 8627385.0 | +| test.c:571:28:571:28 | 1 | 1.0 | +| test.c:571:28:571:28 | (unsigned int)... | 1.0 | +| test.c:571:33:571:34 | 14 | 1.0 | +| test.c:571:33:571:34 | (unsigned int)... | 1.0 | +| test.c:572:17:572:67 | (...) | 7.4431771938225E13 | +| test.c:572:18:572:19 | 14 | 1.0 | +| test.c:572:18:572:19 | (unsigned int)... | 1.0 | +| test.c:572:18:572:30 | ... * ... | 8627385.0 | +| test.c:572:18:572:40 | ... > ... | 1.0 | +| test.c:572:18:572:66 | ... ? ... : ... | 7.4431771938225E13 | +| test.c:572:23:572:30 | (...) | 8627385.0 | +| test.c:572:24:572:24 | 2 | 1.0 | +| test.c:572:24:572:24 | (unsigned int)... | 1.0 | +| test.c:572:24:572:29 | ... * ... | 8627385.0 | +| test.c:572:28:572:29 | ip | 8627385.0 | +| test.c:572:34:572:35 | 17 | 1.0 | +| test.c:572:34:572:35 | (unsigned int)... | 1.0 | +| test.c:572:34:572:40 | ... * ... | 8627385.0 | +| test.c:572:39:572:40 | ip | 8627385.0 | +| test.c:572:44:572:45 | 17 | 1.0 | +| test.c:572:44:572:45 | (unsigned int)... | 1.0 | +| test.c:572:44:572:56 | ... * ... | 8627385.0 | +| test.c:572:49:572:56 | (...) | 8627385.0 | +| test.c:572:50:572:50 | 2 | 1.0 | +| test.c:572:50:572:50 | (unsigned int)... | 1.0 | +| test.c:572:50:572:55 | ... * ... | 8627385.0 | +| test.c:572:54:572:55 | ip | 8627385.0 | +| test.c:572:60:572:61 | 17 | 1.0 | +| test.c:572:60:572:61 | (unsigned int)... | 1.0 | +| test.c:572:60:572:66 | ... * ... | 8627385.0 | +| test.c:572:65:572:66 | ip | 8627385.0 | +| test.c:573:21:573:32 | (...) | 1.7254771E7 | +| test.c:573:21:573:37 | ... * ... | 1.7254771E7 | +| test.c:573:22:573:22 | 2 | 1.0 | +| test.c:573:22:573:22 | (unsigned int)... | 1.0 | +| test.c:573:22:573:27 | ... * ... | 1.7254771E7 | +| test.c:573:22:573:31 | ... + ... | 1.7254771E7 | +| test.c:573:26:573:27 | ip | 1.7254771E7 | +| test.c:573:31:573:31 | 1 | 1.0 | +| test.c:573:31:573:31 | (unsigned int)... | 1.0 | +| test.c:573:36:573:37 | 14 | 1.0 | +| test.c:573:36:573:37 | (unsigned int)... | 1.0 | +| test.c:574:21:574:22 | 14 | 1.0 | +| test.c:574:21:574:22 | (unsigned int)... | 1.0 | +| test.c:574:21:574:33 | ... * ... | 1.7254771E7 | +| test.c:574:21:574:43 | ... > ... | 1.0 | +| test.c:574:21:576:29 | ... ? ... : ... | 2.97727122262441E14 | +| test.c:574:26:574:33 | (...) | 1.7254771E7 | +| test.c:574:27:574:27 | 2 | 1.0 | +| test.c:574:27:574:27 | (unsigned int)... | 1.0 | +| test.c:574:27:574:32 | ... * ... | 1.7254771E7 | +| test.c:574:31:574:32 | ip | 1.7254771E7 | +| test.c:574:37:574:38 | 17 | 1.0 | +| test.c:574:37:574:38 | (unsigned int)... | 1.0 | +| test.c:574:37:574:43 | ... * ... | 1.7254771E7 | +| test.c:574:42:574:43 | ip | 1.7254771E7 | +| test.c:575:23:575:24 | 14 | 1.0 | +| test.c:575:23:575:24 | (unsigned int)... | 1.0 | +| test.c:575:23:575:35 | ... * ... | 1.7254771E7 | +| test.c:575:28:575:35 | (...) | 1.7254771E7 | +| test.c:575:29:575:29 | 2 | 1.0 | +| test.c:575:29:575:29 | (unsigned int)... | 1.0 | +| test.c:575:29:575:34 | ... * ... | 1.7254771E7 | +| test.c:575:33:575:34 | ip | 1.7254771E7 | +| test.c:576:23:576:24 | 14 | 1.0 | +| test.c:576:23:576:24 | (unsigned int)... | 1.0 | +| test.c:576:23:576:29 | ... * ... | 1.7254771E7 | +| test.c:576:28:576:29 | ip | 1.7254771E7 | +| test.c:577:17:577:17 | 2 | 1.0 | +| test.c:577:17:577:17 | (unsigned int)... | 1.0 | +| test.c:577:17:577:22 | ... * ... | 8627385.0 | +| test.c:577:17:577:27 | ... * ... | 8627385.0 | +| test.c:577:17:577:47 | ... + ... | 7.4431771938225E13 | +| test.c:577:21:577:22 | ip | 8627385.0 | +| test.c:577:26:577:27 | 14 | 1.0 | +| test.c:577:26:577:27 | (unsigned int)... | 1.0 | +| test.c:577:31:577:42 | (...) | 8627385.0 | +| test.c:577:31:577:47 | ... * ... | 8627385.0 | +| test.c:577:32:577:32 | 2 | 1.0 | +| test.c:577:32:577:32 | (unsigned int)... | 1.0 | +| test.c:577:32:577:37 | ... * ... | 8627385.0 | +| test.c:577:32:577:41 | ... + ... | 8627385.0 | +| test.c:577:36:577:37 | ip | 8627385.0 | +| test.c:577:41:577:41 | 1 | 1.0 | +| test.c:577:41:577:41 | (unsigned int)... | 1.0 | +| test.c:577:46:577:47 | 17 | 1.0 | +| test.c:577:46:577:47 | (unsigned int)... | 1.0 | +| test.c:578:11:599:30 | (...) | 6.08636382738973E71 | +| test.c:578:12:578:12 | 4 | 1.0 | +| test.c:578:12:578:12 | (unsigned int)... | 1.0 | +| test.c:578:12:578:29 | ... * ... | 6.0391698E7 | +| test.c:578:12:579:30 | ... + ... | 3.647157187323204E15 | +| test.c:578:12:580:30 | ... + ... | 2.2025801541535236E23 | +| test.c:578:12:586:26 | ... + ... | 3.881087564774641E47 | +| test.c:578:12:587:61 | ... > ... | 1.0 | +| test.c:578:12:599:29 | ... ? ... : ... | 6.08636382738973E71 | +| test.c:578:16:578:29 | (...) | 6.0391698E7 | +| test.c:578:17:578:18 | ip | 6.0391698E7 | +| test.c:578:17:578:23 | ... * ... | 6.0391698E7 | +| test.c:578:17:578:28 | ... + ... | 6.0391698E7 | +| test.c:578:22:578:23 | 14 | 1.0 | +| test.c:578:22:578:23 | (unsigned int)... | 1.0 | +| test.c:578:27:578:28 | 32 | 1.0 | +| test.c:578:27:578:28 | (unsigned int)... | 1.0 | +| test.c:579:13:579:30 | (...) | 6.0391698E7 | +| test.c:579:14:579:14 | 2 | 1.0 | +| test.c:579:14:579:14 | (unsigned int)... | 1.0 | +| test.c:579:14:579:19 | ... * ... | 6.0391698E7 | +| test.c:579:14:579:24 | ... * ... | 6.0391698E7 | +| test.c:579:14:579:29 | ... + ... | 6.0391698E7 | +| test.c:579:18:579:19 | ip | 6.0391698E7 | +| test.c:579:23:579:24 | 14 | 1.0 | +| test.c:579:23:579:24 | (unsigned int)... | 1.0 | +| test.c:579:28:579:29 | 32 | 1.0 | +| test.c:579:28:579:29 | (unsigned int)... | 1.0 | +| test.c:580:13:580:13 | 2 | 1.0 | +| test.c:580:13:580:13 | (unsigned int)... | 1.0 | +| test.c:580:13:580:30 | ... * ... | 6.0391698E7 | +| test.c:580:17:580:30 | (...) | 6.0391698E7 | +| test.c:580:18:580:19 | ip | 6.0391698E7 | +| test.c:580:18:580:24 | ... * ... | 6.0391698E7 | +| test.c:580:18:580:29 | ... + ... | 6.0391698E7 | +| test.c:580:23:580:24 | 14 | 1.0 | +| test.c:580:23:580:24 | (unsigned int)... | 1.0 | +| test.c:580:28:580:29 | 64 | 1.0 | +| test.c:580:28:580:29 | (unsigned int)... | 1.0 | +| test.c:581:13:586:26 | (...) | 1.7620641670887053E24 | +| test.c:581:14:581:25 | (...) | 6.0391698E7 | +| test.c:581:14:581:30 | ... * ... | 6.0391698E7 | +| test.c:581:14:582:63 | ... > ... | 1.0 | +| test.c:581:14:586:25 | ... ? ... : ... | 1.7620641670887053E24 | +| test.c:581:15:581:15 | 2 | 1.0 | +| test.c:581:15:581:15 | (unsigned int)... | 1.0 | +| test.c:581:15:581:20 | ... * ... | 6.0391698E7 | +| test.c:581:15:581:24 | ... + ... | 6.0391698E7 | +| test.c:581:19:581:20 | ip | 6.0391698E7 | +| test.c:581:24:581:24 | 1 | 1.0 | +| test.c:581:24:581:24 | (unsigned int)... | 1.0 | +| test.c:581:29:581:30 | 14 | 1.0 | +| test.c:581:29:581:30 | (unsigned int)... | 1.0 | +| test.c:582:13:582:63 | (...) | 3.647157187323204E15 | +| test.c:582:14:582:15 | 14 | 1.0 | +| test.c:582:14:582:15 | (unsigned int)... | 1.0 | +| test.c:582:14:582:26 | ... * ... | 6.0391698E7 | +| test.c:582:14:582:36 | ... > ... | 1.0 | +| test.c:582:14:582:62 | ... ? ... : ... | 3.647157187323204E15 | +| test.c:582:19:582:26 | (...) | 6.0391698E7 | | test.c:582:20:582:20 | 2 | 1.0 | | test.c:582:20:582:20 | (unsigned int)... | 1.0 | -| test.c:582:20:582:25 | ... * ... | 1.449400765E9 | -| test.c:582:20:582:29 | ... + ... | 1.449400765E9 | -| test.c:582:24:582:25 | ip | 1.449400765E9 | -| test.c:582:29:582:29 | 1 | 1.0 | -| test.c:582:29:582:29 | (unsigned int)... | 1.0 | -| test.c:582:34:582:35 | 14 | 1.0 | -| test.c:582:34:582:35 | (unsigned int)... | 1.0 | -| test.c:583:19:583:20 | 14 | 1.0 | -| test.c:583:19:583:20 | (unsigned int)... | 1.0 | -| test.c:583:19:583:31 | ... * ... | 1.449400765E9 | -| test.c:583:19:583:41 | ... > ... | 1.0 | -| test.c:583:19:585:27 | ... ? ... : ... | 2.1007625775825853E18 | -| test.c:583:24:583:31 | (...) | 1.449400765E9 | -| test.c:583:25:583:25 | 2 | 1.0 | -| test.c:583:25:583:25 | (unsigned int)... | 1.0 | -| test.c:583:25:583:30 | ... * ... | 1.449400765E9 | -| test.c:583:29:583:30 | ip | 1.449400765E9 | -| test.c:583:35:583:36 | 17 | 1.0 | -| test.c:583:35:583:36 | (unsigned int)... | 1.0 | -| test.c:583:35:583:41 | ... * ... | 1.449400765E9 | -| test.c:583:40:583:41 | ip | 1.449400765E9 | -| test.c:584:21:584:22 | 14 | 1.0 | -| test.c:584:21:584:22 | (unsigned int)... | 1.0 | -| test.c:584:21:584:33 | ... * ... | 1.449400765E9 | -| test.c:584:26:584:33 | (...) | 1.449400765E9 | -| test.c:584:27:584:27 | 2 | 1.0 | -| test.c:584:27:584:27 | (unsigned int)... | 1.0 | -| test.c:584:27:584:32 | ... * ... | 1.449400765E9 | -| test.c:584:31:584:32 | ip | 1.449400765E9 | -| test.c:585:21:585:22 | 14 | 1.0 | -| test.c:585:21:585:22 | (unsigned int)... | 1.0 | -| test.c:585:21:585:27 | ... * ... | 1.449400765E9 | -| test.c:585:26:585:27 | ip | 1.449400765E9 | -| test.c:586:15:586:16 | 14 | 1.0 | -| test.c:586:15:586:16 | (unsigned int)... | 1.0 | -| test.c:586:15:586:21 | ... * ... | 7.24700382E8 | -| test.c:586:15:586:37 | ... > ... | 1.0 | -| test.c:586:15:588:29 | ... ? ... : ... | 5.251906436709459E17 | -| test.c:586:20:586:21 | ip | 7.24700382E8 | -| test.c:586:25:586:32 | (...) | 7.24700382E8 | -| test.c:586:25:586:37 | ... * ... | 7.24700382E8 | -| test.c:586:26:586:27 | ip | 7.24700382E8 | -| test.c:586:26:586:31 | ... + ... | 7.24700382E8 | -| test.c:586:31:586:31 | 1 | 1.0 | -| test.c:586:31:586:31 | (unsigned int)... | 1.0 | -| test.c:586:36:586:37 | 17 | 1.0 | -| test.c:586:36:586:37 | (unsigned int)... | 1.0 | -| test.c:587:17:587:18 | 14 | 1.0 | -| test.c:587:17:587:18 | (unsigned int)... | 1.0 | -| test.c:587:17:587:23 | ... * ... | 7.24700382E8 | -| test.c:587:22:587:23 | ip | 7.24700382E8 | -| test.c:588:17:588:24 | (...) | 7.24700382E8 | -| test.c:588:17:588:29 | ... * ... | 7.24700382E8 | -| test.c:588:18:588:19 | ip | 7.24700382E8 | -| test.c:588:18:588:23 | ... + ... | 7.24700382E8 | -| test.c:588:23:588:23 | 1 | 1.0 | -| test.c:588:23:588:23 | (unsigned int)... | 1.0 | -| test.c:588:28:588:29 | 14 | 1.0 | -| test.c:588:28:588:29 | (unsigned int)... | 1.0 | -| test.c:589:11:589:11 | 2 | 1.0 | -| test.c:589:11:589:11 | (unsigned int)... | 1.0 | -| test.c:589:11:589:28 | ... * ... | 5.797603059E9 | -| test.c:589:11:609:46 | ... + ... | 9.943431528813442E94 | -| test.c:589:15:589:28 | (...) | 5.797603059E9 | -| test.c:589:16:589:17 | ip | 5.797603059E9 | -| test.c:589:16:589:22 | ... * ... | 5.797603059E9 | -| test.c:589:16:589:27 | ... + ... | 5.797603059E9 | -| test.c:589:21:589:22 | 14 | 1.0 | -| test.c:589:21:589:22 | (unsigned int)... | 1.0 | -| test.c:589:26:589:27 | 32 | 1.0 | -| test.c:589:26:589:27 | (unsigned int)... | 1.0 | -| test.c:590:11:609:46 | (...) | 1.715093535659983E85 | -| test.c:590:12:590:12 | 4 | 1.0 | -| test.c:590:12:590:12 | (unsigned int)... | 1.0 | -| test.c:590:12:590:29 | ... * ... | 5.797603059E9 | -| test.c:590:12:591:30 | ... + ... | 3.361220122972616E19 | -| test.c:590:12:592:30 | ... + ... | 1.9487020066918396E29 | -| test.c:590:12:598:26 | ... + ... | 3.0379516094938436E59 | -| test.c:590:12:599:41 | ... > ... | 1.0 | -| test.c:590:12:609:45 | ... ? ... : ... | 1.715093535659983E85 | -| test.c:590:16:590:29 | (...) | 5.797603059E9 | -| test.c:590:17:590:18 | ip | 5.797603059E9 | -| test.c:590:17:590:23 | ... * ... | 5.797603059E9 | -| test.c:590:17:590:28 | ... + ... | 5.797603059E9 | -| test.c:590:22:590:23 | 14 | 1.0 | -| test.c:590:22:590:23 | (unsigned int)... | 1.0 | -| test.c:590:27:590:28 | 32 | 1.0 | -| test.c:590:27:590:28 | (unsigned int)... | 1.0 | -| test.c:591:13:591:30 | (...) | 5.797603059E9 | -| test.c:591:14:591:14 | 2 | 1.0 | -| test.c:591:14:591:14 | (unsigned int)... | 1.0 | -| test.c:591:14:591:19 | ... * ... | 5.797603059E9 | -| test.c:591:14:591:24 | ... * ... | 5.797603059E9 | -| test.c:591:14:591:29 | ... + ... | 5.797603059E9 | -| test.c:591:18:591:19 | ip | 5.797603059E9 | -| test.c:591:23:591:24 | 14 | 1.0 | -| test.c:591:23:591:24 | (unsigned int)... | 1.0 | -| test.c:591:28:591:29 | 32 | 1.0 | -| test.c:591:28:591:29 | (unsigned int)... | 1.0 | -| test.c:592:13:592:13 | 2 | 1.0 | -| test.c:592:13:592:13 | (unsigned int)... | 1.0 | -| test.c:592:13:592:30 | ... * ... | 5.797603059E9 | -| test.c:592:17:592:30 | (...) | 5.797603059E9 | -| test.c:592:18:592:19 | ip | 5.797603059E9 | -| test.c:592:18:592:24 | ... * ... | 5.797603059E9 | -| test.c:592:18:592:29 | ... + ... | 5.797603059E9 | -| test.c:592:23:592:24 | 14 | 1.0 | -| test.c:592:23:592:24 | (unsigned int)... | 1.0 | -| test.c:592:28:592:29 | 64 | 1.0 | -| test.c:592:28:592:29 | (unsigned int)... | 1.0 | -| test.c:593:13:598:26 | (...) | 1.558961605756818E30 | -| test.c:593:14:593:25 | (...) | 5.797603059E9 | -| test.c:593:14:593:30 | ... * ... | 5.797603059E9 | -| test.c:593:14:594:63 | ... > ... | 1.0 | -| test.c:593:14:598:25 | ... ? ... : ... | 1.558961605756818E30 | -| test.c:593:15:593:15 | 2 | 1.0 | -| test.c:593:15:593:15 | (unsigned int)... | 1.0 | -| test.c:593:15:593:20 | ... * ... | 5.797603059E9 | -| test.c:593:15:593:24 | ... + ... | 5.797603059E9 | -| test.c:593:19:593:20 | ip | 5.797603059E9 | -| test.c:593:24:593:24 | 1 | 1.0 | -| test.c:593:24:593:24 | (unsigned int)... | 1.0 | -| test.c:593:29:593:30 | 14 | 1.0 | -| test.c:593:29:593:30 | (unsigned int)... | 1.0 | -| test.c:594:13:594:63 | (...) | 3.361220122972616E19 | -| test.c:594:14:594:15 | 14 | 1.0 | -| test.c:594:14:594:15 | (unsigned int)... | 1.0 | -| test.c:594:14:594:26 | ... * ... | 5.797603059E9 | -| test.c:594:14:594:36 | ... > ... | 1.0 | -| test.c:594:14:594:62 | ... ? ... : ... | 3.361220122972616E19 | -| test.c:594:19:594:26 | (...) | 5.797603059E9 | -| test.c:594:20:594:20 | 2 | 1.0 | -| test.c:594:20:594:20 | (unsigned int)... | 1.0 | -| test.c:594:20:594:25 | ... * ... | 5.797603059E9 | -| test.c:594:24:594:25 | ip | 5.797603059E9 | -| test.c:594:30:594:31 | 17 | 1.0 | -| test.c:594:30:594:31 | (unsigned int)... | 1.0 | -| test.c:594:30:594:36 | ... * ... | 5.797603059E9 | -| test.c:594:35:594:36 | ip | 5.797603059E9 | -| test.c:594:40:594:41 | 17 | 1.0 | -| test.c:594:40:594:41 | (unsigned int)... | 1.0 | -| test.c:594:40:594:52 | ... * ... | 5.797603059E9 | -| test.c:594:45:594:52 | (...) | 5.797603059E9 | -| test.c:594:46:594:46 | 2 | 1.0 | -| test.c:594:46:594:46 | (unsigned int)... | 1.0 | -| test.c:594:46:594:51 | ... * ... | 5.797603059E9 | -| test.c:594:50:594:51 | ip | 5.797603059E9 | -| test.c:594:56:594:57 | 17 | 1.0 | -| test.c:594:56:594:57 | (unsigned int)... | 1.0 | -| test.c:594:56:594:62 | ... * ... | 5.797603059E9 | -| test.c:594:61:594:62 | ip | 5.797603059E9 | -| test.c:595:17:595:28 | (...) | 1.1595206119E10 | -| test.c:595:17:595:33 | ... * ... | 1.1595206119E10 | -| test.c:595:18:595:18 | 2 | 1.0 | -| test.c:595:18:595:18 | (unsigned int)... | 1.0 | -| test.c:595:18:595:23 | ... * ... | 1.1595206119E10 | -| test.c:595:18:595:27 | ... + ... | 1.1595206119E10 | -| test.c:595:22:595:23 | ip | 1.1595206119E10 | -| test.c:595:27:595:27 | 1 | 1.0 | +| test.c:582:20:582:25 | ... * ... | 6.0391698E7 | +| test.c:582:24:582:25 | ip | 6.0391698E7 | +| test.c:582:30:582:31 | 17 | 1.0 | +| test.c:582:30:582:31 | (unsigned int)... | 1.0 | +| test.c:582:30:582:36 | ... * ... | 6.0391698E7 | +| test.c:582:35:582:36 | ip | 6.0391698E7 | +| test.c:582:40:582:41 | 17 | 1.0 | +| test.c:582:40:582:41 | (unsigned int)... | 1.0 | +| test.c:582:40:582:52 | ... * ... | 6.0391698E7 | +| test.c:582:45:582:52 | (...) | 6.0391698E7 | +| test.c:582:46:582:46 | 2 | 1.0 | +| test.c:582:46:582:46 | (unsigned int)... | 1.0 | +| test.c:582:46:582:51 | ... * ... | 6.0391698E7 | +| test.c:582:50:582:51 | ip | 6.0391698E7 | +| test.c:582:56:582:57 | 17 | 1.0 | +| test.c:582:56:582:57 | (unsigned int)... | 1.0 | +| test.c:582:56:582:62 | ... * ... | 6.0391698E7 | +| test.c:582:61:582:62 | ip | 6.0391698E7 | +| test.c:583:17:583:28 | (...) | 1.20783397E8 | +| test.c:583:17:583:33 | ... * ... | 1.20783397E8 | +| test.c:583:18:583:18 | 2 | 1.0 | +| test.c:583:18:583:18 | (unsigned int)... | 1.0 | +| test.c:583:18:583:23 | ... * ... | 1.20783397E8 | +| test.c:583:18:583:27 | ... + ... | 1.20783397E8 | +| test.c:583:22:583:23 | ip | 1.20783397E8 | +| test.c:583:27:583:27 | 1 | 1.0 | +| test.c:583:27:583:27 | (unsigned int)... | 1.0 | +| test.c:583:32:583:33 | 14 | 1.0 | +| test.c:583:32:583:33 | (unsigned int)... | 1.0 | +| test.c:584:17:584:18 | 14 | 1.0 | +| test.c:584:17:584:18 | (unsigned int)... | 1.0 | +| test.c:584:17:584:29 | ... * ... | 1.20783397E8 | +| test.c:584:17:584:39 | ... > ... | 1.0 | +| test.c:584:17:586:25 | ... ? ... : ... | 1.4588628990859608E16 | +| test.c:584:22:584:29 | (...) | 1.20783397E8 | +| test.c:584:23:584:23 | 2 | 1.0 | +| test.c:584:23:584:23 | (unsigned int)... | 1.0 | +| test.c:584:23:584:28 | ... * ... | 1.20783397E8 | +| test.c:584:27:584:28 | ip | 1.20783397E8 | +| test.c:584:33:584:34 | 17 | 1.0 | +| test.c:584:33:584:34 | (unsigned int)... | 1.0 | +| test.c:584:33:584:39 | ... * ... | 1.20783397E8 | +| test.c:584:38:584:39 | ip | 1.20783397E8 | +| test.c:585:19:585:20 | 14 | 1.0 | +| test.c:585:19:585:20 | (unsigned int)... | 1.0 | +| test.c:585:19:585:31 | ... * ... | 1.20783397E8 | +| test.c:585:24:585:31 | (...) | 1.20783397E8 | +| test.c:585:25:585:25 | 2 | 1.0 | +| test.c:585:25:585:25 | (unsigned int)... | 1.0 | +| test.c:585:25:585:30 | ... * ... | 1.20783397E8 | +| test.c:585:29:585:30 | ip | 1.20783397E8 | +| test.c:586:19:586:20 | 14 | 1.0 | +| test.c:586:19:586:20 | (unsigned int)... | 1.0 | +| test.c:586:19:586:25 | ... * ... | 1.20783397E8 | +| test.c:586:24:586:25 | ip | 1.20783397E8 | +| test.c:587:11:587:61 | (...) | 1.3129766091773648E17 | +| test.c:587:12:587:13 | 14 | 1.0 | +| test.c:587:12:587:13 | (unsigned int)... | 1.0 | +| test.c:587:12:587:18 | ... * ... | 3.62350191E8 | +| test.c:587:12:587:34 | ... > ... | 1.0 | +| test.c:587:12:587:60 | ... ? ... : ... | 1.3129766091773648E17 | +| test.c:587:17:587:18 | ip | 3.62350191E8 | +| test.c:587:22:587:29 | (...) | 3.62350191E8 | +| test.c:587:22:587:34 | ... * ... | 3.62350191E8 | +| test.c:587:23:587:24 | ip | 3.62350191E8 | +| test.c:587:23:587:28 | ... + ... | 3.62350191E8 | +| test.c:587:28:587:28 | 1 | 1.0 | +| test.c:587:28:587:28 | (unsigned int)... | 1.0 | +| test.c:587:33:587:34 | 17 | 1.0 | +| test.c:587:33:587:34 | (unsigned int)... | 1.0 | +| test.c:587:38:587:39 | 17 | 1.0 | +| test.c:587:38:587:39 | (unsigned int)... | 1.0 | +| test.c:587:38:587:44 | ... * ... | 3.62350191E8 | +| test.c:587:43:587:44 | ip | 3.62350191E8 | +| test.c:587:48:587:55 | (...) | 3.62350191E8 | +| test.c:587:48:587:60 | ... * ... | 3.62350191E8 | +| test.c:587:49:587:50 | ip | 3.62350191E8 | +| test.c:587:49:587:54 | ... + ... | 3.62350191E8 | +| test.c:587:54:587:54 | 1 | 1.0 | +| test.c:587:54:587:54 | (unsigned int)... | 1.0 | +| test.c:587:59:587:60 | 17 | 1.0 | +| test.c:587:59:587:60 | (unsigned int)... | 1.0 | +| test.c:588:15:588:15 | 4 | 1.0 | +| test.c:588:15:588:15 | (unsigned int)... | 1.0 | +| test.c:588:15:588:32 | ... * ... | 7.24700382E8 | +| test.c:588:15:589:32 | ... + ... | 5.251906436709459E17 | +| test.c:588:15:590:32 | ... + ... | 3.806058600911604E26 | +| test.c:588:15:596:28 | ... + ... | 1.1588865682845433E54 | +| test.c:588:19:588:32 | (...) | 7.24700382E8 | +| test.c:588:20:588:21 | ip | 7.24700382E8 | +| test.c:588:20:588:26 | ... * ... | 7.24700382E8 | +| test.c:588:20:588:31 | ... + ... | 7.24700382E8 | +| test.c:588:25:588:26 | 14 | 1.0 | +| test.c:588:25:588:26 | (unsigned int)... | 1.0 | +| test.c:588:30:588:31 | 32 | 1.0 | +| test.c:588:30:588:31 | (unsigned int)... | 1.0 | +| test.c:589:15:589:32 | (...) | 7.24700382E8 | +| test.c:589:16:589:16 | 2 | 1.0 | +| test.c:589:16:589:16 | (unsigned int)... | 1.0 | +| test.c:589:16:589:21 | ... * ... | 7.24700382E8 | +| test.c:589:16:589:26 | ... * ... | 7.24700382E8 | +| test.c:589:16:589:31 | ... + ... | 7.24700382E8 | +| test.c:589:20:589:21 | ip | 7.24700382E8 | +| test.c:589:25:589:26 | 14 | 1.0 | +| test.c:589:25:589:26 | (unsigned int)... | 1.0 | +| test.c:589:30:589:31 | 32 | 1.0 | +| test.c:589:30:589:31 | (unsigned int)... | 1.0 | +| test.c:590:15:590:15 | 2 | 1.0 | +| test.c:590:15:590:15 | (unsigned int)... | 1.0 | +| test.c:590:15:590:32 | ... * ... | 7.24700382E8 | +| test.c:590:19:590:32 | (...) | 7.24700382E8 | +| test.c:590:20:590:21 | ip | 7.24700382E8 | +| test.c:590:20:590:26 | ... * ... | 7.24700382E8 | +| test.c:590:20:590:31 | ... + ... | 7.24700382E8 | +| test.c:590:25:590:26 | 14 | 1.0 | +| test.c:590:25:590:26 | (unsigned int)... | 1.0 | +| test.c:590:30:590:31 | 64 | 1.0 | +| test.c:590:30:590:31 | (unsigned int)... | 1.0 | +| test.c:591:15:596:28 | (...) | 3.044846887031571E27 | +| test.c:591:16:591:27 | (...) | 7.24700382E8 | +| test.c:591:16:591:32 | ... * ... | 7.24700382E8 | +| test.c:591:16:592:65 | ... > ... | 1.0 | +| test.c:591:16:596:27 | ... ? ... : ... | 3.044846887031571E27 | +| test.c:591:17:591:17 | 2 | 1.0 | +| test.c:591:17:591:17 | (unsigned int)... | 1.0 | +| test.c:591:17:591:22 | ... * ... | 7.24700382E8 | +| test.c:591:17:591:26 | ... + ... | 7.24700382E8 | +| test.c:591:21:591:22 | ip | 7.24700382E8 | +| test.c:591:26:591:26 | 1 | 1.0 | +| test.c:591:26:591:26 | (unsigned int)... | 1.0 | +| test.c:591:31:591:32 | 14 | 1.0 | +| test.c:591:31:591:32 | (unsigned int)... | 1.0 | +| test.c:592:15:592:65 | (...) | 5.251906436709459E17 | +| test.c:592:16:592:17 | 14 | 1.0 | +| test.c:592:16:592:17 | (unsigned int)... | 1.0 | +| test.c:592:16:592:28 | ... * ... | 7.24700382E8 | +| test.c:592:16:592:38 | ... > ... | 1.0 | +| test.c:592:16:592:64 | ... ? ... : ... | 5.251906436709459E17 | +| test.c:592:21:592:28 | (...) | 7.24700382E8 | +| test.c:592:22:592:22 | 2 | 1.0 | +| test.c:592:22:592:22 | (unsigned int)... | 1.0 | +| test.c:592:22:592:27 | ... * ... | 7.24700382E8 | +| test.c:592:26:592:27 | ip | 7.24700382E8 | +| test.c:592:32:592:33 | 17 | 1.0 | +| test.c:592:32:592:33 | (unsigned int)... | 1.0 | +| test.c:592:32:592:38 | ... * ... | 7.24700382E8 | +| test.c:592:37:592:38 | ip | 7.24700382E8 | +| test.c:592:42:592:43 | 17 | 1.0 | +| test.c:592:42:592:43 | (unsigned int)... | 1.0 | +| test.c:592:42:592:54 | ... * ... | 7.24700382E8 | +| test.c:592:47:592:54 | (...) | 7.24700382E8 | +| test.c:592:48:592:48 | 2 | 1.0 | +| test.c:592:48:592:48 | (unsigned int)... | 1.0 | +| test.c:592:48:592:53 | ... * ... | 7.24700382E8 | +| test.c:592:52:592:53 | ip | 7.24700382E8 | +| test.c:592:58:592:59 | 17 | 1.0 | +| test.c:592:58:592:59 | (unsigned int)... | 1.0 | +| test.c:592:58:592:64 | ... * ... | 7.24700382E8 | +| test.c:592:63:592:64 | ip | 7.24700382E8 | +| test.c:593:19:593:30 | (...) | 1.449400765E9 | +| test.c:593:19:593:35 | ... * ... | 1.449400765E9 | +| test.c:593:20:593:20 | 2 | 1.0 | +| test.c:593:20:593:20 | (unsigned int)... | 1.0 | +| test.c:593:20:593:25 | ... * ... | 1.449400765E9 | +| test.c:593:20:593:29 | ... + ... | 1.449400765E9 | +| test.c:593:24:593:25 | ip | 1.449400765E9 | +| test.c:593:29:593:29 | 1 | 1.0 | +| test.c:593:29:593:29 | (unsigned int)... | 1.0 | +| test.c:593:34:593:35 | 14 | 1.0 | +| test.c:593:34:593:35 | (unsigned int)... | 1.0 | +| test.c:594:19:594:20 | 14 | 1.0 | +| test.c:594:19:594:20 | (unsigned int)... | 1.0 | +| test.c:594:19:594:31 | ... * ... | 1.449400765E9 | +| test.c:594:19:594:41 | ... > ... | 1.0 | +| test.c:594:19:596:27 | ... ? ... : ... | 2.1007625775825853E18 | +| test.c:594:24:594:31 | (...) | 1.449400765E9 | +| test.c:594:25:594:25 | 2 | 1.0 | +| test.c:594:25:594:25 | (unsigned int)... | 1.0 | +| test.c:594:25:594:30 | ... * ... | 1.449400765E9 | +| test.c:594:29:594:30 | ip | 1.449400765E9 | +| test.c:594:35:594:36 | 17 | 1.0 | +| test.c:594:35:594:36 | (unsigned int)... | 1.0 | +| test.c:594:35:594:41 | ... * ... | 1.449400765E9 | +| test.c:594:40:594:41 | ip | 1.449400765E9 | +| test.c:595:21:595:22 | 14 | 1.0 | +| test.c:595:21:595:22 | (unsigned int)... | 1.0 | +| test.c:595:21:595:33 | ... * ... | 1.449400765E9 | +| test.c:595:26:595:33 | (...) | 1.449400765E9 | +| test.c:595:27:595:27 | 2 | 1.0 | | test.c:595:27:595:27 | (unsigned int)... | 1.0 | -| test.c:595:32:595:33 | 14 | 1.0 | -| test.c:595:32:595:33 | (unsigned int)... | 1.0 | -| test.c:596:17:596:18 | 14 | 1.0 | -| test.c:596:17:596:18 | (unsigned int)... | 1.0 | -| test.c:596:17:596:29 | ... * ... | 1.1595206119E10 | -| test.c:596:17:596:39 | ... > ... | 1.0 | -| test.c:596:17:598:25 | ... ? ... : ... | 1.3444880494209504E20 | -| test.c:596:22:596:29 | (...) | 1.1595206119E10 | -| test.c:596:23:596:23 | 2 | 1.0 | -| test.c:596:23:596:23 | (unsigned int)... | 1.0 | -| test.c:596:23:596:28 | ... * ... | 1.1595206119E10 | -| test.c:596:27:596:28 | ip | 1.1595206119E10 | -| test.c:596:33:596:34 | 17 | 1.0 | -| test.c:596:33:596:34 | (unsigned int)... | 1.0 | -| test.c:596:33:596:39 | ... * ... | 1.1595206119E10 | -| test.c:596:38:596:39 | ip | 1.1595206119E10 | -| test.c:597:19:597:20 | 14 | 1.0 | -| test.c:597:19:597:20 | (unsigned int)... | 1.0 | -| test.c:597:19:597:31 | ... * ... | 1.1595206119E10 | -| test.c:597:24:597:31 | (...) | 1.1595206119E10 | -| test.c:597:25:597:25 | 2 | 1.0 | -| test.c:597:25:597:25 | (unsigned int)... | 1.0 | -| test.c:597:25:597:30 | ... * ... | 1.1595206119E10 | -| test.c:597:29:597:30 | ip | 1.1595206119E10 | -| test.c:598:19:598:20 | 14 | 1.0 | -| test.c:598:19:598:20 | (unsigned int)... | 1.0 | -| test.c:598:19:598:25 | ... * ... | 1.1595206119E10 | -| test.c:598:24:598:25 | ip | 1.1595206119E10 | -| test.c:599:11:599:11 | 2 | 1.0 | -| test.c:599:11:599:11 | (unsigned int)... | 1.0 | -| test.c:599:11:599:16 | ... * ... | 3.4785618357E10 | -| test.c:599:11:599:21 | ... * ... | 3.4785618357E10 | -| test.c:599:11:599:41 | ... + ... | 1.2100392444788552E21 | -| test.c:599:15:599:16 | ip | 3.4785618357E10 | -| test.c:599:20:599:21 | 14 | 1.0 | -| test.c:599:20:599:21 | (unsigned int)... | 1.0 | -| test.c:599:25:599:36 | (...) | 3.4785618357E10 | -| test.c:599:25:599:41 | ... * ... | 3.4785618357E10 | -| test.c:599:26:599:26 | 2 | 1.0 | -| test.c:599:26:599:26 | (unsigned int)... | 1.0 | -| test.c:599:26:599:31 | ... * ... | 3.4785618357E10 | -| test.c:599:26:599:35 | ... + ... | 3.4785618357E10 | -| test.c:599:30:599:31 | ip | 3.4785618357E10 | -| test.c:599:35:599:35 | 1 | 1.0 | -| test.c:599:35:599:35 | (unsigned int)... | 1.0 | -| test.c:599:40:599:41 | 17 | 1.0 | -| test.c:599:40:599:41 | (unsigned int)... | 1.0 | -| test.c:600:15:600:15 | 4 | 1.0 | -| test.c:600:15:600:15 | (unsigned int)... | 1.0 | -| test.c:600:15:600:32 | ... * ... | 3.4785618357E10 | -| test.c:600:15:601:32 | ... + ... | 1.2100392444788552E21 | -| test.c:600:15:602:32 | ... + ... | 4.209196335543408E31 | -| test.c:600:15:608:28 | ... + ... | 1.417386703353284E64 | -| test.c:600:19:600:32 | (...) | 3.4785618357E10 | -| test.c:600:20:600:21 | ip | 3.4785618357E10 | -| test.c:600:20:600:26 | ... * ... | 3.4785618357E10 | -| test.c:600:20:600:31 | ... + ... | 3.4785618357E10 | -| test.c:600:25:600:26 | 14 | 1.0 | -| test.c:600:25:600:26 | (unsigned int)... | 1.0 | -| test.c:600:30:600:31 | 32 | 1.0 | -| test.c:600:30:600:31 | (unsigned int)... | 1.0 | -| test.c:601:15:601:32 | (...) | 3.4785618357E10 | -| test.c:601:16:601:16 | 2 | 1.0 | -| test.c:601:16:601:16 | (unsigned int)... | 1.0 | -| test.c:601:16:601:21 | ... * ... | 3.4785618357E10 | -| test.c:601:16:601:26 | ... * ... | 3.4785618357E10 | -| test.c:601:16:601:31 | ... + ... | 3.4785618357E10 | -| test.c:601:20:601:21 | ip | 3.4785618357E10 | -| test.c:601:25:601:26 | 14 | 1.0 | -| test.c:601:25:601:26 | (unsigned int)... | 1.0 | -| test.c:601:30:601:31 | 32 | 1.0 | -| test.c:601:30:601:31 | (unsigned int)... | 1.0 | -| test.c:602:15:602:15 | 2 | 1.0 | -| test.c:602:15:602:15 | (unsigned int)... | 1.0 | -| test.c:602:15:602:32 | ... * ... | 3.4785618357E10 | -| test.c:602:19:602:32 | (...) | 3.4785618357E10 | -| test.c:602:20:602:21 | ip | 3.4785618357E10 | -| test.c:602:20:602:26 | ... * ... | 3.4785618357E10 | -| test.c:602:20:602:31 | ... + ... | 3.4785618357E10 | -| test.c:602:25:602:26 | 14 | 1.0 | -| test.c:602:25:602:26 | (unsigned int)... | 1.0 | -| test.c:602:30:602:31 | 64 | 1.0 | -| test.c:602:30:602:31 | (unsigned int)... | 1.0 | -| test.c:603:15:608:28 | (...) | 3.367357068579931E32 | -| test.c:603:16:603:27 | (...) | 3.4785618357E10 | -| test.c:603:16:603:32 | ... * ... | 3.4785618357E10 | -| test.c:603:16:604:65 | ... > ... | 1.0 | -| test.c:603:16:608:27 | ... ? ... : ... | 3.367357068579931E32 | -| test.c:603:17:603:17 | 2 | 1.0 | -| test.c:603:17:603:17 | (unsigned int)... | 1.0 | -| test.c:603:17:603:22 | ... * ... | 3.4785618357E10 | -| test.c:603:17:603:26 | ... + ... | 3.4785618357E10 | -| test.c:603:21:603:22 | ip | 3.4785618357E10 | -| test.c:603:26:603:26 | 1 | 1.0 | -| test.c:603:26:603:26 | (unsigned int)... | 1.0 | -| test.c:603:31:603:32 | 14 | 1.0 | -| test.c:603:31:603:32 | (unsigned int)... | 1.0 | -| test.c:604:15:604:65 | (...) | 1.2100392444788552E21 | -| test.c:604:16:604:17 | 14 | 1.0 | -| test.c:604:16:604:17 | (unsigned int)... | 1.0 | -| test.c:604:16:604:28 | ... * ... | 3.4785618357E10 | -| test.c:604:16:604:38 | ... > ... | 1.0 | -| test.c:604:16:604:64 | ... ? ... : ... | 1.2100392444788552E21 | -| test.c:604:21:604:28 | (...) | 3.4785618357E10 | -| test.c:604:22:604:22 | 2 | 1.0 | -| test.c:604:22:604:22 | (unsigned int)... | 1.0 | -| test.c:604:22:604:27 | ... * ... | 3.4785618357E10 | -| test.c:604:26:604:27 | ip | 3.4785618357E10 | -| test.c:604:32:604:33 | 17 | 1.0 | -| test.c:604:32:604:33 | (unsigned int)... | 1.0 | -| test.c:604:32:604:38 | ... * ... | 3.4785618357E10 | -| test.c:604:37:604:38 | ip | 3.4785618357E10 | -| test.c:604:42:604:43 | 17 | 1.0 | -| test.c:604:42:604:43 | (unsigned int)... | 1.0 | -| test.c:604:42:604:54 | ... * ... | 3.4785618357E10 | -| test.c:604:47:604:54 | (...) | 3.4785618357E10 | -| test.c:604:48:604:48 | 2 | 1.0 | -| test.c:604:48:604:48 | (unsigned int)... | 1.0 | -| test.c:604:48:604:53 | ... * ... | 3.4785618357E10 | -| test.c:604:52:604:53 | ip | 3.4785618357E10 | -| test.c:604:58:604:59 | 17 | 1.0 | -| test.c:604:58:604:59 | (unsigned int)... | 1.0 | -| test.c:604:58:604:64 | ... * ... | 3.4785618357E10 | -| test.c:604:63:604:64 | ip | 3.4785618357E10 | -| test.c:605:19:605:30 | (...) | 6.9571236715E10 | -| test.c:605:19:605:35 | ... * ... | 6.9571236715E10 | +| test.c:595:27:595:32 | ... * ... | 1.449400765E9 | +| test.c:595:31:595:32 | ip | 1.449400765E9 | +| test.c:596:21:596:22 | 14 | 1.0 | +| test.c:596:21:596:22 | (unsigned int)... | 1.0 | +| test.c:596:21:596:27 | ... * ... | 1.449400765E9 | +| test.c:596:26:596:27 | ip | 1.449400765E9 | +| test.c:597:15:597:16 | 14 | 1.0 | +| test.c:597:15:597:16 | (unsigned int)... | 1.0 | +| test.c:597:15:597:21 | ... * ... | 7.24700382E8 | +| test.c:597:15:597:37 | ... > ... | 1.0 | +| test.c:597:15:599:29 | ... ? ... : ... | 5.251906436709459E17 | +| test.c:597:20:597:21 | ip | 7.24700382E8 | +| test.c:597:25:597:32 | (...) | 7.24700382E8 | +| test.c:597:25:597:37 | ... * ... | 7.24700382E8 | +| test.c:597:26:597:27 | ip | 7.24700382E8 | +| test.c:597:26:597:31 | ... + ... | 7.24700382E8 | +| test.c:597:31:597:31 | 1 | 1.0 | +| test.c:597:31:597:31 | (unsigned int)... | 1.0 | +| test.c:597:36:597:37 | 17 | 1.0 | +| test.c:597:36:597:37 | (unsigned int)... | 1.0 | +| test.c:598:17:598:18 | 14 | 1.0 | +| test.c:598:17:598:18 | (unsigned int)... | 1.0 | +| test.c:598:17:598:23 | ... * ... | 7.24700382E8 | +| test.c:598:22:598:23 | ip | 7.24700382E8 | +| test.c:599:17:599:24 | (...) | 7.24700382E8 | +| test.c:599:17:599:29 | ... * ... | 7.24700382E8 | +| test.c:599:18:599:19 | ip | 7.24700382E8 | +| test.c:599:18:599:23 | ... + ... | 7.24700382E8 | +| test.c:599:23:599:23 | 1 | 1.0 | +| test.c:599:23:599:23 | (unsigned int)... | 1.0 | +| test.c:599:28:599:29 | 14 | 1.0 | +| test.c:599:28:599:29 | (unsigned int)... | 1.0 | +| test.c:600:11:600:11 | 2 | 1.0 | +| test.c:600:11:600:11 | (unsigned int)... | 1.0 | +| test.c:600:11:600:28 | ... * ... | 5.797603059E9 | +| test.c:600:11:620:46 | ... + ... | 9.943431528813442E94 | +| test.c:600:15:600:28 | (...) | 5.797603059E9 | +| test.c:600:16:600:17 | ip | 5.797603059E9 | +| test.c:600:16:600:22 | ... * ... | 5.797603059E9 | +| test.c:600:16:600:27 | ... + ... | 5.797603059E9 | +| test.c:600:21:600:22 | 14 | 1.0 | +| test.c:600:21:600:22 | (unsigned int)... | 1.0 | +| test.c:600:26:600:27 | 32 | 1.0 | +| test.c:600:26:600:27 | (unsigned int)... | 1.0 | +| test.c:601:11:620:46 | (...) | 1.715093535659983E85 | +| test.c:601:12:601:12 | 4 | 1.0 | +| test.c:601:12:601:12 | (unsigned int)... | 1.0 | +| test.c:601:12:601:29 | ... * ... | 5.797603059E9 | +| test.c:601:12:602:30 | ... + ... | 3.361220122972616E19 | +| test.c:601:12:603:30 | ... + ... | 1.9487020066918396E29 | +| test.c:601:12:609:26 | ... + ... | 3.0379516094938436E59 | +| test.c:601:12:610:41 | ... > ... | 1.0 | +| test.c:601:12:620:45 | ... ? ... : ... | 1.715093535659983E85 | +| test.c:601:16:601:29 | (...) | 5.797603059E9 | +| test.c:601:17:601:18 | ip | 5.797603059E9 | +| test.c:601:17:601:23 | ... * ... | 5.797603059E9 | +| test.c:601:17:601:28 | ... + ... | 5.797603059E9 | +| test.c:601:22:601:23 | 14 | 1.0 | +| test.c:601:22:601:23 | (unsigned int)... | 1.0 | +| test.c:601:27:601:28 | 32 | 1.0 | +| test.c:601:27:601:28 | (unsigned int)... | 1.0 | +| test.c:602:13:602:30 | (...) | 5.797603059E9 | +| test.c:602:14:602:14 | 2 | 1.0 | +| test.c:602:14:602:14 | (unsigned int)... | 1.0 | +| test.c:602:14:602:19 | ... * ... | 5.797603059E9 | +| test.c:602:14:602:24 | ... * ... | 5.797603059E9 | +| test.c:602:14:602:29 | ... + ... | 5.797603059E9 | +| test.c:602:18:602:19 | ip | 5.797603059E9 | +| test.c:602:23:602:24 | 14 | 1.0 | +| test.c:602:23:602:24 | (unsigned int)... | 1.0 | +| test.c:602:28:602:29 | 32 | 1.0 | +| test.c:602:28:602:29 | (unsigned int)... | 1.0 | +| test.c:603:13:603:13 | 2 | 1.0 | +| test.c:603:13:603:13 | (unsigned int)... | 1.0 | +| test.c:603:13:603:30 | ... * ... | 5.797603059E9 | +| test.c:603:17:603:30 | (...) | 5.797603059E9 | +| test.c:603:18:603:19 | ip | 5.797603059E9 | +| test.c:603:18:603:24 | ... * ... | 5.797603059E9 | +| test.c:603:18:603:29 | ... + ... | 5.797603059E9 | +| test.c:603:23:603:24 | 14 | 1.0 | +| test.c:603:23:603:24 | (unsigned int)... | 1.0 | +| test.c:603:28:603:29 | 64 | 1.0 | +| test.c:603:28:603:29 | (unsigned int)... | 1.0 | +| test.c:604:13:609:26 | (...) | 1.558961605756818E30 | +| test.c:604:14:604:25 | (...) | 5.797603059E9 | +| test.c:604:14:604:30 | ... * ... | 5.797603059E9 | +| test.c:604:14:605:63 | ... > ... | 1.0 | +| test.c:604:14:609:25 | ... ? ... : ... | 1.558961605756818E30 | +| test.c:604:15:604:15 | 2 | 1.0 | +| test.c:604:15:604:15 | (unsigned int)... | 1.0 | +| test.c:604:15:604:20 | ... * ... | 5.797603059E9 | +| test.c:604:15:604:24 | ... + ... | 5.797603059E9 | +| test.c:604:19:604:20 | ip | 5.797603059E9 | +| test.c:604:24:604:24 | 1 | 1.0 | +| test.c:604:24:604:24 | (unsigned int)... | 1.0 | +| test.c:604:29:604:30 | 14 | 1.0 | +| test.c:604:29:604:30 | (unsigned int)... | 1.0 | +| test.c:605:13:605:63 | (...) | 3.361220122972616E19 | +| test.c:605:14:605:15 | 14 | 1.0 | +| test.c:605:14:605:15 | (unsigned int)... | 1.0 | +| test.c:605:14:605:26 | ... * ... | 5.797603059E9 | +| test.c:605:14:605:36 | ... > ... | 1.0 | +| test.c:605:14:605:62 | ... ? ... : ... | 3.361220122972616E19 | +| test.c:605:19:605:26 | (...) | 5.797603059E9 | | test.c:605:20:605:20 | 2 | 1.0 | | test.c:605:20:605:20 | (unsigned int)... | 1.0 | -| test.c:605:20:605:25 | ... * ... | 6.9571236715E10 | -| test.c:605:20:605:29 | ... + ... | 6.9571236715E10 | -| test.c:605:24:605:25 | ip | 6.9571236715E10 | -| test.c:605:29:605:29 | 1 | 1.0 | -| test.c:605:29:605:29 | (unsigned int)... | 1.0 | -| test.c:605:34:605:35 | 14 | 1.0 | -| test.c:605:34:605:35 | (unsigned int)... | 1.0 | -| test.c:606:19:606:20 | 14 | 1.0 | -| test.c:606:19:606:20 | (unsigned int)... | 1.0 | -| test.c:606:19:606:31 | ... * ... | 6.9571236715E10 | -| test.c:606:19:606:41 | ... > ... | 1.0 | -| test.c:606:19:608:27 | ... ? ... : ... | 4.840156978054564E21 | -| test.c:606:24:606:31 | (...) | 6.9571236715E10 | -| test.c:606:25:606:25 | 2 | 1.0 | -| test.c:606:25:606:25 | (unsigned int)... | 1.0 | -| test.c:606:25:606:30 | ... * ... | 6.9571236715E10 | -| test.c:606:29:606:30 | ip | 6.9571236715E10 | -| test.c:606:35:606:36 | 17 | 1.0 | -| test.c:606:35:606:36 | (unsigned int)... | 1.0 | -| test.c:606:35:606:41 | ... * ... | 6.9571236715E10 | -| test.c:606:40:606:41 | ip | 6.9571236715E10 | -| test.c:607:21:607:22 | 14 | 1.0 | -| test.c:607:21:607:22 | (unsigned int)... | 1.0 | -| test.c:607:21:607:33 | ... * ... | 6.9571236715E10 | -| test.c:607:26:607:33 | (...) | 6.9571236715E10 | -| test.c:607:27:607:27 | 2 | 1.0 | -| test.c:607:27:607:27 | (unsigned int)... | 1.0 | -| test.c:607:27:607:32 | ... * ... | 6.9571236715E10 | -| test.c:607:31:607:32 | ip | 6.9571236715E10 | -| test.c:608:21:608:22 | 14 | 1.0 | -| test.c:608:21:608:22 | (unsigned int)... | 1.0 | -| test.c:608:21:608:27 | ... * ... | 6.9571236715E10 | -| test.c:608:26:608:27 | ip | 6.9571236715E10 | -| test.c:609:15:609:15 | 2 | 1.0 | -| test.c:609:15:609:15 | (unsigned int)... | 1.0 | -| test.c:609:15:609:20 | ... * ... | 3.4785618357E10 | -| test.c:609:15:609:25 | ... * ... | 3.4785618357E10 | -| test.c:609:15:609:45 | ... + ... | 1.2100392444788552E21 | -| test.c:609:19:609:20 | ip | 3.4785618357E10 | -| test.c:609:24:609:25 | 14 | 1.0 | -| test.c:609:24:609:25 | (unsigned int)... | 1.0 | -| test.c:609:29:609:40 | (...) | 3.4785618357E10 | -| test.c:609:29:609:45 | ... * ... | 3.4785618357E10 | -| test.c:609:30:609:30 | 2 | 1.0 | -| test.c:609:30:609:30 | (unsigned int)... | 1.0 | -| test.c:609:30:609:35 | ... * ... | 3.4785618357E10 | -| test.c:609:30:609:39 | ... + ... | 3.4785618357E10 | -| test.c:609:34:609:35 | ip | 3.4785618357E10 | -| test.c:609:39:609:39 | 1 | 1.0 | -| test.c:609:39:609:39 | (unsigned int)... | 1.0 | -| test.c:609:44:609:45 | 17 | 1.0 | -| test.c:609:44:609:45 | (unsigned int)... | 1.0 | -| test.c:610:11:610:11 | 4 | 1.0 | +| test.c:605:20:605:25 | ... * ... | 5.797603059E9 | +| test.c:605:24:605:25 | ip | 5.797603059E9 | +| test.c:605:30:605:31 | 17 | 1.0 | +| test.c:605:30:605:31 | (unsigned int)... | 1.0 | +| test.c:605:30:605:36 | ... * ... | 5.797603059E9 | +| test.c:605:35:605:36 | ip | 5.797603059E9 | +| test.c:605:40:605:41 | 17 | 1.0 | +| test.c:605:40:605:41 | (unsigned int)... | 1.0 | +| test.c:605:40:605:52 | ... * ... | 5.797603059E9 | +| test.c:605:45:605:52 | (...) | 5.797603059E9 | +| test.c:605:46:605:46 | 2 | 1.0 | +| test.c:605:46:605:46 | (unsigned int)... | 1.0 | +| test.c:605:46:605:51 | ... * ... | 5.797603059E9 | +| test.c:605:50:605:51 | ip | 5.797603059E9 | +| test.c:605:56:605:57 | 17 | 1.0 | +| test.c:605:56:605:57 | (unsigned int)... | 1.0 | +| test.c:605:56:605:62 | ... * ... | 5.797603059E9 | +| test.c:605:61:605:62 | ip | 5.797603059E9 | +| test.c:606:17:606:28 | (...) | 1.1595206119E10 | +| test.c:606:17:606:33 | ... * ... | 1.1595206119E10 | +| test.c:606:18:606:18 | 2 | 1.0 | +| test.c:606:18:606:18 | (unsigned int)... | 1.0 | +| test.c:606:18:606:23 | ... * ... | 1.1595206119E10 | +| test.c:606:18:606:27 | ... + ... | 1.1595206119E10 | +| test.c:606:22:606:23 | ip | 1.1595206119E10 | +| test.c:606:27:606:27 | 1 | 1.0 | +| test.c:606:27:606:27 | (unsigned int)... | 1.0 | +| test.c:606:32:606:33 | 14 | 1.0 | +| test.c:606:32:606:33 | (unsigned int)... | 1.0 | +| test.c:607:17:607:18 | 14 | 1.0 | +| test.c:607:17:607:18 | (unsigned int)... | 1.0 | +| test.c:607:17:607:29 | ... * ... | 1.1595206119E10 | +| test.c:607:17:607:39 | ... > ... | 1.0 | +| test.c:607:17:609:25 | ... ? ... : ... | 1.3444880494209504E20 | +| test.c:607:22:607:29 | (...) | 1.1595206119E10 | +| test.c:607:23:607:23 | 2 | 1.0 | +| test.c:607:23:607:23 | (unsigned int)... | 1.0 | +| test.c:607:23:607:28 | ... * ... | 1.1595206119E10 | +| test.c:607:27:607:28 | ip | 1.1595206119E10 | +| test.c:607:33:607:34 | 17 | 1.0 | +| test.c:607:33:607:34 | (unsigned int)... | 1.0 | +| test.c:607:33:607:39 | ... * ... | 1.1595206119E10 | +| test.c:607:38:607:39 | ip | 1.1595206119E10 | +| test.c:608:19:608:20 | 14 | 1.0 | +| test.c:608:19:608:20 | (unsigned int)... | 1.0 | +| test.c:608:19:608:31 | ... * ... | 1.1595206119E10 | +| test.c:608:24:608:31 | (...) | 1.1595206119E10 | +| test.c:608:25:608:25 | 2 | 1.0 | +| test.c:608:25:608:25 | (unsigned int)... | 1.0 | +| test.c:608:25:608:30 | ... * ... | 1.1595206119E10 | +| test.c:608:29:608:30 | ip | 1.1595206119E10 | +| test.c:609:19:609:20 | 14 | 1.0 | +| test.c:609:19:609:20 | (unsigned int)... | 1.0 | +| test.c:609:19:609:25 | ... * ... | 1.1595206119E10 | +| test.c:609:24:609:25 | ip | 1.1595206119E10 | +| test.c:610:11:610:11 | 2 | 1.0 | | test.c:610:11:610:11 | (unsigned int)... | 1.0 | -| test.c:610:11:610:28 | ... * ... | 5.797603059E9 | -| test.c:610:11:611:32 | ... + ... | 3.361220122972616E19 | -| test.c:610:11:612:32 | ... + ... | 1.9487020066918396E29 | -| test.c:610:11:618:28 | ... + ... | 3.0379516094938436E59 | -| test.c:610:11:619:63 | ... > ... | 1.0 | -| test.c:610:11:631:27 | ... ? ... : ... | 4.390639451194891E87 | -| test.c:610:15:610:28 | (...) | 5.797603059E9 | -| test.c:610:16:610:17 | ip | 5.797603059E9 | -| test.c:610:16:610:22 | ... * ... | 5.797603059E9 | -| test.c:610:16:610:27 | ... + ... | 5.797603059E9 | -| test.c:610:21:610:22 | 14 | 1.0 | -| test.c:610:21:610:22 | (unsigned int)... | 1.0 | -| test.c:610:26:610:27 | 32 | 1.0 | -| test.c:610:26:610:27 | (unsigned int)... | 1.0 | -| test.c:611:15:611:32 | (...) | 5.797603059E9 | -| test.c:611:16:611:16 | 2 | 1.0 | -| test.c:611:16:611:16 | (unsigned int)... | 1.0 | -| test.c:611:16:611:21 | ... * ... | 5.797603059E9 | -| test.c:611:16:611:26 | ... * ... | 5.797603059E9 | -| test.c:611:16:611:31 | ... + ... | 5.797603059E9 | -| test.c:611:20:611:21 | ip | 5.797603059E9 | +| test.c:610:11:610:16 | ... * ... | 3.4785618357E10 | +| test.c:610:11:610:21 | ... * ... | 3.4785618357E10 | +| test.c:610:11:610:41 | ... + ... | 1.2100392444788552E21 | +| test.c:610:15:610:16 | ip | 3.4785618357E10 | +| test.c:610:20:610:21 | 14 | 1.0 | +| test.c:610:20:610:21 | (unsigned int)... | 1.0 | +| test.c:610:25:610:36 | (...) | 3.4785618357E10 | +| test.c:610:25:610:41 | ... * ... | 3.4785618357E10 | +| test.c:610:26:610:26 | 2 | 1.0 | +| test.c:610:26:610:26 | (unsigned int)... | 1.0 | +| test.c:610:26:610:31 | ... * ... | 3.4785618357E10 | +| test.c:610:26:610:35 | ... + ... | 3.4785618357E10 | +| test.c:610:30:610:31 | ip | 3.4785618357E10 | +| test.c:610:35:610:35 | 1 | 1.0 | +| test.c:610:35:610:35 | (unsigned int)... | 1.0 | +| test.c:610:40:610:41 | 17 | 1.0 | +| test.c:610:40:610:41 | (unsigned int)... | 1.0 | +| test.c:611:15:611:15 | 4 | 1.0 | +| test.c:611:15:611:15 | (unsigned int)... | 1.0 | +| test.c:611:15:611:32 | ... * ... | 3.4785618357E10 | +| test.c:611:15:612:32 | ... + ... | 1.2100392444788552E21 | +| test.c:611:15:613:32 | ... + ... | 4.209196335543408E31 | +| test.c:611:15:619:28 | ... + ... | 1.417386703353284E64 | +| test.c:611:19:611:32 | (...) | 3.4785618357E10 | +| test.c:611:20:611:21 | ip | 3.4785618357E10 | +| test.c:611:20:611:26 | ... * ... | 3.4785618357E10 | +| test.c:611:20:611:31 | ... + ... | 3.4785618357E10 | | test.c:611:25:611:26 | 14 | 1.0 | | test.c:611:25:611:26 | (unsigned int)... | 1.0 | | test.c:611:30:611:31 | 32 | 1.0 | | test.c:611:30:611:31 | (unsigned int)... | 1.0 | -| test.c:612:15:612:15 | 2 | 1.0 | -| test.c:612:15:612:15 | (unsigned int)... | 1.0 | -| test.c:612:15:612:32 | ... * ... | 5.797603059E9 | -| test.c:612:19:612:32 | (...) | 5.797603059E9 | -| test.c:612:20:612:21 | ip | 5.797603059E9 | -| test.c:612:20:612:26 | ... * ... | 5.797603059E9 | -| test.c:612:20:612:31 | ... + ... | 5.797603059E9 | +| test.c:612:15:612:32 | (...) | 3.4785618357E10 | +| test.c:612:16:612:16 | 2 | 1.0 | +| test.c:612:16:612:16 | (unsigned int)... | 1.0 | +| test.c:612:16:612:21 | ... * ... | 3.4785618357E10 | +| test.c:612:16:612:26 | ... * ... | 3.4785618357E10 | +| test.c:612:16:612:31 | ... + ... | 3.4785618357E10 | +| test.c:612:20:612:21 | ip | 3.4785618357E10 | | test.c:612:25:612:26 | 14 | 1.0 | | test.c:612:25:612:26 | (unsigned int)... | 1.0 | -| test.c:612:30:612:31 | 64 | 1.0 | +| test.c:612:30:612:31 | 32 | 1.0 | | test.c:612:30:612:31 | (unsigned int)... | 1.0 | -| test.c:613:15:618:28 | (...) | 1.558961605756818E30 | -| test.c:613:16:613:27 | (...) | 5.797603059E9 | -| test.c:613:16:613:32 | ... * ... | 5.797603059E9 | -| test.c:613:16:614:65 | ... > ... | 1.0 | -| test.c:613:16:618:27 | ... ? ... : ... | 1.558961605756818E30 | -| test.c:613:17:613:17 | 2 | 1.0 | -| test.c:613:17:613:17 | (unsigned int)... | 1.0 | -| test.c:613:17:613:22 | ... * ... | 5.797603059E9 | -| test.c:613:17:613:26 | ... + ... | 5.797603059E9 | -| test.c:613:21:613:22 | ip | 5.797603059E9 | -| test.c:613:26:613:26 | 1 | 1.0 | -| test.c:613:26:613:26 | (unsigned int)... | 1.0 | -| test.c:613:31:613:32 | 14 | 1.0 | -| test.c:613:31:613:32 | (unsigned int)... | 1.0 | -| test.c:614:15:614:65 | (...) | 3.361220122972616E19 | -| test.c:614:16:614:17 | 14 | 1.0 | -| test.c:614:16:614:17 | (unsigned int)... | 1.0 | -| test.c:614:16:614:28 | ... * ... | 5.797603059E9 | -| test.c:614:16:614:38 | ... > ... | 1.0 | -| test.c:614:16:614:64 | ... ? ... : ... | 3.361220122972616E19 | -| test.c:614:21:614:28 | (...) | 5.797603059E9 | -| test.c:614:22:614:22 | 2 | 1.0 | -| test.c:614:22:614:22 | (unsigned int)... | 1.0 | -| test.c:614:22:614:27 | ... * ... | 5.797603059E9 | -| test.c:614:26:614:27 | ip | 5.797603059E9 | -| test.c:614:32:614:33 | 17 | 1.0 | -| test.c:614:32:614:33 | (unsigned int)... | 1.0 | -| test.c:614:32:614:38 | ... * ... | 5.797603059E9 | -| test.c:614:37:614:38 | ip | 5.797603059E9 | -| test.c:614:42:614:43 | 17 | 1.0 | -| test.c:614:42:614:43 | (unsigned int)... | 1.0 | -| test.c:614:42:614:54 | ... * ... | 5.797603059E9 | -| test.c:614:47:614:54 | (...) | 5.797603059E9 | -| test.c:614:48:614:48 | 2 | 1.0 | -| test.c:614:48:614:48 | (unsigned int)... | 1.0 | -| test.c:614:48:614:53 | ... * ... | 5.797603059E9 | -| test.c:614:52:614:53 | ip | 5.797603059E9 | -| test.c:614:58:614:59 | 17 | 1.0 | -| test.c:614:58:614:59 | (unsigned int)... | 1.0 | -| test.c:614:58:614:64 | ... * ... | 5.797603059E9 | -| test.c:614:63:614:64 | ip | 5.797603059E9 | -| test.c:615:19:615:30 | (...) | 1.1595206119E10 | -| test.c:615:19:615:35 | ... * ... | 1.1595206119E10 | -| test.c:615:20:615:20 | 2 | 1.0 | -| test.c:615:20:615:20 | (unsigned int)... | 1.0 | -| test.c:615:20:615:25 | ... * ... | 1.1595206119E10 | -| test.c:615:20:615:29 | ... + ... | 1.1595206119E10 | -| test.c:615:24:615:25 | ip | 1.1595206119E10 | -| test.c:615:29:615:29 | 1 | 1.0 | -| test.c:615:29:615:29 | (unsigned int)... | 1.0 | -| test.c:615:34:615:35 | 14 | 1.0 | -| test.c:615:34:615:35 | (unsigned int)... | 1.0 | -| test.c:616:19:616:20 | 14 | 1.0 | -| test.c:616:19:616:20 | (unsigned int)... | 1.0 | -| test.c:616:19:616:31 | ... * ... | 1.1595206119E10 | -| test.c:616:19:616:41 | ... > ... | 1.0 | -| test.c:616:19:618:27 | ... ? ... : ... | 1.3444880494209504E20 | -| test.c:616:24:616:31 | (...) | 1.1595206119E10 | -| test.c:616:25:616:25 | 2 | 1.0 | -| test.c:616:25:616:25 | (unsigned int)... | 1.0 | -| test.c:616:25:616:30 | ... * ... | 1.1595206119E10 | -| test.c:616:29:616:30 | ip | 1.1595206119E10 | -| test.c:616:35:616:36 | 17 | 1.0 | -| test.c:616:35:616:36 | (unsigned int)... | 1.0 | -| test.c:616:35:616:41 | ... * ... | 1.1595206119E10 | -| test.c:616:40:616:41 | ip | 1.1595206119E10 | -| test.c:617:21:617:22 | 14 | 1.0 | -| test.c:617:21:617:22 | (unsigned int)... | 1.0 | -| test.c:617:21:617:33 | ... * ... | 1.1595206119E10 | -| test.c:617:26:617:33 | (...) | 1.1595206119E10 | -| test.c:617:27:617:27 | 2 | 1.0 | -| test.c:617:27:617:27 | (unsigned int)... | 1.0 | -| test.c:617:27:617:32 | ... * ... | 1.1595206119E10 | -| test.c:617:31:617:32 | ip | 1.1595206119E10 | +| test.c:613:15:613:15 | 2 | 1.0 | +| test.c:613:15:613:15 | (unsigned int)... | 1.0 | +| test.c:613:15:613:32 | ... * ... | 3.4785618357E10 | +| test.c:613:19:613:32 | (...) | 3.4785618357E10 | +| test.c:613:20:613:21 | ip | 3.4785618357E10 | +| test.c:613:20:613:26 | ... * ... | 3.4785618357E10 | +| test.c:613:20:613:31 | ... + ... | 3.4785618357E10 | +| test.c:613:25:613:26 | 14 | 1.0 | +| test.c:613:25:613:26 | (unsigned int)... | 1.0 | +| test.c:613:30:613:31 | 64 | 1.0 | +| test.c:613:30:613:31 | (unsigned int)... | 1.0 | +| test.c:614:15:619:28 | (...) | 3.367357068579931E32 | +| test.c:614:16:614:27 | (...) | 3.4785618357E10 | +| test.c:614:16:614:32 | ... * ... | 3.4785618357E10 | +| test.c:614:16:615:65 | ... > ... | 1.0 | +| test.c:614:16:619:27 | ... ? ... : ... | 3.367357068579931E32 | +| test.c:614:17:614:17 | 2 | 1.0 | +| test.c:614:17:614:17 | (unsigned int)... | 1.0 | +| test.c:614:17:614:22 | ... * ... | 3.4785618357E10 | +| test.c:614:17:614:26 | ... + ... | 3.4785618357E10 | +| test.c:614:21:614:22 | ip | 3.4785618357E10 | +| test.c:614:26:614:26 | 1 | 1.0 | +| test.c:614:26:614:26 | (unsigned int)... | 1.0 | +| test.c:614:31:614:32 | 14 | 1.0 | +| test.c:614:31:614:32 | (unsigned int)... | 1.0 | +| test.c:615:15:615:65 | (...) | 1.2100392444788552E21 | +| test.c:615:16:615:17 | 14 | 1.0 | +| test.c:615:16:615:17 | (unsigned int)... | 1.0 | +| test.c:615:16:615:28 | ... * ... | 3.4785618357E10 | +| test.c:615:16:615:38 | ... > ... | 1.0 | +| test.c:615:16:615:64 | ... ? ... : ... | 1.2100392444788552E21 | +| test.c:615:21:615:28 | (...) | 3.4785618357E10 | +| test.c:615:22:615:22 | 2 | 1.0 | +| test.c:615:22:615:22 | (unsigned int)... | 1.0 | +| test.c:615:22:615:27 | ... * ... | 3.4785618357E10 | +| test.c:615:26:615:27 | ip | 3.4785618357E10 | +| test.c:615:32:615:33 | 17 | 1.0 | +| test.c:615:32:615:33 | (unsigned int)... | 1.0 | +| test.c:615:32:615:38 | ... * ... | 3.4785618357E10 | +| test.c:615:37:615:38 | ip | 3.4785618357E10 | +| test.c:615:42:615:43 | 17 | 1.0 | +| test.c:615:42:615:43 | (unsigned int)... | 1.0 | +| test.c:615:42:615:54 | ... * ... | 3.4785618357E10 | +| test.c:615:47:615:54 | (...) | 3.4785618357E10 | +| test.c:615:48:615:48 | 2 | 1.0 | +| test.c:615:48:615:48 | (unsigned int)... | 1.0 | +| test.c:615:48:615:53 | ... * ... | 3.4785618357E10 | +| test.c:615:52:615:53 | ip | 3.4785618357E10 | +| test.c:615:58:615:59 | 17 | 1.0 | +| test.c:615:58:615:59 | (unsigned int)... | 1.0 | +| test.c:615:58:615:64 | ... * ... | 3.4785618357E10 | +| test.c:615:63:615:64 | ip | 3.4785618357E10 | +| test.c:616:19:616:30 | (...) | 6.9571236715E10 | +| test.c:616:19:616:35 | ... * ... | 6.9571236715E10 | +| test.c:616:20:616:20 | 2 | 1.0 | +| test.c:616:20:616:20 | (unsigned int)... | 1.0 | +| test.c:616:20:616:25 | ... * ... | 6.9571236715E10 | +| test.c:616:20:616:29 | ... + ... | 6.9571236715E10 | +| test.c:616:24:616:25 | ip | 6.9571236715E10 | +| test.c:616:29:616:29 | 1 | 1.0 | +| test.c:616:29:616:29 | (unsigned int)... | 1.0 | +| test.c:616:34:616:35 | 14 | 1.0 | +| test.c:616:34:616:35 | (unsigned int)... | 1.0 | +| test.c:617:19:617:20 | 14 | 1.0 | +| test.c:617:19:617:20 | (unsigned int)... | 1.0 | +| test.c:617:19:617:31 | ... * ... | 6.9571236715E10 | +| test.c:617:19:617:41 | ... > ... | 1.0 | +| test.c:617:19:619:27 | ... ? ... : ... | 4.840156978054564E21 | +| test.c:617:24:617:31 | (...) | 6.9571236715E10 | +| test.c:617:25:617:25 | 2 | 1.0 | +| test.c:617:25:617:25 | (unsigned int)... | 1.0 | +| test.c:617:25:617:30 | ... * ... | 6.9571236715E10 | +| test.c:617:29:617:30 | ip | 6.9571236715E10 | +| test.c:617:35:617:36 | 17 | 1.0 | +| test.c:617:35:617:36 | (unsigned int)... | 1.0 | +| test.c:617:35:617:41 | ... * ... | 6.9571236715E10 | +| test.c:617:40:617:41 | ip | 6.9571236715E10 | | test.c:618:21:618:22 | 14 | 1.0 | | test.c:618:21:618:22 | (unsigned int)... | 1.0 | -| test.c:618:21:618:27 | ... * ... | 1.1595206119E10 | -| test.c:618:26:618:27 | ip | 1.1595206119E10 | -| test.c:619:13:619:63 | (...) | 1.2100392444788552E21 | -| test.c:619:14:619:15 | 14 | 1.0 | -| test.c:619:14:619:15 | (unsigned int)... | 1.0 | -| test.c:619:14:619:20 | ... * ... | 3.4785618357E10 | -| test.c:619:14:619:36 | ... > ... | 1.0 | -| test.c:619:14:619:62 | ... ? ... : ... | 1.2100392444788552E21 | -| test.c:619:19:619:20 | ip | 3.4785618357E10 | -| test.c:619:24:619:31 | (...) | 3.4785618357E10 | -| test.c:619:24:619:36 | ... * ... | 3.4785618357E10 | -| test.c:619:25:619:26 | ip | 3.4785618357E10 | -| test.c:619:25:619:30 | ... + ... | 3.4785618357E10 | -| test.c:619:30:619:30 | 1 | 1.0 | -| test.c:619:30:619:30 | (unsigned int)... | 1.0 | -| test.c:619:35:619:36 | 17 | 1.0 | -| test.c:619:35:619:36 | (unsigned int)... | 1.0 | -| test.c:619:40:619:41 | 17 | 1.0 | -| test.c:619:40:619:41 | (unsigned int)... | 1.0 | -| test.c:619:40:619:46 | ... * ... | 3.4785618357E10 | -| test.c:619:45:619:46 | ip | 3.4785618357E10 | -| test.c:619:50:619:57 | (...) | 3.4785618357E10 | -| test.c:619:50:619:62 | ... * ... | 3.4785618357E10 | -| test.c:619:51:619:52 | ip | 3.4785618357E10 | -| test.c:619:51:619:56 | ... + ... | 3.4785618357E10 | -| test.c:619:56:619:56 | 1 | 1.0 | -| test.c:619:56:619:56 | (unsigned int)... | 1.0 | -| test.c:619:61:619:62 | 17 | 1.0 | -| test.c:619:61:619:62 | (unsigned int)... | 1.0 | -| test.c:620:13:620:13 | 4 | 1.0 | -| test.c:620:13:620:13 | (unsigned int)... | 1.0 | -| test.c:620:13:620:30 | ... * ... | 6.9571236714E10 | -| test.c:620:13:621:30 | ... + ... | 4.840156977915421E21 | -| test.c:620:13:622:30 | ... + ... | 3.3673570684347266E32 | -| test.c:620:13:628:26 | ... + ... | 9.071274901265435E65 | -| test.c:620:17:620:30 | (...) | 6.9571236714E10 | -| test.c:620:18:620:19 | ip | 6.9571236714E10 | -| test.c:620:18:620:24 | ... * ... | 6.9571236714E10 | -| test.c:620:18:620:29 | ... + ... | 6.9571236714E10 | -| test.c:620:23:620:24 | 14 | 1.0 | -| test.c:620:23:620:24 | (unsigned int)... | 1.0 | -| test.c:620:28:620:29 | 32 | 1.0 | -| test.c:620:28:620:29 | (unsigned int)... | 1.0 | -| test.c:621:13:621:30 | (...) | 6.9571236714E10 | -| test.c:621:14:621:14 | 2 | 1.0 | -| test.c:621:14:621:14 | (unsigned int)... | 1.0 | -| test.c:621:14:621:19 | ... * ... | 6.9571236714E10 | -| test.c:621:14:621:24 | ... * ... | 6.9571236714E10 | -| test.c:621:14:621:29 | ... + ... | 6.9571236714E10 | -| test.c:621:18:621:19 | ip | 6.9571236714E10 | -| test.c:621:23:621:24 | 14 | 1.0 | -| test.c:621:23:621:24 | (unsigned int)... | 1.0 | -| test.c:621:28:621:29 | 32 | 1.0 | -| test.c:621:28:621:29 | (unsigned int)... | 1.0 | -| test.c:622:13:622:13 | 2 | 1.0 | -| test.c:622:13:622:13 | (unsigned int)... | 1.0 | -| test.c:622:13:622:30 | ... * ... | 6.9571236714E10 | -| test.c:622:17:622:30 | (...) | 6.9571236714E10 | -| test.c:622:18:622:19 | ip | 6.9571236714E10 | -| test.c:622:18:622:24 | ... * ... | 6.9571236714E10 | -| test.c:622:18:622:29 | ... + ... | 6.9571236714E10 | -| test.c:622:23:622:24 | 14 | 1.0 | -| test.c:622:23:622:24 | (unsigned int)... | 1.0 | -| test.c:622:28:622:29 | 64 | 1.0 | -| test.c:622:28:622:29 | (unsigned int)... | 1.0 | -| test.c:623:13:628:26 | (...) | 2.693885654805863E33 | -| test.c:623:14:623:25 | (...) | 6.9571236714E10 | -| test.c:623:14:623:30 | ... * ... | 6.9571236714E10 | -| test.c:623:14:624:63 | ... > ... | 1.0 | -| test.c:623:14:628:25 | ... ? ... : ... | 2.693885654805863E33 | +| test.c:618:21:618:33 | ... * ... | 6.9571236715E10 | +| test.c:618:26:618:33 | (...) | 6.9571236715E10 | +| test.c:618:27:618:27 | 2 | 1.0 | +| test.c:618:27:618:27 | (unsigned int)... | 1.0 | +| test.c:618:27:618:32 | ... * ... | 6.9571236715E10 | +| test.c:618:31:618:32 | ip | 6.9571236715E10 | +| test.c:619:21:619:22 | 14 | 1.0 | +| test.c:619:21:619:22 | (unsigned int)... | 1.0 | +| test.c:619:21:619:27 | ... * ... | 6.9571236715E10 | +| test.c:619:26:619:27 | ip | 6.9571236715E10 | +| test.c:620:15:620:15 | 2 | 1.0 | +| test.c:620:15:620:15 | (unsigned int)... | 1.0 | +| test.c:620:15:620:20 | ... * ... | 3.4785618357E10 | +| test.c:620:15:620:25 | ... * ... | 3.4785618357E10 | +| test.c:620:15:620:45 | ... + ... | 1.2100392444788552E21 | +| test.c:620:19:620:20 | ip | 3.4785618357E10 | +| test.c:620:24:620:25 | 14 | 1.0 | +| test.c:620:24:620:25 | (unsigned int)... | 1.0 | +| test.c:620:29:620:40 | (...) | 3.4785618357E10 | +| test.c:620:29:620:45 | ... * ... | 3.4785618357E10 | +| test.c:620:30:620:30 | 2 | 1.0 | +| test.c:620:30:620:30 | (unsigned int)... | 1.0 | +| test.c:620:30:620:35 | ... * ... | 3.4785618357E10 | +| test.c:620:30:620:39 | ... + ... | 3.4785618357E10 | +| test.c:620:34:620:35 | ip | 3.4785618357E10 | +| test.c:620:39:620:39 | 1 | 1.0 | +| test.c:620:39:620:39 | (unsigned int)... | 1.0 | +| test.c:620:44:620:45 | 17 | 1.0 | +| test.c:620:44:620:45 | (unsigned int)... | 1.0 | +| test.c:621:11:621:11 | 4 | 1.0 | +| test.c:621:11:621:11 | (unsigned int)... | 1.0 | +| test.c:621:11:621:28 | ... * ... | 5.797603059E9 | +| test.c:621:11:622:32 | ... + ... | 3.361220122972616E19 | +| test.c:621:11:623:32 | ... + ... | 1.9487020066918396E29 | +| test.c:621:11:629:28 | ... + ... | 3.0379516094938436E59 | +| test.c:621:11:630:63 | ... > ... | 1.0 | +| test.c:621:11:642:27 | ... ? ... : ... | 4.390639451194891E87 | +| test.c:621:15:621:28 | (...) | 5.797603059E9 | +| test.c:621:16:621:17 | ip | 5.797603059E9 | +| test.c:621:16:621:22 | ... * ... | 5.797603059E9 | +| test.c:621:16:621:27 | ... + ... | 5.797603059E9 | +| test.c:621:21:621:22 | 14 | 1.0 | +| test.c:621:21:621:22 | (unsigned int)... | 1.0 | +| test.c:621:26:621:27 | 32 | 1.0 | +| test.c:621:26:621:27 | (unsigned int)... | 1.0 | +| test.c:622:15:622:32 | (...) | 5.797603059E9 | +| test.c:622:16:622:16 | 2 | 1.0 | +| test.c:622:16:622:16 | (unsigned int)... | 1.0 | +| test.c:622:16:622:21 | ... * ... | 5.797603059E9 | +| test.c:622:16:622:26 | ... * ... | 5.797603059E9 | +| test.c:622:16:622:31 | ... + ... | 5.797603059E9 | +| test.c:622:20:622:21 | ip | 5.797603059E9 | +| test.c:622:25:622:26 | 14 | 1.0 | +| test.c:622:25:622:26 | (unsigned int)... | 1.0 | +| test.c:622:30:622:31 | 32 | 1.0 | +| test.c:622:30:622:31 | (unsigned int)... | 1.0 | | test.c:623:15:623:15 | 2 | 1.0 | | test.c:623:15:623:15 | (unsigned int)... | 1.0 | -| test.c:623:15:623:20 | ... * ... | 6.9571236714E10 | -| test.c:623:15:623:24 | ... + ... | 6.9571236714E10 | -| test.c:623:19:623:20 | ip | 6.9571236714E10 | -| test.c:623:24:623:24 | 1 | 1.0 | -| test.c:623:24:623:24 | (unsigned int)... | 1.0 | -| test.c:623:29:623:30 | 14 | 1.0 | -| test.c:623:29:623:30 | (unsigned int)... | 1.0 | -| test.c:624:13:624:63 | (...) | 4.840156977915421E21 | -| test.c:624:14:624:15 | 14 | 1.0 | -| test.c:624:14:624:15 | (unsigned int)... | 1.0 | -| test.c:624:14:624:26 | ... * ... | 6.9571236714E10 | -| test.c:624:14:624:36 | ... > ... | 1.0 | -| test.c:624:14:624:62 | ... ? ... : ... | 4.840156977915421E21 | -| test.c:624:19:624:26 | (...) | 6.9571236714E10 | -| test.c:624:20:624:20 | 2 | 1.0 | -| test.c:624:20:624:20 | (unsigned int)... | 1.0 | -| test.c:624:20:624:25 | ... * ... | 6.9571236714E10 | -| test.c:624:24:624:25 | ip | 6.9571236714E10 | -| test.c:624:30:624:31 | 17 | 1.0 | -| test.c:624:30:624:31 | (unsigned int)... | 1.0 | -| test.c:624:30:624:36 | ... * ... | 6.9571236714E10 | -| test.c:624:35:624:36 | ip | 6.9571236714E10 | -| test.c:624:40:624:41 | 17 | 1.0 | -| test.c:624:40:624:41 | (unsigned int)... | 1.0 | -| test.c:624:40:624:52 | ... * ... | 6.9571236714E10 | -| test.c:624:45:624:52 | (...) | 6.9571236714E10 | -| test.c:624:46:624:46 | 2 | 1.0 | -| test.c:624:46:624:46 | (unsigned int)... | 1.0 | -| test.c:624:46:624:51 | ... * ... | 6.9571236714E10 | -| test.c:624:50:624:51 | ip | 6.9571236714E10 | -| test.c:624:56:624:57 | 17 | 1.0 | -| test.c:624:56:624:57 | (unsigned int)... | 1.0 | -| test.c:624:56:624:62 | ... * ... | 6.9571236714E10 | -| test.c:624:61:624:62 | ip | 6.9571236714E10 | -| test.c:625:17:625:28 | (...) | 1.39142473429E11 | -| test.c:625:17:625:33 | ... * ... | 1.39142473429E11 | -| test.c:625:18:625:18 | 2 | 1.0 | -| test.c:625:18:625:18 | (unsigned int)... | 1.0 | -| test.c:625:18:625:23 | ... * ... | 1.39142473429E11 | -| test.c:625:18:625:27 | ... + ... | 1.39142473429E11 | -| test.c:625:22:625:23 | ip | 1.39142473429E11 | -| test.c:625:27:625:27 | 1 | 1.0 | -| test.c:625:27:625:27 | (unsigned int)... | 1.0 | -| test.c:625:32:625:33 | 14 | 1.0 | +| test.c:623:15:623:32 | ... * ... | 5.797603059E9 | +| test.c:623:19:623:32 | (...) | 5.797603059E9 | +| test.c:623:20:623:21 | ip | 5.797603059E9 | +| test.c:623:20:623:26 | ... * ... | 5.797603059E9 | +| test.c:623:20:623:31 | ... + ... | 5.797603059E9 | +| test.c:623:25:623:26 | 14 | 1.0 | +| test.c:623:25:623:26 | (unsigned int)... | 1.0 | +| test.c:623:30:623:31 | 64 | 1.0 | +| test.c:623:30:623:31 | (unsigned int)... | 1.0 | +| test.c:624:15:629:28 | (...) | 1.558961605756818E30 | +| test.c:624:16:624:27 | (...) | 5.797603059E9 | +| test.c:624:16:624:32 | ... * ... | 5.797603059E9 | +| test.c:624:16:625:65 | ... > ... | 1.0 | +| test.c:624:16:629:27 | ... ? ... : ... | 1.558961605756818E30 | +| test.c:624:17:624:17 | 2 | 1.0 | +| test.c:624:17:624:17 | (unsigned int)... | 1.0 | +| test.c:624:17:624:22 | ... * ... | 5.797603059E9 | +| test.c:624:17:624:26 | ... + ... | 5.797603059E9 | +| test.c:624:21:624:22 | ip | 5.797603059E9 | +| test.c:624:26:624:26 | 1 | 1.0 | +| test.c:624:26:624:26 | (unsigned int)... | 1.0 | +| test.c:624:31:624:32 | 14 | 1.0 | +| test.c:624:31:624:32 | (unsigned int)... | 1.0 | +| test.c:625:15:625:65 | (...) | 3.361220122972616E19 | +| test.c:625:16:625:17 | 14 | 1.0 | +| test.c:625:16:625:17 | (unsigned int)... | 1.0 | +| test.c:625:16:625:28 | ... * ... | 5.797603059E9 | +| test.c:625:16:625:38 | ... > ... | 1.0 | +| test.c:625:16:625:64 | ... ? ... : ... | 3.361220122972616E19 | +| test.c:625:21:625:28 | (...) | 5.797603059E9 | +| test.c:625:22:625:22 | 2 | 1.0 | +| test.c:625:22:625:22 | (unsigned int)... | 1.0 | +| test.c:625:22:625:27 | ... * ... | 5.797603059E9 | +| test.c:625:26:625:27 | ip | 5.797603059E9 | +| test.c:625:32:625:33 | 17 | 1.0 | | test.c:625:32:625:33 | (unsigned int)... | 1.0 | -| test.c:626:17:626:18 | 14 | 1.0 | -| test.c:626:17:626:18 | (unsigned int)... | 1.0 | -| test.c:626:17:626:29 | ... * ... | 1.39142473429E11 | -| test.c:626:17:626:39 | ... > ... | 1.0 | -| test.c:626:17:628:25 | ... ? ... : ... | 1.936062791193997E22 | -| test.c:626:22:626:29 | (...) | 1.39142473429E11 | -| test.c:626:23:626:23 | 2 | 1.0 | -| test.c:626:23:626:23 | (unsigned int)... | 1.0 | -| test.c:626:23:626:28 | ... * ... | 1.39142473429E11 | -| test.c:626:27:626:28 | ip | 1.39142473429E11 | -| test.c:626:33:626:34 | 17 | 1.0 | -| test.c:626:33:626:34 | (unsigned int)... | 1.0 | -| test.c:626:33:626:39 | ... * ... | 1.39142473429E11 | -| test.c:626:38:626:39 | ip | 1.39142473429E11 | +| test.c:625:32:625:38 | ... * ... | 5.797603059E9 | +| test.c:625:37:625:38 | ip | 5.797603059E9 | +| test.c:625:42:625:43 | 17 | 1.0 | +| test.c:625:42:625:43 | (unsigned int)... | 1.0 | +| test.c:625:42:625:54 | ... * ... | 5.797603059E9 | +| test.c:625:47:625:54 | (...) | 5.797603059E9 | +| test.c:625:48:625:48 | 2 | 1.0 | +| test.c:625:48:625:48 | (unsigned int)... | 1.0 | +| test.c:625:48:625:53 | ... * ... | 5.797603059E9 | +| test.c:625:52:625:53 | ip | 5.797603059E9 | +| test.c:625:58:625:59 | 17 | 1.0 | +| test.c:625:58:625:59 | (unsigned int)... | 1.0 | +| test.c:625:58:625:64 | ... * ... | 5.797603059E9 | +| test.c:625:63:625:64 | ip | 5.797603059E9 | +| test.c:626:19:626:30 | (...) | 1.1595206119E10 | +| test.c:626:19:626:35 | ... * ... | 1.1595206119E10 | +| test.c:626:20:626:20 | 2 | 1.0 | +| test.c:626:20:626:20 | (unsigned int)... | 1.0 | +| test.c:626:20:626:25 | ... * ... | 1.1595206119E10 | +| test.c:626:20:626:29 | ... + ... | 1.1595206119E10 | +| test.c:626:24:626:25 | ip | 1.1595206119E10 | +| test.c:626:29:626:29 | 1 | 1.0 | +| test.c:626:29:626:29 | (unsigned int)... | 1.0 | +| test.c:626:34:626:35 | 14 | 1.0 | +| test.c:626:34:626:35 | (unsigned int)... | 1.0 | | test.c:627:19:627:20 | 14 | 1.0 | | test.c:627:19:627:20 | (unsigned int)... | 1.0 | -| test.c:627:19:627:31 | ... * ... | 1.39142473429E11 | -| test.c:627:24:627:31 | (...) | 1.39142473429E11 | +| test.c:627:19:627:31 | ... * ... | 1.1595206119E10 | +| test.c:627:19:627:41 | ... > ... | 1.0 | +| test.c:627:19:629:27 | ... ? ... : ... | 1.3444880494209504E20 | +| test.c:627:24:627:31 | (...) | 1.1595206119E10 | | test.c:627:25:627:25 | 2 | 1.0 | | test.c:627:25:627:25 | (unsigned int)... | 1.0 | -| test.c:627:25:627:30 | ... * ... | 1.39142473429E11 | -| test.c:627:29:627:30 | ip | 1.39142473429E11 | -| test.c:628:19:628:20 | 14 | 1.0 | -| test.c:628:19:628:20 | (unsigned int)... | 1.0 | -| test.c:628:19:628:25 | ... * ... | 1.39142473429E11 | -| test.c:628:24:628:25 | ip | 1.39142473429E11 | -| test.c:629:13:629:14 | 14 | 1.0 | -| test.c:629:13:629:14 | (unsigned int)... | 1.0 | -| test.c:629:13:629:19 | ... * ... | 6.9571236714E10 | -| test.c:629:13:629:35 | ... > ... | 1.0 | -| test.c:629:13:631:27 | ... ? ... : ... | 4.840156977915421E21 | -| test.c:629:18:629:19 | ip | 6.9571236714E10 | -| test.c:629:23:629:30 | (...) | 6.9571236714E10 | -| test.c:629:23:629:35 | ... * ... | 6.9571236714E10 | -| test.c:629:24:629:25 | ip | 6.9571236714E10 | -| test.c:629:24:629:29 | ... + ... | 6.9571236714E10 | -| test.c:629:29:629:29 | 1 | 1.0 | -| test.c:629:29:629:29 | (unsigned int)... | 1.0 | -| test.c:629:34:629:35 | 17 | 1.0 | -| test.c:629:34:629:35 | (unsigned int)... | 1.0 | -| test.c:630:15:630:16 | 14 | 1.0 | -| test.c:630:15:630:16 | (unsigned int)... | 1.0 | -| test.c:630:15:630:21 | ... * ... | 6.9571236714E10 | -| test.c:630:20:630:21 | ip | 6.9571236714E10 | -| test.c:631:15:631:22 | (...) | 6.9571236714E10 | -| test.c:631:15:631:27 | ... * ... | 6.9571236714E10 | -| test.c:631:16:631:17 | ip | 6.9571236714E10 | -| test.c:631:16:631:21 | ... + ... | 6.9571236714E10 | -| test.c:631:21:631:21 | 1 | 1.0 | -| test.c:631:21:631:21 | (unsigned int)... | 1.0 | -| test.c:631:26:631:27 | 14 | 1.0 | -| test.c:631:26:631:27 | (unsigned int)... | 1.0 | -| test.c:632:10:632:23 | special_number | 1.297918419127476E201 | -| test.c:639:10:639:11 | 0 | 1.0 | -| test.c:640:7:640:8 | c1 | 1.0 | -| test.c:640:13:640:13 | x | 1.0 | -| test.c:640:13:640:23 | ... += ... | 1.0 | -| test.c:640:18:640:23 | 748596 | 1.0 | -| test.c:641:7:641:8 | c2 | 1.0 | -| test.c:641:13:641:13 | x | 2.0 | -| test.c:641:13:641:25 | ... += ... | 2.0 | -| test.c:641:18:641:25 | 84652395 | 1.0 | -| test.c:642:7:642:8 | c3 | 1.0 | -| test.c:642:13:642:13 | x | 4.0 | -| test.c:642:13:642:24 | ... += ... | 4.0 | -| test.c:642:18:642:24 | 3675895 | 1.0 | -| test.c:643:7:643:8 | c4 | 1.0 | -| test.c:643:13:643:13 | x | 8.0 | -| test.c:643:13:643:22 | ... += ... | 8.0 | -| test.c:643:18:643:22 | 98634 | 1.0 | -| test.c:644:7:644:8 | c5 | 1.0 | -| test.c:644:13:644:13 | x | 16.0 | -| test.c:644:13:644:24 | ... += ... | 16.0 | -| test.c:644:18:644:24 | 7834985 | 1.0 | -| test.c:645:7:645:8 | c1 | 2.0 | -| test.c:645:7:645:14 | ... && ... | 1.0 | -| test.c:645:13:645:14 | c2 | 2.0 | -| test.c:645:19:645:19 | x | 32.0 | -| test.c:645:19:645:32 | ... += ... | 32.0 | -| test.c:645:24:645:32 | 938457398 | 1.0 | -| test.c:646:7:646:8 | c1 | 3.0 | -| test.c:646:7:646:14 | ... && ... | 1.0 | -| test.c:646:13:646:14 | c3 | 2.0 | -| test.c:646:19:646:19 | x | 64.0 | -| test.c:646:19:646:31 | ... += ... | 64.0 | -| test.c:646:24:646:31 | 73895648 | 1.0 | -| test.c:647:7:647:8 | c1 | 4.0 | -| test.c:647:7:647:14 | ... && ... | 1.0 | -| test.c:647:13:647:14 | c4 | 2.0 | -| test.c:647:19:647:19 | x | 128.0 | -| test.c:647:19:647:31 | ... += ... | 128.0 | -| test.c:647:24:647:31 | 12345432 | 1.0 | -| test.c:648:7:648:8 | c1 | 5.0 | -| test.c:648:7:648:14 | ... && ... | 1.0 | -| test.c:648:13:648:14 | c5 | 2.0 | -| test.c:648:19:648:19 | x | 256.0 | -| test.c:648:19:648:28 | ... += ... | 256.0 | -| test.c:648:24:648:28 | 38847 | 1.0 | -| test.c:649:7:649:8 | c2 | 5.0 | -| test.c:649:7:649:14 | ... && ... | 1.0 | -| test.c:649:13:649:14 | c3 | 5.0 | -| test.c:649:19:649:19 | x | 512.0 | -| test.c:649:19:649:26 | ... += ... | 512.0 | -| test.c:649:24:649:26 | 234 | 1.0 | -| test.c:651:11:651:11 | x | 1024.0 | -| test.c:651:11:651:15 | ... + ... | 1048576.0 | -| test.c:651:11:651:19 | ... + ... | 1.073741824E9 | -| test.c:651:11:651:23 | ... + ... | 1.099511627776E12 | -| test.c:651:11:651:27 | ... + ... | 1.125899906842624E15 | -| test.c:651:11:651:31 | ... + ... | 1.152921504606847E18 | -| test.c:651:11:651:35 | ... + ... | 1.1805916207174113E21 | -| test.c:651:11:651:39 | ... + ... | 1.2089258196146292E24 | -| test.c:651:11:651:43 | ... + ... | 1.2379400392853803E27 | -| test.c:651:11:651:47 | ... + ... | 1.2676506002282294E30 | -| test.c:651:11:651:51 | ... + ... | 1.298074214633707E33 | -| test.c:651:11:651:55 | ... + ... | 1.329227995784916E36 | -| test.c:651:15:651:15 | x | 1024.0 | -| test.c:651:19:651:19 | x | 1024.0 | -| test.c:651:23:651:23 | x | 1024.0 | -| test.c:651:27:651:27 | x | 1024.0 | -| test.c:651:31:651:31 | x | 1024.0 | -| test.c:651:35:651:35 | x | 1024.0 | -| test.c:651:39:651:39 | x | 1024.0 | -| test.c:651:43:651:43 | x | 1024.0 | -| test.c:651:47:651:47 | x | 1024.0 | -| test.c:651:51:651:51 | x | 1024.0 | -| test.c:651:55:651:55 | x | 1024.0 | -| test.c:652:10:652:10 | y | 1.329227995784916E36 | -| test.c:657:20:657:20 | x | 1.0 | -| test.c:657:20:657:26 | ... < ... | 1.0 | -| test.c:657:20:657:36 | ... ? ... : ... | 1.0 | -| test.c:657:24:657:26 | 100 | 1.0 | -| test.c:657:24:657:26 | (unsigned int)... | 1.0 | -| test.c:657:30:657:30 | x | 1.0 | -| test.c:657:34:657:36 | 100 | 1.0 | -| test.c:657:34:657:36 | (unsigned int)... | 1.0 | -| test.c:660:3:660:4 | y1 | 1.0 | -| test.c:660:9:660:11 | ++ ... | 1.0 | -| test.c:660:11:660:11 | y | 1.0 | -| test.c:661:3:661:4 | y2 | 1.0 | -| test.c:661:19:661:19 | 3 | 1.0 | -| test.c:661:19:661:19 | (unsigned int)... | 1.0 | -| test.c:670:3:670:3 | i | 1.0 | -| test.c:670:3:670:8 | ... = ... | 1.0 | -| test.c:670:7:670:8 | 10 | 1.0 | -| test.c:671:7:671:7 | i | 1.0 | -| test.c:673:3:673:3 | i | 1.0 | -| test.c:673:3:673:8 | ... = ... | 1.0 | -| test.c:673:7:673:8 | 10 | 1.0 | -| test.c:674:3:674:3 | i | 1.0 | -| test.c:674:3:674:9 | ... += ... | 1.0 | -| test.c:674:8:674:9 | 10 | 1.0 | -| test.c:675:7:675:7 | i | 1.0 | -| test.c:677:3:677:3 | i | 1.0 | -| test.c:677:3:677:8 | ... = ... | 1.0 | -| test.c:677:7:677:8 | 40 | 1.0 | -| test.c:678:3:678:3 | i | 1.0 | -| test.c:678:3:678:9 | ... -= ... | 1.0 | -| test.c:678:8:678:9 | 10 | 1.0 | -| test.c:679:7:679:7 | i | 1.0 | +| test.c:627:25:627:30 | ... * ... | 1.1595206119E10 | +| test.c:627:29:627:30 | ip | 1.1595206119E10 | +| test.c:627:35:627:36 | 17 | 1.0 | +| test.c:627:35:627:36 | (unsigned int)... | 1.0 | +| test.c:627:35:627:41 | ... * ... | 1.1595206119E10 | +| test.c:627:40:627:41 | ip | 1.1595206119E10 | +| test.c:628:21:628:22 | 14 | 1.0 | +| test.c:628:21:628:22 | (unsigned int)... | 1.0 | +| test.c:628:21:628:33 | ... * ... | 1.1595206119E10 | +| test.c:628:26:628:33 | (...) | 1.1595206119E10 | +| test.c:628:27:628:27 | 2 | 1.0 | +| test.c:628:27:628:27 | (unsigned int)... | 1.0 | +| test.c:628:27:628:32 | ... * ... | 1.1595206119E10 | +| test.c:628:31:628:32 | ip | 1.1595206119E10 | +| test.c:629:21:629:22 | 14 | 1.0 | +| test.c:629:21:629:22 | (unsigned int)... | 1.0 | +| test.c:629:21:629:27 | ... * ... | 1.1595206119E10 | +| test.c:629:26:629:27 | ip | 1.1595206119E10 | +| test.c:630:13:630:63 | (...) | 1.2100392444788552E21 | +| test.c:630:14:630:15 | 14 | 1.0 | +| test.c:630:14:630:15 | (unsigned int)... | 1.0 | +| test.c:630:14:630:20 | ... * ... | 3.4785618357E10 | +| test.c:630:14:630:36 | ... > ... | 1.0 | +| test.c:630:14:630:62 | ... ? ... : ... | 1.2100392444788552E21 | +| test.c:630:19:630:20 | ip | 3.4785618357E10 | +| test.c:630:24:630:31 | (...) | 3.4785618357E10 | +| test.c:630:24:630:36 | ... * ... | 3.4785618357E10 | +| test.c:630:25:630:26 | ip | 3.4785618357E10 | +| test.c:630:25:630:30 | ... + ... | 3.4785618357E10 | +| test.c:630:30:630:30 | 1 | 1.0 | +| test.c:630:30:630:30 | (unsigned int)... | 1.0 | +| test.c:630:35:630:36 | 17 | 1.0 | +| test.c:630:35:630:36 | (unsigned int)... | 1.0 | +| test.c:630:40:630:41 | 17 | 1.0 | +| test.c:630:40:630:41 | (unsigned int)... | 1.0 | +| test.c:630:40:630:46 | ... * ... | 3.4785618357E10 | +| test.c:630:45:630:46 | ip | 3.4785618357E10 | +| test.c:630:50:630:57 | (...) | 3.4785618357E10 | +| test.c:630:50:630:62 | ... * ... | 3.4785618357E10 | +| test.c:630:51:630:52 | ip | 3.4785618357E10 | +| test.c:630:51:630:56 | ... + ... | 3.4785618357E10 | +| test.c:630:56:630:56 | 1 | 1.0 | +| test.c:630:56:630:56 | (unsigned int)... | 1.0 | +| test.c:630:61:630:62 | 17 | 1.0 | +| test.c:630:61:630:62 | (unsigned int)... | 1.0 | +| test.c:631:13:631:13 | 4 | 1.0 | +| test.c:631:13:631:13 | (unsigned int)... | 1.0 | +| test.c:631:13:631:30 | ... * ... | 6.9571236714E10 | +| test.c:631:13:632:30 | ... + ... | 4.840156977915421E21 | +| test.c:631:13:633:30 | ... + ... | 3.3673570684347266E32 | +| test.c:631:13:639:26 | ... + ... | 9.071274901265435E65 | +| test.c:631:17:631:30 | (...) | 6.9571236714E10 | +| test.c:631:18:631:19 | ip | 6.9571236714E10 | +| test.c:631:18:631:24 | ... * ... | 6.9571236714E10 | +| test.c:631:18:631:29 | ... + ... | 6.9571236714E10 | +| test.c:631:23:631:24 | 14 | 1.0 | +| test.c:631:23:631:24 | (unsigned int)... | 1.0 | +| test.c:631:28:631:29 | 32 | 1.0 | +| test.c:631:28:631:29 | (unsigned int)... | 1.0 | +| test.c:632:13:632:30 | (...) | 6.9571236714E10 | +| test.c:632:14:632:14 | 2 | 1.0 | +| test.c:632:14:632:14 | (unsigned int)... | 1.0 | +| test.c:632:14:632:19 | ... * ... | 6.9571236714E10 | +| test.c:632:14:632:24 | ... * ... | 6.9571236714E10 | +| test.c:632:14:632:29 | ... + ... | 6.9571236714E10 | +| test.c:632:18:632:19 | ip | 6.9571236714E10 | +| test.c:632:23:632:24 | 14 | 1.0 | +| test.c:632:23:632:24 | (unsigned int)... | 1.0 | +| test.c:632:28:632:29 | 32 | 1.0 | +| test.c:632:28:632:29 | (unsigned int)... | 1.0 | +| test.c:633:13:633:13 | 2 | 1.0 | +| test.c:633:13:633:13 | (unsigned int)... | 1.0 | +| test.c:633:13:633:30 | ... * ... | 6.9571236714E10 | +| test.c:633:17:633:30 | (...) | 6.9571236714E10 | +| test.c:633:18:633:19 | ip | 6.9571236714E10 | +| test.c:633:18:633:24 | ... * ... | 6.9571236714E10 | +| test.c:633:18:633:29 | ... + ... | 6.9571236714E10 | +| test.c:633:23:633:24 | 14 | 1.0 | +| test.c:633:23:633:24 | (unsigned int)... | 1.0 | +| test.c:633:28:633:29 | 64 | 1.0 | +| test.c:633:28:633:29 | (unsigned int)... | 1.0 | +| test.c:634:13:639:26 | (...) | 2.693885654805863E33 | +| test.c:634:14:634:25 | (...) | 6.9571236714E10 | +| test.c:634:14:634:30 | ... * ... | 6.9571236714E10 | +| test.c:634:14:635:63 | ... > ... | 1.0 | +| test.c:634:14:639:25 | ... ? ... : ... | 2.693885654805863E33 | +| test.c:634:15:634:15 | 2 | 1.0 | +| test.c:634:15:634:15 | (unsigned int)... | 1.0 | +| test.c:634:15:634:20 | ... * ... | 6.9571236714E10 | +| test.c:634:15:634:24 | ... + ... | 6.9571236714E10 | +| test.c:634:19:634:20 | ip | 6.9571236714E10 | +| test.c:634:24:634:24 | 1 | 1.0 | +| test.c:634:24:634:24 | (unsigned int)... | 1.0 | +| test.c:634:29:634:30 | 14 | 1.0 | +| test.c:634:29:634:30 | (unsigned int)... | 1.0 | +| test.c:635:13:635:63 | (...) | 4.840156977915421E21 | +| test.c:635:14:635:15 | 14 | 1.0 | +| test.c:635:14:635:15 | (unsigned int)... | 1.0 | +| test.c:635:14:635:26 | ... * ... | 6.9571236714E10 | +| test.c:635:14:635:36 | ... > ... | 1.0 | +| test.c:635:14:635:62 | ... ? ... : ... | 4.840156977915421E21 | +| test.c:635:19:635:26 | (...) | 6.9571236714E10 | +| test.c:635:20:635:20 | 2 | 1.0 | +| test.c:635:20:635:20 | (unsigned int)... | 1.0 | +| test.c:635:20:635:25 | ... * ... | 6.9571236714E10 | +| test.c:635:24:635:25 | ip | 6.9571236714E10 | +| test.c:635:30:635:31 | 17 | 1.0 | +| test.c:635:30:635:31 | (unsigned int)... | 1.0 | +| test.c:635:30:635:36 | ... * ... | 6.9571236714E10 | +| test.c:635:35:635:36 | ip | 6.9571236714E10 | +| test.c:635:40:635:41 | 17 | 1.0 | +| test.c:635:40:635:41 | (unsigned int)... | 1.0 | +| test.c:635:40:635:52 | ... * ... | 6.9571236714E10 | +| test.c:635:45:635:52 | (...) | 6.9571236714E10 | +| test.c:635:46:635:46 | 2 | 1.0 | +| test.c:635:46:635:46 | (unsigned int)... | 1.0 | +| test.c:635:46:635:51 | ... * ... | 6.9571236714E10 | +| test.c:635:50:635:51 | ip | 6.9571236714E10 | +| test.c:635:56:635:57 | 17 | 1.0 | +| test.c:635:56:635:57 | (unsigned int)... | 1.0 | +| test.c:635:56:635:62 | ... * ... | 6.9571236714E10 | +| test.c:635:61:635:62 | ip | 6.9571236714E10 | +| test.c:636:17:636:28 | (...) | 1.39142473429E11 | +| test.c:636:17:636:33 | ... * ... | 1.39142473429E11 | +| test.c:636:18:636:18 | 2 | 1.0 | +| test.c:636:18:636:18 | (unsigned int)... | 1.0 | +| test.c:636:18:636:23 | ... * ... | 1.39142473429E11 | +| test.c:636:18:636:27 | ... + ... | 1.39142473429E11 | +| test.c:636:22:636:23 | ip | 1.39142473429E11 | +| test.c:636:27:636:27 | 1 | 1.0 | +| test.c:636:27:636:27 | (unsigned int)... | 1.0 | +| test.c:636:32:636:33 | 14 | 1.0 | +| test.c:636:32:636:33 | (unsigned int)... | 1.0 | +| test.c:637:17:637:18 | 14 | 1.0 | +| test.c:637:17:637:18 | (unsigned int)... | 1.0 | +| test.c:637:17:637:29 | ... * ... | 1.39142473429E11 | +| test.c:637:17:637:39 | ... > ... | 1.0 | +| test.c:637:17:639:25 | ... ? ... : ... | 1.936062791193997E22 | +| test.c:637:22:637:29 | (...) | 1.39142473429E11 | +| test.c:637:23:637:23 | 2 | 1.0 | +| test.c:637:23:637:23 | (unsigned int)... | 1.0 | +| test.c:637:23:637:28 | ... * ... | 1.39142473429E11 | +| test.c:637:27:637:28 | ip | 1.39142473429E11 | +| test.c:637:33:637:34 | 17 | 1.0 | +| test.c:637:33:637:34 | (unsigned int)... | 1.0 | +| test.c:637:33:637:39 | ... * ... | 1.39142473429E11 | +| test.c:637:38:637:39 | ip | 1.39142473429E11 | +| test.c:638:19:638:20 | 14 | 1.0 | +| test.c:638:19:638:20 | (unsigned int)... | 1.0 | +| test.c:638:19:638:31 | ... * ... | 1.39142473429E11 | +| test.c:638:24:638:31 | (...) | 1.39142473429E11 | +| test.c:638:25:638:25 | 2 | 1.0 | +| test.c:638:25:638:25 | (unsigned int)... | 1.0 | +| test.c:638:25:638:30 | ... * ... | 1.39142473429E11 | +| test.c:638:29:638:30 | ip | 1.39142473429E11 | +| test.c:639:19:639:20 | 14 | 1.0 | +| test.c:639:19:639:20 | (unsigned int)... | 1.0 | +| test.c:639:19:639:25 | ... * ... | 1.39142473429E11 | +| test.c:639:24:639:25 | ip | 1.39142473429E11 | +| test.c:640:13:640:14 | 14 | 1.0 | +| test.c:640:13:640:14 | (unsigned int)... | 1.0 | +| test.c:640:13:640:19 | ... * ... | 6.9571236714E10 | +| test.c:640:13:640:35 | ... > ... | 1.0 | +| test.c:640:13:642:27 | ... ? ... : ... | 4.840156977915421E21 | +| test.c:640:18:640:19 | ip | 6.9571236714E10 | +| test.c:640:23:640:30 | (...) | 6.9571236714E10 | +| test.c:640:23:640:35 | ... * ... | 6.9571236714E10 | +| test.c:640:24:640:25 | ip | 6.9571236714E10 | +| test.c:640:24:640:29 | ... + ... | 6.9571236714E10 | +| test.c:640:29:640:29 | 1 | 1.0 | +| test.c:640:29:640:29 | (unsigned int)... | 1.0 | +| test.c:640:34:640:35 | 17 | 1.0 | +| test.c:640:34:640:35 | (unsigned int)... | 1.0 | +| test.c:641:15:641:16 | 14 | 1.0 | +| test.c:641:15:641:16 | (unsigned int)... | 1.0 | +| test.c:641:15:641:21 | ... * ... | 6.9571236714E10 | +| test.c:641:20:641:21 | ip | 6.9571236714E10 | +| test.c:642:15:642:22 | (...) | 6.9571236714E10 | +| test.c:642:15:642:27 | ... * ... | 6.9571236714E10 | +| test.c:642:16:642:17 | ip | 6.9571236714E10 | +| test.c:642:16:642:21 | ... + ... | 6.9571236714E10 | +| test.c:642:21:642:21 | 1 | 1.0 | +| test.c:642:21:642:21 | (unsigned int)... | 1.0 | +| test.c:642:26:642:27 | 14 | 1.0 | +| test.c:642:26:642:27 | (unsigned int)... | 1.0 | +| test.c:643:10:643:23 | special_number | 1.297918419127476E201 | +| test.c:650:10:650:11 | 0 | 1.0 | +| test.c:651:7:651:8 | c1 | 1.0 | +| test.c:651:13:651:13 | x | 1.0 | +| test.c:651:13:651:23 | ... += ... | 1.0 | +| test.c:651:18:651:23 | 748596 | 1.0 | +| test.c:652:7:652:8 | c2 | 1.0 | +| test.c:652:13:652:13 | x | 2.0 | +| test.c:652:13:652:25 | ... += ... | 2.0 | +| test.c:652:18:652:25 | 84652395 | 1.0 | +| test.c:653:7:653:8 | c3 | 1.0 | +| test.c:653:13:653:13 | x | 4.0 | +| test.c:653:13:653:24 | ... += ... | 4.0 | +| test.c:653:18:653:24 | 3675895 | 1.0 | +| test.c:654:7:654:8 | c4 | 1.0 | +| test.c:654:13:654:13 | x | 8.0 | +| test.c:654:13:654:22 | ... += ... | 8.0 | +| test.c:654:18:654:22 | 98634 | 1.0 | +| test.c:655:7:655:8 | c5 | 1.0 | +| test.c:655:13:655:13 | x | 16.0 | +| test.c:655:13:655:24 | ... += ... | 16.0 | +| test.c:655:18:655:24 | 7834985 | 1.0 | +| test.c:656:7:656:8 | c1 | 2.0 | +| test.c:656:7:656:14 | ... && ... | 1.0 | +| test.c:656:13:656:14 | c2 | 2.0 | +| test.c:656:19:656:19 | x | 32.0 | +| test.c:656:19:656:32 | ... += ... | 32.0 | +| test.c:656:24:656:32 | 938457398 | 1.0 | +| test.c:657:7:657:8 | c1 | 3.0 | +| test.c:657:7:657:14 | ... && ... | 1.0 | +| test.c:657:13:657:14 | c3 | 2.0 | +| test.c:657:19:657:19 | x | 64.0 | +| test.c:657:19:657:31 | ... += ... | 64.0 | +| test.c:657:24:657:31 | 73895648 | 1.0 | +| test.c:658:7:658:8 | c1 | 4.0 | +| test.c:658:7:658:14 | ... && ... | 1.0 | +| test.c:658:13:658:14 | c4 | 2.0 | +| test.c:658:19:658:19 | x | 128.0 | +| test.c:658:19:658:31 | ... += ... | 128.0 | +| test.c:658:24:658:31 | 12345432 | 1.0 | +| test.c:659:7:659:8 | c1 | 5.0 | +| test.c:659:7:659:14 | ... && ... | 1.0 | +| test.c:659:13:659:14 | c5 | 2.0 | +| test.c:659:19:659:19 | x | 256.0 | +| test.c:659:19:659:28 | ... += ... | 256.0 | +| test.c:659:24:659:28 | 38847 | 1.0 | +| test.c:660:7:660:8 | c2 | 5.0 | +| test.c:660:7:660:14 | ... && ... | 1.0 | +| test.c:660:13:660:14 | c3 | 5.0 | +| test.c:660:19:660:19 | x | 512.0 | +| test.c:660:19:660:26 | ... += ... | 512.0 | +| test.c:660:24:660:26 | 234 | 1.0 | +| test.c:662:11:662:11 | x | 1024.0 | +| test.c:662:11:662:15 | ... + ... | 1048576.0 | +| test.c:662:11:662:19 | ... + ... | 1.073741824E9 | +| test.c:662:11:662:23 | ... + ... | 1.099511627776E12 | +| test.c:662:11:662:27 | ... + ... | 1.125899906842624E15 | +| test.c:662:11:662:31 | ... + ... | 1.152921504606847E18 | +| test.c:662:11:662:35 | ... + ... | 1.1805916207174113E21 | +| test.c:662:11:662:39 | ... + ... | 1.2089258196146292E24 | +| test.c:662:11:662:43 | ... + ... | 1.2379400392853803E27 | +| test.c:662:11:662:47 | ... + ... | 1.2676506002282294E30 | +| test.c:662:11:662:51 | ... + ... | 1.298074214633707E33 | +| test.c:662:11:662:55 | ... + ... | 1.329227995784916E36 | +| test.c:662:15:662:15 | x | 1024.0 | +| test.c:662:19:662:19 | x | 1024.0 | +| test.c:662:23:662:23 | x | 1024.0 | +| test.c:662:27:662:27 | x | 1024.0 | +| test.c:662:31:662:31 | x | 1024.0 | +| test.c:662:35:662:35 | x | 1024.0 | +| test.c:662:39:662:39 | x | 1024.0 | +| test.c:662:43:662:43 | x | 1024.0 | +| test.c:662:47:662:47 | x | 1024.0 | +| test.c:662:51:662:51 | x | 1024.0 | +| test.c:662:55:662:55 | x | 1024.0 | +| test.c:663:10:663:10 | y | 1.329227995784916E36 | +| test.c:668:20:668:20 | x | 1.0 | +| test.c:668:20:668:26 | ... < ... | 1.0 | +| test.c:668:20:668:36 | ... ? ... : ... | 1.0 | +| test.c:668:24:668:26 | 100 | 1.0 | +| test.c:668:24:668:26 | (unsigned int)... | 1.0 | +| test.c:668:30:668:30 | x | 1.0 | +| test.c:668:34:668:36 | 100 | 1.0 | +| test.c:668:34:668:36 | (unsigned int)... | 1.0 | +| test.c:671:3:671:4 | y1 | 1.0 | +| test.c:671:9:671:11 | ++ ... | 1.0 | +| test.c:671:11:671:11 | y | 1.0 | +| test.c:672:3:672:4 | y2 | 1.0 | +| test.c:672:19:672:19 | 3 | 1.0 | +| test.c:672:19:672:19 | (unsigned int)... | 1.0 | | test.c:681:3:681:3 | i | 1.0 | -| test.c:681:3:681:12 | ... = ... | 1.0 | -| test.c:681:7:681:7 | j | 1.0 | -| test.c:681:7:681:12 | ... = ... | 1.0 | -| test.c:681:11:681:12 | 40 | 1.0 | +| test.c:681:3:681:8 | ... = ... | 1.0 | +| test.c:681:7:681:8 | 10 | 1.0 | | test.c:682:7:682:7 | i | 1.0 | | test.c:684:3:684:3 | i | 1.0 | -| test.c:684:3:684:15 | ... = ... | 1.0 | -| test.c:684:7:684:15 | (...) | 1.0 | -| test.c:684:8:684:8 | j | 1.0 | -| test.c:684:8:684:14 | ... += ... | 1.0 | -| test.c:684:13:684:14 | 10 | 1.0 | -| test.c:685:7:685:7 | i | 1.0 | -| test.c:687:3:687:3 | i | 1.0 | -| test.c:687:3:687:20 | ... = ... | 1.0 | -| test.c:687:7:687:8 | 20 | 1.0 | -| test.c:687:7:687:20 | ... + ... | 1.0 | -| test.c:687:12:687:20 | (...) | 1.0 | -| test.c:687:13:687:13 | j | 1.0 | -| test.c:687:13:687:19 | ... -= ... | 1.0 | -| test.c:687:18:687:19 | 10 | 1.0 | -| test.c:688:7:688:7 | i | 1.0 | -| test.c:693:14:693:15 | 0 | 1.0 | -| test.c:695:7:695:7 | 3 | 1.0 | -| test.c:695:7:695:7 | (unsigned int)... | 1.0 | -| test.c:695:7:695:12 | ... <= ... | 1.0 | -| test.c:695:7:695:23 | ... && ... | 1.0 | -| test.c:695:7:695:33 | ... && ... | 1.0 | -| test.c:695:7:695:44 | ... && ... | 1.0 | -| test.c:695:12:695:12 | a | 1.0 | -| test.c:695:17:695:17 | a | 1.0 | -| test.c:695:17:695:23 | ... <= ... | 1.0 | -| test.c:695:22:695:23 | 11 | 1.0 | -| test.c:695:22:695:23 | (unsigned int)... | 1.0 | -| test.c:695:28:695:28 | 5 | 1.0 | -| test.c:695:28:695:28 | (unsigned int)... | 1.0 | -| test.c:695:28:695:33 | ... <= ... | 1.0 | -| test.c:695:33:695:33 | b | 1.0 | -| test.c:695:38:695:38 | b | 1.0 | -| test.c:695:38:695:44 | ... <= ... | 1.0 | -| test.c:695:43:695:44 | 23 | 1.0 | -| test.c:695:43:695:44 | (unsigned int)... | 1.0 | -| test.c:696:13:696:13 | a | 1.0 | -| test.c:696:13:696:15 | (int)... | 1.0 | -| test.c:696:13:696:15 | ... * ... | 1.0 | -| test.c:696:15:696:15 | b | 1.0 | -| test.c:697:5:697:9 | total | 1.0 | -| test.c:697:5:697:14 | ... += ... | 1.0 | -| test.c:697:14:697:14 | r | 1.0 | -| test.c:699:7:699:7 | 3 | 1.0 | -| test.c:699:7:699:7 | (unsigned int)... | 1.0 | -| test.c:699:7:699:12 | ... <= ... | 1.0 | -| test.c:699:7:699:23 | ... && ... | 1.0 | -| test.c:699:7:699:33 | ... && ... | 1.0 | -| test.c:699:7:699:44 | ... && ... | 1.0 | -| test.c:699:12:699:12 | a | 2.0 | -| test.c:699:17:699:17 | a | 2.0 | -| test.c:699:17:699:23 | ... <= ... | 1.0 | -| test.c:699:22:699:23 | 11 | 1.0 | -| test.c:699:22:699:23 | (unsigned int)... | 1.0 | -| test.c:699:28:699:28 | 0 | 1.0 | -| test.c:699:28:699:28 | (unsigned int)... | 1.0 | -| test.c:699:28:699:33 | ... <= ... | 1.0 | -| test.c:699:33:699:33 | b | 3.0 | -| test.c:699:38:699:38 | b | 3.0 | -| test.c:699:38:699:44 | ... <= ... | 1.0 | -| test.c:699:43:699:44 | 23 | 1.0 | -| test.c:699:43:699:44 | (unsigned int)... | 1.0 | -| test.c:700:13:700:13 | a | 2.0 | -| test.c:700:13:700:15 | (int)... | 6.0 | -| test.c:700:13:700:15 | ... * ... | 6.0 | -| test.c:700:15:700:15 | b | 3.0 | -| test.c:701:5:701:9 | total | 2.0 | -| test.c:701:5:701:14 | ... += ... | 12.0 | -| test.c:701:14:701:14 | r | 6.0 | -| test.c:703:7:703:7 | 3 | 1.0 | -| test.c:703:7:703:7 | (unsigned int)... | 1.0 | -| test.c:703:7:703:12 | ... <= ... | 1.0 | -| test.c:703:7:703:23 | ... && ... | 1.0 | -| test.c:703:7:703:34 | ... && ... | 1.0 | -| test.c:703:7:703:45 | ... && ... | 1.0 | -| test.c:703:12:703:12 | a | 3.0 | -| test.c:703:17:703:17 | a | 3.0 | -| test.c:703:17:703:23 | ... <= ... | 1.0 | -| test.c:703:22:703:23 | 11 | 1.0 | -| test.c:703:22:703:23 | (unsigned int)... | 1.0 | -| test.c:703:28:703:29 | 13 | 1.0 | -| test.c:703:28:703:29 | (unsigned int)... | 1.0 | -| test.c:703:28:703:34 | ... <= ... | 1.0 | -| test.c:703:34:703:34 | b | 7.0 | -| test.c:703:39:703:39 | b | 7.0 | -| test.c:703:39:703:45 | ... <= ... | 1.0 | -| test.c:703:44:703:45 | 23 | 1.0 | -| test.c:703:44:703:45 | (unsigned int)... | 1.0 | -| test.c:704:13:704:13 | a | 3.0 | -| test.c:704:13:704:15 | (int)... | 21.0 | -| test.c:704:13:704:15 | ... * ... | 21.0 | -| test.c:704:15:704:15 | b | 7.0 | -| test.c:705:5:705:9 | total | 14.0 | -| test.c:705:5:705:14 | ... += ... | 294.0 | -| test.c:705:14:705:14 | r | 21.0 | -| test.c:708:10:708:14 | total | 308.0 | -| test.c:712:14:712:15 | 0 | 1.0 | -| test.c:714:7:714:7 | 5 | 1.0 | +| test.c:684:3:684:8 | ... = ... | 1.0 | +| test.c:684:7:684:8 | 10 | 1.0 | +| test.c:685:3:685:3 | i | 1.0 | +| test.c:685:3:685:9 | ... += ... | 1.0 | +| test.c:685:8:685:9 | 10 | 1.0 | +| test.c:686:7:686:7 | i | 1.0 | +| test.c:688:3:688:3 | i | 1.0 | +| test.c:688:3:688:8 | ... = ... | 1.0 | +| test.c:688:7:688:8 | 40 | 1.0 | +| test.c:689:3:689:3 | i | 1.0 | +| test.c:689:3:689:9 | ... -= ... | 1.0 | +| test.c:689:8:689:9 | 10 | 1.0 | +| test.c:690:7:690:7 | i | 1.0 | +| test.c:692:3:692:3 | i | 1.0 | +| test.c:692:3:692:12 | ... = ... | 1.0 | +| test.c:692:7:692:7 | j | 1.0 | +| test.c:692:7:692:12 | ... = ... | 1.0 | +| test.c:692:11:692:12 | 40 | 1.0 | +| test.c:693:7:693:7 | i | 1.0 | +| test.c:695:3:695:3 | i | 1.0 | +| test.c:695:3:695:15 | ... = ... | 1.0 | +| test.c:695:7:695:15 | (...) | 1.0 | +| test.c:695:8:695:8 | j | 1.0 | +| test.c:695:8:695:14 | ... += ... | 1.0 | +| test.c:695:13:695:14 | 10 | 1.0 | +| test.c:696:7:696:7 | i | 1.0 | +| test.c:698:3:698:3 | i | 1.0 | +| test.c:698:3:698:20 | ... = ... | 1.0 | +| test.c:698:7:698:8 | 20 | 1.0 | +| test.c:698:7:698:20 | ... + ... | 1.0 | +| test.c:698:12:698:20 | (...) | 1.0 | +| test.c:698:13:698:13 | j | 1.0 | +| test.c:698:13:698:19 | ... -= ... | 1.0 | +| test.c:698:18:698:19 | 10 | 1.0 | +| test.c:699:7:699:7 | i | 1.0 | +| test.c:704:14:704:15 | 0 | 1.0 | +| test.c:706:7:706:7 | 3 | 1.0 | +| test.c:706:7:706:7 | (unsigned int)... | 1.0 | +| test.c:706:7:706:12 | ... <= ... | 1.0 | +| test.c:706:7:706:23 | ... && ... | 1.0 | +| test.c:706:7:706:33 | ... && ... | 1.0 | +| test.c:706:7:706:44 | ... && ... | 1.0 | +| test.c:706:12:706:12 | a | 1.0 | +| test.c:706:17:706:17 | a | 1.0 | +| test.c:706:17:706:23 | ... <= ... | 1.0 | +| test.c:706:22:706:23 | 11 | 1.0 | +| test.c:706:22:706:23 | (unsigned int)... | 1.0 | +| test.c:706:28:706:28 | 5 | 1.0 | +| test.c:706:28:706:28 | (unsigned int)... | 1.0 | +| test.c:706:28:706:33 | ... <= ... | 1.0 | +| test.c:706:33:706:33 | b | 1.0 | +| test.c:706:38:706:38 | b | 1.0 | +| test.c:706:38:706:44 | ... <= ... | 1.0 | +| test.c:706:43:706:44 | 23 | 1.0 | +| test.c:706:43:706:44 | (unsigned int)... | 1.0 | +| test.c:707:13:707:13 | a | 1.0 | +| test.c:707:13:707:15 | (int)... | 1.0 | +| test.c:707:13:707:15 | ... * ... | 1.0 | +| test.c:707:15:707:15 | b | 1.0 | +| test.c:708:5:708:9 | total | 1.0 | +| test.c:708:5:708:14 | ... += ... | 1.0 | +| test.c:708:14:708:14 | r | 1.0 | +| test.c:710:7:710:7 | 3 | 1.0 | +| test.c:710:7:710:7 | (unsigned int)... | 1.0 | +| test.c:710:7:710:12 | ... <= ... | 1.0 | +| test.c:710:7:710:23 | ... && ... | 1.0 | +| test.c:710:7:710:33 | ... && ... | 1.0 | +| test.c:710:7:710:44 | ... && ... | 1.0 | +| test.c:710:12:710:12 | a | 2.0 | +| test.c:710:17:710:17 | a | 2.0 | +| test.c:710:17:710:23 | ... <= ... | 1.0 | +| test.c:710:22:710:23 | 11 | 1.0 | +| test.c:710:22:710:23 | (unsigned int)... | 1.0 | +| test.c:710:28:710:28 | 0 | 1.0 | +| test.c:710:28:710:28 | (unsigned int)... | 1.0 | +| test.c:710:28:710:33 | ... <= ... | 1.0 | +| test.c:710:33:710:33 | b | 3.0 | +| test.c:710:38:710:38 | b | 3.0 | +| test.c:710:38:710:44 | ... <= ... | 1.0 | +| test.c:710:43:710:44 | 23 | 1.0 | +| test.c:710:43:710:44 | (unsigned int)... | 1.0 | +| test.c:711:13:711:13 | a | 2.0 | +| test.c:711:13:711:15 | (int)... | 6.0 | +| test.c:711:13:711:15 | ... * ... | 6.0 | +| test.c:711:15:711:15 | b | 3.0 | +| test.c:712:5:712:9 | total | 2.0 | +| test.c:712:5:712:14 | ... += ... | 12.0 | +| test.c:712:14:712:14 | r | 6.0 | +| test.c:714:7:714:7 | 3 | 1.0 | | test.c:714:7:714:7 | (unsigned int)... | 1.0 | | test.c:714:7:714:12 | ... <= ... | 1.0 | | test.c:714:7:714:23 | ... && ... | 1.0 | -| test.c:714:12:714:12 | b | 1.0 | -| test.c:714:17:714:17 | b | 1.0 | +| test.c:714:7:714:34 | ... && ... | 1.0 | +| test.c:714:7:714:45 | ... && ... | 1.0 | +| test.c:714:12:714:12 | a | 3.0 | +| test.c:714:17:714:17 | a | 3.0 | | test.c:714:17:714:23 | ... <= ... | 1.0 | -| test.c:714:22:714:23 | 23 | 1.0 | +| test.c:714:22:714:23 | 11 | 1.0 | | test.c:714:22:714:23 | (unsigned int)... | 1.0 | -| test.c:715:13:715:14 | 11 | 1.0 | -| test.c:715:13:715:14 | (unsigned int)... | 1.0 | -| test.c:715:13:715:16 | (int)... | 1.0 | -| test.c:715:13:715:16 | ... * ... | 1.0 | -| test.c:715:16:715:16 | b | 1.0 | -| test.c:716:5:716:9 | total | 1.0 | -| test.c:716:5:716:14 | ... += ... | 1.0 | -| test.c:716:14:716:14 | r | 1.0 | -| test.c:718:7:718:7 | 0 | 1.0 | -| test.c:718:7:718:7 | (unsigned int)... | 1.0 | -| test.c:718:7:718:12 | ... <= ... | 1.0 | -| test.c:718:7:718:23 | ... && ... | 1.0 | -| test.c:718:12:718:12 | b | 2.0 | -| test.c:718:17:718:17 | b | 2.0 | -| test.c:718:17:718:23 | ... <= ... | 1.0 | -| test.c:718:22:718:23 | 23 | 1.0 | -| test.c:718:22:718:23 | (unsigned int)... | 1.0 | -| test.c:719:13:719:14 | 11 | 1.0 | -| test.c:719:13:719:14 | (unsigned int)... | 1.0 | -| test.c:719:13:719:16 | (int)... | 2.0 | -| test.c:719:13:719:16 | ... * ... | 2.0 | -| test.c:719:16:719:16 | b | 2.0 | -| test.c:720:5:720:9 | total | 2.0 | -| test.c:720:5:720:14 | ... += ... | 4.0 | -| test.c:720:14:720:14 | r | 2.0 | -| test.c:722:7:722:8 | 13 | 1.0 | -| test.c:722:7:722:8 | (unsigned int)... | 1.0 | -| test.c:722:7:722:13 | ... <= ... | 1.0 | -| test.c:722:7:722:24 | ... && ... | 1.0 | -| test.c:722:13:722:13 | b | 3.0 | -| test.c:722:18:722:18 | b | 3.0 | -| test.c:722:18:722:24 | ... <= ... | 1.0 | -| test.c:722:23:722:24 | 23 | 1.0 | -| test.c:722:23:722:24 | (unsigned int)... | 1.0 | -| test.c:723:13:723:14 | 11 | 1.0 | -| test.c:723:13:723:14 | (unsigned int)... | 1.0 | -| test.c:723:13:723:16 | (int)... | 3.0 | -| test.c:723:13:723:16 | ... * ... | 3.0 | -| test.c:723:16:723:16 | b | 3.0 | -| test.c:724:5:724:9 | total | 6.0 | -| test.c:724:5:724:14 | ... += ... | 18.0 | -| test.c:724:14:724:14 | r | 3.0 | -| test.c:727:10:727:14 | total | 24.0 | -| test.c:732:3:732:3 | x | 1.0 | -| test.c:732:3:732:22 | ... = ... | 1.0 | -| test.c:732:7:732:7 | y | 1.0 | -| test.c:732:7:732:22 | ... = ... | 1.0 | -| test.c:732:11:732:22 | 1000000003 | 1.0 | -| test.c:733:3:733:4 | xy | 1.0 | -| test.c:733:3:733:12 | ... = ... | 1.0 | -| test.c:733:8:733:8 | x | 1.0 | -| test.c:733:8:733:12 | ... * ... | 1.0 | -| test.c:733:12:733:12 | y | 1.0 | -| test.c:734:10:734:11 | xy | 1.0 | -| test.c:739:3:739:3 | x | 1.0 | -| test.c:739:3:739:14 | ... = ... | 1.0 | -| test.c:739:7:739:14 | 274177 | 1.0 | -| test.c:740:3:740:3 | y | 1.0 | -| test.c:740:3:740:22 | ... = ... | 1.0 | -| test.c:740:7:740:22 | 67280421310721 | 1.0 | -| test.c:741:3:741:4 | xy | 1.0 | -| test.c:741:3:741:12 | ... = ... | 1.0 | -| test.c:741:8:741:8 | x | 1.0 | -| test.c:741:8:741:12 | ... * ... | 1.0 | -| test.c:741:12:741:12 | y | 1.0 | -| test.c:742:10:742:11 | xy | 1.0 | -| test.c:746:7:746:8 | ui | 1.0 | -| test.c:746:7:746:14 | ... >= ... | 1.0 | -| test.c:746:13:746:14 | 10 | 1.0 | -| test.c:746:13:746:14 | (unsigned int)... | 1.0 | -| test.c:747:28:747:44 | (unsigned long)... | 1.0 | -| test.c:747:28:747:49 | ... * ... | 1.0 | -| test.c:747:43:747:44 | ui | 1.0 | -| test.c:747:48:747:49 | (unsigned long)... | 1.0 | -| test.c:747:48:747:49 | ui | 1.0 | -| test.c:748:12:748:17 | result | 1.0 | -| test.c:750:7:750:8 | ul | 1.0 | -| test.c:750:7:750:14 | ... >= ... | 1.0 | -| test.c:750:13:750:14 | 10 | 1.0 | -| test.c:750:13:750:14 | (unsigned long)... | 1.0 | -| test.c:751:28:751:29 | ul | 1.0 | -| test.c:751:28:751:34 | ... * ... | 1.0 | -| test.c:751:33:751:34 | ul | 1.0 | -| test.c:752:12:752:17 | result | 1.0 | -| test.c:754:10:754:10 | 0 | 1.0 | -| test.c:754:10:754:10 | (unsigned long)... | 1.0 | -| test.c:758:7:758:8 | ui | 1.0 | -| test.c:758:7:758:14 | ... <= ... | 1.0 | -| test.c:758:7:758:25 | ... && ... | 1.0 | -| test.c:758:13:758:14 | 10 | 1.0 | -| test.c:758:13:758:14 | (unsigned int)... | 1.0 | -| test.c:758:19:758:20 | ui | 1.0 | -| test.c:758:19:758:25 | ... >= ... | 1.0 | -| test.c:758:25:758:25 | 2 | 1.0 | -| test.c:758:25:758:25 | (unsigned int)... | 1.0 | -| test.c:759:5:759:6 | ui | 1.0 | -| test.c:759:5:759:16 | ... *= ... | 1.0 | -| test.c:759:11:759:12 | ui | 1.0 | -| test.c:759:11:759:16 | ... + ... | 1.0 | -| test.c:759:16:759:16 | 0 | 1.0 | -| test.c:759:16:759:16 | (unsigned int)... | 1.0 | -| test.c:760:12:760:13 | (unsigned long)... | 1.0 | -| test.c:760:12:760:13 | ui | 1.0 | -| test.c:763:26:763:27 | 10 | 1.0 | -| test.c:763:26:763:27 | (unsigned int)... | 1.0 | -| test.c:764:3:764:9 | uiconst | 1.0 | -| test.c:764:3:764:14 | ... *= ... | 1.0 | -| test.c:764:14:764:14 | 4 | 1.0 | -| test.c:764:14:764:14 | (unsigned int)... | 1.0 | -| test.c:766:27:766:28 | 10 | 1.0 | -| test.c:766:27:766:28 | (unsigned long)... | 1.0 | -| test.c:767:3:767:9 | ulconst | 1.0 | -| test.c:767:3:767:14 | ... *= ... | 1.0 | -| test.c:767:14:767:14 | 4 | 1.0 | -| test.c:767:14:767:14 | (unsigned long)... | 1.0 | -| test.c:768:10:768:16 | (unsigned long)... | 1.0 | -| test.c:768:10:768:16 | uiconst | 1.0 | -| test.c:768:10:768:26 | ... + ... | 1.0 | -| test.c:768:20:768:26 | ulconst | 1.0 | -| test.c:772:7:772:7 | i | 1.0 | -| test.c:772:7:772:13 | ... >= ... | 1.0 | -| test.c:772:7:772:23 | ... && ... | 1.0 | -| test.c:772:12:772:13 | - ... | 1.0 | -| test.c:772:13:772:13 | 1 | 1.0 | -| test.c:772:18:772:18 | i | 1.0 | -| test.c:772:18:772:23 | ... <= ... | 1.0 | -| test.c:772:23:772:23 | 2 | 1.0 | -| test.c:773:5:773:5 | i | 1.0 | -| test.c:773:5:773:13 | ... = ... | 1.0 | -| test.c:773:9:773:9 | 5 | 1.0 | -| test.c:773:9:773:13 | ... * ... | 1.0 | -| test.c:773:13:773:13 | i | 1.0 | -| test.c:774:9:774:9 | i | 1.0 | -| test.c:776:5:776:5 | i | 1.0 | -| test.c:776:5:776:14 | ... = ... | 1.0 | -| test.c:776:9:776:9 | i | 1.0 | -| test.c:776:9:776:14 | ... * ... | 1.0 | -| test.c:776:13:776:14 | - ... | 1.0 | -| test.c:776:14:776:14 | 3 | 1.0 | -| test.c:777:9:777:9 | i | 1.0 | -| test.c:779:5:779:5 | i | 1.0 | -| test.c:779:5:779:10 | ... *= ... | 1.0 | -| test.c:779:10:779:10 | 7 | 1.0 | -| test.c:780:9:780:9 | i | 1.0 | -| test.c:782:5:782:5 | i | 1.0 | -| test.c:782:5:782:12 | ... *= ... | 1.0 | -| test.c:782:10:782:12 | - ... | 1.0 | -| test.c:782:11:782:12 | 11 | 1.0 | -| test.c:783:9:783:9 | i | 1.0 | -| test.c:785:7:785:7 | i | 2.0 | -| test.c:785:7:785:13 | ... == ... | 1.0 | -| test.c:785:12:785:13 | - ... | 1.0 | -| test.c:785:13:785:13 | 1 | 1.0 | -| test.c:786:5:786:5 | i | 1.0 | -| test.c:786:5:786:27 | ... = ... | 2.0 | -| test.c:786:9:786:9 | i | 2.0 | -| test.c:786:9:786:27 | ... * ... | 2.0 | -| test.c:786:13:786:27 | (int)... | 1.0 | -| test.c:786:18:786:27 | 4294967295 | 1.0 | -| test.c:787:9:787:9 | i | 2.0 | -| test.c:789:3:789:3 | i | 1.0 | -| test.c:789:3:789:12 | ... = ... | 4.0 | -| test.c:789:7:789:7 | i | 4.0 | -| test.c:789:7:789:12 | ... * ... | 4.0 | -| test.c:789:11:789:12 | - ... | 1.0 | -| test.c:789:12:789:12 | 1 | 1.0 | -| test.c:790:10:790:10 | i | 4.0 | -| test.c:792:20:792:20 | 1 | 1.0 | -| test.c:792:20:792:20 | (signed char)... | 1.0 | -| test.c:793:3:793:3 | i | 1.0 | -| test.c:793:3:793:17 | ... = ... | 1.0 | -| test.c:793:7:793:17 | (...) | 1.0 | -| test.c:793:7:793:17 | (int)... | 1.0 | -| test.c:793:8:793:11 | * ... | 1.0 | -| test.c:793:8:793:16 | ... *= ... | 1.0 | -| test.c:793:10:793:11 | sc | 1.0 | -| test.c:793:16:793:16 | 2 | 1.0 | -| test.c:795:7:795:7 | i | 1.0 | -| test.c:797:10:797:10 | 0 | 1.0 | -| test.c:802:7:802:7 | (int)... | 1.0 | -| test.c:802:7:802:7 | n | 1.0 | -| test.c:804:7:804:7 | n | 1.0 | -| test.c:804:7:804:11 | ... > ... | 1.0 | -| test.c:804:11:804:11 | 0 | 1.0 | -| test.c:804:11:804:11 | (unsigned int)... | 1.0 | -| test.c:805:9:805:9 | (int)... | 1.0 | -| test.c:805:9:805:9 | n | 1.0 | -| test.c:808:7:808:7 | n | 2.0 | -| test.c:808:7:808:12 | ... != ... | 1.0 | -| test.c:808:12:808:12 | 0 | 1.0 | -| test.c:808:12:808:12 | (unsigned int)... | 1.0 | -| test.c:809:9:809:9 | (int)... | 2.0 | -| test.c:809:9:809:9 | n | 2.0 | -| test.c:811:9:811:9 | (int)... | 2.0 | -| test.c:811:9:811:9 | n | 2.0 | -| test.c:814:7:814:8 | ! ... | 1.0 | -| test.c:814:8:814:8 | n | 4.0 | -| test.c:815:9:815:9 | (int)... | 4.0 | -| test.c:815:9:815:9 | n | 4.0 | -| test.c:817:9:817:9 | (int)... | 4.0 | -| test.c:817:9:817:9 | n | 4.0 | -| test.c:820:10:820:10 | n | 13.0 | -| test.c:820:10:820:15 | ... != ... | 1.0 | -| test.c:820:15:820:15 | 0 | 1.0 | -| test.c:820:15:820:15 | (unsigned int)... | 1.0 | -| test.c:821:5:821:5 | n | 13.0 | -| test.c:821:5:821:7 | ... -- | 13.0 | -| test.c:824:7:824:7 | (int)... | 13.0 | -| test.c:824:7:824:7 | n | 13.0 | -| test.c:828:7:828:7 | (int)... | 1.0 | -| test.c:828:7:828:7 | n | 1.0 | -| test.c:828:7:828:11 | ... < ... | 1.0 | -| test.c:828:11:828:11 | 0 | 1.0 | -| test.c:831:7:831:7 | (int)... | 1.0 | -| test.c:831:7:831:7 | n | 1.0 | -| test.c:831:7:831:12 | ... == ... | 1.0 | -| test.c:831:12:831:12 | 0 | 1.0 | -| test.c:832:9:832:9 | (int)... | 1.0 | -| test.c:832:9:832:9 | n | 1.0 | -| test.c:834:9:834:9 | (int)... | 1.0 | -| test.c:834:9:834:9 | n | 1.0 | -| test.c:837:7:837:7 | n | 2.0 | -| test.c:838:9:838:9 | (int)... | 2.0 | -| test.c:838:9:838:9 | n | 2.0 | -| test.c:840:9:840:9 | (int)... | 2.0 | -| test.c:840:9:840:9 | n | 2.0 | -| test.c:843:10:843:10 | (int)... | 13.0 | -| test.c:843:10:843:10 | n | 12.0 | -| test.c:843:10:843:15 | ... != ... | 1.0 | -| test.c:843:15:843:15 | 0 | 1.0 | -| test.c:844:5:844:5 | n | 12.0 | -| test.c:844:5:844:7 | ... -- | 12.0 | -| test.c:847:7:847:7 | (int)... | 12.0 | -| test.c:847:7:847:7 | n | 12.0 | -| test.c:851:7:851:7 | (int)... | 1.0 | -| test.c:851:7:851:7 | n | 1.0 | -| test.c:851:7:851:12 | ... != ... | 1.0 | -| test.c:851:12:851:12 | 0 | 1.0 | -| test.c:852:9:852:9 | (int)... | 1.0 | -| test.c:852:9:852:9 | n | 1.0 | -| test.c:852:9:852:14 | ... >= ... | 1.0 | -| test.c:852:14:852:14 | 0 | 1.0 | -| test.c:853:11:853:11 | (int)... | 1.0 | -| test.c:853:11:853:11 | n | 1.0 | -| test.c:857:7:857:7 | (int)... | 2.0 | -| test.c:857:7:857:7 | n | 2.0 | -| test.c:857:7:857:12 | ... >= ... | 1.0 | -| test.c:857:12:857:12 | 5 | 1.0 | -| test.c:858:9:858:9 | 2 | 1.0 | -| test.c:858:9:858:13 | ... * ... | 2.0 | -| test.c:858:9:858:18 | ... - ... | 2.0 | -| test.c:858:9:858:23 | ... == ... | 1.0 | -| test.c:858:13:858:13 | (int)... | 2.0 | -| test.c:858:13:858:13 | n | 2.0 | -| test.c:858:17:858:18 | 10 | 1.0 | -| test.c:858:23:858:23 | 0 | 1.0 | -| test.c:861:9:861:9 | (int)... | 2.0 | -| test.c:861:9:861:9 | n | 2.0 | -| test.c:864:7:864:7 | (int)... | 3.0 | -| test.c:864:7:864:7 | n | 3.0 | -| test.c:864:7:864:17 | ... != ... | 1.0 | -| test.c:864:7:864:32 | ... && ... | 1.0 | -| test.c:864:12:864:17 | - ... | 1.0 | -| test.c:864:13:864:17 | 32768 | 1.0 | -| test.c:864:22:864:22 | (int)... | 3.0 | -| test.c:864:22:864:22 | n | 3.0 | -| test.c:864:22:864:32 | ... != ... | 1.0 | -| test.c:864:27:864:32 | - ... | 1.0 | -| test.c:864:28:864:32 | 32767 | 1.0 | -| test.c:865:9:865:9 | (int)... | 3.0 | -| test.c:865:9:865:9 | n | 3.0 | -| test.c:868:7:868:7 | (int)... | 4.0 | -| test.c:868:7:868:7 | n | 4.0 | +| test.c:714:28:714:29 | 13 | 1.0 | +| test.c:714:28:714:29 | (unsigned int)... | 1.0 | +| test.c:714:28:714:34 | ... <= ... | 1.0 | +| test.c:714:34:714:34 | b | 7.0 | +| test.c:714:39:714:39 | b | 7.0 | +| test.c:714:39:714:45 | ... <= ... | 1.0 | +| test.c:714:44:714:45 | 23 | 1.0 | +| test.c:714:44:714:45 | (unsigned int)... | 1.0 | +| test.c:715:13:715:13 | a | 3.0 | +| test.c:715:13:715:15 | (int)... | 21.0 | +| test.c:715:13:715:15 | ... * ... | 21.0 | +| test.c:715:15:715:15 | b | 7.0 | +| test.c:716:5:716:9 | total | 14.0 | +| test.c:716:5:716:14 | ... += ... | 294.0 | +| test.c:716:14:716:14 | r | 21.0 | +| test.c:719:10:719:14 | total | 308.0 | +| test.c:723:14:723:15 | 0 | 1.0 | +| test.c:725:7:725:7 | 5 | 1.0 | +| test.c:725:7:725:7 | (unsigned int)... | 1.0 | +| test.c:725:7:725:12 | ... <= ... | 1.0 | +| test.c:725:7:725:23 | ... && ... | 1.0 | +| test.c:725:12:725:12 | b | 1.0 | +| test.c:725:17:725:17 | b | 1.0 | +| test.c:725:17:725:23 | ... <= ... | 1.0 | +| test.c:725:22:725:23 | 23 | 1.0 | +| test.c:725:22:725:23 | (unsigned int)... | 1.0 | +| test.c:726:13:726:14 | 11 | 1.0 | +| test.c:726:13:726:14 | (unsigned int)... | 1.0 | +| test.c:726:13:726:16 | (int)... | 1.0 | +| test.c:726:13:726:16 | ... * ... | 1.0 | +| test.c:726:16:726:16 | b | 1.0 | +| test.c:727:5:727:9 | total | 1.0 | +| test.c:727:5:727:14 | ... += ... | 1.0 | +| test.c:727:14:727:14 | r | 1.0 | +| test.c:729:7:729:7 | 0 | 1.0 | +| test.c:729:7:729:7 | (unsigned int)... | 1.0 | +| test.c:729:7:729:12 | ... <= ... | 1.0 | +| test.c:729:7:729:23 | ... && ... | 1.0 | +| test.c:729:12:729:12 | b | 2.0 | +| test.c:729:17:729:17 | b | 2.0 | +| test.c:729:17:729:23 | ... <= ... | 1.0 | +| test.c:729:22:729:23 | 23 | 1.0 | +| test.c:729:22:729:23 | (unsigned int)... | 1.0 | +| test.c:730:13:730:14 | 11 | 1.0 | +| test.c:730:13:730:14 | (unsigned int)... | 1.0 | +| test.c:730:13:730:16 | (int)... | 2.0 | +| test.c:730:13:730:16 | ... * ... | 2.0 | +| test.c:730:16:730:16 | b | 2.0 | +| test.c:731:5:731:9 | total | 2.0 | +| test.c:731:5:731:14 | ... += ... | 4.0 | +| test.c:731:14:731:14 | r | 2.0 | +| test.c:733:7:733:8 | 13 | 1.0 | +| test.c:733:7:733:8 | (unsigned int)... | 1.0 | +| test.c:733:7:733:13 | ... <= ... | 1.0 | +| test.c:733:7:733:24 | ... && ... | 1.0 | +| test.c:733:13:733:13 | b | 3.0 | +| test.c:733:18:733:18 | b | 3.0 | +| test.c:733:18:733:24 | ... <= ... | 1.0 | +| test.c:733:23:733:24 | 23 | 1.0 | +| test.c:733:23:733:24 | (unsigned int)... | 1.0 | +| test.c:734:13:734:14 | 11 | 1.0 | +| test.c:734:13:734:14 | (unsigned int)... | 1.0 | +| test.c:734:13:734:16 | (int)... | 3.0 | +| test.c:734:13:734:16 | ... * ... | 3.0 | +| test.c:734:16:734:16 | b | 3.0 | +| test.c:735:5:735:9 | total | 6.0 | +| test.c:735:5:735:14 | ... += ... | 18.0 | +| test.c:735:14:735:14 | r | 3.0 | +| test.c:738:10:738:14 | total | 24.0 | +| test.c:743:3:743:3 | x | 1.0 | +| test.c:743:3:743:22 | ... = ... | 1.0 | +| test.c:743:7:743:7 | y | 1.0 | +| test.c:743:7:743:22 | ... = ... | 1.0 | +| test.c:743:11:743:22 | 1000000003 | 1.0 | +| test.c:744:3:744:4 | xy | 1.0 | +| test.c:744:3:744:12 | ... = ... | 1.0 | +| test.c:744:8:744:8 | x | 1.0 | +| test.c:744:8:744:12 | ... * ... | 1.0 | +| test.c:744:12:744:12 | y | 1.0 | +| test.c:745:10:745:11 | xy | 1.0 | +| test.c:750:3:750:3 | x | 1.0 | +| test.c:750:3:750:14 | ... = ... | 1.0 | +| test.c:750:7:750:14 | 274177 | 1.0 | +| test.c:751:3:751:3 | y | 1.0 | +| test.c:751:3:751:22 | ... = ... | 1.0 | +| test.c:751:7:751:22 | 67280421310721 | 1.0 | +| test.c:752:3:752:4 | xy | 1.0 | +| test.c:752:3:752:12 | ... = ... | 1.0 | +| test.c:752:8:752:8 | x | 1.0 | +| test.c:752:8:752:12 | ... * ... | 1.0 | +| test.c:752:12:752:12 | y | 1.0 | +| test.c:753:10:753:11 | xy | 1.0 | +| test.c:757:7:757:8 | ui | 1.0 | +| test.c:757:7:757:14 | ... >= ... | 1.0 | +| test.c:757:13:757:14 | 10 | 1.0 | +| test.c:757:13:757:14 | (unsigned int)... | 1.0 | +| test.c:758:28:758:44 | (unsigned long)... | 1.0 | +| test.c:758:28:758:49 | ... * ... | 1.0 | +| test.c:758:43:758:44 | ui | 1.0 | +| test.c:758:48:758:49 | (unsigned long)... | 1.0 | +| test.c:758:48:758:49 | ui | 1.0 | +| test.c:759:12:759:17 | result | 1.0 | +| test.c:761:7:761:8 | ul | 1.0 | +| test.c:761:7:761:14 | ... >= ... | 1.0 | +| test.c:761:13:761:14 | 10 | 1.0 | +| test.c:761:13:761:14 | (unsigned long)... | 1.0 | +| test.c:762:28:762:29 | ul | 1.0 | +| test.c:762:28:762:34 | ... * ... | 1.0 | +| test.c:762:33:762:34 | ul | 1.0 | +| test.c:763:12:763:17 | result | 1.0 | +| test.c:765:10:765:10 | 0 | 1.0 | +| test.c:765:10:765:10 | (unsigned long)... | 1.0 | +| test.c:769:7:769:8 | ui | 1.0 | +| test.c:769:7:769:14 | ... <= ... | 1.0 | +| test.c:769:7:769:25 | ... && ... | 1.0 | +| test.c:769:13:769:14 | 10 | 1.0 | +| test.c:769:13:769:14 | (unsigned int)... | 1.0 | +| test.c:769:19:769:20 | ui | 1.0 | +| test.c:769:19:769:25 | ... >= ... | 1.0 | +| test.c:769:25:769:25 | 2 | 1.0 | +| test.c:769:25:769:25 | (unsigned int)... | 1.0 | +| test.c:770:5:770:6 | ui | 1.0 | +| test.c:770:5:770:16 | ... *= ... | 1.0 | +| test.c:770:11:770:12 | ui | 1.0 | +| test.c:770:11:770:16 | ... + ... | 1.0 | +| test.c:770:16:770:16 | 0 | 1.0 | +| test.c:770:16:770:16 | (unsigned int)... | 1.0 | +| test.c:771:12:771:13 | (unsigned long)... | 1.0 | +| test.c:771:12:771:13 | ui | 1.0 | +| test.c:774:26:774:27 | 10 | 1.0 | +| test.c:774:26:774:27 | (unsigned int)... | 1.0 | +| test.c:775:3:775:9 | uiconst | 1.0 | +| test.c:775:3:775:14 | ... *= ... | 1.0 | +| test.c:775:14:775:14 | 4 | 1.0 | +| test.c:775:14:775:14 | (unsigned int)... | 1.0 | +| test.c:777:27:777:28 | 10 | 1.0 | +| test.c:777:27:777:28 | (unsigned long)... | 1.0 | +| test.c:778:3:778:9 | ulconst | 1.0 | +| test.c:778:3:778:14 | ... *= ... | 1.0 | +| test.c:778:14:778:14 | 4 | 1.0 | +| test.c:778:14:778:14 | (unsigned long)... | 1.0 | +| test.c:779:10:779:16 | (unsigned long)... | 1.0 | +| test.c:779:10:779:16 | uiconst | 1.0 | +| test.c:779:10:779:26 | ... + ... | 1.0 | +| test.c:779:20:779:26 | ulconst | 1.0 | +| test.c:783:7:783:7 | i | 1.0 | +| test.c:783:7:783:13 | ... >= ... | 1.0 | +| test.c:783:7:783:23 | ... && ... | 1.0 | +| test.c:783:12:783:13 | - ... | 1.0 | +| test.c:783:13:783:13 | 1 | 1.0 | +| test.c:783:18:783:18 | i | 1.0 | +| test.c:783:18:783:23 | ... <= ... | 1.0 | +| test.c:783:23:783:23 | 2 | 1.0 | +| test.c:784:5:784:5 | i | 1.0 | +| test.c:784:5:784:13 | ... = ... | 1.0 | +| test.c:784:9:784:9 | 5 | 1.0 | +| test.c:784:9:784:13 | ... * ... | 1.0 | +| test.c:784:13:784:13 | i | 1.0 | +| test.c:785:9:785:9 | i | 1.0 | +| test.c:787:5:787:5 | i | 1.0 | +| test.c:787:5:787:14 | ... = ... | 1.0 | +| test.c:787:9:787:9 | i | 1.0 | +| test.c:787:9:787:14 | ... * ... | 1.0 | +| test.c:787:13:787:14 | - ... | 1.0 | +| test.c:787:14:787:14 | 3 | 1.0 | +| test.c:788:9:788:9 | i | 1.0 | +| test.c:790:5:790:5 | i | 1.0 | +| test.c:790:5:790:10 | ... *= ... | 1.0 | +| test.c:790:10:790:10 | 7 | 1.0 | +| test.c:791:9:791:9 | i | 1.0 | +| test.c:793:5:793:5 | i | 1.0 | +| test.c:793:5:793:12 | ... *= ... | 1.0 | +| test.c:793:10:793:12 | - ... | 1.0 | +| test.c:793:11:793:12 | 11 | 1.0 | +| test.c:794:9:794:9 | i | 1.0 | +| test.c:796:7:796:7 | i | 2.0 | +| test.c:796:7:796:13 | ... == ... | 1.0 | +| test.c:796:12:796:13 | - ... | 1.0 | +| test.c:796:13:796:13 | 1 | 1.0 | +| test.c:797:5:797:5 | i | 1.0 | +| test.c:797:5:797:27 | ... = ... | 2.0 | +| test.c:797:9:797:9 | i | 2.0 | +| test.c:797:9:797:27 | ... * ... | 2.0 | +| test.c:797:13:797:27 | (int)... | 1.0 | +| test.c:797:18:797:27 | 4294967295 | 1.0 | +| test.c:798:9:798:9 | i | 2.0 | +| test.c:800:3:800:3 | i | 1.0 | +| test.c:800:3:800:12 | ... = ... | 4.0 | +| test.c:800:7:800:7 | i | 4.0 | +| test.c:800:7:800:12 | ... * ... | 4.0 | +| test.c:800:11:800:12 | - ... | 1.0 | +| test.c:800:12:800:12 | 1 | 1.0 | +| test.c:801:10:801:10 | i | 4.0 | +| test.c:803:20:803:20 | 1 | 1.0 | +| test.c:803:20:803:20 | (signed char)... | 1.0 | +| test.c:804:3:804:3 | i | 1.0 | +| test.c:804:3:804:17 | ... = ... | 1.0 | +| test.c:804:7:804:17 | (...) | 1.0 | +| test.c:804:7:804:17 | (int)... | 1.0 | +| test.c:804:8:804:11 | * ... | 1.0 | +| test.c:804:8:804:16 | ... *= ... | 1.0 | +| test.c:804:10:804:11 | sc | 1.0 | +| test.c:804:16:804:16 | 2 | 1.0 | +| test.c:806:7:806:7 | i | 1.0 | +| test.c:808:10:808:10 | 0 | 1.0 | +| test.c:813:7:813:7 | (int)... | 1.0 | +| test.c:813:7:813:7 | n | 1.0 | +| test.c:815:7:815:7 | n | 1.0 | +| test.c:815:7:815:11 | ... > ... | 1.0 | +| test.c:815:11:815:11 | 0 | 1.0 | +| test.c:815:11:815:11 | (unsigned int)... | 1.0 | +| test.c:816:9:816:9 | (int)... | 1.0 | +| test.c:816:9:816:9 | n | 1.0 | +| test.c:819:7:819:7 | n | 2.0 | +| test.c:819:7:819:12 | ... != ... | 1.0 | +| test.c:819:12:819:12 | 0 | 1.0 | +| test.c:819:12:819:12 | (unsigned int)... | 1.0 | +| test.c:820:9:820:9 | (int)... | 2.0 | +| test.c:820:9:820:9 | n | 2.0 | +| test.c:822:9:822:9 | (int)... | 2.0 | +| test.c:822:9:822:9 | n | 2.0 | +| test.c:825:7:825:8 | ! ... | 1.0 | +| test.c:825:8:825:8 | n | 4.0 | +| test.c:826:9:826:9 | (int)... | 4.0 | +| test.c:826:9:826:9 | n | 4.0 | +| test.c:828:9:828:9 | (int)... | 4.0 | +| test.c:828:9:828:9 | n | 4.0 | +| test.c:831:10:831:10 | n | 13.0 | +| test.c:831:10:831:15 | ... != ... | 1.0 | +| test.c:831:15:831:15 | 0 | 1.0 | +| test.c:831:15:831:15 | (unsigned int)... | 1.0 | +| test.c:832:5:832:5 | n | 13.0 | +| test.c:832:5:832:7 | ... -- | 13.0 | +| test.c:835:7:835:7 | (int)... | 13.0 | +| test.c:835:7:835:7 | n | 13.0 | +| test.c:839:7:839:7 | (int)... | 1.0 | +| test.c:839:7:839:7 | n | 1.0 | +| test.c:839:7:839:11 | ... < ... | 1.0 | +| test.c:839:11:839:11 | 0 | 1.0 | +| test.c:842:7:842:7 | (int)... | 1.0 | +| test.c:842:7:842:7 | n | 1.0 | +| test.c:842:7:842:12 | ... == ... | 1.0 | +| test.c:842:12:842:12 | 0 | 1.0 | +| test.c:843:9:843:9 | (int)... | 1.0 | +| test.c:843:9:843:9 | n | 1.0 | +| test.c:845:9:845:9 | (int)... | 1.0 | +| test.c:845:9:845:9 | n | 1.0 | +| test.c:848:7:848:7 | n | 2.0 | +| test.c:849:9:849:9 | (int)... | 2.0 | +| test.c:849:9:849:9 | n | 2.0 | +| test.c:851:9:851:9 | (int)... | 2.0 | +| test.c:851:9:851:9 | n | 2.0 | +| test.c:854:10:854:10 | (int)... | 13.0 | +| test.c:854:10:854:10 | n | 12.0 | +| test.c:854:10:854:15 | ... != ... | 1.0 | +| test.c:854:15:854:15 | 0 | 1.0 | +| test.c:855:5:855:5 | n | 12.0 | +| test.c:855:5:855:7 | ... -- | 12.0 | +| test.c:858:7:858:7 | (int)... | 12.0 | +| test.c:858:7:858:7 | n | 12.0 | +| test.c:862:7:862:7 | (int)... | 1.0 | +| test.c:862:7:862:7 | n | 1.0 | +| test.c:862:7:862:12 | ... != ... | 1.0 | +| test.c:862:12:862:12 | 0 | 1.0 | +| test.c:863:9:863:9 | (int)... | 1.0 | +| test.c:863:9:863:9 | n | 1.0 | +| test.c:863:9:863:14 | ... >= ... | 1.0 | +| test.c:863:14:863:14 | 0 | 1.0 | +| test.c:864:11:864:11 | (int)... | 1.0 | +| test.c:864:11:864:11 | n | 1.0 | +| test.c:868:7:868:7 | (int)... | 2.0 | +| test.c:868:7:868:7 | n | 2.0 | | test.c:868:7:868:12 | ... >= ... | 1.0 | -| test.c:868:12:868:12 | 0 | 1.0 | -| test.c:869:5:869:5 | n | 4.0 | -| test.c:869:5:869:14 | ... ? ... : ... | 16.0 | -| test.c:869:10:869:10 | (int)... | 4.0 | -| test.c:869:10:869:10 | n | 4.0 | -| test.c:869:14:869:14 | (int)... | 4.0 | -| test.c:869:14:869:14 | n | 4.0 | -| test.c:870:5:870:6 | ! ... | 1.0 | -| test.c:870:5:870:14 | ... ? ... : ... | 64.0 | -| test.c:870:6:870:6 | n | 8.0 | -| test.c:870:10:870:10 | (int)... | 8.0 | -| test.c:870:10:870:10 | n | 8.0 | -| test.c:870:14:870:14 | (int)... | 8.0 | -| test.c:870:14:870:14 | n | 8.0 | -| test.c:881:7:881:8 | (unsigned long)... | 1.0 | -| test.c:881:7:881:8 | ss | 1.0 | -| test.c:881:7:881:22 | ... < ... | 1.0 | -| test.c:881:12:881:22 | sizeof(int) | 1.0 | -| test.c:882:9:882:10 | (int)... | 1.0 | -| test.c:882:9:882:10 | ss | 1.0 | -| test.c:885:7:885:8 | (int)... | 2.0 | -| test.c:885:7:885:8 | ss | 2.0 | -| test.c:885:7:885:17 | ... < ... | 1.0 | -| test.c:885:12:885:17 | 32769 | 1.0 | -| test.c:886:9:886:10 | (int)... | 2.0 | -| test.c:886:9:886:10 | ss | 2.0 | -| test.c:889:7:889:15 | (int)... | 1.0 | -| test.c:889:7:889:15 | (short)... | 1.0 | -| test.c:889:7:889:20 | ... >= ... | 1.0 | -| test.c:889:14:889:15 | us | 1.0 | -| test.c:889:20:889:20 | 0 | 1.0 | -| test.c:890:9:890:10 | (int)... | 1.0 | -| test.c:890:9:890:10 | us | 1.0 | -| test.c:893:7:893:15 | (int)... | 2.0 | -| test.c:893:7:893:15 | (short)... | 2.0 | -| test.c:893:7:893:21 | ... >= ... | 1.0 | -| test.c:893:14:893:15 | us | 2.0 | -| test.c:893:20:893:21 | - ... | 1.0 | -| test.c:893:21:893:21 | 1 | 1.0 | -| test.c:894:9:894:10 | (int)... | 2.0 | -| test.c:894:9:894:10 | us | 2.0 | -| test.c:897:7:897:8 | (unsigned long)... | 3.0 | -| test.c:897:7:897:8 | ss | 3.0 | -| test.c:897:7:897:23 | ... >= ... | 1.0 | -| test.c:897:13:897:23 | sizeof(int) | 1.0 | -| test.c:898:9:898:10 | (int)... | 3.0 | -| test.c:898:9:898:10 | ss | 3.0 | -| test.c:901:7:901:8 | (int)... | 4.0 | -| test.c:901:7:901:8 | ss | 4.0 | -| test.c:901:7:901:12 | (unsigned long)... | 4.0 | -| test.c:901:7:901:12 | ... + ... | 4.0 | -| test.c:901:7:901:26 | ... < ... | 1.0 | -| test.c:901:12:901:12 | 1 | 1.0 | -| test.c:901:16:901:26 | sizeof(int) | 1.0 | -| test.c:902:9:902:10 | (int)... | 4.0 | -| test.c:902:9:902:10 | ss | 4.0 | -| test.c:908:8:908:8 | s | 1.0 | -| test.c:908:8:908:12 | ... = ... | 1.0 | -| test.c:908:12:908:12 | 0 | 1.0 | -| test.c:908:15:908:15 | s | 13.0 | -| test.c:908:15:908:20 | ... < ... | 1.0 | -| test.c:908:19:908:20 | 10 | 1.0 | -| test.c:908:23:908:23 | s | 13.0 | -| test.c:908:23:908:25 | ... ++ | 13.0 | -| test.c:909:18:909:18 | s | 13.0 | -| test.c:909:18:909:22 | ... + ... | 13.0 | -| test.c:909:22:909:22 | s | 13.0 | -| test.c:910:9:910:14 | result | 13.0 | -| test.c:915:10:915:11 | 0 | 1.0 | -| test.c:916:7:916:7 | i | 1.0 | -| test.c:916:7:916:11 | ... < ... | 1.0 | -| test.c:916:11:916:11 | 0 | 1.0 | -| test.c:917:9:917:9 | i | 1.0 | -| test.c:920:20:920:20 | 0 | 1.0 | -| test.c:920:20:920:20 | (unsigned int)... | 1.0 | -| test.c:921:7:921:7 | u | 1.0 | -| test.c:921:7:921:11 | ... < ... | 1.0 | -| test.c:921:11:921:11 | 0 | 1.0 | -| test.c:921:11:921:11 | (unsigned int)... | 1.0 | -| test.c:922:9:922:9 | (int)... | 1.0 | -| test.c:922:9:922:9 | u | 1.0 | -| test.c:927:12:927:12 | s | 1.0 | -| test.c:927:12:927:16 | ... % ... | 1.0 | -| test.c:927:16:927:16 | 5 | 1.0 | -| test.c:928:7:928:8 | s2 | 1.0 | -| test.c:933:7:933:7 | x | 1.0 | -| test.c:934:9:934:9 | y | 1.0 | -| test.c:934:9:934:14 | ... != ... | 1.0 | -| test.c:934:14:934:14 | 0 | 1.0 | -| test.c:935:12:935:12 | 0 | 1.0 | -| test.c:938:7:938:7 | y | 2.0 | -| test.c:947:7:947:7 | x | 1.0 | -| test.c:947:7:947:13 | ... >= ... | 1.0 | -| test.c:947:12:947:13 | 10 | 1.0 | -| test.c:952:7:952:7 | x | 13.0 | -| test.c:957:16:957:26 | 2147483647 | 1.0 | -| test.c:958:16:958:19 | 256 | 1.0 | -| test.c:959:7:959:13 | (...) | 1.0 | -| test.c:959:7:959:20 | ... <= ... | 1.0 | -| test.c:959:8:959:8 | x | 1.0 | -| test.c:959:8:959:12 | ... + ... | 1.0 | -| test.c:959:12:959:12 | y | 1.0 | -| test.c:959:18:959:20 | 512 | 1.0 | -| test.c:960:9:960:9 | x | 1.0 | -| test.c:961:9:961:9 | y | 1.0 | +| test.c:868:12:868:12 | 5 | 1.0 | +| test.c:869:9:869:9 | 2 | 1.0 | +| test.c:869:9:869:13 | ... * ... | 2.0 | +| test.c:869:9:869:18 | ... - ... | 2.0 | +| test.c:869:9:869:23 | ... == ... | 1.0 | +| test.c:869:13:869:13 | (int)... | 2.0 | +| test.c:869:13:869:13 | n | 2.0 | +| test.c:869:17:869:18 | 10 | 1.0 | +| test.c:869:23:869:23 | 0 | 1.0 | +| test.c:872:9:872:9 | (int)... | 2.0 | +| test.c:872:9:872:9 | n | 2.0 | +| test.c:875:7:875:7 | (int)... | 3.0 | +| test.c:875:7:875:7 | n | 3.0 | +| test.c:875:7:875:17 | ... != ... | 1.0 | +| test.c:875:7:875:32 | ... && ... | 1.0 | +| test.c:875:12:875:17 | - ... | 1.0 | +| test.c:875:13:875:17 | 32768 | 1.0 | +| test.c:875:22:875:22 | (int)... | 3.0 | +| test.c:875:22:875:22 | n | 3.0 | +| test.c:875:22:875:32 | ... != ... | 1.0 | +| test.c:875:27:875:32 | - ... | 1.0 | +| test.c:875:28:875:32 | 32767 | 1.0 | +| test.c:876:9:876:9 | (int)... | 3.0 | +| test.c:876:9:876:9 | n | 3.0 | +| test.c:879:7:879:7 | (int)... | 4.0 | +| test.c:879:7:879:7 | n | 4.0 | +| test.c:879:7:879:12 | ... >= ... | 1.0 | +| test.c:879:12:879:12 | 0 | 1.0 | +| test.c:880:5:880:5 | n | 4.0 | +| test.c:880:5:880:14 | ... ? ... : ... | 16.0 | +| test.c:880:10:880:10 | (int)... | 4.0 | +| test.c:880:10:880:10 | n | 4.0 | +| test.c:880:14:880:14 | (int)... | 4.0 | +| test.c:880:14:880:14 | n | 4.0 | +| test.c:881:5:881:6 | ! ... | 1.0 | +| test.c:881:5:881:14 | ... ? ... : ... | 64.0 | +| test.c:881:6:881:6 | n | 8.0 | +| test.c:881:10:881:10 | (int)... | 8.0 | +| test.c:881:10:881:10 | n | 8.0 | +| test.c:881:14:881:14 | (int)... | 8.0 | +| test.c:881:14:881:14 | n | 8.0 | +| test.c:892:7:892:8 | (unsigned long)... | 1.0 | +| test.c:892:7:892:8 | ss | 1.0 | +| test.c:892:7:892:22 | ... < ... | 1.0 | +| test.c:892:12:892:22 | sizeof(int) | 1.0 | +| test.c:893:9:893:10 | (int)... | 1.0 | +| test.c:893:9:893:10 | ss | 1.0 | +| test.c:896:7:896:8 | (int)... | 2.0 | +| test.c:896:7:896:8 | ss | 2.0 | +| test.c:896:7:896:17 | ... < ... | 1.0 | +| test.c:896:12:896:17 | 32769 | 1.0 | +| test.c:897:9:897:10 | (int)... | 2.0 | +| test.c:897:9:897:10 | ss | 2.0 | +| test.c:900:7:900:15 | (int)... | 1.0 | +| test.c:900:7:900:15 | (short)... | 1.0 | +| test.c:900:7:900:20 | ... >= ... | 1.0 | +| test.c:900:14:900:15 | us | 1.0 | +| test.c:900:20:900:20 | 0 | 1.0 | +| test.c:901:9:901:10 | (int)... | 1.0 | +| test.c:901:9:901:10 | us | 1.0 | +| test.c:904:7:904:15 | (int)... | 2.0 | +| test.c:904:7:904:15 | (short)... | 2.0 | +| test.c:904:7:904:21 | ... >= ... | 1.0 | +| test.c:904:14:904:15 | us | 2.0 | +| test.c:904:20:904:21 | - ... | 1.0 | +| test.c:904:21:904:21 | 1 | 1.0 | +| test.c:905:9:905:10 | (int)... | 2.0 | +| test.c:905:9:905:10 | us | 2.0 | +| test.c:908:7:908:8 | (unsigned long)... | 3.0 | +| test.c:908:7:908:8 | ss | 3.0 | +| test.c:908:7:908:23 | ... >= ... | 1.0 | +| test.c:908:13:908:23 | sizeof(int) | 1.0 | +| test.c:909:9:909:10 | (int)... | 3.0 | +| test.c:909:9:909:10 | ss | 3.0 | +| test.c:912:7:912:8 | (int)... | 4.0 | +| test.c:912:7:912:8 | ss | 4.0 | +| test.c:912:7:912:12 | (unsigned long)... | 4.0 | +| test.c:912:7:912:12 | ... + ... | 4.0 | +| test.c:912:7:912:26 | ... < ... | 1.0 | +| test.c:912:12:912:12 | 1 | 1.0 | +| test.c:912:16:912:26 | sizeof(int) | 1.0 | +| test.c:913:9:913:10 | (int)... | 4.0 | +| test.c:913:9:913:10 | ss | 4.0 | +| test.c:919:8:919:8 | s | 1.0 | +| test.c:919:8:919:12 | ... = ... | 1.0 | +| test.c:919:12:919:12 | 0 | 1.0 | +| test.c:919:15:919:15 | s | 13.0 | +| test.c:919:15:919:20 | ... < ... | 1.0 | +| test.c:919:19:919:20 | 10 | 1.0 | +| test.c:919:23:919:23 | s | 13.0 | +| test.c:919:23:919:25 | ... ++ | 13.0 | +| test.c:920:18:920:18 | s | 13.0 | +| test.c:920:18:920:22 | ... + ... | 13.0 | +| test.c:920:22:920:22 | s | 13.0 | +| test.c:921:9:921:14 | result | 13.0 | +| test.c:926:10:926:11 | 0 | 1.0 | +| test.c:927:7:927:7 | i | 1.0 | +| test.c:927:7:927:11 | ... < ... | 1.0 | +| test.c:927:11:927:11 | 0 | 1.0 | +| test.c:928:9:928:9 | i | 1.0 | +| test.c:931:20:931:20 | 0 | 1.0 | +| test.c:931:20:931:20 | (unsigned int)... | 1.0 | +| test.c:932:7:932:7 | u | 1.0 | +| test.c:932:7:932:11 | ... < ... | 1.0 | +| test.c:932:11:932:11 | 0 | 1.0 | +| test.c:932:11:932:11 | (unsigned int)... | 1.0 | +| test.c:933:9:933:9 | (int)... | 1.0 | +| test.c:933:9:933:9 | u | 1.0 | +| test.c:938:12:938:12 | s | 1.0 | +| test.c:938:12:938:16 | ... % ... | 1.0 | +| test.c:938:16:938:16 | 5 | 1.0 | +| test.c:939:7:939:8 | s2 | 1.0 | +| test.c:944:7:944:7 | x | 1.0 | +| test.c:945:9:945:9 | y | 1.0 | +| test.c:945:9:945:14 | ... != ... | 1.0 | +| test.c:945:14:945:14 | 0 | 1.0 | +| test.c:946:12:946:12 | 0 | 1.0 | +| test.c:949:7:949:7 | y | 2.0 | +| test.c:958:7:958:7 | x | 1.0 | +| test.c:958:7:958:13 | ... >= ... | 1.0 | +| test.c:958:12:958:13 | 10 | 1.0 | +| test.c:963:7:963:7 | x | 13.0 | +| test.c:968:16:968:26 | 2147483647 | 1.0 | +| test.c:969:16:969:19 | 256 | 1.0 | +| test.c:970:7:970:13 | (...) | 1.0 | +| test.c:970:7:970:20 | ... <= ... | 1.0 | +| test.c:970:8:970:8 | x | 1.0 | +| test.c:970:8:970:12 | ... + ... | 1.0 | +| test.c:970:12:970:12 | y | 1.0 | +| test.c:970:18:970:20 | 512 | 1.0 | +| test.c:971:9:971:9 | x | 1.0 | +| test.c:972:9:972:9 | y | 1.0 | | test.cpp:9:11:9:12 | - ... | 1.0 | | test.cpp:9:12:9:12 | 1 | 1.0 | | test.cpp:10:7:10:7 | (bool)... | 1.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected index 3edc677b717..f4e3cdb8cc2 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected @@ -1,148 +1,153 @@ | test.c:154:10:154:40 | ... ? ... : ... | -1.0 | 1.0 | -1.0 | -| test.c:367:8:367:23 | ... ? ... : ... | 0.0 | 0.0 | 10.0 | -| test.c:368:8:368:24 | ... ? ... : ... | 0.0 | 10.0 | 0.0 | -| test.c:376:10:376:15 | ... ? ... : ... | 0.0 | 0.0 | 5.0 | -| test.c:377:10:377:17 | ... ? ... : ... | 0.0 | 0.0 | 500.0 | -| test.c:378:10:378:21 | ... ? ... : ... | 1.0 | 1.0 | 500.0 | -| test.c:379:10:379:36 | ... ? ... : ... | 0.0 | 1.0 | 5.0 | -| test.c:380:10:380:38 | ... ? ... : ... | 0.0 | 1.0 | 500.0 | -| test.c:381:10:381:39 | ... ? ... : ... | 1.0 | 1.0 | 500.0 | -| test.c:389:8:389:24 | ... ? ... : ... | 101.0 | 101.0 | 110.0 | -| test.c:390:8:390:25 | ... ? ... : ... | 101.0 | 110.0 | 101.0 | -| test.c:395:10:395:21 | ... ? ... : ... | 0.0 | 0.0 | 5.0 | -| test.c:396:10:396:21 | ... ? ... : ... | 100.0 | 100.0 | 5.0 | -| test.c:397:10:397:38 | ... ? ... : ... | 0.0 | 100.0 | 5.0 | -| test.c:404:14:404:108 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.40496805 | -| test.c:404:18:404:95 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.21540225 | -| test.c:404:22:404:82 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.39206458 | -| test.c:404:26:404:69 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.35279203 | -| test.c:404:30:404:56 | ... ? ... : ... | 0.14333887 | 0.47438827 | 0.14333887 | -| test.c:405:14:405:108 | ... ? ... : ... | 0.22247853 | 0.22247853 | 0.5297741 | -| test.c:405:18:405:95 | ... ? ... : ... | 0.22247853 | 0.22247853 | 0.59270465 | -| test.c:405:22:405:82 | ... ? ... : ... | 0.22247853 | 0.22247853 | 0.32661893 | -| test.c:405:26:405:69 | ... ? ... : ... | 0.22247853 | 0.34183348 | 0.22247853 | -| test.c:405:30:405:56 | ... ? ... : ... | 0.34183348 | 0.34183348 | 0.3533464 | -| test.c:406:14:406:108 | ... ? ... : ... | 0.05121256 | 0.05121256 | 0.67981451 | -| test.c:406:18:406:95 | ... ? ... : ... | 0.05121256 | 0.05121256 | 0.79310745 | -| test.c:406:22:406:82 | ... ? ... : ... | 0.05121256 | 0.31235514 | 0.05121256 | -| test.c:406:26:406:69 | ... ? ... : ... | 0.31235514 | 0.31478084 | 0.31235514 | -| test.c:406:30:406:56 | ... ? ... : ... | 0.31478084 | 0.77429603 | 0.31478084 | -| test.c:407:14:407:108 | ... ? ... : ... | 0.36976948 | 0.36976948 | 0.83866835 | -| test.c:407:18:407:95 | ... ? ... : ... | 0.36976948 | 0.44729556 | 0.36976948 | -| test.c:407:22:407:82 | ... ? ... : ... | 0.44729556 | 0.44729556 | 0.59952732 | -| test.c:407:26:407:69 | ... ? ... : ... | 0.44729556 | 0.44729556 | 0.98997262 | -| test.c:407:30:407:56 | ... ? ... : ... | 0.44729556 | 0.44729556 | 0.80599202 | -| test.c:408:14:408:108 | ... ? ... : ... | 0.10597712 | 0.10597712 | 0.68734874 | -| test.c:408:18:408:95 | ... ? ... : ... | 0.10597712 | 0.10597712 | 0.72485966 | -| test.c:408:22:408:82 | ... ? ... : ... | 0.10597712 | 0.10597712 | 0.21778426 | -| test.c:408:26:408:69 | ... ? ... : ... | 0.10597712 | 0.49311828 | 0.10597712 | -| test.c:408:30:408:56 | ... ? ... : ... | 0.49311828 | 0.49311828 | 0.90389911 | -| test.c:409:14:409:108 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.58440865 | -| test.c:409:18:409:95 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.34808892 | -| test.c:409:22:409:82 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.76164052 | -| test.c:409:26:409:69 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.11884576 | -| test.c:409:30:409:56 | ... ? ... : ... | 0.1078665 | 0.47452848 | 0.1078665 | -| test.c:410:14:410:108 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.36232384 | -| test.c:410:18:410:95 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.85235179 | -| test.c:410:22:410:82 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.12516558 | -| test.c:410:26:410:69 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.95823075 | -| test.c:410:30:410:56 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.82905046 | -| test.c:411:14:411:108 | ... ? ... : ... | 0.14963485 | 0.14963485 | 0.84331272 | -| test.c:411:18:411:95 | ... ? ... : ... | 0.14963485 | 0.14963485 | 0.48640909 | -| test.c:411:22:411:82 | ... ? ... : ... | 0.14963485 | 0.14963485 | 0.45041108 | -| test.c:411:26:411:69 | ... ? ... : ... | 0.14963485 | 0.32876044 | 0.14963485 | -| test.c:411:30:411:56 | ... ? ... : ... | 0.32876044 | 0.38708626 | 0.32876044 | -| test.c:412:14:412:108 | ... ? ... : ... | 0.05328182 | 0.14800508 | 0.05328182 | -| test.c:412:18:412:95 | ... ? ... : ... | 0.14800508 | 0.14800508 | 0.37428143 | -| test.c:412:22:412:82 | ... ? ... : ... | 0.14800508 | 0.15755063 | 0.14800508 | -| test.c:412:26:412:69 | ... ? ... : ... | 0.15755063 | 0.15755063 | 0.26428481 | -| test.c:412:30:412:56 | ... ? ... : ... | 0.15755063 | 0.15755063 | 0.77086833 | -| test.c:413:14:413:108 | ... ? ... : ... | 0.27643238 | 0.27643238 | 0.69072144 | -| test.c:413:18:413:95 | ... ? ... : ... | 0.27643238 | 0.27643238 | 0.39468857 | -| test.c:413:22:413:82 | ... ? ... : ... | 0.27643238 | 0.27643238 | 0.55679274 | -| test.c:413:26:413:69 | ... ? ... : ... | 0.27643238 | 0.41736536 | 0.27643238 | -| test.c:413:30:413:56 | ... ? ... : ... | 0.41736536 | 0.41736536 | 0.76826628 | -| test.c:414:14:414:108 | ... ? ... : ... | 0.2051911 | 0.2051911 | 0.81372798 | -| test.c:414:18:414:95 | ... ? ... : ... | 0.2051911 | 0.2051911 | 0.88745559 | -| test.c:414:22:414:82 | ... ? ... : ... | 0.2051911 | 0.29904824 | 0.2051911 | -| test.c:414:26:414:69 | ... ? ... : ... | 0.29904824 | 0.29904824 | 0.76242583 | -| test.c:414:30:414:56 | ... ? ... : ... | 0.29904824 | 0.88955345 | 0.29904824 | -| test.c:415:14:415:108 | ... ? ... : ... | 0.13204114 | 0.13204114 | 0.42762647 | -| test.c:415:18:415:95 | ... ? ... : ... | 0.13204114 | 0.13204114 | 0.52031241 | -| test.c:415:22:415:82 | ... ? ... : ... | 0.13204114 | 0.42186276 | 0.13204114 | -| test.c:415:26:415:69 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.44996679 | -| test.c:415:30:415:56 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.53843358 | -| test.c:457:4:631:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:457:5:459:49 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:460:6:542:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:461:8:479:41 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:464:10:468:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:464:31:464:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:466:13:468:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:473:12:478:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:474:12:474:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:476:15:478:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:480:6:499:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:483:8:487:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:483:29:483:77 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:485:11:487:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:488:6:488:54 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:492:10:496:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:492:31:492:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:494:13:496:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:497:9:499:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:501:10:520:43 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:504:12:509:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:505:12:505:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:507:15:509:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:514:14:519:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:515:14:515:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:517:17:519:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:521:9:542:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:524:14:529:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:525:14:525:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:527:17:529:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:530:12:530:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:534:12:539:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:535:12:535:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:537:15:539:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:540:11:542:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:543:9:545:51 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:546:9:631:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:547:14:566:47 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:550:16:555:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:551:16:551:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:553:19:555:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:560:18:565:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:561:18:561:66 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:563:21:565:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:567:12:588:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:570:14:575:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:571:14:571:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:573:17:575:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:576:12:576:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:580:16:585:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:581:16:581:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:583:19:585:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:586:15:588:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:590:12:609:45 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:593:14:598:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:594:14:594:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:596:17:598:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:603:16:608:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:604:16:604:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:606:19:608:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:610:11:631:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:613:16:618:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:614:16:614:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:616:19:618:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:619:14:619:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:623:14:628:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:624:14:624:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:626:17:628:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:629:13:631:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | -| test.c:657:20:657:36 | ... ? ... : ... | 0.0 | 0.0 | 100.0 | -| test.c:869:5:869:14 | ... ? ... : ... | 0.0 | 1.0 | 0.0 | -| test.c:870:5:870:14 | ... ? ... : ... | 0.0 | 0.0 | 1.0 | +| test.c:348:22:348:44 | ... ? ... : ... | 0.5 | 0.5 | 2.0 | +| test.c:349:20:349:43 | ... ? ... : ... | 0.0 | 0.0 | 2.0 | +| test.c:350:22:350:44 | ... ? ... : ... | 0.33333333333333337 | 0.33333333333333337 | 2.0 | +| test.c:351:22:351:44 | ... ? ... : ... | 0.5 | 0.5 | 2.0 | +| test.c:352:22:352:45 | ... ? ... : ... | 2.0 | 8.5 | 2.0 | +| test.c:378:8:378:23 | ... ? ... : ... | 0.0 | 0.0 | 10.0 | +| test.c:379:8:379:24 | ... ? ... : ... | 0.0 | 10.0 | 0.0 | +| test.c:387:10:387:15 | ... ? ... : ... | 0.0 | 0.0 | 5.0 | +| test.c:388:10:388:17 | ... ? ... : ... | 0.0 | 0.0 | 500.0 | +| test.c:389:10:389:21 | ... ? ... : ... | 1.0 | 1.0 | 500.0 | +| test.c:390:10:390:36 | ... ? ... : ... | 0.0 | 1.0 | 5.0 | +| test.c:391:10:391:38 | ... ? ... : ... | 0.0 | 1.0 | 500.0 | +| test.c:392:10:392:39 | ... ? ... : ... | 1.0 | 1.0 | 500.0 | +| test.c:400:8:400:24 | ... ? ... : ... | 101.0 | 101.0 | 110.0 | +| test.c:401:8:401:25 | ... ? ... : ... | 101.0 | 110.0 | 101.0 | +| test.c:406:10:406:21 | ... ? ... : ... | 0.0 | 0.0 | 5.0 | +| test.c:407:10:407:21 | ... ? ... : ... | 100.0 | 100.0 | 5.0 | +| test.c:408:10:408:38 | ... ? ... : ... | 0.0 | 100.0 | 5.0 | +| test.c:415:14:415:108 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.40496805 | +| test.c:415:18:415:95 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.21540225 | +| test.c:415:22:415:82 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.39206458 | +| test.c:415:26:415:69 | ... ? ... : ... | 0.14333887 | 0.14333887 | 0.35279203 | +| test.c:415:30:415:56 | ... ? ... : ... | 0.14333887 | 0.47438827 | 0.14333887 | +| test.c:416:14:416:108 | ... ? ... : ... | 0.22247853 | 0.22247853 | 0.5297741 | +| test.c:416:18:416:95 | ... ? ... : ... | 0.22247853 | 0.22247853 | 0.59270465 | +| test.c:416:22:416:82 | ... ? ... : ... | 0.22247853 | 0.22247853 | 0.32661893 | +| test.c:416:26:416:69 | ... ? ... : ... | 0.22247853 | 0.34183348 | 0.22247853 | +| test.c:416:30:416:56 | ... ? ... : ... | 0.34183348 | 0.34183348 | 0.3533464 | +| test.c:417:14:417:108 | ... ? ... : ... | 0.05121256 | 0.05121256 | 0.67981451 | +| test.c:417:18:417:95 | ... ? ... : ... | 0.05121256 | 0.05121256 | 0.79310745 | +| test.c:417:22:417:82 | ... ? ... : ... | 0.05121256 | 0.31235514 | 0.05121256 | +| test.c:417:26:417:69 | ... ? ... : ... | 0.31235514 | 0.31478084 | 0.31235514 | +| test.c:417:30:417:56 | ... ? ... : ... | 0.31478084 | 0.77429603 | 0.31478084 | +| test.c:418:14:418:108 | ... ? ... : ... | 0.36976948 | 0.36976948 | 0.83866835 | +| test.c:418:18:418:95 | ... ? ... : ... | 0.36976948 | 0.44729556 | 0.36976948 | +| test.c:418:22:418:82 | ... ? ... : ... | 0.44729556 | 0.44729556 | 0.59952732 | +| test.c:418:26:418:69 | ... ? ... : ... | 0.44729556 | 0.44729556 | 0.98997262 | +| test.c:418:30:418:56 | ... ? ... : ... | 0.44729556 | 0.44729556 | 0.80599202 | +| test.c:419:14:419:108 | ... ? ... : ... | 0.10597712 | 0.10597712 | 0.68734874 | +| test.c:419:18:419:95 | ... ? ... : ... | 0.10597712 | 0.10597712 | 0.72485966 | +| test.c:419:22:419:82 | ... ? ... : ... | 0.10597712 | 0.10597712 | 0.21778426 | +| test.c:419:26:419:69 | ... ? ... : ... | 0.10597712 | 0.49311828 | 0.10597712 | +| test.c:419:30:419:56 | ... ? ... : ... | 0.49311828 | 0.49311828 | 0.90389911 | +| test.c:420:14:420:108 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.58440865 | +| test.c:420:18:420:95 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.34808892 | +| test.c:420:22:420:82 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.76164052 | +| test.c:420:26:420:69 | ... ? ... : ... | 0.1078665 | 0.1078665 | 0.11884576 | +| test.c:420:30:420:56 | ... ? ... : ... | 0.1078665 | 0.47452848 | 0.1078665 | +| test.c:421:14:421:108 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.36232384 | +| test.c:421:18:421:95 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.85235179 | +| test.c:421:22:421:82 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.12516558 | +| test.c:421:26:421:69 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.95823075 | +| test.c:421:30:421:56 | ... ? ... : ... | 0.02524326 | 0.02524326 | 0.82905046 | +| test.c:422:14:422:108 | ... ? ... : ... | 0.14963485 | 0.14963485 | 0.84331272 | +| test.c:422:18:422:95 | ... ? ... : ... | 0.14963485 | 0.14963485 | 0.48640909 | +| test.c:422:22:422:82 | ... ? ... : ... | 0.14963485 | 0.14963485 | 0.45041108 | +| test.c:422:26:422:69 | ... ? ... : ... | 0.14963485 | 0.32876044 | 0.14963485 | +| test.c:422:30:422:56 | ... ? ... : ... | 0.32876044 | 0.38708626 | 0.32876044 | +| test.c:423:14:423:108 | ... ? ... : ... | 0.05328182 | 0.14800508 | 0.05328182 | +| test.c:423:18:423:95 | ... ? ... : ... | 0.14800508 | 0.14800508 | 0.37428143 | +| test.c:423:22:423:82 | ... ? ... : ... | 0.14800508 | 0.15755063 | 0.14800508 | +| test.c:423:26:423:69 | ... ? ... : ... | 0.15755063 | 0.15755063 | 0.26428481 | +| test.c:423:30:423:56 | ... ? ... : ... | 0.15755063 | 0.15755063 | 0.77086833 | +| test.c:424:14:424:108 | ... ? ... : ... | 0.27643238 | 0.27643238 | 0.69072144 | +| test.c:424:18:424:95 | ... ? ... : ... | 0.27643238 | 0.27643238 | 0.39468857 | +| test.c:424:22:424:82 | ... ? ... : ... | 0.27643238 | 0.27643238 | 0.55679274 | +| test.c:424:26:424:69 | ... ? ... : ... | 0.27643238 | 0.41736536 | 0.27643238 | +| test.c:424:30:424:56 | ... ? ... : ... | 0.41736536 | 0.41736536 | 0.76826628 | +| test.c:425:14:425:108 | ... ? ... : ... | 0.2051911 | 0.2051911 | 0.81372798 | +| test.c:425:18:425:95 | ... ? ... : ... | 0.2051911 | 0.2051911 | 0.88745559 | +| test.c:425:22:425:82 | ... ? ... : ... | 0.2051911 | 0.29904824 | 0.2051911 | +| test.c:425:26:425:69 | ... ? ... : ... | 0.29904824 | 0.29904824 | 0.76242583 | +| test.c:425:30:425:56 | ... ? ... : ... | 0.29904824 | 0.88955345 | 0.29904824 | +| test.c:426:14:426:108 | ... ? ... : ... | 0.13204114 | 0.13204114 | 0.42762647 | +| test.c:426:18:426:95 | ... ? ... : ... | 0.13204114 | 0.13204114 | 0.52031241 | +| test.c:426:22:426:82 | ... ? ... : ... | 0.13204114 | 0.42186276 | 0.13204114 | +| test.c:426:26:426:69 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.44996679 | +| test.c:426:30:426:56 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.53843358 | +| test.c:468:4:642:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:468:5:470:49 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:471:6:553:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:472:8:490:41 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:475:10:479:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:475:31:475:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:477:13:479:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:484:12:489:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:485:12:485:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:487:15:489:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:491:6:510:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:494:8:498:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:494:29:494:77 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:496:11:498:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:499:6:499:54 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:503:10:507:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:503:31:503:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:505:13:507:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:508:9:510:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:512:10:531:43 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:515:12:520:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:516:12:516:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:518:15:520:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:525:14:530:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:526:14:526:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:528:17:530:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:532:9:553:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:535:14:540:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:536:14:536:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:538:17:540:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:541:12:541:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:545:12:550:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:546:12:546:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:548:15:550:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:551:11:553:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:554:9:556:51 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:557:9:642:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:558:14:577:47 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:561:16:566:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:562:16:562:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:564:19:566:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:571:18:576:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:572:18:572:66 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:574:21:576:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:578:12:599:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:581:14:586:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:582:14:582:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:584:17:586:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:587:12:587:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:591:16:596:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:592:16:592:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:594:19:596:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:597:15:599:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:601:12:620:45 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:604:14:609:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:605:14:605:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:607:17:609:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:614:16:619:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:615:16:615:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:617:19:619:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:621:11:642:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:624:16:629:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:625:16:625:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:627:19:629:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:630:14:630:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:634:14:639:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:635:14:635:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:637:17:639:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:640:13:642:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:668:20:668:36 | ... ? ... : ... | 0.0 | 0.0 | 100.0 | +| test.c:880:5:880:14 | ... ? ... : ... | 0.0 | 1.0 | 0.0 | +| test.c:881:5:881:14 | ... ? ... : ... | 0.0 | 0.0 | 1.0 | | test.cpp:121:3:121:12 | ... ? ... : ... | 0.0 | 1.0 | 0.0 | | test.cpp:122:3:122:12 | ... ? ... : ... | 0.0 | 0.0 | 1.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected index 9ffdab9467c..529b6ea83f1 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected @@ -1,148 +1,153 @@ | test.c:154:10:154:40 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | -1.0 | -| test.c:367:8:367:23 | ... ? ... : ... | 99.0 | 99.0 | 10.0 | -| test.c:368:8:368:24 | ... ? ... : ... | 99.0 | 10.0 | 99.0 | -| test.c:376:10:376:15 | ... ? ... : ... | 299.0 | 299.0 | 5.0 | -| test.c:377:10:377:17 | ... ? ... : ... | 500.0 | 299.0 | 500.0 | -| test.c:378:10:378:21 | ... ? ... : ... | 300.0 | 300.0 | 500.0 | -| test.c:379:10:379:36 | ... ? ... : ... | 255.0 | 300.0 | 5.0 | -| test.c:380:10:380:38 | ... ? ... : ... | 500.0 | 300.0 | 500.0 | -| test.c:381:10:381:39 | ... ? ... : ... | 300.0 | 300.0 | 500.0 | -| test.c:389:8:389:24 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 110.0 | -| test.c:390:8:390:25 | ... ? ... : ... | 4.294967295E9 | 110.0 | 4.294967295E9 | -| test.c:395:10:395:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 5.0 | -| test.c:396:10:396:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 5.0 | -| test.c:397:10:397:38 | ... ? ... : ... | 255.0 | 4.294967295E9 | 5.0 | -| test.c:404:14:404:108 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.40496805 | -| test.c:404:18:404:95 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.21540225 | -| test.c:404:22:404:82 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.39206458 | -| test.c:404:26:404:69 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.35279203 | -| test.c:404:30:404:56 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.14333887 | -| test.c:405:14:405:108 | ... ? ... : ... | 0.59270465 | 0.59270465 | 0.5297741 | -| test.c:405:18:405:95 | ... ? ... : ... | 0.59270465 | 0.3533464 | 0.59270465 | -| test.c:405:22:405:82 | ... ? ... : ... | 0.3533464 | 0.3533464 | 0.32661893 | -| test.c:405:26:405:69 | ... ? ... : ... | 0.3533464 | 0.3533464 | 0.22247853 | -| test.c:405:30:405:56 | ... ? ... : ... | 0.3533464 | 0.34183348 | 0.3533464 | -| test.c:406:14:406:108 | ... ? ... : ... | 0.79310745 | 0.79310745 | 0.67981451 | -| test.c:406:18:406:95 | ... ? ... : ... | 0.79310745 | 0.77429603 | 0.79310745 | -| test.c:406:22:406:82 | ... ? ... : ... | 0.77429603 | 0.77429603 | 0.05121256 | -| test.c:406:26:406:69 | ... ? ... : ... | 0.77429603 | 0.77429603 | 0.31235514 | -| test.c:406:30:406:56 | ... ? ... : ... | 0.77429603 | 0.77429603 | 0.31478084 | -| test.c:407:14:407:108 | ... ? ... : ... | 0.98997262 | 0.98997262 | 0.83866835 | -| test.c:407:18:407:95 | ... ? ... : ... | 0.98997262 | 0.98997262 | 0.36976948 | -| test.c:407:22:407:82 | ... ? ... : ... | 0.98997262 | 0.98997262 | 0.59952732 | -| test.c:407:26:407:69 | ... ? ... : ... | 0.98997262 | 0.80599202 | 0.98997262 | -| test.c:407:30:407:56 | ... ? ... : ... | 0.80599202 | 0.44729556 | 0.80599202 | -| test.c:408:14:408:108 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.68734874 | -| test.c:408:18:408:95 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.72485966 | -| test.c:408:22:408:82 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.21778426 | -| test.c:408:26:408:69 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.10597712 | -| test.c:408:30:408:56 | ... ? ... : ... | 0.90389911 | 0.49311828 | 0.90389911 | -| test.c:409:14:409:108 | ... ? ... : ... | 0.76164052 | 0.76164052 | 0.58440865 | -| test.c:409:18:409:95 | ... ? ... : ... | 0.76164052 | 0.76164052 | 0.34808892 | -| test.c:409:22:409:82 | ... ? ... : ... | 0.76164052 | 0.47452848 | 0.76164052 | -| test.c:409:26:409:69 | ... ? ... : ... | 0.47452848 | 0.47452848 | 0.11884576 | -| test.c:409:30:409:56 | ... ? ... : ... | 0.47452848 | 0.47452848 | 0.1078665 | -| test.c:410:14:410:108 | ... ? ... : ... | 0.95823075 | 0.95823075 | 0.36232384 | -| test.c:410:18:410:95 | ... ? ... : ... | 0.95823075 | 0.95823075 | 0.85235179 | -| test.c:410:22:410:82 | ... ? ... : ... | 0.95823075 | 0.95823075 | 0.12516558 | -| test.c:410:26:410:69 | ... ? ... : ... | 0.95823075 | 0.82905046 | 0.95823075 | -| test.c:410:30:410:56 | ... ? ... : ... | 0.82905046 | 0.02524326 | 0.82905046 | -| test.c:411:14:411:108 | ... ? ... : ... | 0.84331272 | 0.48640909 | 0.84331272 | -| test.c:411:18:411:95 | ... ? ... : ... | 0.48640909 | 0.45041108 | 0.48640909 | -| test.c:411:22:411:82 | ... ? ... : ... | 0.45041108 | 0.38708626 | 0.45041108 | -| test.c:411:26:411:69 | ... ? ... : ... | 0.38708626 | 0.38708626 | 0.14963485 | -| test.c:411:30:411:56 | ... ? ... : ... | 0.38708626 | 0.38708626 | 0.32876044 | -| test.c:412:14:412:108 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.05328182 | -| test.c:412:18:412:95 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.37428143 | -| test.c:412:22:412:82 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.14800508 | -| test.c:412:26:412:69 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.26428481 | -| test.c:412:30:412:56 | ... ? ... : ... | 0.77086833 | 0.15755063 | 0.77086833 | -| test.c:413:14:413:108 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.69072144 | -| test.c:413:18:413:95 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.39468857 | -| test.c:413:22:413:82 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.55679274 | -| test.c:413:26:413:69 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.27643238 | -| test.c:413:30:413:56 | ... ? ... : ... | 0.76826628 | 0.41736536 | 0.76826628 | -| test.c:414:14:414:108 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.81372798 | -| test.c:414:18:414:95 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.88745559 | -| test.c:414:22:414:82 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.2051911 | -| test.c:414:26:414:69 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.76242583 | -| test.c:414:30:414:56 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.29904824 | -| test.c:415:14:415:108 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.42762647 | -| test.c:415:18:415:95 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.52031241 | -| test.c:415:22:415:82 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.13204114 | -| test.c:415:26:415:69 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.44996679 | -| test.c:415:30:415:56 | ... ? ... : ... | 0.53843358 | 0.42186276 | 0.53843358 | -| test.c:457:4:631:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:457:5:459:49 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:460:6:542:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:461:8:479:41 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:464:10:468:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:464:31:464:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:466:13:468:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:473:12:478:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:474:12:474:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:476:15:478:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:480:6:499:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:483:8:487:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:483:29:483:77 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:485:11:487:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:488:6:488:54 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:492:10:496:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:492:31:492:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:494:13:496:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:497:9:499:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:501:10:520:43 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:504:12:509:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:505:12:505:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:507:15:509:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:514:14:519:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:515:14:515:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:517:17:519:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:521:9:542:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:524:14:529:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:525:14:525:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:527:17:529:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:530:12:530:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:534:12:539:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:535:12:535:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:537:15:539:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:540:11:542:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:543:9:545:51 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:546:9:631:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:547:14:566:47 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:550:16:555:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:551:16:551:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:553:19:555:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:560:18:565:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:561:18:561:66 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:563:21:565:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:567:12:588:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:570:14:575:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:571:14:571:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:573:17:575:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:576:12:576:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:580:16:585:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:581:16:581:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:583:19:585:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:586:15:588:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:590:12:609:45 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:593:14:598:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:594:14:594:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:596:17:598:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:603:16:608:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:604:16:604:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:606:19:608:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:610:11:631:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:613:16:618:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:614:16:614:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:616:19:618:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:619:14:619:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:623:14:628:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:624:14:624:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:626:17:628:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:629:13:631:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | -| test.c:657:20:657:36 | ... ? ... : ... | 100.0 | 99.0 | 100.0 | -| test.c:869:5:869:14 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 | -| test.c:870:5:870:14 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 | +| test.c:348:22:348:44 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | +| test.c:349:20:349:43 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | +| test.c:350:22:350:44 | ... ? ... : ... | 1.4316557643333333E9 | 1.4316557643333333E9 | 2.0 | +| test.c:351:22:351:44 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | +| test.c:352:22:352:45 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | +| test.c:378:8:378:23 | ... ? ... : ... | 99.0 | 99.0 | 10.0 | +| test.c:379:8:379:24 | ... ? ... : ... | 99.0 | 10.0 | 99.0 | +| test.c:387:10:387:15 | ... ? ... : ... | 299.0 | 299.0 | 5.0 | +| test.c:388:10:388:17 | ... ? ... : ... | 500.0 | 299.0 | 500.0 | +| test.c:389:10:389:21 | ... ? ... : ... | 300.0 | 300.0 | 500.0 | +| test.c:390:10:390:36 | ... ? ... : ... | 255.0 | 300.0 | 5.0 | +| test.c:391:10:391:38 | ... ? ... : ... | 500.0 | 300.0 | 500.0 | +| test.c:392:10:392:39 | ... ? ... : ... | 300.0 | 300.0 | 500.0 | +| test.c:400:8:400:24 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 110.0 | +| test.c:401:8:401:25 | ... ? ... : ... | 4.294967295E9 | 110.0 | 4.294967295E9 | +| test.c:406:10:406:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 5.0 | +| test.c:407:10:407:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 5.0 | +| test.c:408:10:408:38 | ... ? ... : ... | 255.0 | 4.294967295E9 | 5.0 | +| test.c:415:14:415:108 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.40496805 | +| test.c:415:18:415:95 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.21540225 | +| test.c:415:22:415:82 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.39206458 | +| test.c:415:26:415:69 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.35279203 | +| test.c:415:30:415:56 | ... ? ... : ... | 0.47438827 | 0.47438827 | 0.14333887 | +| test.c:416:14:416:108 | ... ? ... : ... | 0.59270465 | 0.59270465 | 0.5297741 | +| test.c:416:18:416:95 | ... ? ... : ... | 0.59270465 | 0.3533464 | 0.59270465 | +| test.c:416:22:416:82 | ... ? ... : ... | 0.3533464 | 0.3533464 | 0.32661893 | +| test.c:416:26:416:69 | ... ? ... : ... | 0.3533464 | 0.3533464 | 0.22247853 | +| test.c:416:30:416:56 | ... ? ... : ... | 0.3533464 | 0.34183348 | 0.3533464 | +| test.c:417:14:417:108 | ... ? ... : ... | 0.79310745 | 0.79310745 | 0.67981451 | +| test.c:417:18:417:95 | ... ? ... : ... | 0.79310745 | 0.77429603 | 0.79310745 | +| test.c:417:22:417:82 | ... ? ... : ... | 0.77429603 | 0.77429603 | 0.05121256 | +| test.c:417:26:417:69 | ... ? ... : ... | 0.77429603 | 0.77429603 | 0.31235514 | +| test.c:417:30:417:56 | ... ? ... : ... | 0.77429603 | 0.77429603 | 0.31478084 | +| test.c:418:14:418:108 | ... ? ... : ... | 0.98997262 | 0.98997262 | 0.83866835 | +| test.c:418:18:418:95 | ... ? ... : ... | 0.98997262 | 0.98997262 | 0.36976948 | +| test.c:418:22:418:82 | ... ? ... : ... | 0.98997262 | 0.98997262 | 0.59952732 | +| test.c:418:26:418:69 | ... ? ... : ... | 0.98997262 | 0.80599202 | 0.98997262 | +| test.c:418:30:418:56 | ... ? ... : ... | 0.80599202 | 0.44729556 | 0.80599202 | +| test.c:419:14:419:108 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.68734874 | +| test.c:419:18:419:95 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.72485966 | +| test.c:419:22:419:82 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.21778426 | +| test.c:419:26:419:69 | ... ? ... : ... | 0.90389911 | 0.90389911 | 0.10597712 | +| test.c:419:30:419:56 | ... ? ... : ... | 0.90389911 | 0.49311828 | 0.90389911 | +| test.c:420:14:420:108 | ... ? ... : ... | 0.76164052 | 0.76164052 | 0.58440865 | +| test.c:420:18:420:95 | ... ? ... : ... | 0.76164052 | 0.76164052 | 0.34808892 | +| test.c:420:22:420:82 | ... ? ... : ... | 0.76164052 | 0.47452848 | 0.76164052 | +| test.c:420:26:420:69 | ... ? ... : ... | 0.47452848 | 0.47452848 | 0.11884576 | +| test.c:420:30:420:56 | ... ? ... : ... | 0.47452848 | 0.47452848 | 0.1078665 | +| test.c:421:14:421:108 | ... ? ... : ... | 0.95823075 | 0.95823075 | 0.36232384 | +| test.c:421:18:421:95 | ... ? ... : ... | 0.95823075 | 0.95823075 | 0.85235179 | +| test.c:421:22:421:82 | ... ? ... : ... | 0.95823075 | 0.95823075 | 0.12516558 | +| test.c:421:26:421:69 | ... ? ... : ... | 0.95823075 | 0.82905046 | 0.95823075 | +| test.c:421:30:421:56 | ... ? ... : ... | 0.82905046 | 0.02524326 | 0.82905046 | +| test.c:422:14:422:108 | ... ? ... : ... | 0.84331272 | 0.48640909 | 0.84331272 | +| test.c:422:18:422:95 | ... ? ... : ... | 0.48640909 | 0.45041108 | 0.48640909 | +| test.c:422:22:422:82 | ... ? ... : ... | 0.45041108 | 0.38708626 | 0.45041108 | +| test.c:422:26:422:69 | ... ? ... : ... | 0.38708626 | 0.38708626 | 0.14963485 | +| test.c:422:30:422:56 | ... ? ... : ... | 0.38708626 | 0.38708626 | 0.32876044 | +| test.c:423:14:423:108 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.05328182 | +| test.c:423:18:423:95 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.37428143 | +| test.c:423:22:423:82 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.14800508 | +| test.c:423:26:423:69 | ... ? ... : ... | 0.77086833 | 0.77086833 | 0.26428481 | +| test.c:423:30:423:56 | ... ? ... : ... | 0.77086833 | 0.15755063 | 0.77086833 | +| test.c:424:14:424:108 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.69072144 | +| test.c:424:18:424:95 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.39468857 | +| test.c:424:22:424:82 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.55679274 | +| test.c:424:26:424:69 | ... ? ... : ... | 0.76826628 | 0.76826628 | 0.27643238 | +| test.c:424:30:424:56 | ... ? ... : ... | 0.76826628 | 0.41736536 | 0.76826628 | +| test.c:425:14:425:108 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.81372798 | +| test.c:425:18:425:95 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.88745559 | +| test.c:425:22:425:82 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.2051911 | +| test.c:425:26:425:69 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.76242583 | +| test.c:425:30:425:56 | ... ? ... : ... | 0.88955345 | 0.88955345 | 0.29904824 | +| test.c:426:14:426:108 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.42762647 | +| test.c:426:18:426:95 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.52031241 | +| test.c:426:22:426:82 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.13204114 | +| test.c:426:26:426:69 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.44996679 | +| test.c:426:30:426:56 | ... ? ... : ... | 0.53843358 | 0.42186276 | 0.53843358 | +| test.c:468:4:642:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:468:5:470:49 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:471:6:553:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:472:8:490:41 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:475:10:479:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:475:31:475:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:477:13:479:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:484:12:489:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:485:12:485:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:487:15:489:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:491:6:510:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:494:8:498:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:494:29:494:77 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:496:11:498:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:499:6:499:54 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:503:10:507:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:503:31:503:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:505:13:507:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:508:9:510:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:512:10:531:43 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:515:12:520:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:516:12:516:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:518:15:520:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:525:14:530:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:526:14:526:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:528:17:530:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:532:9:553:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:535:14:540:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:536:14:536:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:538:17:540:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:541:12:541:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:545:12:550:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:546:12:546:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:548:15:550:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:551:11:553:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:554:9:556:51 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:557:9:642:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:558:14:577:47 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:561:16:566:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:562:16:562:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:564:19:566:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:571:18:576:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:572:18:572:66 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:574:21:576:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:578:12:599:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:581:14:586:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:582:14:582:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:584:17:586:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:587:12:587:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:591:16:596:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:592:16:592:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:594:19:596:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:597:15:599:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:601:12:620:45 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:604:14:609:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:605:14:605:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:607:17:609:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:614:16:619:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:615:16:615:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:617:19:619:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:621:11:642:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:624:16:629:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:625:16:625:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:627:19:629:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:630:14:630:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:634:14:639:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:635:14:635:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:637:17:639:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:640:13:642:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:668:20:668:36 | ... ? ... : ... | 100.0 | 99.0 | 100.0 | +| test.c:880:5:880:14 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 | +| test.c:881:5:881:14 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 | | test.cpp:121:3:121:12 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 | | test.cpp:122:3:122:12 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c index d59d20ecc9b..d394eb637ab 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c @@ -343,6 +343,17 @@ unsigned long long test_shift(unsigned long long a) { return shifted; } +// Tests for bounds on integers derived from inequalities. +unsigned int test_inequality_integer(unsigned int e) { + unsigned int bi1 = (2 * e + 1) > 0 ? e : 2; + signed int bi2 = (2 * e + 1) >= 0 ? e : 2; + unsigned int bi3 = (3 * e + 2) > 0 ? e : 2; + unsigned int bi4 = (2 * e + 1) > 0 ? e : 2; + unsigned int bi5 = (2 * e + 1) > 16 ? e : 2; + + return bi1 + bi2 + bi3 + bi4 + bi5; +} + int test16(int x) { int d, i = 0; if (x < 0) { diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected index b2591fb52f3..16181b8e238 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected @@ -352,664 +352,679 @@ | test.c:333:10:333:14 | total | 2147483647 | | test.c:341:32:341:34 | odd | 9007199254740991 | | test.c:343:10:343:16 | shifted | 4503599627370495 | -| test.c:348:7:348:7 | x | 2147483647 | -| test.c:352:10:352:10 | i | 7 | -| test.c:353:5:353:5 | i | 2 | -| test.c:355:3:355:3 | d | 2147483647 | -| test.c:355:7:355:7 | i | 7 | -| test.c:356:7:356:7 | x | 2147483647 | -| test.c:357:9:357:9 | d | 7 | -| test.c:357:14:357:14 | x | -1 | -| test.c:367:3:367:4 | y1 | 4294967295 | -| test.c:367:8:367:8 | x | 4294967295 | -| test.c:367:18:367:18 | x | 99 | -| test.c:368:3:368:4 | y2 | 4294967295 | -| test.c:368:8:368:8 | x | 4294967295 | -| test.c:368:24:368:24 | x | 99 | -| test.c:369:3:369:4 | y3 | 4294967295 | -| test.c:370:3:370:4 | y4 | 4294967295 | -| test.c:371:3:371:4 | y5 | 4294967295 | -| test.c:372:3:372:4 | y6 | 4294967295 | -| test.c:373:3:373:4 | y7 | 4294967295 | -| test.c:374:3:374:4 | y8 | 4294967295 | -| test.c:375:7:375:7 | x | 4294967295 | -| test.c:376:5:376:6 | y3 | 4294967295 | -| test.c:376:10:376:10 | x | 299 | -| test.c:377:5:377:6 | y4 | 4294967295 | -| test.c:377:10:377:10 | x | 299 | -| test.c:378:5:378:6 | y5 | 4294967295 | -| test.c:378:11:378:11 | x | 299 | -| test.c:379:5:379:6 | y6 | 4294967295 | -| test.c:379:27:379:27 | x | 299 | -| test.c:380:5:380:6 | y7 | 4294967295 | -| test.c:380:27:380:27 | x | 299 | -| test.c:381:5:381:6 | y8 | 4294967295 | -| test.c:381:28:381:28 | x | 299 | -| test.c:383:10:383:11 | y1 | 99 | -| test.c:383:15:383:16 | y2 | 99 | -| test.c:383:20:383:21 | y3 | 299 | -| test.c:383:25:383:26 | y4 | 500 | -| test.c:383:30:383:31 | y5 | 300 | -| test.c:383:35:383:36 | y6 | 255 | -| test.c:383:40:383:41 | y7 | 500 | -| test.c:383:45:383:46 | y8 | 300 | -| test.c:389:3:389:4 | y1 | 4294967295 | -| test.c:389:8:389:8 | x | 4294967295 | -| test.c:389:18:389:18 | x | 4294967295 | -| test.c:390:3:390:4 | y2 | 4294967295 | -| test.c:390:8:390:8 | x | 4294967295 | -| test.c:390:25:390:25 | x | 4294967295 | -| test.c:391:3:391:4 | y3 | 4294967295 | -| test.c:392:3:392:4 | y4 | 4294967295 | -| test.c:393:3:393:4 | y5 | 4294967295 | -| test.c:394:7:394:7 | x | 4294967295 | -| test.c:395:5:395:6 | y3 | 4294967295 | -| test.c:395:11:395:11 | x | 4294967295 | -| test.c:396:5:396:6 | y4 | 4294967295 | -| test.c:396:11:396:11 | x | 4294967295 | -| test.c:397:5:397:6 | y5 | 4294967295 | -| test.c:397:27:397:27 | x | 4294967295 | -| test.c:399:10:399:11 | y1 | 4294967295 | -| test.c:399:15:399:16 | y2 | 4294967295 | -| test.c:399:20:399:21 | y3 | 4294967295 | -| test.c:399:25:399:26 | y4 | 4294967295 | -| test.c:399:30:399:31 | y5 | 1000 | -| test.c:404:14:404:14 | m | Infinity | -| test.c:404:18:404:18 | n | Infinity | -| test.c:404:22:404:22 | o | Infinity | -| test.c:404:26:404:26 | p | Infinity | -| test.c:404:30:404:30 | q | Infinity | -| test.c:405:14:405:14 | m | Infinity | -| test.c:405:18:405:18 | n | Infinity | -| test.c:405:22:405:22 | o | Infinity | -| test.c:405:26:405:26 | p | Infinity | -| test.c:405:30:405:30 | q | Infinity | -| test.c:406:14:406:14 | m | Infinity | -| test.c:406:18:406:18 | n | Infinity | -| test.c:406:22:406:22 | o | Infinity | -| test.c:406:26:406:26 | p | Infinity | -| test.c:406:30:406:30 | q | Infinity | -| test.c:407:14:407:14 | m | Infinity | -| test.c:407:18:407:18 | n | Infinity | -| test.c:407:22:407:22 | o | Infinity | -| test.c:407:26:407:26 | p | Infinity | -| test.c:407:30:407:30 | q | Infinity | -| test.c:408:14:408:14 | m | Infinity | -| test.c:408:18:408:18 | n | Infinity | -| test.c:408:22:408:22 | o | Infinity | -| test.c:408:26:408:26 | p | Infinity | -| test.c:408:30:408:30 | q | Infinity | -| test.c:409:14:409:14 | m | Infinity | -| test.c:409:18:409:18 | n | Infinity | -| test.c:409:22:409:22 | o | Infinity | -| test.c:409:26:409:26 | p | Infinity | -| test.c:409:30:409:30 | q | Infinity | -| test.c:410:14:410:14 | m | Infinity | -| test.c:410:18:410:18 | n | Infinity | -| test.c:410:22:410:22 | o | Infinity | -| test.c:410:26:410:26 | p | Infinity | -| test.c:410:30:410:30 | q | Infinity | -| test.c:411:14:411:14 | m | Infinity | -| test.c:411:18:411:18 | n | Infinity | -| test.c:411:22:411:22 | o | Infinity | -| test.c:411:26:411:26 | p | Infinity | -| test.c:411:30:411:30 | q | Infinity | -| test.c:412:14:412:14 | m | Infinity | -| test.c:412:18:412:18 | n | Infinity | -| test.c:412:22:412:22 | o | Infinity | -| test.c:412:26:412:26 | p | Infinity | -| test.c:412:30:412:30 | q | Infinity | -| test.c:413:14:413:14 | m | Infinity | -| test.c:413:18:413:18 | n | Infinity | -| test.c:413:22:413:22 | o | Infinity | -| test.c:413:26:413:26 | p | Infinity | -| test.c:413:30:413:30 | q | Infinity | -| test.c:414:14:414:14 | m | Infinity | -| test.c:414:18:414:18 | n | Infinity | -| test.c:414:22:414:22 | o | Infinity | -| test.c:414:26:414:26 | p | Infinity | -| test.c:414:30:414:30 | q | Infinity | +| test.c:348:27:348:27 | e | 4294967295 | +| test.c:348:40:348:40 | e | 2147483647 | +| test.c:349:25:349:25 | e | 4294967295 | +| test.c:349:39:349:39 | e | 2147483647 | +| test.c:350:27:350:27 | e | 4294967295 | +| test.c:350:40:350:40 | e | 1431655764.333333 | +| test.c:351:27:351:27 | e | 4294967295 | +| test.c:351:40:351:40 | e | 2147483647 | +| test.c:352:27:352:27 | e | 4294967295 | +| test.c:352:41:352:41 | e | 2147483647 | +| test.c:354:10:354:12 | bi1 | 2147483647 | +| test.c:354:16:354:18 | bi2 | 2147483647 | +| test.c:354:22:354:24 | bi3 | 1431655764.333333 | +| test.c:354:28:354:30 | bi4 | 2147483647 | +| test.c:354:34:354:36 | bi5 | 2147483647 | +| test.c:359:7:359:7 | x | 2147483647 | +| test.c:363:10:363:10 | i | 7 | +| test.c:364:5:364:5 | i | 2 | +| test.c:366:3:366:3 | d | 2147483647 | +| test.c:366:7:366:7 | i | 7 | +| test.c:367:7:367:7 | x | 2147483647 | +| test.c:368:9:368:9 | d | 7 | +| test.c:368:14:368:14 | x | -1 | +| test.c:378:3:378:4 | y1 | 4294967295 | +| test.c:378:8:378:8 | x | 4294967295 | +| test.c:378:18:378:18 | x | 99 | +| test.c:379:3:379:4 | y2 | 4294967295 | +| test.c:379:8:379:8 | x | 4294967295 | +| test.c:379:24:379:24 | x | 99 | +| test.c:380:3:380:4 | y3 | 4294967295 | +| test.c:381:3:381:4 | y4 | 4294967295 | +| test.c:382:3:382:4 | y5 | 4294967295 | +| test.c:383:3:383:4 | y6 | 4294967295 | +| test.c:384:3:384:4 | y7 | 4294967295 | +| test.c:385:3:385:4 | y8 | 4294967295 | +| test.c:386:7:386:7 | x | 4294967295 | +| test.c:387:5:387:6 | y3 | 4294967295 | +| test.c:387:10:387:10 | x | 299 | +| test.c:388:5:388:6 | y4 | 4294967295 | +| test.c:388:10:388:10 | x | 299 | +| test.c:389:5:389:6 | y5 | 4294967295 | +| test.c:389:11:389:11 | x | 299 | +| test.c:390:5:390:6 | y6 | 4294967295 | +| test.c:390:27:390:27 | x | 299 | +| test.c:391:5:391:6 | y7 | 4294967295 | +| test.c:391:27:391:27 | x | 299 | +| test.c:392:5:392:6 | y8 | 4294967295 | +| test.c:392:28:392:28 | x | 299 | +| test.c:394:10:394:11 | y1 | 99 | +| test.c:394:15:394:16 | y2 | 99 | +| test.c:394:20:394:21 | y3 | 299 | +| test.c:394:25:394:26 | y4 | 500 | +| test.c:394:30:394:31 | y5 | 300 | +| test.c:394:35:394:36 | y6 | 255 | +| test.c:394:40:394:41 | y7 | 500 | +| test.c:394:45:394:46 | y8 | 300 | +| test.c:400:3:400:4 | y1 | 4294967295 | +| test.c:400:8:400:8 | x | 4294967295 | +| test.c:400:18:400:18 | x | 4294967295 | +| test.c:401:3:401:4 | y2 | 4294967295 | +| test.c:401:8:401:8 | x | 4294967295 | +| test.c:401:25:401:25 | x | 4294967295 | +| test.c:402:3:402:4 | y3 | 4294967295 | +| test.c:403:3:403:4 | y4 | 4294967295 | +| test.c:404:3:404:4 | y5 | 4294967295 | +| test.c:405:7:405:7 | x | 4294967295 | +| test.c:406:5:406:6 | y3 | 4294967295 | +| test.c:406:11:406:11 | x | 4294967295 | +| test.c:407:5:407:6 | y4 | 4294967295 | +| test.c:407:11:407:11 | x | 4294967295 | +| test.c:408:5:408:6 | y5 | 4294967295 | +| test.c:408:27:408:27 | x | 4294967295 | +| test.c:410:10:410:11 | y1 | 4294967295 | +| test.c:410:15:410:16 | y2 | 4294967295 | +| test.c:410:20:410:21 | y3 | 4294967295 | +| test.c:410:25:410:26 | y4 | 4294967295 | +| test.c:410:30:410:31 | y5 | 1000 | | test.c:415:14:415:14 | m | Infinity | | test.c:415:18:415:18 | n | Infinity | | test.c:415:22:415:22 | o | Infinity | | test.c:415:26:415:26 | p | Infinity | | test.c:415:30:415:30 | q | Infinity | -| test.c:421:19:421:19 | a | 0.474388 | -| test.c:421:23:421:23 | b | 0.592705 | -| test.c:421:27:421:27 | c | 0.793107 | -| test.c:421:31:421:31 | d | 0.989973 | -| test.c:421:35:421:35 | e | 0.903899 | -| test.c:421:39:421:39 | f | 0.761641 | -| test.c:421:43:421:43 | g | 0.958231 | -| test.c:421:47:421:47 | h | 0.843313 | -| test.c:421:51:421:51 | i | 0.770868 | -| test.c:421:55:421:55 | j | 0.768266 | -| test.c:421:59:421:59 | k | 0.889553 | -| test.c:421:63:421:63 | l | 0.538434 | -| test.c:423:10:423:15 | output | 9.284378 | -| test.c:430:7:430:9 | rhs | 4294967295 | -| test.c:430:19:430:21 | rhs | 11 | -| test.c:431:7:431:9 | rhs | 4294967295 | -| test.c:431:19:431:21 | rhs | 12 | -| test.c:432:7:432:9 | rhs | 4294967295 | -| test.c:432:19:432:21 | rhs | 13 | -| test.c:433:7:433:9 | rhs | 4294967295 | -| test.c:433:19:433:21 | rhs | 14 | -| test.c:434:7:434:9 | rhs | 4294967295 | -| test.c:434:19:434:21 | rhs | 15 | -| test.c:435:10:435:12 | rhs | 4294967295 | -| test.c:439:7:439:7 | a | 2147483647 | -| test.c:440:9:440:9 | b | 2147483647 | -| test.c:441:7:441:7 | a | 17 | -| test.c:441:12:441:12 | b | 23 | -| test.c:443:9:443:9 | a | 40 | -| test.c:444:7:444:7 | b | 2147483647 | -| test.c:449:11:449:11 | a | 2147483647 | -| test.c:449:15:449:15 | b | 2147483647 | -| test.c:450:10:450:10 | a | 2147483647 | -| test.c:450:14:450:14 | b | 2147483647 | -| test.c:457:10:457:11 | ip | 4294967295 | -| test.c:457:20:457:21 | ip | 4294967295 | -| test.c:457:40:457:41 | ip | 4294967295 | -| test.c:458:14:458:15 | ip | 4294967295 | -| test.c:459:14:459:15 | ip | 4294967295 | -| test.c:459:34:459:35 | ip | 4294967295 | -| test.c:460:11:460:12 | ip | 4294967295 | -| test.c:461:13:461:14 | ip | 4294967295 | -| test.c:462:14:462:15 | ip | 4294967295 | -| test.c:463:14:463:15 | ip | 4294967295 | -| test.c:464:15:464:16 | ip | 4294967295 | -| test.c:464:41:464:42 | ip | 4294967295 | -| test.c:464:52:464:53 | ip | 4294967295 | -| test.c:464:67:464:68 | ip | 4294967295 | -| test.c:464:78:464:79 | ip | 4294967295 | -| test.c:465:18:465:19 | ip | 4294967295 | -| test.c:466:23:466:24 | ip | 4294967295 | -| test.c:466:34:466:35 | ip | 4294967295 | -| test.c:467:25:467:26 | ip | 4294967295 | +| test.c:416:14:416:14 | m | Infinity | +| test.c:416:18:416:18 | n | Infinity | +| test.c:416:22:416:22 | o | Infinity | +| test.c:416:26:416:26 | p | Infinity | +| test.c:416:30:416:30 | q | Infinity | +| test.c:417:14:417:14 | m | Infinity | +| test.c:417:18:417:18 | n | Infinity | +| test.c:417:22:417:22 | o | Infinity | +| test.c:417:26:417:26 | p | Infinity | +| test.c:417:30:417:30 | q | Infinity | +| test.c:418:14:418:14 | m | Infinity | +| test.c:418:18:418:18 | n | Infinity | +| test.c:418:22:418:22 | o | Infinity | +| test.c:418:26:418:26 | p | Infinity | +| test.c:418:30:418:30 | q | Infinity | +| test.c:419:14:419:14 | m | Infinity | +| test.c:419:18:419:18 | n | Infinity | +| test.c:419:22:419:22 | o | Infinity | +| test.c:419:26:419:26 | p | Infinity | +| test.c:419:30:419:30 | q | Infinity | +| test.c:420:14:420:14 | m | Infinity | +| test.c:420:18:420:18 | n | Infinity | +| test.c:420:22:420:22 | o | Infinity | +| test.c:420:26:420:26 | p | Infinity | +| test.c:420:30:420:30 | q | Infinity | +| test.c:421:14:421:14 | m | Infinity | +| test.c:421:18:421:18 | n | Infinity | +| test.c:421:22:421:22 | o | Infinity | +| test.c:421:26:421:26 | p | Infinity | +| test.c:421:30:421:30 | q | Infinity | +| test.c:422:14:422:14 | m | Infinity | +| test.c:422:18:422:18 | n | Infinity | +| test.c:422:22:422:22 | o | Infinity | +| test.c:422:26:422:26 | p | Infinity | +| test.c:422:30:422:30 | q | Infinity | +| test.c:423:14:423:14 | m | Infinity | +| test.c:423:18:423:18 | n | Infinity | +| test.c:423:22:423:22 | o | Infinity | +| test.c:423:26:423:26 | p | Infinity | +| test.c:423:30:423:30 | q | Infinity | +| test.c:424:14:424:14 | m | Infinity | +| test.c:424:18:424:18 | n | Infinity | +| test.c:424:22:424:22 | o | Infinity | +| test.c:424:26:424:26 | p | Infinity | +| test.c:424:30:424:30 | q | Infinity | +| test.c:425:14:425:14 | m | Infinity | +| test.c:425:18:425:18 | n | Infinity | +| test.c:425:22:425:22 | o | Infinity | +| test.c:425:26:425:26 | p | Infinity | +| test.c:425:30:425:30 | q | Infinity | +| test.c:426:14:426:14 | m | Infinity | +| test.c:426:18:426:18 | n | Infinity | +| test.c:426:22:426:22 | o | Infinity | +| test.c:426:26:426:26 | p | Infinity | +| test.c:426:30:426:30 | q | Infinity | +| test.c:432:19:432:19 | a | 0.474388 | +| test.c:432:23:432:23 | b | 0.592705 | +| test.c:432:27:432:27 | c | 0.793107 | +| test.c:432:31:432:31 | d | 0.989973 | +| test.c:432:35:432:35 | e | 0.903899 | +| test.c:432:39:432:39 | f | 0.761641 | +| test.c:432:43:432:43 | g | 0.958231 | +| test.c:432:47:432:47 | h | 0.843313 | +| test.c:432:51:432:51 | i | 0.770868 | +| test.c:432:55:432:55 | j | 0.768266 | +| test.c:432:59:432:59 | k | 0.889553 | +| test.c:432:63:432:63 | l | 0.538434 | +| test.c:434:10:434:15 | output | 9.284378 | +| test.c:441:7:441:9 | rhs | 4294967295 | +| test.c:441:19:441:21 | rhs | 11 | +| test.c:442:7:442:9 | rhs | 4294967295 | +| test.c:442:19:442:21 | rhs | 12 | +| test.c:443:7:443:9 | rhs | 4294967295 | +| test.c:443:19:443:21 | rhs | 13 | +| test.c:444:7:444:9 | rhs | 4294967295 | +| test.c:444:19:444:21 | rhs | 14 | +| test.c:445:7:445:9 | rhs | 4294967295 | +| test.c:445:19:445:21 | rhs | 15 | +| test.c:446:10:446:12 | rhs | 4294967295 | +| test.c:450:7:450:7 | a | 2147483647 | +| test.c:451:9:451:9 | b | 2147483647 | +| test.c:452:7:452:7 | a | 17 | +| test.c:452:12:452:12 | b | 23 | +| test.c:454:9:454:9 | a | 40 | +| test.c:455:7:455:7 | b | 2147483647 | +| test.c:460:11:460:11 | a | 2147483647 | +| test.c:460:15:460:15 | b | 2147483647 | +| test.c:461:10:461:10 | a | 2147483647 | +| test.c:461:14:461:14 | b | 2147483647 | +| test.c:468:10:468:11 | ip | 4294967295 | | test.c:468:20:468:21 | ip | 4294967295 | -| test.c:469:11:469:12 | ip | 4294967295 | -| test.c:469:26:469:27 | ip | 4294967295 | -| test.c:470:16:470:17 | ip | 4294967295 | -| test.c:471:16:471:17 | ip | 4294967295 | -| test.c:472:16:472:17 | ip | 4294967295 | -| test.c:473:17:473:18 | ip | 4294967295 | -| test.c:474:22:474:23 | ip | 4294967295 | -| test.c:474:33:474:34 | ip | 4294967295 | -| test.c:474:48:474:49 | ip | 4294967295 | -| test.c:474:59:474:60 | ip | 4294967295 | -| test.c:475:20:475:21 | ip | 4294967295 | -| test.c:476:25:476:26 | ip | 4294967295 | -| test.c:476:36:476:37 | ip | 4294967295 | -| test.c:477:27:477:28 | ip | 4294967295 | -| test.c:478:22:478:23 | ip | 4294967295 | -| test.c:479:15:479:16 | ip | 4294967295 | -| test.c:479:30:479:31 | ip | 4294967295 | +| test.c:468:40:468:41 | ip | 4294967295 | +| test.c:469:14:469:15 | ip | 4294967295 | +| test.c:470:14:470:15 | ip | 4294967295 | +| test.c:470:34:470:35 | ip | 4294967295 | +| test.c:471:11:471:12 | ip | 4294967295 | +| test.c:472:13:472:14 | ip | 4294967295 | +| test.c:473:14:473:15 | ip | 4294967295 | +| test.c:474:14:474:15 | ip | 4294967295 | +| test.c:475:15:475:16 | ip | 4294967295 | +| test.c:475:41:475:42 | ip | 4294967295 | +| test.c:475:52:475:53 | ip | 4294967295 | +| test.c:475:67:475:68 | ip | 4294967295 | +| test.c:475:78:475:79 | ip | 4294967295 | +| test.c:476:18:476:19 | ip | 4294967295 | +| test.c:477:23:477:24 | ip | 4294967295 | +| test.c:477:34:477:35 | ip | 4294967295 | +| test.c:478:25:478:26 | ip | 4294967295 | +| test.c:479:20:479:21 | ip | 4294967295 | | test.c:480:11:480:12 | ip | 4294967295 | -| test.c:481:12:481:13 | ip | 4294967295 | -| test.c:482:12:482:13 | ip | 4294967295 | -| test.c:483:13:483:14 | ip | 4294967295 | -| test.c:483:39:483:40 | ip | 4294967295 | -| test.c:483:50:483:51 | ip | 4294967295 | -| test.c:483:65:483:66 | ip | 4294967295 | -| test.c:483:76:483:77 | ip | 4294967295 | -| test.c:484:16:484:17 | ip | 4294967295 | -| test.c:485:21:485:22 | ip | 4294967295 | -| test.c:485:32:485:33 | ip | 4294967295 | -| test.c:486:23:486:24 | ip | 4294967295 | -| test.c:487:18:487:19 | ip | 4294967295 | -| test.c:488:11:488:12 | ip | 4294967295 | -| test.c:488:17:488:18 | ip | 4294967295 | -| test.c:488:37:488:38 | ip | 4294967295 | -| test.c:488:43:488:44 | ip | 4294967295 | -| test.c:489:14:489:15 | ip | 4294967295 | -| test.c:490:14:490:15 | ip | 4294967295 | -| test.c:491:14:491:15 | ip | 4294967295 | -| test.c:492:15:492:16 | ip | 4294967295 | -| test.c:492:41:492:42 | ip | 4294967295 | -| test.c:492:52:492:53 | ip | 4294967295 | -| test.c:492:67:492:68 | ip | 4294967295 | -| test.c:492:78:492:79 | ip | 4294967295 | -| test.c:493:18:493:19 | ip | 4294967295 | -| test.c:494:23:494:24 | ip | 4294967295 | -| test.c:494:34:494:35 | ip | 4294967295 | -| test.c:495:25:495:26 | ip | 4294967295 | -| test.c:496:20:496:21 | ip | 4294967295 | -| test.c:497:14:497:15 | ip | 4294967295 | -| test.c:497:20:497:21 | ip | 4294967295 | -| test.c:498:16:498:17 | ip | 4294967295 | -| test.c:499:12:499:13 | ip | 4294967295 | +| test.c:480:26:480:27 | ip | 4294967295 | +| test.c:481:16:481:17 | ip | 4294967295 | +| test.c:482:16:482:17 | ip | 4294967295 | +| test.c:483:16:483:17 | ip | 4294967295 | +| test.c:484:17:484:18 | ip | 4294967295 | +| test.c:485:22:485:23 | ip | 4294967295 | +| test.c:485:33:485:34 | ip | 4294967295 | +| test.c:485:48:485:49 | ip | 4294967295 | +| test.c:485:59:485:60 | ip | 4294967295 | +| test.c:486:20:486:21 | ip | 4294967295 | +| test.c:487:25:487:26 | ip | 4294967295 | +| test.c:487:36:487:37 | ip | 4294967295 | +| test.c:488:27:488:28 | ip | 4294967295 | +| test.c:489:22:489:23 | ip | 4294967295 | +| test.c:490:15:490:16 | ip | 4294967295 | +| test.c:490:30:490:31 | ip | 4294967295 | +| test.c:491:11:491:12 | ip | 4294967295 | +| test.c:492:12:492:13 | ip | 4294967295 | +| test.c:493:12:493:13 | ip | 4294967295 | +| test.c:494:13:494:14 | ip | 4294967295 | +| test.c:494:39:494:40 | ip | 4294967295 | +| test.c:494:50:494:51 | ip | 4294967295 | +| test.c:494:65:494:66 | ip | 4294967295 | +| test.c:494:76:494:77 | ip | 4294967295 | +| test.c:495:16:495:17 | ip | 4294967295 | +| test.c:496:21:496:22 | ip | 4294967295 | +| test.c:496:32:496:33 | ip | 4294967295 | +| test.c:497:23:497:24 | ip | 4294967295 | +| test.c:498:18:498:19 | ip | 4294967295 | +| test.c:499:11:499:12 | ip | 4294967295 | +| test.c:499:17:499:18 | ip | 4294967295 | +| test.c:499:37:499:38 | ip | 4294967295 | +| test.c:499:43:499:44 | ip | 4294967295 | | test.c:500:14:500:15 | ip | 4294967295 | -| test.c:501:15:501:16 | ip | 4294967295 | -| test.c:502:16:502:17 | ip | 4294967295 | -| test.c:503:16:503:17 | ip | 4294967295 | -| test.c:504:17:504:18 | ip | 4294967295 | -| test.c:505:22:505:23 | ip | 4294967295 | -| test.c:505:33:505:34 | ip | 4294967295 | -| test.c:505:48:505:49 | ip | 4294967295 | -| test.c:505:59:505:60 | ip | 4294967295 | -| test.c:506:20:506:21 | ip | 4294967295 | -| test.c:507:25:507:26 | ip | 4294967295 | -| test.c:507:36:507:37 | ip | 4294967295 | -| test.c:508:27:508:28 | ip | 4294967295 | -| test.c:509:22:509:23 | ip | 4294967295 | -| test.c:510:13:510:14 | ip | 4294967295 | -| test.c:510:28:510:29 | ip | 4294967295 | -| test.c:511:18:511:19 | ip | 4294967295 | -| test.c:512:18:512:19 | ip | 4294967295 | -| test.c:513:18:513:19 | ip | 4294967295 | -| test.c:514:19:514:20 | ip | 4294967295 | -| test.c:515:24:515:25 | ip | 4294967295 | -| test.c:515:35:515:36 | ip | 4294967295 | -| test.c:515:50:515:51 | ip | 4294967295 | -| test.c:515:61:515:62 | ip | 4294967295 | +| test.c:501:14:501:15 | ip | 4294967295 | +| test.c:502:14:502:15 | ip | 4294967295 | +| test.c:503:15:503:16 | ip | 4294967295 | +| test.c:503:41:503:42 | ip | 4294967295 | +| test.c:503:52:503:53 | ip | 4294967295 | +| test.c:503:67:503:68 | ip | 4294967295 | +| test.c:503:78:503:79 | ip | 4294967295 | +| test.c:504:18:504:19 | ip | 4294967295 | +| test.c:505:23:505:24 | ip | 4294967295 | +| test.c:505:34:505:35 | ip | 4294967295 | +| test.c:506:25:506:26 | ip | 4294967295 | +| test.c:507:20:507:21 | ip | 4294967295 | +| test.c:508:14:508:15 | ip | 4294967295 | +| test.c:508:20:508:21 | ip | 4294967295 | +| test.c:509:16:509:17 | ip | 4294967295 | +| test.c:510:12:510:13 | ip | 4294967295 | +| test.c:511:14:511:15 | ip | 4294967295 | +| test.c:512:15:512:16 | ip | 4294967295 | +| test.c:513:16:513:17 | ip | 4294967295 | +| test.c:514:16:514:17 | ip | 4294967295 | +| test.c:515:17:515:18 | ip | 4294967295 | | test.c:516:22:516:23 | ip | 4294967295 | -| test.c:517:27:517:28 | ip | 4294967295 | -| test.c:517:38:517:39 | ip | 4294967295 | -| test.c:518:29:518:30 | ip | 4294967295 | -| test.c:519:24:519:25 | ip | 4294967295 | -| test.c:520:17:520:18 | ip | 4294967295 | -| test.c:520:32:520:33 | ip | 4294967295 | -| test.c:521:14:521:15 | ip | 4294967295 | +| test.c:516:33:516:34 | ip | 4294967295 | +| test.c:516:48:516:49 | ip | 4294967295 | +| test.c:516:59:516:60 | ip | 4294967295 | +| test.c:517:20:517:21 | ip | 4294967295 | +| test.c:518:25:518:26 | ip | 4294967295 | +| test.c:518:36:518:37 | ip | 4294967295 | +| test.c:519:27:519:28 | ip | 4294967295 | +| test.c:520:22:520:23 | ip | 4294967295 | +| test.c:521:13:521:14 | ip | 4294967295 | +| test.c:521:28:521:29 | ip | 4294967295 | | test.c:522:18:522:19 | ip | 4294967295 | | test.c:523:18:523:19 | ip | 4294967295 | -| test.c:524:19:524:20 | ip | 4294967295 | -| test.c:525:24:525:25 | ip | 4294967295 | -| test.c:525:35:525:36 | ip | 4294967295 | -| test.c:525:50:525:51 | ip | 4294967295 | -| test.c:525:61:525:62 | ip | 4294967295 | -| test.c:526:22:526:23 | ip | 4294967295 | -| test.c:527:27:527:28 | ip | 4294967295 | -| test.c:527:38:527:39 | ip | 4294967295 | -| test.c:528:29:528:30 | ip | 4294967295 | -| test.c:529:24:529:25 | ip | 4294967295 | -| test.c:530:17:530:18 | ip | 4294967295 | -| test.c:530:23:530:24 | ip | 4294967295 | -| test.c:530:43:530:44 | ip | 4294967295 | -| test.c:530:49:530:50 | ip | 4294967295 | -| test.c:531:16:531:17 | ip | 4294967295 | -| test.c:532:16:532:17 | ip | 4294967295 | -| test.c:533:16:533:17 | ip | 4294967295 | -| test.c:534:17:534:18 | ip | 4294967295 | -| test.c:535:22:535:23 | ip | 4294967295 | -| test.c:535:33:535:34 | ip | 4294967295 | -| test.c:535:48:535:49 | ip | 4294967295 | -| test.c:535:59:535:60 | ip | 4294967295 | -| test.c:536:20:536:21 | ip | 4294967295 | -| test.c:537:25:537:26 | ip | 4294967295 | -| test.c:537:36:537:37 | ip | 4294967295 | +| test.c:524:18:524:19 | ip | 4294967295 | +| test.c:525:19:525:20 | ip | 4294967295 | +| test.c:526:24:526:25 | ip | 4294967295 | +| test.c:526:35:526:36 | ip | 4294967295 | +| test.c:526:50:526:51 | ip | 4294967295 | +| test.c:526:61:526:62 | ip | 4294967295 | +| test.c:527:22:527:23 | ip | 4294967295 | +| test.c:528:27:528:28 | ip | 4294967295 | +| test.c:528:38:528:39 | ip | 4294967295 | +| test.c:529:29:529:30 | ip | 4294967295 | +| test.c:530:24:530:25 | ip | 4294967295 | +| test.c:531:17:531:18 | ip | 4294967295 | +| test.c:531:32:531:33 | ip | 4294967295 | +| test.c:532:14:532:15 | ip | 4294967295 | +| test.c:533:18:533:19 | ip | 4294967295 | +| test.c:534:18:534:19 | ip | 4294967295 | +| test.c:535:19:535:20 | ip | 4294967295 | +| test.c:536:24:536:25 | ip | 4294967295 | +| test.c:536:35:536:36 | ip | 4294967295 | +| test.c:536:50:536:51 | ip | 4294967295 | +| test.c:536:61:536:62 | ip | 4294967295 | +| test.c:537:22:537:23 | ip | 4294967295 | | test.c:538:27:538:28 | ip | 4294967295 | -| test.c:539:22:539:23 | ip | 4294967295 | -| test.c:540:16:540:17 | ip | 4294967295 | -| test.c:540:22:540:23 | ip | 4294967295 | -| test.c:541:18:541:19 | ip | 4294967295 | -| test.c:542:14:542:15 | ip | 4294967295 | -| test.c:543:14:543:15 | ip | 4294967295 | -| test.c:543:24:543:25 | ip | 4294967295 | -| test.c:543:44:543:45 | ip | 4294967295 | +| test.c:538:38:538:39 | ip | 4294967295 | +| test.c:539:29:539:30 | ip | 4294967295 | +| test.c:540:24:540:25 | ip | 4294967295 | +| test.c:541:17:541:18 | ip | 4294967295 | +| test.c:541:23:541:24 | ip | 4294967295 | +| test.c:541:43:541:44 | ip | 4294967295 | +| test.c:541:49:541:50 | ip | 4294967295 | +| test.c:542:16:542:17 | ip | 4294967295 | +| test.c:543:16:543:17 | ip | 4294967295 | | test.c:544:16:544:17 | ip | 4294967295 | -| test.c:545:16:545:17 | ip | 4294967295 | -| test.c:545:36:545:37 | ip | 4294967295 | -| test.c:546:14:546:15 | ip | 4294967295 | -| test.c:547:19:547:20 | ip | 4294967295 | -| test.c:548:20:548:21 | ip | 4294967295 | -| test.c:549:20:549:21 | ip | 4294967295 | -| test.c:550:21:550:22 | ip | 4294967295 | -| test.c:551:26:551:27 | ip | 4294967295 | -| test.c:551:37:551:38 | ip | 4294967295 | -| test.c:551:52:551:53 | ip | 4294967295 | -| test.c:551:63:551:64 | ip | 4294967295 | -| test.c:552:24:552:25 | ip | 4294967295 | -| test.c:553:29:553:30 | ip | 4294967295 | -| test.c:553:40:553:41 | ip | 4294967295 | -| test.c:554:31:554:32 | ip | 4294967295 | -| test.c:555:26:555:27 | ip | 4294967295 | -| test.c:556:17:556:18 | ip | 4294967295 | -| test.c:556:32:556:33 | ip | 4294967295 | -| test.c:557:22:557:23 | ip | 4294967295 | -| test.c:558:22:558:23 | ip | 4294967295 | -| test.c:559:22:559:23 | ip | 4294967295 | -| test.c:560:23:560:24 | ip | 4294967295 | -| test.c:561:28:561:29 | ip | 4294967295 | -| test.c:561:39:561:40 | ip | 4294967295 | -| test.c:561:54:561:55 | ip | 4294967295 | -| test.c:561:65:561:66 | ip | 4294967295 | +| test.c:545:17:545:18 | ip | 4294967295 | +| test.c:546:22:546:23 | ip | 4294967295 | +| test.c:546:33:546:34 | ip | 4294967295 | +| test.c:546:48:546:49 | ip | 4294967295 | +| test.c:546:59:546:60 | ip | 4294967295 | +| test.c:547:20:547:21 | ip | 4294967295 | +| test.c:548:25:548:26 | ip | 4294967295 | +| test.c:548:36:548:37 | ip | 4294967295 | +| test.c:549:27:549:28 | ip | 4294967295 | +| test.c:550:22:550:23 | ip | 4294967295 | +| test.c:551:16:551:17 | ip | 4294967295 | +| test.c:551:22:551:23 | ip | 4294967295 | +| test.c:552:18:552:19 | ip | 4294967295 | +| test.c:553:14:553:15 | ip | 4294967295 | +| test.c:554:14:554:15 | ip | 4294967295 | +| test.c:554:24:554:25 | ip | 4294967295 | +| test.c:554:44:554:45 | ip | 4294967295 | +| test.c:555:16:555:17 | ip | 4294967295 | +| test.c:556:16:556:17 | ip | 4294967295 | +| test.c:556:36:556:37 | ip | 4294967295 | +| test.c:557:14:557:15 | ip | 4294967295 | +| test.c:558:19:558:20 | ip | 4294967295 | +| test.c:559:20:559:21 | ip | 4294967295 | +| test.c:560:20:560:21 | ip | 4294967295 | +| test.c:561:21:561:22 | ip | 4294967295 | | test.c:562:26:562:27 | ip | 4294967295 | -| test.c:563:31:563:32 | ip | 4294967295 | -| test.c:563:42:563:43 | ip | 4294967295 | -| test.c:564:33:564:34 | ip | 4294967295 | -| test.c:565:28:565:29 | ip | 4294967295 | -| test.c:566:21:566:22 | ip | 4294967295 | -| test.c:566:36:566:37 | ip | 4294967295 | +| test.c:562:37:562:38 | ip | 4294967295 | +| test.c:562:52:562:53 | ip | 4294967295 | +| test.c:562:63:562:64 | ip | 4294967295 | +| test.c:563:24:563:25 | ip | 4294967295 | +| test.c:564:29:564:30 | ip | 4294967295 | +| test.c:564:40:564:41 | ip | 4294967295 | +| test.c:565:31:565:32 | ip | 4294967295 | +| test.c:566:26:566:27 | ip | 4294967295 | | test.c:567:17:567:18 | ip | 4294967295 | -| test.c:568:18:568:19 | ip | 4294967295 | -| test.c:569:18:569:19 | ip | 4294967295 | -| test.c:570:19:570:20 | ip | 4294967295 | -| test.c:571:24:571:25 | ip | 4294967295 | -| test.c:571:35:571:36 | ip | 4294967295 | -| test.c:571:50:571:51 | ip | 4294967295 | -| test.c:571:61:571:62 | ip | 4294967295 | -| test.c:572:22:572:23 | ip | 4294967295 | -| test.c:573:27:573:28 | ip | 4294967295 | -| test.c:573:38:573:39 | ip | 4294967295 | -| test.c:574:29:574:30 | ip | 4294967295 | -| test.c:575:24:575:25 | ip | 4294967295 | -| test.c:576:17:576:18 | ip | 4294967295 | -| test.c:576:23:576:24 | ip | 4294967295 | -| test.c:576:43:576:44 | ip | 4294967295 | -| test.c:576:49:576:50 | ip | 4294967295 | -| test.c:577:20:577:21 | ip | 4294967295 | -| test.c:578:20:578:21 | ip | 4294967295 | -| test.c:579:20:579:21 | ip | 4294967295 | -| test.c:580:21:580:22 | ip | 4294967295 | -| test.c:581:26:581:27 | ip | 4294967295 | -| test.c:581:37:581:38 | ip | 4294967295 | -| test.c:581:52:581:53 | ip | 4294967295 | -| test.c:581:63:581:64 | ip | 4294967295 | +| test.c:567:32:567:33 | ip | 4294967295 | +| test.c:568:22:568:23 | ip | 4294967295 | +| test.c:569:22:569:23 | ip | 4294967295 | +| test.c:570:22:570:23 | ip | 4294967295 | +| test.c:571:23:571:24 | ip | 4294967295 | +| test.c:572:28:572:29 | ip | 4294967295 | +| test.c:572:39:572:40 | ip | 4294967295 | +| test.c:572:54:572:55 | ip | 4294967295 | +| test.c:572:65:572:66 | ip | 4294967295 | +| test.c:573:26:573:27 | ip | 4294967295 | +| test.c:574:31:574:32 | ip | 4294967295 | +| test.c:574:42:574:43 | ip | 4294967295 | +| test.c:575:33:575:34 | ip | 4294967295 | +| test.c:576:28:576:29 | ip | 4294967295 | +| test.c:577:21:577:22 | ip | 4294967295 | +| test.c:577:36:577:37 | ip | 4294967295 | +| test.c:578:17:578:18 | ip | 4294967295 | +| test.c:579:18:579:19 | ip | 4294967295 | +| test.c:580:18:580:19 | ip | 4294967295 | +| test.c:581:19:581:20 | ip | 4294967295 | | test.c:582:24:582:25 | ip | 4294967295 | -| test.c:583:29:583:30 | ip | 4294967295 | -| test.c:583:40:583:41 | ip | 4294967295 | -| test.c:584:31:584:32 | ip | 4294967295 | -| test.c:585:26:585:27 | ip | 4294967295 | -| test.c:586:20:586:21 | ip | 4294967295 | -| test.c:586:26:586:27 | ip | 4294967295 | -| test.c:587:22:587:23 | ip | 4294967295 | -| test.c:588:18:588:19 | ip | 4294967295 | -| test.c:589:16:589:17 | ip | 4294967295 | -| test.c:590:17:590:18 | ip | 4294967295 | -| test.c:591:18:591:19 | ip | 4294967295 | -| test.c:592:18:592:19 | ip | 4294967295 | -| test.c:593:19:593:20 | ip | 4294967295 | -| test.c:594:24:594:25 | ip | 4294967295 | -| test.c:594:35:594:36 | ip | 4294967295 | -| test.c:594:50:594:51 | ip | 4294967295 | -| test.c:594:61:594:62 | ip | 4294967295 | -| test.c:595:22:595:23 | ip | 4294967295 | -| test.c:596:27:596:28 | ip | 4294967295 | -| test.c:596:38:596:39 | ip | 4294967295 | -| test.c:597:29:597:30 | ip | 4294967295 | -| test.c:598:24:598:25 | ip | 4294967295 | -| test.c:599:15:599:16 | ip | 4294967295 | -| test.c:599:30:599:31 | ip | 4294967295 | -| test.c:600:20:600:21 | ip | 4294967295 | -| test.c:601:20:601:21 | ip | 4294967295 | -| test.c:602:20:602:21 | ip | 4294967295 | -| test.c:603:21:603:22 | ip | 4294967295 | -| test.c:604:26:604:27 | ip | 4294967295 | -| test.c:604:37:604:38 | ip | 4294967295 | -| test.c:604:52:604:53 | ip | 4294967295 | -| test.c:604:63:604:64 | ip | 4294967295 | +| test.c:582:35:582:36 | ip | 4294967295 | +| test.c:582:50:582:51 | ip | 4294967295 | +| test.c:582:61:582:62 | ip | 4294967295 | +| test.c:583:22:583:23 | ip | 4294967295 | +| test.c:584:27:584:28 | ip | 4294967295 | +| test.c:584:38:584:39 | ip | 4294967295 | +| test.c:585:29:585:30 | ip | 4294967295 | +| test.c:586:24:586:25 | ip | 4294967295 | +| test.c:587:17:587:18 | ip | 4294967295 | +| test.c:587:23:587:24 | ip | 4294967295 | +| test.c:587:43:587:44 | ip | 4294967295 | +| test.c:587:49:587:50 | ip | 4294967295 | +| test.c:588:20:588:21 | ip | 4294967295 | +| test.c:589:20:589:21 | ip | 4294967295 | +| test.c:590:20:590:21 | ip | 4294967295 | +| test.c:591:21:591:22 | ip | 4294967295 | +| test.c:592:26:592:27 | ip | 4294967295 | +| test.c:592:37:592:38 | ip | 4294967295 | +| test.c:592:52:592:53 | ip | 4294967295 | +| test.c:592:63:592:64 | ip | 4294967295 | +| test.c:593:24:593:25 | ip | 4294967295 | +| test.c:594:29:594:30 | ip | 4294967295 | +| test.c:594:40:594:41 | ip | 4294967295 | +| test.c:595:31:595:32 | ip | 4294967295 | +| test.c:596:26:596:27 | ip | 4294967295 | +| test.c:597:20:597:21 | ip | 4294967295 | +| test.c:597:26:597:27 | ip | 4294967295 | +| test.c:598:22:598:23 | ip | 4294967295 | +| test.c:599:18:599:19 | ip | 4294967295 | +| test.c:600:16:600:17 | ip | 4294967295 | +| test.c:601:17:601:18 | ip | 4294967295 | +| test.c:602:18:602:19 | ip | 4294967295 | +| test.c:603:18:603:19 | ip | 4294967295 | +| test.c:604:19:604:20 | ip | 4294967295 | | test.c:605:24:605:25 | ip | 4294967295 | -| test.c:606:29:606:30 | ip | 4294967295 | -| test.c:606:40:606:41 | ip | 4294967295 | -| test.c:607:31:607:32 | ip | 4294967295 | -| test.c:608:26:608:27 | ip | 4294967295 | -| test.c:609:19:609:20 | ip | 4294967295 | -| test.c:609:34:609:35 | ip | 4294967295 | -| test.c:610:16:610:17 | ip | 4294967295 | +| test.c:605:35:605:36 | ip | 4294967295 | +| test.c:605:50:605:51 | ip | 4294967295 | +| test.c:605:61:605:62 | ip | 4294967295 | +| test.c:606:22:606:23 | ip | 4294967295 | +| test.c:607:27:607:28 | ip | 4294967295 | +| test.c:607:38:607:39 | ip | 4294967295 | +| test.c:608:29:608:30 | ip | 4294967295 | +| test.c:609:24:609:25 | ip | 4294967295 | +| test.c:610:15:610:16 | ip | 4294967295 | +| test.c:610:30:610:31 | ip | 4294967295 | | test.c:611:20:611:21 | ip | 4294967295 | | test.c:612:20:612:21 | ip | 4294967295 | -| test.c:613:21:613:22 | ip | 4294967295 | -| test.c:614:26:614:27 | ip | 4294967295 | -| test.c:614:37:614:38 | ip | 4294967295 | -| test.c:614:52:614:53 | ip | 4294967295 | -| test.c:614:63:614:64 | ip | 4294967295 | -| test.c:615:24:615:25 | ip | 4294967295 | -| test.c:616:29:616:30 | ip | 4294967295 | -| test.c:616:40:616:41 | ip | 4294967295 | -| test.c:617:31:617:32 | ip | 4294967295 | -| test.c:618:26:618:27 | ip | 4294967295 | -| test.c:619:19:619:20 | ip | 4294967295 | -| test.c:619:25:619:26 | ip | 4294967295 | -| test.c:619:45:619:46 | ip | 4294967295 | -| test.c:619:51:619:52 | ip | 4294967295 | -| test.c:620:18:620:19 | ip | 4294967295 | -| test.c:621:18:621:19 | ip | 4294967295 | -| test.c:622:18:622:19 | ip | 4294967295 | -| test.c:623:19:623:20 | ip | 4294967295 | -| test.c:624:24:624:25 | ip | 4294967295 | -| test.c:624:35:624:36 | ip | 4294967295 | -| test.c:624:50:624:51 | ip | 4294967295 | -| test.c:624:61:624:62 | ip | 4294967295 | -| test.c:625:22:625:23 | ip | 4294967295 | -| test.c:626:27:626:28 | ip | 4294967295 | -| test.c:626:38:626:39 | ip | 4294967295 | +| test.c:613:20:613:21 | ip | 4294967295 | +| test.c:614:21:614:22 | ip | 4294967295 | +| test.c:615:26:615:27 | ip | 4294967295 | +| test.c:615:37:615:38 | ip | 4294967295 | +| test.c:615:52:615:53 | ip | 4294967295 | +| test.c:615:63:615:64 | ip | 4294967295 | +| test.c:616:24:616:25 | ip | 4294967295 | +| test.c:617:29:617:30 | ip | 4294967295 | +| test.c:617:40:617:41 | ip | 4294967295 | +| test.c:618:31:618:32 | ip | 4294967295 | +| test.c:619:26:619:27 | ip | 4294967295 | +| test.c:620:19:620:20 | ip | 4294967295 | +| test.c:620:34:620:35 | ip | 4294967295 | +| test.c:621:16:621:17 | ip | 4294967295 | +| test.c:622:20:622:21 | ip | 4294967295 | +| test.c:623:20:623:21 | ip | 4294967295 | +| test.c:624:21:624:22 | ip | 4294967295 | +| test.c:625:26:625:27 | ip | 4294967295 | +| test.c:625:37:625:38 | ip | 4294967295 | +| test.c:625:52:625:53 | ip | 4294967295 | +| test.c:625:63:625:64 | ip | 4294967295 | +| test.c:626:24:626:25 | ip | 4294967295 | | test.c:627:29:627:30 | ip | 4294967295 | -| test.c:628:24:628:25 | ip | 4294967295 | -| test.c:629:18:629:19 | ip | 4294967295 | -| test.c:629:24:629:25 | ip | 4294967295 | -| test.c:630:20:630:21 | ip | 4294967295 | -| test.c:631:16:631:17 | ip | 4294967295 | -| test.c:632:10:632:23 | special_number | 4294967295 | -| test.c:640:7:640:8 | c1 | 2147483647 | -| test.c:640:13:640:13 | x | 0 | -| test.c:641:7:641:8 | c2 | 2147483647 | -| test.c:641:13:641:13 | x | 748596 | -| test.c:642:7:642:8 | c3 | 2147483647 | -| test.c:642:13:642:13 | x | 85400991 | -| test.c:643:7:643:8 | c4 | 2147483647 | -| test.c:643:13:643:13 | x | 89076886 | -| test.c:644:7:644:8 | c5 | 2147483647 | -| test.c:644:13:644:13 | x | 89175520 | -| test.c:645:7:645:8 | c1 | 2147483647 | -| test.c:645:13:645:14 | c2 | 2147483647 | -| test.c:645:19:645:19 | x | 97010505 | -| test.c:646:7:646:8 | c1 | 2147483647 | -| test.c:646:13:646:14 | c3 | 2147483647 | -| test.c:646:19:646:19 | x | 1035467903 | -| test.c:647:7:647:8 | c1 | 2147483647 | -| test.c:647:13:647:14 | c4 | 2147483647 | -| test.c:647:19:647:19 | x | 1109363551 | -| test.c:648:7:648:8 | c1 | 2147483647 | -| test.c:648:13:648:14 | c5 | 2147483647 | -| test.c:648:19:648:19 | x | 1121708983 | -| test.c:649:7:649:8 | c2 | 2147483647 | -| test.c:649:13:649:14 | c3 | 2147483647 | -| test.c:649:19:649:19 | x | 1121747830 | -| test.c:651:11:651:11 | x | 2147483647 | -| test.c:651:15:651:15 | x | 2147483647 | -| test.c:651:19:651:19 | x | 2147483647 | -| test.c:651:23:651:23 | x | 2147483647 | -| test.c:651:27:651:27 | x | 2147483647 | -| test.c:651:31:651:31 | x | 2147483647 | -| test.c:651:35:651:35 | x | 2147483647 | -| test.c:651:39:651:39 | x | 2147483647 | -| test.c:651:43:651:43 | x | 2147483647 | -| test.c:651:47:651:47 | x | 2147483647 | -| test.c:651:51:651:51 | x | 2147483647 | -| test.c:651:55:651:55 | x | 2147483647 | -| test.c:652:10:652:10 | y | 2147483647 | -| test.c:657:20:657:20 | x | 4294967295 | -| test.c:657:30:657:30 | x | 99 | -| test.c:660:3:660:4 | y1 | 4294967295 | -| test.c:660:11:660:11 | y | 100 | -| test.c:660:14:660:14 | y | 101 | -| test.c:661:3:661:4 | y2 | 4294967295 | -| test.c:661:9:661:9 | y | 101 | -| test.c:661:14:661:14 | y | 102 | -| test.c:661:22:661:22 | y | 105 | -| test.c:662:10:662:11 | y1 | 101 | -| test.c:662:15:662:16 | y2 | 105 | -| test.c:670:3:670:3 | i | 2147483647 | -| test.c:671:7:671:7 | i | 10 | -| test.c:673:3:673:3 | i | 2147483647 | -| test.c:674:3:674:3 | i | 10 | -| test.c:675:7:675:7 | i | 20 | -| test.c:677:3:677:3 | i | 2147483647 | -| test.c:678:3:678:3 | i | 40 | -| test.c:679:7:679:7 | i | 30 | +| test.c:627:40:627:41 | ip | 4294967295 | +| test.c:628:31:628:32 | ip | 4294967295 | +| test.c:629:26:629:27 | ip | 4294967295 | +| test.c:630:19:630:20 | ip | 4294967295 | +| test.c:630:25:630:26 | ip | 4294967295 | +| test.c:630:45:630:46 | ip | 4294967295 | +| test.c:630:51:630:52 | ip | 4294967295 | +| test.c:631:18:631:19 | ip | 4294967295 | +| test.c:632:18:632:19 | ip | 4294967295 | +| test.c:633:18:633:19 | ip | 4294967295 | +| test.c:634:19:634:20 | ip | 4294967295 | +| test.c:635:24:635:25 | ip | 4294967295 | +| test.c:635:35:635:36 | ip | 4294967295 | +| test.c:635:50:635:51 | ip | 4294967295 | +| test.c:635:61:635:62 | ip | 4294967295 | +| test.c:636:22:636:23 | ip | 4294967295 | +| test.c:637:27:637:28 | ip | 4294967295 | +| test.c:637:38:637:39 | ip | 4294967295 | +| test.c:638:29:638:30 | ip | 4294967295 | +| test.c:639:24:639:25 | ip | 4294967295 | +| test.c:640:18:640:19 | ip | 4294967295 | +| test.c:640:24:640:25 | ip | 4294967295 | +| test.c:641:20:641:21 | ip | 4294967295 | +| test.c:642:16:642:17 | ip | 4294967295 | +| test.c:643:10:643:23 | special_number | 4294967295 | +| test.c:651:7:651:8 | c1 | 2147483647 | +| test.c:651:13:651:13 | x | 0 | +| test.c:652:7:652:8 | c2 | 2147483647 | +| test.c:652:13:652:13 | x | 748596 | +| test.c:653:7:653:8 | c3 | 2147483647 | +| test.c:653:13:653:13 | x | 85400991 | +| test.c:654:7:654:8 | c4 | 2147483647 | +| test.c:654:13:654:13 | x | 89076886 | +| test.c:655:7:655:8 | c5 | 2147483647 | +| test.c:655:13:655:13 | x | 89175520 | +| test.c:656:7:656:8 | c1 | 2147483647 | +| test.c:656:13:656:14 | c2 | 2147483647 | +| test.c:656:19:656:19 | x | 97010505 | +| test.c:657:7:657:8 | c1 | 2147483647 | +| test.c:657:13:657:14 | c3 | 2147483647 | +| test.c:657:19:657:19 | x | 1035467903 | +| test.c:658:7:658:8 | c1 | 2147483647 | +| test.c:658:13:658:14 | c4 | 2147483647 | +| test.c:658:19:658:19 | x | 1109363551 | +| test.c:659:7:659:8 | c1 | 2147483647 | +| test.c:659:13:659:14 | c5 | 2147483647 | +| test.c:659:19:659:19 | x | 1121708983 | +| test.c:660:7:660:8 | c2 | 2147483647 | +| test.c:660:13:660:14 | c3 | 2147483647 | +| test.c:660:19:660:19 | x | 1121747830 | +| test.c:662:11:662:11 | x | 2147483647 | +| test.c:662:15:662:15 | x | 2147483647 | +| test.c:662:19:662:19 | x | 2147483647 | +| test.c:662:23:662:23 | x | 2147483647 | +| test.c:662:27:662:27 | x | 2147483647 | +| test.c:662:31:662:31 | x | 2147483647 | +| test.c:662:35:662:35 | x | 2147483647 | +| test.c:662:39:662:39 | x | 2147483647 | +| test.c:662:43:662:43 | x | 2147483647 | +| test.c:662:47:662:47 | x | 2147483647 | +| test.c:662:51:662:51 | x | 2147483647 | +| test.c:662:55:662:55 | x | 2147483647 | +| test.c:663:10:663:10 | y | 2147483647 | +| test.c:668:20:668:20 | x | 4294967295 | +| test.c:668:30:668:30 | x | 99 | +| test.c:671:3:671:4 | y1 | 4294967295 | +| test.c:671:11:671:11 | y | 100 | +| test.c:671:14:671:14 | y | 101 | +| test.c:672:3:672:4 | y2 | 4294967295 | +| test.c:672:9:672:9 | y | 101 | +| test.c:672:14:672:14 | y | 102 | +| test.c:672:22:672:22 | y | 105 | +| test.c:673:10:673:11 | y1 | 101 | +| test.c:673:15:673:16 | y2 | 105 | | test.c:681:3:681:3 | i | 2147483647 | -| test.c:681:7:681:7 | j | 2147483647 | -| test.c:682:7:682:7 | i | 40 | +| test.c:682:7:682:7 | i | 10 | | test.c:684:3:684:3 | i | 2147483647 | -| test.c:684:8:684:8 | j | 40 | -| test.c:685:7:685:7 | i | 50 | -| test.c:687:3:687:3 | i | 2147483647 | -| test.c:687:13:687:13 | j | 50 | -| test.c:688:7:688:7 | i | 60 | -| test.c:695:12:695:12 | a | 4294967295 | -| test.c:695:17:695:17 | a | 4294967295 | -| test.c:695:33:695:33 | b | 4294967295 | -| test.c:695:38:695:38 | b | 4294967295 | -| test.c:696:13:696:13 | a | 11 | -| test.c:696:15:696:15 | b | 23 | -| test.c:697:5:697:9 | total | 0 | -| test.c:697:14:697:14 | r | 253 | -| test.c:699:12:699:12 | a | 4294967295 | -| test.c:699:17:699:17 | a | 4294967295 | -| test.c:699:33:699:33 | b | 4294967295 | -| test.c:699:38:699:38 | b | 4294967295 | -| test.c:700:13:700:13 | a | 11 | -| test.c:700:15:700:15 | b | 23 | -| test.c:701:5:701:9 | total | 253 | -| test.c:701:14:701:14 | r | 253 | -| test.c:703:12:703:12 | a | 4294967295 | -| test.c:703:17:703:17 | a | 4294967295 | -| test.c:703:34:703:34 | b | 4294967295 | -| test.c:703:39:703:39 | b | 4294967295 | -| test.c:704:13:704:13 | a | 11 | -| test.c:704:15:704:15 | b | 23 | -| test.c:705:5:705:9 | total | 506 | -| test.c:705:14:705:14 | r | 253 | -| test.c:708:10:708:14 | total | 759 | -| test.c:714:12:714:12 | b | 4294967295 | -| test.c:714:17:714:17 | b | 4294967295 | -| test.c:715:16:715:16 | b | 23 | -| test.c:716:5:716:9 | total | 0 | +| test.c:685:3:685:3 | i | 10 | +| test.c:686:7:686:7 | i | 20 | +| test.c:688:3:688:3 | i | 2147483647 | +| test.c:689:3:689:3 | i | 40 | +| test.c:690:7:690:7 | i | 30 | +| test.c:692:3:692:3 | i | 2147483647 | +| test.c:692:7:692:7 | j | 2147483647 | +| test.c:693:7:693:7 | i | 40 | +| test.c:695:3:695:3 | i | 2147483647 | +| test.c:695:8:695:8 | j | 40 | +| test.c:696:7:696:7 | i | 50 | +| test.c:698:3:698:3 | i | 2147483647 | +| test.c:698:13:698:13 | j | 50 | +| test.c:699:7:699:7 | i | 60 | +| test.c:706:12:706:12 | a | 4294967295 | +| test.c:706:17:706:17 | a | 4294967295 | +| test.c:706:33:706:33 | b | 4294967295 | +| test.c:706:38:706:38 | b | 4294967295 | +| test.c:707:13:707:13 | a | 11 | +| test.c:707:15:707:15 | b | 23 | +| test.c:708:5:708:9 | total | 0 | +| test.c:708:14:708:14 | r | 253 | +| test.c:710:12:710:12 | a | 4294967295 | +| test.c:710:17:710:17 | a | 4294967295 | +| test.c:710:33:710:33 | b | 4294967295 | +| test.c:710:38:710:38 | b | 4294967295 | +| test.c:711:13:711:13 | a | 11 | +| test.c:711:15:711:15 | b | 23 | +| test.c:712:5:712:9 | total | 253 | +| test.c:712:14:712:14 | r | 253 | +| test.c:714:12:714:12 | a | 4294967295 | +| test.c:714:17:714:17 | a | 4294967295 | +| test.c:714:34:714:34 | b | 4294967295 | +| test.c:714:39:714:39 | b | 4294967295 | +| test.c:715:13:715:13 | a | 11 | +| test.c:715:15:715:15 | b | 23 | +| test.c:716:5:716:9 | total | 506 | | test.c:716:14:716:14 | r | 253 | -| test.c:718:12:718:12 | b | 4294967295 | -| test.c:718:17:718:17 | b | 4294967295 | -| test.c:719:16:719:16 | b | 23 | -| test.c:720:5:720:9 | total | 253 | -| test.c:720:14:720:14 | r | 253 | -| test.c:722:13:722:13 | b | 4294967295 | -| test.c:722:18:722:18 | b | 4294967295 | -| test.c:723:16:723:16 | b | 23 | -| test.c:724:5:724:9 | total | 506 | -| test.c:724:14:724:14 | r | 253 | -| test.c:727:10:727:14 | total | 759 | -| test.c:732:3:732:3 | x | 18446744073709551616 | -| test.c:732:7:732:7 | y | 18446744073709551616 | -| test.c:733:3:733:4 | xy | 18446744073709551616 | -| test.c:733:8:733:8 | x | 1000000003 | -| test.c:733:12:733:12 | y | 1000000003 | -| test.c:734:10:734:11 | xy | 1000000006000000000 | -| test.c:739:3:739:3 | x | 18446744073709551616 | -| test.c:740:3:740:3 | y | 18446744073709551616 | -| test.c:741:3:741:4 | xy | 18446744073709551616 | -| test.c:741:8:741:8 | x | 274177 | -| test.c:741:12:741:12 | y | 67280421310721 | -| test.c:742:10:742:11 | xy | 18446744073709551616 | -| test.c:746:7:746:8 | ui | 4294967295 | -| test.c:747:43:747:44 | ui | 4294967295 | -| test.c:747:48:747:49 | ui | 4294967295 | -| test.c:748:12:748:17 | result | 18446744065119617024 | -| test.c:750:7:750:8 | ul | 18446744073709551616 | -| test.c:751:28:751:29 | ul | 18446744073709551616 | -| test.c:751:33:751:34 | ul | 18446744073709551616 | -| test.c:752:12:752:17 | result | 18446744073709551616 | -| test.c:758:7:758:8 | ui | 4294967295 | -| test.c:758:19:758:20 | ui | 10 | -| test.c:759:5:759:6 | ui | 10 | -| test.c:759:11:759:12 | ui | 10 | -| test.c:760:12:760:13 | ui | 100 | -| test.c:764:3:764:9 | uiconst | 10 | -| test.c:767:3:767:9 | ulconst | 10 | -| test.c:768:10:768:16 | uiconst | 40 | -| test.c:768:20:768:26 | ulconst | 40 | -| test.c:772:7:772:7 | i | 2147483647 | -| test.c:772:18:772:18 | i | 2147483647 | -| test.c:773:5:773:5 | i | 2147483647 | -| test.c:773:13:773:13 | i | 2 | -| test.c:774:9:774:9 | i | 10 | -| test.c:776:5:776:5 | i | 2147483647 | -| test.c:776:9:776:9 | i | 10 | -| test.c:777:9:777:9 | i | 15 | -| test.c:779:5:779:5 | i | 15 | -| test.c:780:9:780:9 | i | 105 | -| test.c:782:5:782:5 | i | 105 | -| test.c:783:9:783:9 | i | 2310 | -| test.c:785:7:785:7 | i | 2147483647 | -| test.c:786:5:786:5 | i | 2147483647 | -| test.c:786:9:786:9 | i | -1 | -| test.c:787:9:787:9 | i | 1 | -| test.c:789:3:789:3 | i | 2147483647 | -| test.c:789:7:789:7 | i | 2147483647 | -| test.c:790:10:790:10 | i | 2147483647 | -| test.c:793:3:793:3 | i | 2147483647 | -| test.c:793:10:793:11 | sc | 1 | -| test.c:795:7:795:7 | i | 127 | -| test.c:802:7:802:7 | n | 4294967295 | -| test.c:804:7:804:7 | n | 4294967295 | -| test.c:805:9:805:9 | n | 4294967295 | -| test.c:808:7:808:7 | n | 4294967295 | -| test.c:809:9:809:9 | n | 4294967295 | -| test.c:811:9:811:9 | n | 0 | -| test.c:814:8:814:8 | n | 4294967295 | -| test.c:815:9:815:9 | n | 0 | -| test.c:817:9:817:9 | n | 4294967295 | -| test.c:820:10:820:10 | n | 4294967295 | -| test.c:821:5:821:5 | n | 4294967295 | -| test.c:824:7:824:7 | n | 0 | -| test.c:828:7:828:7 | n | 32767 | -| test.c:831:7:831:7 | n | 32767 | -| test.c:832:9:832:9 | n | 0 | -| test.c:834:9:834:9 | n | 32767 | -| test.c:837:7:837:7 | n | 32767 | -| test.c:838:9:838:9 | n | 32767 | -| test.c:840:9:840:9 | n | 0 | -| test.c:843:10:843:10 | n | 32767 | -| test.c:844:5:844:5 | n | 32767 | -| test.c:847:7:847:7 | n | 0 | -| test.c:851:7:851:7 | n | 32767 | -| test.c:852:9:852:9 | n | 32767 | -| test.c:853:11:853:11 | n | 32767 | -| test.c:857:7:857:7 | n | 32767 | -| test.c:858:13:858:13 | n | 32767 | -| test.c:861:9:861:9 | n | 32767 | -| test.c:864:7:864:7 | n | 32767 | -| test.c:864:22:864:22 | n | 32767 | -| test.c:865:9:865:9 | n | 32767 | +| test.c:719:10:719:14 | total | 759 | +| test.c:725:12:725:12 | b | 4294967295 | +| test.c:725:17:725:17 | b | 4294967295 | +| test.c:726:16:726:16 | b | 23 | +| test.c:727:5:727:9 | total | 0 | +| test.c:727:14:727:14 | r | 253 | +| test.c:729:12:729:12 | b | 4294967295 | +| test.c:729:17:729:17 | b | 4294967295 | +| test.c:730:16:730:16 | b | 23 | +| test.c:731:5:731:9 | total | 253 | +| test.c:731:14:731:14 | r | 253 | +| test.c:733:13:733:13 | b | 4294967295 | +| test.c:733:18:733:18 | b | 4294967295 | +| test.c:734:16:734:16 | b | 23 | +| test.c:735:5:735:9 | total | 506 | +| test.c:735:14:735:14 | r | 253 | +| test.c:738:10:738:14 | total | 759 | +| test.c:743:3:743:3 | x | 18446744073709551616 | +| test.c:743:7:743:7 | y | 18446744073709551616 | +| test.c:744:3:744:4 | xy | 18446744073709551616 | +| test.c:744:8:744:8 | x | 1000000003 | +| test.c:744:12:744:12 | y | 1000000003 | +| test.c:745:10:745:11 | xy | 1000000006000000000 | +| test.c:750:3:750:3 | x | 18446744073709551616 | +| test.c:751:3:751:3 | y | 18446744073709551616 | +| test.c:752:3:752:4 | xy | 18446744073709551616 | +| test.c:752:8:752:8 | x | 274177 | +| test.c:752:12:752:12 | y | 67280421310721 | +| test.c:753:10:753:11 | xy | 18446744073709551616 | +| test.c:757:7:757:8 | ui | 4294967295 | +| test.c:758:43:758:44 | ui | 4294967295 | +| test.c:758:48:758:49 | ui | 4294967295 | +| test.c:759:12:759:17 | result | 18446744065119617024 | +| test.c:761:7:761:8 | ul | 18446744073709551616 | +| test.c:762:28:762:29 | ul | 18446744073709551616 | +| test.c:762:33:762:34 | ul | 18446744073709551616 | +| test.c:763:12:763:17 | result | 18446744073709551616 | +| test.c:769:7:769:8 | ui | 4294967295 | +| test.c:769:19:769:20 | ui | 10 | +| test.c:770:5:770:6 | ui | 10 | +| test.c:770:11:770:12 | ui | 10 | +| test.c:771:12:771:13 | ui | 100 | +| test.c:775:3:775:9 | uiconst | 10 | +| test.c:778:3:778:9 | ulconst | 10 | +| test.c:779:10:779:16 | uiconst | 40 | +| test.c:779:20:779:26 | ulconst | 40 | +| test.c:783:7:783:7 | i | 2147483647 | +| test.c:783:18:783:18 | i | 2147483647 | +| test.c:784:5:784:5 | i | 2147483647 | +| test.c:784:13:784:13 | i | 2 | +| test.c:785:9:785:9 | i | 10 | +| test.c:787:5:787:5 | i | 2147483647 | +| test.c:787:9:787:9 | i | 10 | +| test.c:788:9:788:9 | i | 15 | +| test.c:790:5:790:5 | i | 15 | +| test.c:791:9:791:9 | i | 105 | +| test.c:793:5:793:5 | i | 105 | +| test.c:794:9:794:9 | i | 2310 | +| test.c:796:7:796:7 | i | 2147483647 | +| test.c:797:5:797:5 | i | 2147483647 | +| test.c:797:9:797:9 | i | -1 | +| test.c:798:9:798:9 | i | 1 | +| test.c:800:3:800:3 | i | 2147483647 | +| test.c:800:7:800:7 | i | 2147483647 | +| test.c:801:10:801:10 | i | 2147483647 | +| test.c:804:3:804:3 | i | 2147483647 | +| test.c:804:10:804:11 | sc | 1 | +| test.c:806:7:806:7 | i | 127 | +| test.c:813:7:813:7 | n | 4294967295 | +| test.c:815:7:815:7 | n | 4294967295 | +| test.c:816:9:816:9 | n | 4294967295 | +| test.c:819:7:819:7 | n | 4294967295 | +| test.c:820:9:820:9 | n | 4294967295 | +| test.c:822:9:822:9 | n | 0 | +| test.c:825:8:825:8 | n | 4294967295 | +| test.c:826:9:826:9 | n | 0 | +| test.c:828:9:828:9 | n | 4294967295 | +| test.c:831:10:831:10 | n | 4294967295 | +| test.c:832:5:832:5 | n | 4294967295 | +| test.c:835:7:835:7 | n | 0 | +| test.c:839:7:839:7 | n | 32767 | +| test.c:842:7:842:7 | n | 32767 | +| test.c:843:9:843:9 | n | 0 | +| test.c:845:9:845:9 | n | 32767 | +| test.c:848:7:848:7 | n | 32767 | +| test.c:849:9:849:9 | n | 32767 | +| test.c:851:9:851:9 | n | 0 | +| test.c:854:10:854:10 | n | 32767 | +| test.c:855:5:855:5 | n | 32767 | +| test.c:858:7:858:7 | n | 0 | +| test.c:862:7:862:7 | n | 32767 | +| test.c:863:9:863:9 | n | 32767 | +| test.c:864:11:864:11 | n | 32767 | | test.c:868:7:868:7 | n | 32767 | -| test.c:869:5:869:5 | n | 32767 | -| test.c:869:10:869:10 | n | 32767 | -| test.c:869:14:869:14 | n | 0 | -| test.c:870:6:870:6 | n | 32767 | -| test.c:870:10:870:10 | n | 0 | -| test.c:870:14:870:14 | n | 32767 | -| test.c:881:7:881:8 | ss | 32767 | -| test.c:882:9:882:10 | ss | 3 | -| test.c:885:7:885:8 | ss | 32767 | -| test.c:886:9:886:10 | ss | 32767 | -| test.c:889:14:889:15 | us | 65535 | -| test.c:890:9:890:10 | us | 32767 | -| test.c:893:14:893:15 | us | 65535 | -| test.c:894:9:894:10 | us | 65535 | -| test.c:897:7:897:8 | ss | 32767 | -| test.c:898:9:898:10 | ss | 32767 | -| test.c:901:7:901:8 | ss | 32767 | -| test.c:902:9:902:10 | ss | 2 | -| test.c:908:8:908:8 | s | 2147483647 | -| test.c:908:15:908:15 | s | 127 | -| test.c:908:23:908:23 | s | 9 | -| test.c:909:18:909:18 | s | 9 | -| test.c:909:22:909:22 | s | 9 | -| test.c:910:9:910:14 | result | 127 | -| test.c:916:7:916:7 | i | 0 | -| test.c:917:9:917:9 | i | 2147483647 | -| test.c:921:7:921:7 | u | 0 | -| test.c:922:9:922:9 | u | 4294967295 | -| test.c:927:12:927:12 | s | 2147483647 | -| test.c:928:7:928:8 | s2 | 4 | -| test.c:933:7:933:7 | x | 2147483647 | -| test.c:934:9:934:9 | y | 2147483647 | -| test.c:938:7:938:7 | y | 2147483647 | -| test.c:947:7:947:7 | x | 2147483647 | -| test.c:952:7:952:7 | x | 15 | -| test.c:959:8:959:8 | x | 2147483647 | -| test.c:959:12:959:12 | y | 256 | -| test.c:960:9:960:9 | x | 2147483647 | -| test.c:961:9:961:9 | y | 256 | +| test.c:869:13:869:13 | n | 32767 | +| test.c:872:9:872:9 | n | 32767 | +| test.c:875:7:875:7 | n | 32767 | +| test.c:875:22:875:22 | n | 32767 | +| test.c:876:9:876:9 | n | 32767 | +| test.c:879:7:879:7 | n | 32767 | +| test.c:880:5:880:5 | n | 32767 | +| test.c:880:10:880:10 | n | 32767 | +| test.c:880:14:880:14 | n | 0 | +| test.c:881:6:881:6 | n | 32767 | +| test.c:881:10:881:10 | n | 0 | +| test.c:881:14:881:14 | n | 32767 | +| test.c:892:7:892:8 | ss | 32767 | +| test.c:893:9:893:10 | ss | 3 | +| test.c:896:7:896:8 | ss | 32767 | +| test.c:897:9:897:10 | ss | 32767 | +| test.c:900:14:900:15 | us | 65535 | +| test.c:901:9:901:10 | us | 32767 | +| test.c:904:14:904:15 | us | 65535 | +| test.c:905:9:905:10 | us | 65535 | +| test.c:908:7:908:8 | ss | 32767 | +| test.c:909:9:909:10 | ss | 32767 | +| test.c:912:7:912:8 | ss | 32767 | +| test.c:913:9:913:10 | ss | 2 | +| test.c:919:8:919:8 | s | 2147483647 | +| test.c:919:15:919:15 | s | 127 | +| test.c:919:23:919:23 | s | 9 | +| test.c:920:18:920:18 | s | 9 | +| test.c:920:22:920:22 | s | 9 | +| test.c:921:9:921:14 | result | 127 | +| test.c:927:7:927:7 | i | 0 | +| test.c:928:9:928:9 | i | 2147483647 | +| test.c:932:7:932:7 | u | 0 | +| test.c:933:9:933:9 | u | 4294967295 | +| test.c:938:12:938:12 | s | 2147483647 | +| test.c:939:7:939:8 | s2 | 4 | +| test.c:944:7:944:7 | x | 2147483647 | +| test.c:945:9:945:9 | y | 2147483647 | +| test.c:949:7:949:7 | y | 2147483647 | +| test.c:958:7:958:7 | x | 2147483647 | +| test.c:963:7:963:7 | x | 15 | +| test.c:970:8:970:8 | x | 2147483647 | +| test.c:970:12:970:12 | y | 256 | +| test.c:971:9:971:9 | x | 2147483647 | +| test.c:972:9:972:9 | y | 256 | | test.cpp:10:7:10:7 | b | 2147483647 | | test.cpp:11:5:11:5 | x | 2147483647 | | test.cpp:13:10:13:10 | x | 2147483647 | From 3a135888c7f420f4477caeb7a98d45bf6b977b32 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Sat, 4 Oct 2025 16:46:50 +0200 Subject: [PATCH 089/263] C++: Improve bounds from inequalities on integers --- .../cpp/rangeanalysis/SimpleRangeAnalysis.qll | 48 +++++++++++++++---- .../SimpleRangeAnalysis/lowerBound.expected | 14 +++--- .../SimpleRangeAnalysis/ternaryLower.expected | 8 ++-- .../SimpleRangeAnalysis/ternaryUpper.expected | 2 +- .../SimpleRangeAnalysis/upperBound.expected | 4 +- 5 files changed, 52 insertions(+), 24 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll index cc4647b54e0..c3c3c2dd3e7 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll @@ -1709,6 +1709,22 @@ predicate nonNanGuardedVariable(Expr guard, VariableAccess v, boolean branch) { nanExcludingComparison(guard, branch) } +/** + * Adjusts a lower bound to its meaning for integral types. + * + * Examples: + * `>= 3.0` becomes `3.0` + * ` > 3.0` becomes `4.0` + * `>= 3.5` becomes `4.0` + * ` > 3.5` becomes `4.0` + */ +bindingset[strictness, lb] +private float adjustLowerBoundIntegral(RelationStrictness strictness, float lb) { + if strictness = Nonstrict() and lb.floorFloat() = lb + then result = lb + else result = lb.floorFloat() + 1 +} + /** * If the guard is a comparison of the form `p*v + q r`, then this * predicate uses the bounds information for `r` to compute a lower bound @@ -1720,15 +1736,29 @@ private predicate lowerBoundFromGuard(Expr guard, VariableAccess v, float lb, bo | if nonNanGuardedVariable(guard, v, branch) then - if - strictness = Nonstrict() or - not getVariableRangeType(v.getTarget()) instanceof IntegralType - then lb = childLB - else lb = childLB + 1 + if getVariableRangeType(v.getTarget()) instanceof IntegralType + then lb = adjustLowerBoundIntegral(strictness, childLB) + else lb = childLB else lb = varMinVal(v.getTarget()) ) } +/** + * Adjusts an upper bound to its meaning for integral types. + * + * Examples: + * `<= 3.0` becomes `3.0` + * ` < 3.0` becomes `2.0` + * `<= 3.5` becomes `3.0` + * ` < 3.5` becomes `3.0` + */ +bindingset[strictness, ub] +private float adjustUpperBoundIntegral(RelationStrictness strictness, float ub) { + if strictness = Nonstrict() and ub.ceilFloat() = ub + then result = ub + else result = ub.ceilFloat() - 1 +} + /** * If the guard is a comparison of the form `p*v + q r`, then this * predicate uses the bounds information for `r` to compute a upper bound @@ -1740,11 +1770,9 @@ private predicate upperBoundFromGuard(Expr guard, VariableAccess v, float ub, bo | if nonNanGuardedVariable(guard, v, branch) then - if - strictness = Nonstrict() or - not getVariableRangeType(v.getTarget()) instanceof IntegralType - then ub = childUB - else ub = childUB - 1 + if getVariableRangeType(v.getTarget()) instanceof IntegralType + then ub = adjustUpperBoundIntegral(strictness, childUB) + else ub = childUB else ub = varMaxVal(v.getTarget()) ) } diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected index 8fe3b0ea0a1..0c520190c8b 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected @@ -353,19 +353,19 @@ | test.c:341:32:341:34 | odd | 9007199254740991 | | test.c:343:10:343:16 | shifted | 4503599627370495 | | test.c:348:27:348:27 | e | 0 | -| test.c:348:40:348:40 | e | 0.5 | +| test.c:348:40:348:40 | e | 0 | | test.c:349:25:349:25 | e | 0 | | test.c:349:39:349:39 | e | 0 | | test.c:350:27:350:27 | e | 0 | -| test.c:350:40:350:40 | e | 0.333333 | +| test.c:350:40:350:40 | e | 0 | | test.c:351:27:351:27 | e | 0 | -| test.c:351:40:351:40 | e | 0.5 | +| test.c:351:40:351:40 | e | 0 | | test.c:352:27:352:27 | e | 0 | -| test.c:352:41:352:41 | e | 8.5 | -| test.c:354:10:354:12 | bi1 | 0.5 | +| test.c:352:41:352:41 | e | 8 | +| test.c:354:10:354:12 | bi1 | 0 | | test.c:354:16:354:18 | bi2 | 0 | -| test.c:354:22:354:24 | bi3 | 0.333333 | -| test.c:354:28:354:30 | bi4 | 0.5 | +| test.c:354:22:354:24 | bi3 | 0 | +| test.c:354:28:354:30 | bi4 | 0 | | test.c:354:34:354:36 | bi5 | 2 | | test.c:359:7:359:7 | x | -2147483648 | | test.c:363:10:363:10 | i | 0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected index f4e3cdb8cc2..50b65d84bf3 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected @@ -1,9 +1,9 @@ | test.c:154:10:154:40 | ... ? ... : ... | -1.0 | 1.0 | -1.0 | -| test.c:348:22:348:44 | ... ? ... : ... | 0.5 | 0.5 | 2.0 | +| test.c:348:22:348:44 | ... ? ... : ... | 0.0 | 0.0 | 2.0 | | test.c:349:20:349:43 | ... ? ... : ... | 0.0 | 0.0 | 2.0 | -| test.c:350:22:350:44 | ... ? ... : ... | 0.33333333333333337 | 0.33333333333333337 | 2.0 | -| test.c:351:22:351:44 | ... ? ... : ... | 0.5 | 0.5 | 2.0 | -| test.c:352:22:352:45 | ... ? ... : ... | 2.0 | 8.5 | 2.0 | +| test.c:350:22:350:44 | ... ? ... : ... | 0.0 | 0.0 | 2.0 | +| test.c:351:22:351:44 | ... ? ... : ... | 0.0 | 0.0 | 2.0 | +| test.c:352:22:352:45 | ... ? ... : ... | 2.0 | 8.0 | 2.0 | | test.c:378:8:378:23 | ... ? ... : ... | 0.0 | 0.0 | 10.0 | | test.c:379:8:379:24 | ... ? ... : ... | 0.0 | 10.0 | 0.0 | | test.c:387:10:387:15 | ... ? ... : ... | 0.0 | 0.0 | 5.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected index 529b6ea83f1..3b3a00df6b9 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected @@ -1,7 +1,7 @@ | test.c:154:10:154:40 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | -1.0 | | test.c:348:22:348:44 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | | test.c:349:20:349:43 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | -| test.c:350:22:350:44 | ... ? ... : ... | 1.4316557643333333E9 | 1.4316557643333333E9 | 2.0 | +| test.c:350:22:350:44 | ... ? ... : ... | 1.431655764E9 | 1.431655764E9 | 2.0 | | test.c:351:22:351:44 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | | test.c:352:22:352:45 | ... ? ... : ... | 2.147483647E9 | 2.147483647E9 | 2.0 | | test.c:378:8:378:23 | ... ? ... : ... | 99.0 | 99.0 | 10.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected index 16181b8e238..dd7fc398f0c 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected @@ -357,14 +357,14 @@ | test.c:349:25:349:25 | e | 4294967295 | | test.c:349:39:349:39 | e | 2147483647 | | test.c:350:27:350:27 | e | 4294967295 | -| test.c:350:40:350:40 | e | 1431655764.333333 | +| test.c:350:40:350:40 | e | 1431655764 | | test.c:351:27:351:27 | e | 4294967295 | | test.c:351:40:351:40 | e | 2147483647 | | test.c:352:27:352:27 | e | 4294967295 | | test.c:352:41:352:41 | e | 2147483647 | | test.c:354:10:354:12 | bi1 | 2147483647 | | test.c:354:16:354:18 | bi2 | 2147483647 | -| test.c:354:22:354:24 | bi3 | 1431655764.333333 | +| test.c:354:22:354:24 | bi3 | 1431655764 | | test.c:354:28:354:30 | bi4 | 2147483647 | | test.c:354:34:354:36 | bi5 | 2147483647 | | test.c:359:7:359:7 | x | 2147483647 | From e35fa923c7b044d175b3c7a184378be1d71132b6 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 11 Dec 2025 15:00:07 +0100 Subject: [PATCH 090/263] C#: Add support for MaD barriers and barrier guards. --- .../dataflow/internal/DataFlowPublic.qll | 36 ++++++++ .../csharp/dataflow/internal/ExternalFlow.qll | 92 ++++++++++++++++++- .../dataflow/internal/FlowSummaryImpl.qll | 19 +++- .../code/csharp/dataflow/internal/SsaImpl.qll | 30 ++++++ 4 files changed, 170 insertions(+), 7 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index 4023d6c4597..f4d24fdb510 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -197,6 +197,42 @@ module BarrierGuard { } } +bindingset[this] +private signature class ParamSig; + +private module WithParam { + /** + * Holds if the guard `g` validates the expression `e` upon evaluating to `gv`. + * + * The expression `e` is expected to be a syntactic part of the guard `g`. + * For example, the guard `g` might be a call `isSafe(x)` and the expression `e` + * the argument `x`. + */ + signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv, P param); +} + +/** + * Provides a set of barrier nodes for a guard that validates an expression. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { + private import SsaImpl as SsaImpl + + /** Gets a node that is safely guarded by the given guard check. */ + pragma[nomagic] + Node getABarrierNode(P param) { + SsaFlow::asNode(result) = + SsaImpl::DataFlowIntegration::ParameterizedBarrierGuard::getABarrierNode(param) + or + exists(Guard g, Expr e, GuardValue v | + guardChecks(g, e, v, param) and + g.controlsNode(result.getControlFlowNode(), e, v) + ) + } +} + /** * A reference contained in an object. This is either a field, a property, * or an element in a collection. diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 75d14034e00..0604413bb22 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -97,6 +97,7 @@ private import FlowSummaryImpl::Public private import FlowSummaryImpl::Private private import FlowSummaryImpl::Private::External private import semmle.code.csharp.commons.QualifiedName +private import semmle.code.csharp.controlflow.Guards private import semmle.code.csharp.dispatch.OverridableCallable private import semmle.code.csharp.frameworks.System private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax @@ -115,7 +116,9 @@ module ModelValidation { summaryModel(_, _, _, _, _, _, path, _, _, _, _) or summaryModel(_, _, _, _, _, _, _, path, _, _, _) or sinkModel(_, _, _, _, _, _, path, _, _, _) or - sourceModel(_, _, _, _, _, _, path, _, _, _) + sourceModel(_, _, _, _, _, _, path, _, _, _) or + barrierModel(_, _, _, _, _, _, path, _, _, _) or + barrierGuardModel(_, _, _, _, _, _, path, _, _, _, _) } private module MkAccessPath = AccessPathSyntax::AccessPath; @@ -128,6 +131,8 @@ module ModelValidation { exists(string pred, AccessPath input, AccessPathToken part | sinkModel(_, _, _, _, _, _, input, _, _, _) and pred = "sink" or + barrierGuardModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "barrier guard" + or summaryModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "summary" | ( @@ -150,6 +155,8 @@ module ModelValidation { exists(string pred, AccessPath output, AccessPathToken part | sourceModel(_, _, _, _, _, _, output, _, _, _) and pred = "source" or + barrierModel(_, _, _, _, _, _, output, _, _, _) and pred = "barrier" + or summaryModel(_, _, _, _, _, _, _, output, _, _, _) and pred = "summary" | ( @@ -167,7 +174,13 @@ module ModelValidation { private module KindValConfig implements SharedModelVal::KindValidationConfigSig { predicate summaryKind(string kind) { summaryModel(_, _, _, _, _, _, _, _, kind, _, _) } - predicate sinkKind(string kind) { sinkModel(_, _, _, _, _, _, _, kind, _, _) } + predicate sinkKind(string kind) { + sinkModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierGuardModel(_, _, _, _, _, _, _, _, kind, _, _) + } predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) } @@ -185,6 +198,12 @@ module ModelValidation { or sinkModel(namespace, type, _, name, signature, ext, _, _, provenance, _) and pred = "sink" or + barrierModel(namespace, type, _, name, signature, ext, _, _, provenance, _) and + pred = "barrier" + or + barrierGuardModel(namespace, type, _, name, signature, ext, _, _, _, provenance, _) and + pred = "barrier guard" + or summaryModel(namespace, type, _, name, signature, ext, _, _, _, provenance, _) and pred = "summary" or @@ -210,6 +229,14 @@ module ModelValidation { invalidProvenance(provenance) and result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) + or + exists(string acceptingvalue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and + invalidAcceptingValue(acceptingvalue) and + result = + "Unrecognized accepting value description \"" + acceptingvalue + + "\" in barrier guard model." + ) } /** Holds if some row in a MaD flow model appears to contain typos. */ @@ -229,6 +256,10 @@ private predicate elementSpec( or sinkModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) or + barrierModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) + or + barrierGuardModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) + or summaryModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) or Extensions::neutralModel(namespace, type, name, signature, _, _) and ext = "" and subtypes = true @@ -372,7 +403,9 @@ Declaration interpretElement( private predicate relevantExt(string ext) { summaryModel(_, _, _, _, _, ext, _, _, _, _, _) or sourceModel(_, _, _, _, _, ext, _, _, _, _) or - sinkModel(_, _, _, _, _, ext, _, _, _, _) + sinkModel(_, _, _, _, _, ext, _, _, _, _) or + barrierModel(_, _, _, _, _, ext, _, _, _, _) or + barrierGuardModel(_, _, _, _, _, ext, _, _, _, _, _) } private class ExtPath = AccessPathSyntax::AccessPath::AccessPath; @@ -411,6 +444,53 @@ private module Cached { isSinkNode(n, kind, model) and n.asNode() = node ) } + + private newtype TKindModelPair = + TMkPair(string kind, string model) { isBarrierGuardNode(_, _, kind, model) } + + private GuardValue convertAcceptingValue(AcceptingValue av) { + av.isTrue() and result.asBooleanValue() = true + or + av.isFalse() and result.asBooleanValue() = false + or + av.isNoException() and result.getDualValue().isThrowsException() + or + av.isZero() and result.asIntValue() = 0 + or + av.isNotZero() and result.getDualValue().asIntValue() = 0 + or + av.isNull() and result.isNullValue() + or + av.isNotNull() and result.isNonNullValue() + } + + private predicate barrierGuardChecks(Guard g, Expr e, GuardValue gv, TKindModelPair kmp) { + exists( + SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingvalue, string kind, + string model + | + isBarrierGuardNode(n, acceptingvalue, kind, model) and + n.asNode().asExpr() = e and + kmp = TMkPair(kind, model) and + gv = convertAcceptingValue(acceptingvalue) + | + g.(Call).getAnArgument() = e or g.(MethodCall).getQualifier() = e + ) + } + + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + cached + predicate barrierNode(Node node, string kind, string model) { + exists(SourceSinkInterpretationInput::InterpretNode n | + isBarrierNode(n, kind, model) and n.asNode() = node + ) + or + ParameterizedBarrierGuard::getABarrierNode(TMkPair(kind, + model)) = node + } } import Cached @@ -427,6 +507,12 @@ predicate sourceNode(Node node, string kind) { sourceNode(node, kind, _) } */ predicate sinkNode(Node node, string kind) { sinkNode(node, kind, _) } +/** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ +predicate barrierNode(Node node, string kind) { barrierNode(node, kind, _) } + private predicate isOverridableCallable(OverridableCallable c) { not exists(Type t, Callable base | c.getOverridee+() = base and t = base.getDeclaringType() | t instanceof SystemObjectClass or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index 56278b9ef95..fd1bbebd3e4 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -232,16 +232,27 @@ module SourceSinkInterpretationInput implements } predicate barrierElement( - Element n, string output, string kind, Public::Provenance provenance, string model + Element e, string output, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext + | + barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and + e = interpretElement(namespace, type, subtypes, name, signature, ext) + ) } predicate barrierGuardElement( - Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingvalue, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext + | + barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, + kind, provenance, model) and + e = interpretElement(namespace, type, subtypes, name, signature, ext) + ) } class SourceOrSinkElement = Element; diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index 277abd1d26e..7a592bebff0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -987,6 +987,36 @@ private module Cached { predicate getABarrierNode = getABarrierNodeImpl/0; } + + bindingset[this] + private signature class ParamSig; + + private module WithParam { + signature predicate guardChecksSig(Guards::Guard g, Expr e, Guards::GuardValue gv, P param); + } + + cached // nothing is actually cached + module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { + private predicate guardChecksAdjTypes( + Guards::Guards::Guard g, Expr e, Guards::GuardValue gv, P param + ) { + guardChecks(g, e, gv, param) + } + + private predicate guardChecksWithWrappers( + DataFlowIntegrationInput::Guard g, Definition def, Guards::GuardValue val, P param + ) { + Guards::Guards::ParameterizedValidationWrapper::guardChecksDef(g, + def, val, param) + } + + private Node getABarrierNodeImpl(P param) { + result = + DataFlowIntegrationImpl::BarrierGuardDefWithState::getABarrierNode(param) + } + + predicate getABarrierNode = getABarrierNodeImpl/1; + } } } From c271e52fe5e21c660d44e2c95ddbb028dc825bb4 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 9 Jan 2026 10:04:56 +0000 Subject: [PATCH 091/263] Validate models for barriers and barrier guards --- go/ql/lib/semmle/go/dataflow/ExternalFlow.qll | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index cea1a00e3e8..8ce76526728 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -129,7 +129,9 @@ module ModelValidation { summaryModel(_, _, _, _, _, _, path, _, _, _, _) or summaryModel(_, _, _, _, _, _, _, path, _, _, _) or sinkModel(_, _, _, _, _, _, path, _, _, _) or - sourceModel(_, _, _, _, _, _, path, _, _, _) + sourceModel(_, _, _, _, _, _, path, _, _, _) or + barrierModel(_, _, _, _, _, _, path, _, _, _) or + barrierGuardModel(_, _, _, _, _, _, path, _, _, _, _) } private module MkAccessPath = AccessPathSyntax::AccessPath; @@ -142,6 +144,8 @@ module ModelValidation { exists(string pred, AccessPath input, AccessPathToken part | sinkModel(_, _, _, _, _, _, input, _, _, _) and pred = "sink" or + barrierGuardModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "barrier guard" + or summaryModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "summary" | ( @@ -164,6 +168,8 @@ module ModelValidation { exists(string pred, AccessPath output, AccessPathToken part | sourceModel(_, _, _, _, _, _, output, _, _, _) and pred = "source" or + barrierModel(_, _, _, _, _, _, output, _, _, _) and pred = "barrier" + or summaryModel(_, _, _, _, _, _, _, output, _, _, _) and pred = "summary" | ( @@ -181,7 +187,13 @@ module ModelValidation { private module KindValConfig implements SharedModelVal::KindValidationConfigSig { predicate summaryKind(string kind) { summaryModel(_, _, _, _, _, _, _, _, kind, _, _) } - predicate sinkKind(string kind) { sinkModel(_, _, _, _, _, _, _, kind, _, _) } + predicate sinkKind(string kind) { + sinkModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierGuardModel(_, _, _, _, _, _, _, _, kind, _, _) + } predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) } @@ -199,6 +211,11 @@ module ModelValidation { or sinkModel(package, type, _, name, signature, ext, _, _, provenance, _) and pred = "sink" or + barrierModel(package, type, _, name, signature, ext, _, _, provenance, _) and pred = "barrier" + or + barrierGuardModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and + pred = "barrier guard" + or summaryModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and pred = "summary" or @@ -224,6 +241,14 @@ module ModelValidation { invalidProvenance(provenance) and result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) + or + exists(string acceptingvalue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and + invalidAcceptingValue(acceptingvalue) and + result = + "Unrecognized accepting value description \"" + acceptingvalue + + "\" in barrier guard model." + ) } private string getInvalidPackageGroup() { @@ -232,6 +257,11 @@ module ModelValidation { or FlowExtensions::sinkModel(package, _, _, _, _, _, _, _, _, _) and pred = "sink" or + FlowExtensions::barrierModel(package, _, _, _, _, _, _, _, _, _) and pred = "barrier" + or + FlowExtensions::barrierGuardModel(package, _, _, _, _, _, _, _, _, _, _) and + pred = "barrier guard" + or FlowExtensions::summaryModel(package, _, _, _, _, _, _, _, _, _, _) and pred = "summary" or From ca805e9d84dd94879097d24feeba2610c4e602d7 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> Date: Fri, 9 Jan 2026 10:09:22 +0000 Subject: [PATCH 092/263] Fix QLDoc --- go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll b/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll index 21dd5d6b721..baf4706e863 100644 --- a/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll +++ b/go/ql/lib/semmle/go/security/XPathInjectionCustomizations.qll @@ -35,6 +35,6 @@ module XPathInjection { /** An XPath expression string, considered as a taint sink for XPath injection. */ class XPathExpressionStringAsSink extends Sink instanceof XPath::XPathExpressionString { } - /** An XPath expression string, considered as a taint sink for XPath injection. */ + /** A sanitizer for XPath injection. */ class XPathSanitizer extends Sanitizer instanceof XPath::Sanitizer { } } From 1ac3706e755d055272424f4bbf028c82b52a39fc Mon Sep 17 00:00:00 2001 From: yoff Date: Fri, 9 Jan 2026 13:08:06 +0100 Subject: [PATCH 093/263] Python support `ListElement` in MaD --- .../data/internal/ApiGraphModelsSpecific.qll | 20 +++++++++---------- .../frameworks/data/test.expected | 1 + .../frameworks/data/test.ext.yml | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsSpecific.qll b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsSpecific.qll index 1b22e8740bc..7adc24bab14 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -142,15 +142,13 @@ API::Node getExtraSuccessorFromNode(API::Node node, AccessPathTokenBase token) { // `DataFlow::DictionaryElementContent` just from seeing a subscript read, so we would // need to add that. (also need to handle things like `DictionaryElementAny` which // doesn't have any value for .getAnArgument()) - ( - token.getName() = "DictionaryElement" and - result = node.getSubscript(token.getAnArgument()) - or - token.getName() = "DictionaryElementAny" and - result = node.getASubscript() and - not exists(token.getAnArgument()) - // TODO: ListElement/SetElement/TupleElement - ) + token.getName() = "DictionaryElement" and + result = node.getSubscript(token.getAnArgument()) + or + token.getName() in ["DictionaryElementAny", "ListElement"] and + result = node.getASubscript() and + not exists(token.getAnArgument()) + // TODO: SetElement/TupleElement // Some features don't have MaD tokens yet, they would need to be added to API-graphs first. // - decorators ("DecoratedClass", "DecoratedMember", "DecoratedParameter") } @@ -261,7 +259,7 @@ predicate isExtraValidTokenNameInIdentifyingAccessPath(string name) { name = [ "Member", "Instance", "Awaited", "Call", "Method", "Subclass", "DictionaryElement", - "DictionaryElementAny" + "DictionaryElementAny", "ListElement" ] } @@ -270,7 +268,7 @@ predicate isExtraValidTokenNameInIdentifyingAccessPath(string name) { * in an identifying access path. */ predicate isExtraValidNoArgumentTokenInIdentifyingAccessPath(string name) { - name = ["Instance", "Awaited", "Call", "Subclass", "DictionaryElementAny"] + name = ["Instance", "Awaited", "Call", "Subclass", "DictionaryElementAny", "ListElement"] } /** diff --git a/python/ql/test/library-tests/frameworks/data/test.expected b/python/ql/test/library-tests/frameworks/data/test.expected index 1e229a28039..84cc34585ca 100644 --- a/python/ql/test/library-tests/frameworks/data/test.expected +++ b/python/ql/test/library-tests/frameworks/data/test.expected @@ -108,6 +108,7 @@ isSource | test.py:119:20:119:30 | ControlFlowNode for getSource() | test-source | | test.py:124:1:124:33 | ControlFlowNode for Attribute() | test-source | | test.py:126:11:126:43 | ControlFlowNode for Attribute() | test-source | +| test.py:129:11:129:39 | ControlFlowNode for Attribute() | test-source | syntaxErrors | Member[foo | | Member[foo] .Member[bar] | diff --git a/python/ql/test/library-tests/frameworks/data/test.ext.yml b/python/ql/test/library-tests/frameworks/data/test.ext.yml index 26fe6012d0e..487276eedf6 100644 --- a/python/ql/test/library-tests/frameworks/data/test.ext.yml +++ b/python/ql/test/library-tests/frameworks/data/test.ext.yml @@ -27,7 +27,7 @@ extensions: - ["testlib", "Member[source_dict].DictionaryElement[key].Member[func].ReturnValue", "test-source"] - ["testlib", "Member[source_dict_any].DictionaryElementAny.Member[func].ReturnValue", "test-source"] # TODO: Add support for list/tuples - # - ["testlib", "Member[source_list].ListElement.Member[func].ReturnValue", "test-source"] + - ["testlib", "Member[source_list].ListElement.Member[func].ReturnValue", "test-source"] # - ["testlib", "Member[source_tuple].TupleElement[0].Member[func].ReturnValue", "test-source"] - addsTo: From 31b0d3eb1dc6440746ef4c2f9e778fbeac572553 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 8 Jan 2026 10:57:35 +0100 Subject: [PATCH 094/263] Rust: Fix some models in `fs.model.yml` --- .../rust/frameworks/stdlib/fs.model.yml | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml index 8be4fdc05bf..6216f79ea85 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml @@ -59,27 +59,25 @@ extensions: - ["std::fs::canonicalize", "Argument[0].OptionalStep[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["std::fs::canonicalize", "Argument[0].OptionalBarrier[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::as_path", "Argument[self].Reference", "ReturnValue.Reference", "value", "manual"] - - ["::as_mut_os_string", "Argument[Self].Reference", "ReturnValue.Reference", "value", "manual"] - - ["::into_os_string", "Argument[Self]", "ReturnValue", "value", "manual"] - - ["::into_boxed_path", "Argument[Self]", "ReturnValue.Reference", "value", "manual"] + - ["::into_boxed_path", "Argument[self]", "ReturnValue.Field[alloc::boxed::Box(0)]", "taint", "manual"] - ["::new", "Argument[0].Reference", "ReturnValue.Reference", "value", "manual"] - ["::join", "Argument[self]", "ReturnValue", "taint", "manual"] - ["::join", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["::as_os_string", "Argument[Self].Reference", "ReturnValue.Reference", "value", "manual"] - - ["::as_mut_os_string", "Argument[Self].Reference", "ReturnValue.Reference", "value", "manual"] + - ["::as_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "manual"] + - ["::as_mut_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "manual"] - ["::canonicalize", "Argument[self].Reference.OptionalStep[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::canonicalize", "Argument[self].Reference.OptionalBarrier[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - - ["::extension", "Argument[Self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] - - ["::file_name", "Argument[Self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] - - ["::file_prefix", "Argument[Self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] - - ["::file_stem", "Argument[Self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] - - ["::into_path_buf", "Argument[Self].Reference", "ReturnValue", "value", "manual"] - - ["::parent", "Argument[Self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] - - ["::to_path_buf", "Argument[Self].Reference", "ReturnValue", "value", "manual"] - - ["::to_str", "Argument[Self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "manual"] - - ["::with_added_extension", "Argument[Self].Reference", "ReturnValue", "taint", "manual"] - - ["::with_extension", "Argument[Self].Reference", "ReturnValue", "taint", "manual"] - - ["::with_file_name", "Argument[Self].Reference", "ReturnValue", "taint", "manual"] + - ["::extension", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] + - ["::file_name", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] + - ["::file_prefix", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] + - ["::file_stem", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] + - ["::into_path_buf", "Argument[self].Field[alloc::boxed::Box(0)]", "ReturnValue", "value", "manual"] + - ["::parent", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] + - ["::to_path_buf", "Argument[self].Reference", "ReturnValue", "value", "manual"] + - ["::to_str", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "manual"] + - ["::with_added_extension", "Argument[self].Reference", "ReturnValue", "taint", "manual"] + - ["::with_extension", "Argument[self].Reference", "ReturnValue", "taint", "manual"] + - ["::with_file_name", "Argument[self].Reference", "ReturnValue", "taint", "manual"] - ["::with_file_name", "Argument[0]", "ReturnValue", "taint", "manual"] - ["::accessed", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::created", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] From 792908586aec71a17576e5198726f4d7d3691ca2 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 8 Jan 2026 13:51:16 +0100 Subject: [PATCH 095/263] Rust: Add some `ffi` models --- rust/ql/lib/codeql/rust/frameworks/stdlib/ffi.model.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 rust/ql/lib/codeql/rust/frameworks/stdlib/ffi.model.yml diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/ffi.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/ffi.model.yml new file mode 100644 index 00000000000..0f7545f8a92 --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/ffi.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::to_str", "Argument[self].Reference.Field[std::ffi::os_str::OsStr::inner]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] + - ["::to_string_lossy", "Argument[self].Reference.Field[std::ffi::os_str::OsStr::inner]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "taint", "manual"] + - ["::as_encoded_bytes", "Argument[self].Reference.Field[std::ffi::os_str::OsStr::inner]", "ReturnValue.Reference", "taint", "manual"] \ No newline at end of file From 0d0029f5a3d836b01880c8d85b5f6fc92d246075 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 8 Jan 2026 13:54:15 +0100 Subject: [PATCH 096/263] Rust: Update expected test output --- .../dataflow/sources/file/InlineFlow.expected | 994 ++++++++++-------- .../sources/file/TaintSources.expected | 60 +- .../dataflow/sources/file/test.rs | 54 +- 3 files changed, 600 insertions(+), 508 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected index 6ed7d5dafb9..c7413e3c28f 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected @@ -35,9 +35,14 @@ models | 34 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | | 35 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | | 36 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 37 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 38 | Summary: ::into_string; Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]; ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]; value | -| 39 | Summary: ::as_path; Argument[self].Reference; ReturnValue.Reference; value | +| 37 | Summary: ::to_mut; Argument[self].Reference.Field[alloc::borrow::Cow::Owned(0)]; ReturnValue.Reference; value | +| 38 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 39 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 40 | Summary: ::into_string; Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]; ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]; value | +| 41 | Summary: ::from; Argument[0]; ReturnValue.Field[std::path::PathBuf::inner]; value | +| 42 | Summary: ::as_path; Argument[self].Reference; ReturnValue.Reference; value | +| 43 | Summary: ::into_boxed_path; Argument[self]; ReturnValue.Field[alloc::boxed::Box(0)]; taint | +| 44 | Summary: ::into_os_string; Argument[self].Field[std::path::PathBuf::inner]; ReturnValue; value | edges | test.rs:12:13:12:18 | buffer | test.rs:13:14:13:19 | buffer | provenance | | | test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | Src:MaD:11 | @@ -51,213 +56,245 @@ edges | test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | Src:MaD:13 | | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | test.rs:22:22:22:52 | TryExpr | provenance | | | test.rs:22:22:22:52 | TryExpr | test.rs:22:13:22:18 | buffer | provenance | | -| test.rs:29:13:29:16 | path | test.rs:30:14:30:17 | path | provenance | | -| test.rs:29:13:29:16 | path | test.rs:31:14:31:17 | path | provenance | | -| test.rs:29:13:29:16 | path | test.rs:40:14:40:17 | path | provenance | | -| test.rs:29:13:29:16 | path | test.rs:41:14:41:17 | path | provenance | | -| test.rs:29:20:29:27 | e.path() | test.rs:29:13:29:16 | path | provenance | | -| test.rs:29:22:29:25 | path | test.rs:29:20:29:27 | e.path() | provenance | Src:MaD:4 MaD:4 | -| test.rs:30:14:30:17 | path | test.rs:30:14:30:25 | path.clone() | provenance | MaD:18 | +| test.rs:30:13:30:16 | path | test.rs:31:14:31:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:32:14:32:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:33:14:33:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:34:39:34:42 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:35:14:35:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:36:14:36:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:37:14:37:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:38:14:38:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:39:14:39:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:40:14:40:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:41:14:41:17 | path | provenance | | +| test.rs:30:13:30:16 | path | test.rs:42:14:42:17 | path | provenance | | +| test.rs:30:20:30:27 | e.path() | test.rs:30:13:30:16 | path | provenance | | +| test.rs:30:22:30:25 | path | test.rs:30:20:30:27 | e.path() | provenance | Src:MaD:4 MaD:4 | | test.rs:31:14:31:17 | path | test.rs:31:14:31:25 | path.clone() | provenance | MaD:18 | -| test.rs:31:14:31:25 | path.clone() | test.rs:31:14:31:35 | ... .as_path() | provenance | MaD:39 | -| test.rs:40:14:40:17 | path | test.rs:40:14:40:32 | path.canonicalize() [Ok] | provenance | MaD:19 | -| test.rs:40:14:40:32 | path.canonicalize() [Ok] | test.rs:40:14:40:41 | ... .unwrap() | provenance | MaD:37 | -| test.rs:43:13:43:21 | file_name | test.rs:44:14:44:22 | file_name | provenance | | -| test.rs:43:13:43:21 | file_name | test.rs:45:14:45:22 | file_name | provenance | | -| test.rs:43:13:43:21 | file_name | test.rs:49:14:49:22 | file_name | provenance | | -| test.rs:43:25:43:37 | e.file_name() | test.rs:43:13:43:21 | file_name | provenance | | -| test.rs:43:27:43:35 | file_name | test.rs:43:25:43:37 | e.file_name() | provenance | Src:MaD:3 MaD:3 | -| test.rs:44:14:44:22 | file_name | test.rs:44:14:44:30 | file_name.clone() | provenance | MaD:18 | +| test.rs:32:14:32:17 | path | test.rs:32:14:32:25 | path.clone() | provenance | MaD:18 | +| test.rs:32:14:32:25 | path.clone() | test.rs:32:14:32:35 | ... .as_path() | provenance | MaD:42 | +| test.rs:33:14:33:17 | path | test.rs:33:14:33:25 | path.clone() | provenance | MaD:18 | +| test.rs:33:14:33:25 | path.clone() | test.rs:33:14:33:42 | ... .into_os_string() | provenance | MaD:44 | +| test.rs:34:39:34:42 | path | test.rs:34:39:34:50 | path.clone() | provenance | MaD:18 | +| test.rs:34:39:34:50 | path.clone() | test.rs:34:39:34:68 | ... .into_boxed_path() [Box(0)] | provenance | MaD:43 | +| test.rs:34:39:34:68 | ... .into_boxed_path() [Box(0)] | test.rs:34:14:34:69 | ...::from(...) | provenance | MaD:41 | +| test.rs:35:14:35:17 | path | test.rs:35:14:35:25 | path.clone() | provenance | MaD:18 | +| test.rs:35:14:35:25 | path.clone() | test.rs:35:14:35:37 | ... .as_os_str() | provenance | MaD:19 | +| test.rs:36:14:36:17 | path | test.rs:36:14:36:25 | path.clone() | provenance | MaD:18 | +| test.rs:36:14:36:25 | path.clone() | test.rs:36:14:36:41 | ... .as_mut_os_str() | provenance | MaD:19 | +| test.rs:37:14:37:17 | path | test.rs:37:14:37:26 | path.to_str() | provenance | MaD:19 | +| test.rs:38:14:38:17 | path | test.rs:38:14:38:31 | path.to_path_buf() | provenance | MaD:19 | +| test.rs:39:14:39:17 | path | test.rs:39:14:39:29 | path.file_name() [Some, &ref] | provenance | MaD:19 | +| test.rs:39:14:39:29 | path.file_name() [Some, &ref] | test.rs:39:14:39:38 | ... .unwrap() | provenance | MaD:38 | +| test.rs:40:14:40:17 | path | test.rs:40:14:40:29 | path.extension() [Some, &ref] | provenance | MaD:19 | +| test.rs:40:14:40:29 | path.extension() [Some, &ref] | test.rs:40:14:40:38 | ... .unwrap() | provenance | MaD:38 | +| test.rs:41:14:41:17 | path | test.rs:41:14:41:32 | path.canonicalize() [Ok] | provenance | MaD:19 | +| test.rs:41:14:41:32 | path.canonicalize() [Ok] | test.rs:41:14:41:41 | ... .unwrap() | provenance | MaD:39 | +| test.rs:44:13:44:21 | file_name | test.rs:45:14:45:22 | file_name | provenance | | +| test.rs:44:13:44:21 | file_name | test.rs:46:14:46:22 | file_name | provenance | | +| test.rs:44:13:44:21 | file_name | test.rs:47:14:47:22 | file_name | provenance | | +| test.rs:44:13:44:21 | file_name | test.rs:48:14:48:22 | file_name | provenance | | +| test.rs:44:13:44:21 | file_name | test.rs:49:14:49:22 | file_name | provenance | | +| test.rs:44:13:44:21 | file_name | test.rs:50:14:50:22 | file_name | provenance | | +| test.rs:44:25:44:37 | e.file_name() | test.rs:44:13:44:21 | file_name | provenance | | +| test.rs:44:27:44:35 | file_name | test.rs:44:25:44:37 | e.file_name() | provenance | Src:MaD:3 MaD:3 | | test.rs:45:14:45:22 | file_name | test.rs:45:14:45:30 | file_name.clone() | provenance | MaD:18 | -| test.rs:45:14:45:30 | file_name.clone() | test.rs:45:14:45:44 | ... .into_string() [Ok, String] | provenance | MaD:38 | -| test.rs:45:14:45:44 | ... .into_string() [Ok, String] | test.rs:45:14:45:53 | ... .unwrap() | provenance | MaD:37 | -| test.rs:65:13:65:18 | target | test.rs:66:14:66:19 | target | provenance | | -| test.rs:65:22:65:34 | ...::read_link | test.rs:65:22:65:49 | ...::read_link(...) [Ok] | provenance | Src:MaD:12 | -| test.rs:65:22:65:49 | ...::read_link(...) [Ok] | test.rs:65:22:65:50 | TryExpr | provenance | | -| test.rs:65:22:65:50 | TryExpr | test.rs:65:13:65:18 | target | provenance | | -| test.rs:74:13:74:18 | buffer | test.rs:75:14:75:19 | buffer | provenance | | -| test.rs:74:31:74:45 | ...::read | test.rs:74:31:74:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | -| test.rs:74:31:74:57 | ...::read(...) [future, Ok] | test.rs:74:31:74:63 | await ... [Ok] | provenance | | -| test.rs:74:31:74:63 | await ... [Ok] | test.rs:74:31:74:64 | TryExpr | provenance | | -| test.rs:74:31:74:64 | TryExpr | test.rs:74:13:74:18 | buffer | provenance | | -| test.rs:79:13:79:18 | buffer | test.rs:80:14:80:19 | buffer | provenance | | -| test.rs:79:31:79:45 | ...::read | test.rs:79:31:79:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | -| test.rs:79:31:79:57 | ...::read(...) [future, Ok] | test.rs:79:31:79:63 | await ... [Ok] | provenance | | -| test.rs:79:31:79:63 | await ... [Ok] | test.rs:79:31:79:64 | TryExpr | provenance | | -| test.rs:79:31:79:64 | TryExpr | test.rs:79:13:79:18 | buffer | provenance | | -| test.rs:84:13:84:18 | buffer | test.rs:85:14:85:19 | buffer | provenance | | -| test.rs:84:22:84:46 | ...::read_to_string | test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | provenance | Src:MaD:16 | -| test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | test.rs:84:22:84:64 | await ... [Ok] | provenance | | -| test.rs:84:22:84:64 | await ... [Ok] | test.rs:84:22:84:65 | TryExpr | provenance | | -| test.rs:84:22:84:65 | TryExpr | test.rs:84:13:84:18 | buffer | provenance | | -| test.rs:90:13:90:16 | path | test.rs:92:14:92:17 | path | provenance | | -| test.rs:90:20:90:31 | entry.path() | test.rs:90:13:90:16 | path | provenance | | -| test.rs:90:26:90:29 | path | test.rs:90:20:90:31 | entry.path() | provenance | Src:MaD:10 MaD:10 | -| test.rs:91:13:91:21 | file_name | test.rs:93:14:93:22 | file_name | provenance | | -| test.rs:91:25:91:41 | entry.file_name() | test.rs:91:13:91:21 | file_name | provenance | | -| test.rs:91:31:91:39 | file_name | test.rs:91:25:91:41 | entry.file_name() | provenance | Src:MaD:9 MaD:9 | -| test.rs:97:13:97:18 | target | test.rs:98:14:98:19 | target | provenance | | -| test.rs:97:22:97:41 | ...::read_link | test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | provenance | Src:MaD:15 | -| test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | test.rs:97:22:97:62 | await ... [Ok] | provenance | | -| test.rs:97:22:97:62 | await ... [Ok] | test.rs:97:22:97:63 | TryExpr | provenance | | -| test.rs:97:22:97:63 | TryExpr | test.rs:97:13:97:18 | target | provenance | | -| test.rs:107:9:107:16 | mut file | test.rs:111:22:111:25 | file | provenance | | -| test.rs:107:9:107:16 | mut file | test.rs:117:22:117:25 | file | provenance | | -| test.rs:107:9:107:16 | mut file | test.rs:123:22:123:25 | file | provenance | | -| test.rs:107:9:107:16 | mut file | test.rs:129:9:129:12 | file | provenance | | -| test.rs:107:9:107:16 | mut file | test.rs:133:17:133:20 | file | provenance | | -| test.rs:107:20:107:38 | ...::open | test.rs:107:20:107:50 | ...::open(...) [Ok] | provenance | Src:MaD:5 | -| test.rs:107:20:107:50 | ...::open(...) [Ok] | test.rs:107:20:107:51 | TryExpr | provenance | | -| test.rs:107:20:107:51 | TryExpr | test.rs:107:9:107:16 | mut file | provenance | | -| test.rs:111:22:111:25 | file | test.rs:111:32:111:42 | [post] &mut buffer [&ref] | provenance | MaD:23 | -| test.rs:111:32:111:42 | [post] &mut buffer [&ref] | test.rs:111:37:111:42 | [post] buffer | provenance | | -| test.rs:111:37:111:42 | [post] buffer | test.rs:112:15:112:20 | buffer | provenance | | -| test.rs:112:15:112:20 | buffer | test.rs:112:14:112:20 | &buffer | provenance | | -| test.rs:117:22:117:25 | file | test.rs:117:39:117:49 | [post] &mut buffer [&ref] | provenance | MaD:25 | -| test.rs:117:39:117:49 | [post] &mut buffer [&ref] | test.rs:117:44:117:49 | [post] buffer | provenance | | -| test.rs:117:44:117:49 | [post] buffer | test.rs:118:15:118:20 | buffer | provenance | | -| test.rs:118:15:118:20 | buffer | test.rs:118:14:118:20 | &buffer | provenance | | -| test.rs:123:22:123:25 | file | test.rs:123:42:123:52 | [post] &mut buffer [&ref] | provenance | MaD:26 | -| test.rs:123:42:123:52 | [post] &mut buffer [&ref] | test.rs:123:47:123:52 | [post] buffer | provenance | | -| test.rs:123:47:123:52 | [post] buffer | test.rs:124:15:124:20 | buffer | provenance | | -| test.rs:124:15:124:20 | buffer | test.rs:124:14:124:20 | &buffer | provenance | | -| test.rs:129:9:129:12 | file | test.rs:129:25:129:35 | [post] &mut buffer [&ref] | provenance | MaD:24 | -| test.rs:129:25:129:35 | [post] &mut buffer [&ref] | test.rs:129:30:129:35 | [post] buffer | provenance | | -| test.rs:129:30:129:35 | [post] buffer | test.rs:130:15:130:20 | buffer | provenance | | -| test.rs:130:15:130:20 | buffer | test.rs:130:14:130:20 | &buffer | provenance | | -| test.rs:133:17:133:20 | file | test.rs:133:17:133:28 | file.bytes() | provenance | MaD:20 | -| test.rs:133:17:133:28 | file.bytes() | test.rs:134:14:134:17 | byte | provenance | | -| test.rs:140:13:140:18 | mut f1 | test.rs:142:22:142:23 | f1 | provenance | | -| test.rs:140:22:140:63 | ... .open(...) [Ok] | test.rs:140:22:140:72 | ... .unwrap() | provenance | MaD:37 | -| test.rs:140:22:140:72 | ... .unwrap() | test.rs:140:13:140:18 | mut f1 | provenance | | -| test.rs:140:50:140:53 | open | test.rs:140:22:140:63 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:142:22:142:23 | f1 | test.rs:142:30:142:40 | [post] &mut buffer [&ref] | provenance | MaD:23 | -| test.rs:142:30:142:40 | [post] &mut buffer [&ref] | test.rs:142:35:142:40 | [post] buffer | provenance | | -| test.rs:142:35:142:40 | [post] buffer | test.rs:143:15:143:20 | buffer | provenance | | -| test.rs:143:15:143:20 | buffer | test.rs:143:14:143:20 | &buffer | provenance | | -| test.rs:147:13:147:18 | mut f2 | test.rs:149:22:149:23 | f2 | provenance | | -| test.rs:147:22:147:80 | ... .open(...) [Ok] | test.rs:147:22:147:89 | ... .unwrap() | provenance | MaD:37 | -| test.rs:147:22:147:89 | ... .unwrap() | test.rs:147:13:147:18 | mut f2 | provenance | | -| test.rs:147:67:147:70 | open | test.rs:147:22:147:80 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:149:22:149:23 | f2 | test.rs:149:30:149:40 | [post] &mut buffer [&ref] | provenance | MaD:23 | -| test.rs:149:30:149:40 | [post] &mut buffer [&ref] | test.rs:149:35:149:40 | [post] buffer | provenance | | -| test.rs:149:35:149:40 | [post] buffer | test.rs:150:15:150:20 | buffer | provenance | | -| test.rs:150:15:150:20 | buffer | test.rs:150:14:150:20 | &buffer | provenance | | -| test.rs:154:13:154:18 | mut f3 | test.rs:156:22:156:23 | f3 | provenance | | -| test.rs:154:22:154:114 | ... .open(...) [Ok] | test.rs:154:22:154:123 | ... .unwrap() | provenance | MaD:37 | -| test.rs:154:22:154:123 | ... .unwrap() | test.rs:154:13:154:18 | mut f3 | provenance | | -| test.rs:154:101:154:104 | open | test.rs:154:22:154:114 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:156:22:156:23 | f3 | test.rs:156:30:156:40 | [post] &mut buffer [&ref] | provenance | MaD:23 | -| test.rs:156:30:156:40 | [post] &mut buffer [&ref] | test.rs:156:35:156:40 | [post] buffer | provenance | | -| test.rs:156:35:156:40 | [post] buffer | test.rs:157:15:157:20 | buffer | provenance | | -| test.rs:157:15:157:20 | buffer | test.rs:157:14:157:20 | &buffer | provenance | | -| test.rs:164:13:164:17 | file1 | test.rs:166:26:166:30 | file1 | provenance | | -| test.rs:164:21:164:39 | ...::open | test.rs:164:21:164:51 | ...::open(...) [Ok] | provenance | Src:MaD:5 | -| test.rs:164:21:164:51 | ...::open(...) [Ok] | test.rs:164:21:164:52 | TryExpr | provenance | | -| test.rs:164:21:164:52 | TryExpr | test.rs:164:13:164:17 | file1 | provenance | | -| test.rs:165:13:165:17 | file2 | test.rs:166:38:166:42 | file2 | provenance | | -| test.rs:165:21:165:39 | ...::open | test.rs:165:21:165:59 | ...::open(...) [Ok] | provenance | Src:MaD:5 | -| test.rs:165:21:165:59 | ...::open(...) [Ok] | test.rs:165:21:165:60 | TryExpr | provenance | | -| test.rs:165:21:165:60 | TryExpr | test.rs:165:13:165:17 | file2 | provenance | | -| test.rs:166:13:166:22 | mut reader | test.rs:167:9:167:14 | reader | provenance | | -| test.rs:166:26:166:30 | file1 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:22 | -| test.rs:166:26:166:43 | file1.chain(...) | test.rs:166:13:166:22 | mut reader | provenance | | -| test.rs:166:38:166:42 | file2 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:21 | -| test.rs:167:9:167:14 | reader | test.rs:167:31:167:41 | [post] &mut buffer [&ref] | provenance | MaD:26 | -| test.rs:167:31:167:41 | [post] &mut buffer [&ref] | test.rs:167:36:167:41 | [post] buffer | provenance | | -| test.rs:167:36:167:41 | [post] buffer | test.rs:168:15:168:20 | buffer | provenance | | -| test.rs:168:15:168:20 | buffer | test.rs:168:14:168:20 | &buffer | provenance | | -| test.rs:173:13:173:17 | file1 | test.rs:174:26:174:30 | file1 | provenance | | -| test.rs:173:21:173:39 | ...::open | test.rs:173:21:173:51 | ...::open(...) [Ok] | provenance | Src:MaD:5 | -| test.rs:173:21:173:51 | ...::open(...) [Ok] | test.rs:173:21:173:52 | TryExpr | provenance | | -| test.rs:173:21:173:52 | TryExpr | test.rs:173:13:173:17 | file1 | provenance | | -| test.rs:174:13:174:22 | mut reader | test.rs:175:9:175:14 | reader | provenance | | -| test.rs:174:26:174:30 | file1 | test.rs:174:26:174:40 | file1.take(...) | provenance | MaD:27 | -| test.rs:174:26:174:40 | file1.take(...) | test.rs:174:13:174:22 | mut reader | provenance | | -| test.rs:175:9:175:14 | reader | test.rs:175:31:175:41 | [post] &mut buffer [&ref] | provenance | MaD:26 | -| test.rs:175:31:175:41 | [post] &mut buffer [&ref] | test.rs:175:36:175:41 | [post] buffer | provenance | | -| test.rs:175:36:175:41 | [post] buffer | test.rs:176:15:176:20 | buffer | provenance | | -| test.rs:176:15:176:20 | buffer | test.rs:176:14:176:20 | &buffer | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:189:22:189:25 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:195:22:195:25 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:201:22:201:25 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:207:9:207:12 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:212:18:212:21 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:213:18:213:21 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:214:18:214:21 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:215:18:215:21 | file | provenance | | -| test.rs:185:9:185:16 | mut file | test.rs:224:9:224:12 | file | provenance | | -| test.rs:185:20:185:40 | ...::open | test.rs:185:20:185:52 | ...::open(...) [future, Ok] | provenance | Src:MaD:7 | -| test.rs:185:20:185:52 | ...::open(...) [future, Ok] | test.rs:185:20:185:58 | await ... [Ok] | provenance | | -| test.rs:185:20:185:58 | await ... [Ok] | test.rs:185:20:185:59 | TryExpr | provenance | | -| test.rs:185:20:185:59 | TryExpr | test.rs:185:9:185:16 | mut file | provenance | | -| test.rs:189:22:189:25 | file | test.rs:189:32:189:42 | [post] &mut buffer [&ref] | provenance | MaD:28 | -| test.rs:189:32:189:42 | [post] &mut buffer [&ref] | test.rs:189:37:189:42 | [post] buffer | provenance | | -| test.rs:189:37:189:42 | [post] buffer | test.rs:190:15:190:20 | buffer | provenance | | -| test.rs:190:15:190:20 | buffer | test.rs:190:14:190:20 | &buffer | provenance | | -| test.rs:195:22:195:25 | file | test.rs:195:39:195:49 | [post] &mut buffer [&ref] | provenance | MaD:34 | -| test.rs:195:39:195:49 | [post] &mut buffer [&ref] | test.rs:195:44:195:49 | [post] buffer | provenance | | -| test.rs:195:44:195:49 | [post] buffer | test.rs:196:15:196:20 | buffer | provenance | | -| test.rs:196:15:196:20 | buffer | test.rs:196:14:196:20 | &buffer | provenance | | -| test.rs:201:22:201:25 | file | test.rs:201:42:201:52 | [post] &mut buffer [&ref] | provenance | MaD:35 | -| test.rs:201:42:201:52 | [post] &mut buffer [&ref] | test.rs:201:47:201:52 | [post] buffer | provenance | | -| test.rs:201:47:201:52 | [post] buffer | test.rs:202:15:202:20 | buffer | provenance | | +| test.rs:46:14:46:22 | file_name | test.rs:46:14:46:30 | file_name.clone() | provenance | MaD:18 | +| test.rs:46:14:46:30 | file_name.clone() | test.rs:46:14:46:44 | ... .into_string() [Ok, String] | provenance | MaD:40 | +| test.rs:46:14:46:44 | ... .into_string() [Ok, String] | test.rs:46:14:46:53 | ... .unwrap() | provenance | MaD:39 | +| test.rs:47:14:47:22 | file_name | test.rs:47:14:47:31 | file_name.to_str() [Some, &ref] | provenance | MaD:19 | +| test.rs:47:14:47:31 | file_name.to_str() [Some, &ref] | test.rs:47:14:47:40 | ... .unwrap() | provenance | MaD:38 | +| test.rs:48:14:48:22 | file_name | test.rs:48:14:48:40 | file_name.to_string_lossy() [Owned] | provenance | MaD:19 | +| test.rs:48:14:48:40 | file_name.to_string_lossy() [Owned] | test.rs:48:14:48:49 | ... .to_mut() | provenance | MaD:37 | +| test.rs:49:14:49:22 | file_name | test.rs:49:14:49:30 | file_name.clone() | provenance | MaD:18 | +| test.rs:49:14:49:30 | file_name.clone() | test.rs:49:14:49:49 | ... .as_encoded_bytes() | provenance | MaD:19 | +| test.rs:68:13:68:18 | target | test.rs:69:14:69:19 | target | provenance | | +| test.rs:68:22:68:34 | ...::read_link | test.rs:68:22:68:49 | ...::read_link(...) [Ok] | provenance | Src:MaD:12 | +| test.rs:68:22:68:49 | ...::read_link(...) [Ok] | test.rs:68:22:68:50 | TryExpr | provenance | | +| test.rs:68:22:68:50 | TryExpr | test.rs:68:13:68:18 | target | provenance | | +| test.rs:77:13:77:18 | buffer | test.rs:78:14:78:19 | buffer | provenance | | +| test.rs:77:31:77:45 | ...::read | test.rs:77:31:77:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | +| test.rs:77:31:77:57 | ...::read(...) [future, Ok] | test.rs:77:31:77:63 | await ... [Ok] | provenance | | +| test.rs:77:31:77:63 | await ... [Ok] | test.rs:77:31:77:64 | TryExpr | provenance | | +| test.rs:77:31:77:64 | TryExpr | test.rs:77:13:77:18 | buffer | provenance | | +| test.rs:82:13:82:18 | buffer | test.rs:83:14:83:19 | buffer | provenance | | +| test.rs:82:31:82:45 | ...::read | test.rs:82:31:82:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | +| test.rs:82:31:82:57 | ...::read(...) [future, Ok] | test.rs:82:31:82:63 | await ... [Ok] | provenance | | +| test.rs:82:31:82:63 | await ... [Ok] | test.rs:82:31:82:64 | TryExpr | provenance | | +| test.rs:82:31:82:64 | TryExpr | test.rs:82:13:82:18 | buffer | provenance | | +| test.rs:87:13:87:18 | buffer | test.rs:88:14:88:19 | buffer | provenance | | +| test.rs:87:22:87:46 | ...::read_to_string | test.rs:87:22:87:58 | ...::read_to_string(...) [future, Ok] | provenance | Src:MaD:16 | +| test.rs:87:22:87:58 | ...::read_to_string(...) [future, Ok] | test.rs:87:22:87:64 | await ... [Ok] | provenance | | +| test.rs:87:22:87:64 | await ... [Ok] | test.rs:87:22:87:65 | TryExpr | provenance | | +| test.rs:87:22:87:65 | TryExpr | test.rs:87:13:87:18 | buffer | provenance | | +| test.rs:93:13:93:16 | path | test.rs:95:14:95:17 | path | provenance | | +| test.rs:93:20:93:31 | entry.path() | test.rs:93:13:93:16 | path | provenance | | +| test.rs:93:26:93:29 | path | test.rs:93:20:93:31 | entry.path() | provenance | Src:MaD:10 MaD:10 | +| test.rs:94:13:94:21 | file_name | test.rs:96:14:96:22 | file_name | provenance | | +| test.rs:94:25:94:41 | entry.file_name() | test.rs:94:13:94:21 | file_name | provenance | | +| test.rs:94:31:94:39 | file_name | test.rs:94:25:94:41 | entry.file_name() | provenance | Src:MaD:9 MaD:9 | +| test.rs:100:13:100:18 | target | test.rs:101:14:101:19 | target | provenance | | +| test.rs:100:22:100:41 | ...::read_link | test.rs:100:22:100:56 | ...::read_link(...) [future, Ok] | provenance | Src:MaD:15 | +| test.rs:100:22:100:56 | ...::read_link(...) [future, Ok] | test.rs:100:22:100:62 | await ... [Ok] | provenance | | +| test.rs:100:22:100:62 | await ... [Ok] | test.rs:100:22:100:63 | TryExpr | provenance | | +| test.rs:100:22:100:63 | TryExpr | test.rs:100:13:100:18 | target | provenance | | +| test.rs:110:9:110:16 | mut file | test.rs:114:22:114:25 | file | provenance | | +| test.rs:110:9:110:16 | mut file | test.rs:120:22:120:25 | file | provenance | | +| test.rs:110:9:110:16 | mut file | test.rs:126:22:126:25 | file | provenance | | +| test.rs:110:9:110:16 | mut file | test.rs:132:9:132:12 | file | provenance | | +| test.rs:110:9:110:16 | mut file | test.rs:136:17:136:20 | file | provenance | | +| test.rs:110:20:110:38 | ...::open | test.rs:110:20:110:50 | ...::open(...) [Ok] | provenance | Src:MaD:5 | +| test.rs:110:20:110:50 | ...::open(...) [Ok] | test.rs:110:20:110:51 | TryExpr | provenance | | +| test.rs:110:20:110:51 | TryExpr | test.rs:110:9:110:16 | mut file | provenance | | +| test.rs:114:22:114:25 | file | test.rs:114:32:114:42 | [post] &mut buffer [&ref] | provenance | MaD:23 | +| test.rs:114:32:114:42 | [post] &mut buffer [&ref] | test.rs:114:37:114:42 | [post] buffer | provenance | | +| test.rs:114:37:114:42 | [post] buffer | test.rs:115:15:115:20 | buffer | provenance | | +| test.rs:115:15:115:20 | buffer | test.rs:115:14:115:20 | &buffer | provenance | | +| test.rs:120:22:120:25 | file | test.rs:120:39:120:49 | [post] &mut buffer [&ref] | provenance | MaD:25 | +| test.rs:120:39:120:49 | [post] &mut buffer [&ref] | test.rs:120:44:120:49 | [post] buffer | provenance | | +| test.rs:120:44:120:49 | [post] buffer | test.rs:121:15:121:20 | buffer | provenance | | +| test.rs:121:15:121:20 | buffer | test.rs:121:14:121:20 | &buffer | provenance | | +| test.rs:126:22:126:25 | file | test.rs:126:42:126:52 | [post] &mut buffer [&ref] | provenance | MaD:26 | +| test.rs:126:42:126:52 | [post] &mut buffer [&ref] | test.rs:126:47:126:52 | [post] buffer | provenance | | +| test.rs:126:47:126:52 | [post] buffer | test.rs:127:15:127:20 | buffer | provenance | | +| test.rs:127:15:127:20 | buffer | test.rs:127:14:127:20 | &buffer | provenance | | +| test.rs:132:9:132:12 | file | test.rs:132:25:132:35 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:132:25:132:35 | [post] &mut buffer [&ref] | test.rs:132:30:132:35 | [post] buffer | provenance | | +| test.rs:132:30:132:35 | [post] buffer | test.rs:133:15:133:20 | buffer | provenance | | +| test.rs:133:15:133:20 | buffer | test.rs:133:14:133:20 | &buffer | provenance | | +| test.rs:136:17:136:20 | file | test.rs:136:17:136:28 | file.bytes() | provenance | MaD:20 | +| test.rs:136:17:136:28 | file.bytes() | test.rs:137:14:137:17 | byte | provenance | | +| test.rs:143:13:143:18 | mut f1 | test.rs:145:22:145:23 | f1 | provenance | | +| test.rs:143:22:143:63 | ... .open(...) [Ok] | test.rs:143:22:143:72 | ... .unwrap() | provenance | MaD:39 | +| test.rs:143:22:143:72 | ... .unwrap() | test.rs:143:13:143:18 | mut f1 | provenance | | +| test.rs:143:50:143:53 | open | test.rs:143:22:143:63 | ... .open(...) [Ok] | provenance | Src:MaD:6 | +| test.rs:145:22:145:23 | f1 | test.rs:145:30:145:40 | [post] &mut buffer [&ref] | provenance | MaD:23 | +| test.rs:145:30:145:40 | [post] &mut buffer [&ref] | test.rs:145:35:145:40 | [post] buffer | provenance | | +| test.rs:145:35:145:40 | [post] buffer | test.rs:146:15:146:20 | buffer | provenance | | +| test.rs:146:15:146:20 | buffer | test.rs:146:14:146:20 | &buffer | provenance | | +| test.rs:150:13:150:18 | mut f2 | test.rs:155:22:155:23 | f2 | provenance | | +| test.rs:150:22:152:27 | ... .open(...) [Ok] | test.rs:150:22:153:21 | ... .unwrap() | provenance | MaD:39 | +| test.rs:150:22:153:21 | ... .unwrap() | test.rs:150:13:150:18 | mut f2 | provenance | | +| test.rs:152:14:152:17 | open | test.rs:150:22:152:27 | ... .open(...) [Ok] | provenance | Src:MaD:6 | +| test.rs:155:22:155:23 | f2 | test.rs:155:30:155:40 | [post] &mut buffer [&ref] | provenance | MaD:23 | +| test.rs:155:30:155:40 | [post] &mut buffer [&ref] | test.rs:155:35:155:40 | [post] buffer | provenance | | +| test.rs:155:35:155:40 | [post] buffer | test.rs:156:15:156:20 | buffer | provenance | | +| test.rs:156:15:156:20 | buffer | test.rs:156:14:156:20 | &buffer | provenance | | +| test.rs:160:13:160:18 | mut f3 | test.rs:168:22:168:23 | f3 | provenance | | +| test.rs:160:22:165:27 | ... .open(...) [Ok] | test.rs:160:22:166:21 | ... .unwrap() | provenance | MaD:39 | +| test.rs:160:22:166:21 | ... .unwrap() | test.rs:160:13:160:18 | mut f3 | provenance | | +| test.rs:165:14:165:17 | open | test.rs:160:22:165:27 | ... .open(...) [Ok] | provenance | Src:MaD:6 | +| test.rs:168:22:168:23 | f3 | test.rs:168:30:168:40 | [post] &mut buffer [&ref] | provenance | MaD:23 | +| test.rs:168:30:168:40 | [post] &mut buffer [&ref] | test.rs:168:35:168:40 | [post] buffer | provenance | | +| test.rs:168:35:168:40 | [post] buffer | test.rs:169:15:169:20 | buffer | provenance | | +| test.rs:169:15:169:20 | buffer | test.rs:169:14:169:20 | &buffer | provenance | | +| test.rs:176:13:176:17 | file1 | test.rs:178:26:178:30 | file1 | provenance | | +| test.rs:176:21:176:39 | ...::open | test.rs:176:21:176:51 | ...::open(...) [Ok] | provenance | Src:MaD:5 | +| test.rs:176:21:176:51 | ...::open(...) [Ok] | test.rs:176:21:176:52 | TryExpr | provenance | | +| test.rs:176:21:176:52 | TryExpr | test.rs:176:13:176:17 | file1 | provenance | | +| test.rs:177:13:177:17 | file2 | test.rs:178:38:178:42 | file2 | provenance | | +| test.rs:177:21:177:39 | ...::open | test.rs:177:21:177:59 | ...::open(...) [Ok] | provenance | Src:MaD:5 | +| test.rs:177:21:177:59 | ...::open(...) [Ok] | test.rs:177:21:177:60 | TryExpr | provenance | | +| test.rs:177:21:177:60 | TryExpr | test.rs:177:13:177:17 | file2 | provenance | | +| test.rs:178:13:178:22 | mut reader | test.rs:179:9:179:14 | reader | provenance | | +| test.rs:178:26:178:30 | file1 | test.rs:178:26:178:43 | file1.chain(...) | provenance | MaD:22 | +| test.rs:178:26:178:43 | file1.chain(...) | test.rs:178:13:178:22 | mut reader | provenance | | +| test.rs:178:38:178:42 | file2 | test.rs:178:26:178:43 | file1.chain(...) | provenance | MaD:21 | +| test.rs:179:9:179:14 | reader | test.rs:179:31:179:41 | [post] &mut buffer [&ref] | provenance | MaD:26 | +| test.rs:179:31:179:41 | [post] &mut buffer [&ref] | test.rs:179:36:179:41 | [post] buffer | provenance | | +| test.rs:179:36:179:41 | [post] buffer | test.rs:180:15:180:20 | buffer | provenance | | +| test.rs:180:15:180:20 | buffer | test.rs:180:14:180:20 | &buffer | provenance | | +| test.rs:185:13:185:17 | file1 | test.rs:186:26:186:30 | file1 | provenance | | +| test.rs:185:21:185:39 | ...::open | test.rs:185:21:185:51 | ...::open(...) [Ok] | provenance | Src:MaD:5 | +| test.rs:185:21:185:51 | ...::open(...) [Ok] | test.rs:185:21:185:52 | TryExpr | provenance | | +| test.rs:185:21:185:52 | TryExpr | test.rs:185:13:185:17 | file1 | provenance | | +| test.rs:186:13:186:22 | mut reader | test.rs:187:9:187:14 | reader | provenance | | +| test.rs:186:26:186:30 | file1 | test.rs:186:26:186:40 | file1.take(...) | provenance | MaD:27 | +| test.rs:186:26:186:40 | file1.take(...) | test.rs:186:13:186:22 | mut reader | provenance | | +| test.rs:187:9:187:14 | reader | test.rs:187:31:187:41 | [post] &mut buffer [&ref] | provenance | MaD:26 | +| test.rs:187:31:187:41 | [post] &mut buffer [&ref] | test.rs:187:36:187:41 | [post] buffer | provenance | | +| test.rs:187:36:187:41 | [post] buffer | test.rs:188:15:188:20 | buffer | provenance | | +| test.rs:188:15:188:20 | buffer | test.rs:188:14:188:20 | &buffer | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:201:22:201:25 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:207:22:207:25 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:213:22:213:25 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:219:9:219:12 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:224:18:224:21 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:225:18:225:21 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:226:18:226:21 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:227:18:227:21 | file | provenance | | +| test.rs:197:9:197:16 | mut file | test.rs:236:9:236:12 | file | provenance | | +| test.rs:197:20:197:40 | ...::open | test.rs:197:20:197:52 | ...::open(...) [future, Ok] | provenance | Src:MaD:7 | +| test.rs:197:20:197:52 | ...::open(...) [future, Ok] | test.rs:197:20:197:58 | await ... [Ok] | provenance | | +| test.rs:197:20:197:58 | await ... [Ok] | test.rs:197:20:197:59 | TryExpr | provenance | | +| test.rs:197:20:197:59 | TryExpr | test.rs:197:9:197:16 | mut file | provenance | | +| test.rs:201:22:201:25 | file | test.rs:201:32:201:42 | [post] &mut buffer [&ref] | provenance | MaD:28 | +| test.rs:201:32:201:42 | [post] &mut buffer [&ref] | test.rs:201:37:201:42 | [post] buffer | provenance | | +| test.rs:201:37:201:42 | [post] buffer | test.rs:202:15:202:20 | buffer | provenance | | | test.rs:202:15:202:20 | buffer | test.rs:202:14:202:20 | &buffer | provenance | | -| test.rs:207:9:207:12 | file | test.rs:207:25:207:35 | [post] &mut buffer [&ref] | provenance | MaD:30 | -| test.rs:207:25:207:35 | [post] &mut buffer [&ref] | test.rs:207:30:207:35 | [post] buffer | provenance | | -| test.rs:207:30:207:35 | [post] buffer | test.rs:208:15:208:20 | buffer | provenance | | +| test.rs:207:22:207:25 | file | test.rs:207:39:207:49 | [post] &mut buffer [&ref] | provenance | MaD:34 | +| test.rs:207:39:207:49 | [post] &mut buffer [&ref] | test.rs:207:44:207:49 | [post] buffer | provenance | | +| test.rs:207:44:207:49 | [post] buffer | test.rs:208:15:208:20 | buffer | provenance | | | test.rs:208:15:208:20 | buffer | test.rs:208:14:208:20 | &buffer | provenance | | -| test.rs:212:13:212:14 | v1 | test.rs:216:14:216:15 | v1 | provenance | | -| test.rs:212:18:212:21 | file | test.rs:212:18:212:31 | file.read_u8() [future, Ok] | provenance | MaD:36 | -| test.rs:212:18:212:31 | file.read_u8() [future, Ok] | test.rs:212:18:212:37 | await ... [Ok] | provenance | | -| test.rs:212:18:212:37 | await ... [Ok] | test.rs:212:18:212:38 | TryExpr | provenance | | -| test.rs:212:18:212:38 | TryExpr | test.rs:212:13:212:14 | v1 | provenance | | -| test.rs:213:13:213:14 | v2 | test.rs:217:14:217:15 | v2 | provenance | | -| test.rs:213:18:213:21 | file | test.rs:213:18:213:32 | file.read_i16() [future, Ok] | provenance | MaD:32 | -| test.rs:213:18:213:32 | file.read_i16() [future, Ok] | test.rs:213:18:213:38 | await ... [Ok] | provenance | | -| test.rs:213:18:213:38 | await ... [Ok] | test.rs:213:18:213:39 | TryExpr | provenance | | -| test.rs:213:18:213:39 | TryExpr | test.rs:213:13:213:14 | v2 | provenance | | -| test.rs:214:13:214:14 | v3 | test.rs:218:14:218:15 | v3 | provenance | | -| test.rs:214:18:214:21 | file | test.rs:214:18:214:32 | file.read_f32() [future, Ok] | provenance | MaD:31 | -| test.rs:214:18:214:32 | file.read_f32() [future, Ok] | test.rs:214:18:214:38 | await ... [Ok] | provenance | | -| test.rs:214:18:214:38 | await ... [Ok] | test.rs:214:18:214:39 | TryExpr | provenance | | -| test.rs:214:18:214:39 | TryExpr | test.rs:214:13:214:14 | v3 | provenance | | -| test.rs:215:13:215:14 | v4 | test.rs:219:14:219:15 | v4 | provenance | | -| test.rs:215:18:215:21 | file | test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | provenance | MaD:33 | -| test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | test.rs:215:18:215:41 | await ... [Ok] | provenance | | -| test.rs:215:18:215:41 | await ... [Ok] | test.rs:215:18:215:42 | TryExpr | provenance | | -| test.rs:215:18:215:42 | TryExpr | test.rs:215:13:215:14 | v4 | provenance | | -| test.rs:224:9:224:12 | file | test.rs:224:23:224:33 | [post] &mut buffer [&ref] | provenance | MaD:29 | -| test.rs:224:23:224:33 | [post] &mut buffer [&ref] | test.rs:224:28:224:33 | [post] buffer | provenance | | -| test.rs:224:28:224:33 | [post] buffer | test.rs:225:15:225:20 | buffer | provenance | | -| test.rs:225:15:225:20 | buffer | test.rs:225:14:225:20 | &buffer | provenance | | -| test.rs:231:13:231:18 | mut f1 | test.rs:233:22:233:23 | f1 | provenance | | -| test.rs:231:22:231:65 | ... .open(...) [future, Ok] | test.rs:231:22:231:71 | await ... [Ok] | provenance | | -| test.rs:231:22:231:71 | await ... [Ok] | test.rs:231:22:231:72 | TryExpr | provenance | | -| test.rs:231:22:231:72 | TryExpr | test.rs:231:13:231:18 | mut f1 | provenance | | -| test.rs:231:52:231:55 | open | test.rs:231:22:231:65 | ... .open(...) [future, Ok] | provenance | Src:MaD:8 | -| test.rs:233:22:233:23 | f1 | test.rs:233:30:233:40 | [post] &mut buffer [&ref] | provenance | MaD:28 | -| test.rs:233:30:233:40 | [post] &mut buffer [&ref] | test.rs:233:35:233:40 | [post] buffer | provenance | | -| test.rs:233:35:233:40 | [post] buffer | test.rs:234:15:234:20 | buffer | provenance | | -| test.rs:234:15:234:20 | buffer | test.rs:234:14:234:20 | &buffer | provenance | | -| test.rs:262:9:262:16 | mut file | test.rs:266:22:266:25 | file | provenance | | -| test.rs:262:20:262:44 | ...::open | test.rs:262:20:262:56 | ...::open(...) [future, Ok] | provenance | Src:MaD:1 | -| test.rs:262:20:262:56 | ...::open(...) [future, Ok] | test.rs:262:20:262:62 | await ... [Ok] | provenance | | -| test.rs:262:20:262:62 | await ... [Ok] | test.rs:262:20:262:63 | TryExpr | provenance | | -| test.rs:262:20:262:63 | TryExpr | test.rs:262:9:262:16 | mut file | provenance | | -| test.rs:266:22:266:25 | file | test.rs:266:32:266:42 | [post] &mut buffer [&ref] | provenance | MaD:17 | -| test.rs:266:32:266:42 | [post] &mut buffer [&ref] | test.rs:266:37:266:42 | [post] buffer | provenance | | -| test.rs:266:37:266:42 | [post] buffer | test.rs:267:15:267:20 | buffer | provenance | | -| test.rs:267:15:267:20 | buffer | test.rs:267:14:267:20 | &buffer | provenance | | -| test.rs:273:13:273:18 | mut f1 | test.rs:275:22:275:23 | f1 | provenance | | -| test.rs:273:22:273:69 | ... .open(...) [future, Ok] | test.rs:273:22:273:75 | await ... [Ok] | provenance | | -| test.rs:273:22:273:75 | await ... [Ok] | test.rs:273:22:273:76 | TryExpr | provenance | | -| test.rs:273:22:273:76 | TryExpr | test.rs:273:13:273:18 | mut f1 | provenance | | -| test.rs:273:56:273:59 | open | test.rs:273:22:273:69 | ... .open(...) [future, Ok] | provenance | Src:MaD:2 | -| test.rs:275:22:275:23 | f1 | test.rs:275:30:275:40 | [post] &mut buffer [&ref] | provenance | MaD:17 | -| test.rs:275:30:275:40 | [post] &mut buffer [&ref] | test.rs:275:35:275:40 | [post] buffer | provenance | | -| test.rs:275:35:275:40 | [post] buffer | test.rs:276:15:276:20 | buffer | provenance | | -| test.rs:276:15:276:20 | buffer | test.rs:276:14:276:20 | &buffer | provenance | | +| test.rs:213:22:213:25 | file | test.rs:213:42:213:52 | [post] &mut buffer [&ref] | provenance | MaD:35 | +| test.rs:213:42:213:52 | [post] &mut buffer [&ref] | test.rs:213:47:213:52 | [post] buffer | provenance | | +| test.rs:213:47:213:52 | [post] buffer | test.rs:214:15:214:20 | buffer | provenance | | +| test.rs:214:15:214:20 | buffer | test.rs:214:14:214:20 | &buffer | provenance | | +| test.rs:219:9:219:12 | file | test.rs:219:25:219:35 | [post] &mut buffer [&ref] | provenance | MaD:30 | +| test.rs:219:25:219:35 | [post] &mut buffer [&ref] | test.rs:219:30:219:35 | [post] buffer | provenance | | +| test.rs:219:30:219:35 | [post] buffer | test.rs:220:15:220:20 | buffer | provenance | | +| test.rs:220:15:220:20 | buffer | test.rs:220:14:220:20 | &buffer | provenance | | +| test.rs:224:13:224:14 | v1 | test.rs:228:14:228:15 | v1 | provenance | | +| test.rs:224:18:224:21 | file | test.rs:224:18:224:31 | file.read_u8() [future, Ok] | provenance | MaD:36 | +| test.rs:224:18:224:31 | file.read_u8() [future, Ok] | test.rs:224:18:224:37 | await ... [Ok] | provenance | | +| test.rs:224:18:224:37 | await ... [Ok] | test.rs:224:18:224:38 | TryExpr | provenance | | +| test.rs:224:18:224:38 | TryExpr | test.rs:224:13:224:14 | v1 | provenance | | +| test.rs:225:13:225:14 | v2 | test.rs:229:14:229:15 | v2 | provenance | | +| test.rs:225:18:225:21 | file | test.rs:225:18:225:32 | file.read_i16() [future, Ok] | provenance | MaD:32 | +| test.rs:225:18:225:32 | file.read_i16() [future, Ok] | test.rs:225:18:225:38 | await ... [Ok] | provenance | | +| test.rs:225:18:225:38 | await ... [Ok] | test.rs:225:18:225:39 | TryExpr | provenance | | +| test.rs:225:18:225:39 | TryExpr | test.rs:225:13:225:14 | v2 | provenance | | +| test.rs:226:13:226:14 | v3 | test.rs:230:14:230:15 | v3 | provenance | | +| test.rs:226:18:226:21 | file | test.rs:226:18:226:32 | file.read_f32() [future, Ok] | provenance | MaD:31 | +| test.rs:226:18:226:32 | file.read_f32() [future, Ok] | test.rs:226:18:226:38 | await ... [Ok] | provenance | | +| test.rs:226:18:226:38 | await ... [Ok] | test.rs:226:18:226:39 | TryExpr | provenance | | +| test.rs:226:18:226:39 | TryExpr | test.rs:226:13:226:14 | v3 | provenance | | +| test.rs:227:13:227:14 | v4 | test.rs:231:14:231:15 | v4 | provenance | | +| test.rs:227:18:227:21 | file | test.rs:227:18:227:35 | file.read_i64_le() [future, Ok] | provenance | MaD:33 | +| test.rs:227:18:227:35 | file.read_i64_le() [future, Ok] | test.rs:227:18:227:41 | await ... [Ok] | provenance | | +| test.rs:227:18:227:41 | await ... [Ok] | test.rs:227:18:227:42 | TryExpr | provenance | | +| test.rs:227:18:227:42 | TryExpr | test.rs:227:13:227:14 | v4 | provenance | | +| test.rs:236:9:236:12 | file | test.rs:236:23:236:33 | [post] &mut buffer [&ref] | provenance | MaD:29 | +| test.rs:236:23:236:33 | [post] &mut buffer [&ref] | test.rs:236:28:236:33 | [post] buffer | provenance | | +| test.rs:236:28:236:33 | [post] buffer | test.rs:237:15:237:20 | buffer | provenance | | +| test.rs:237:15:237:20 | buffer | test.rs:237:14:237:20 | &buffer | provenance | | +| test.rs:243:13:243:18 | mut f1 | test.rs:245:22:245:23 | f1 | provenance | | +| test.rs:243:22:243:65 | ... .open(...) [future, Ok] | test.rs:243:22:243:71 | await ... [Ok] | provenance | | +| test.rs:243:22:243:71 | await ... [Ok] | test.rs:243:22:243:72 | TryExpr | provenance | | +| test.rs:243:22:243:72 | TryExpr | test.rs:243:13:243:18 | mut f1 | provenance | | +| test.rs:243:52:243:55 | open | test.rs:243:22:243:65 | ... .open(...) [future, Ok] | provenance | Src:MaD:8 | +| test.rs:245:22:245:23 | f1 | test.rs:245:30:245:40 | [post] &mut buffer [&ref] | provenance | MaD:28 | +| test.rs:245:30:245:40 | [post] &mut buffer [&ref] | test.rs:245:35:245:40 | [post] buffer | provenance | | +| test.rs:245:35:245:40 | [post] buffer | test.rs:246:15:246:20 | buffer | provenance | | +| test.rs:246:15:246:20 | buffer | test.rs:246:14:246:20 | &buffer | provenance | | +| test.rs:274:9:274:16 | mut file | test.rs:278:22:278:25 | file | provenance | | +| test.rs:274:20:274:44 | ...::open | test.rs:274:20:274:56 | ...::open(...) [future, Ok] | provenance | Src:MaD:1 | +| test.rs:274:20:274:56 | ...::open(...) [future, Ok] | test.rs:274:20:274:62 | await ... [Ok] | provenance | | +| test.rs:274:20:274:62 | await ... [Ok] | test.rs:274:20:274:63 | TryExpr | provenance | | +| test.rs:274:20:274:63 | TryExpr | test.rs:274:9:274:16 | mut file | provenance | | +| test.rs:278:22:278:25 | file | test.rs:278:32:278:42 | [post] &mut buffer [&ref] | provenance | MaD:17 | +| test.rs:278:32:278:42 | [post] &mut buffer [&ref] | test.rs:278:37:278:42 | [post] buffer | provenance | | +| test.rs:278:37:278:42 | [post] buffer | test.rs:279:15:279:20 | buffer | provenance | | +| test.rs:279:15:279:20 | buffer | test.rs:279:14:279:20 | &buffer | provenance | | +| test.rs:285:13:285:18 | mut f1 | test.rs:287:22:287:23 | f1 | provenance | | +| test.rs:285:22:285:69 | ... .open(...) [future, Ok] | test.rs:285:22:285:75 | await ... [Ok] | provenance | | +| test.rs:285:22:285:75 | await ... [Ok] | test.rs:285:22:285:76 | TryExpr | provenance | | +| test.rs:285:22:285:76 | TryExpr | test.rs:285:13:285:18 | mut f1 | provenance | | +| test.rs:285:56:285:59 | open | test.rs:285:22:285:69 | ... .open(...) [future, Ok] | provenance | Src:MaD:2 | +| test.rs:287:22:287:23 | f1 | test.rs:287:30:287:40 | [post] &mut buffer [&ref] | provenance | MaD:17 | +| test.rs:287:30:287:40 | [post] &mut buffer [&ref] | test.rs:287:35:287:40 | [post] buffer | provenance | | +| test.rs:287:35:287:40 | [post] buffer | test.rs:288:15:288:20 | buffer | provenance | | +| test.rs:288:15:288:20 | buffer | test.rs:288:14:288:20 | &buffer | provenance | | nodes | test.rs:12:13:12:18 | buffer | semmle.label | buffer | | test.rs:12:31:12:43 | ...::read | semmle.label | ...::read | @@ -274,272 +311,315 @@ nodes | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | semmle.label | ...::read_to_string(...) [Ok] | | test.rs:22:22:22:52 | TryExpr | semmle.label | TryExpr | | test.rs:23:14:23:19 | buffer | semmle.label | buffer | -| test.rs:29:13:29:16 | path | semmle.label | path | -| test.rs:29:20:29:27 | e.path() | semmle.label | e.path() | -| test.rs:29:22:29:25 | path | semmle.label | path | -| test.rs:30:14:30:17 | path | semmle.label | path | -| test.rs:30:14:30:25 | path.clone() | semmle.label | path.clone() | +| test.rs:30:13:30:16 | path | semmle.label | path | +| test.rs:30:20:30:27 | e.path() | semmle.label | e.path() | +| test.rs:30:22:30:25 | path | semmle.label | path | | test.rs:31:14:31:17 | path | semmle.label | path | | test.rs:31:14:31:25 | path.clone() | semmle.label | path.clone() | -| test.rs:31:14:31:35 | ... .as_path() | semmle.label | ... .as_path() | +| test.rs:32:14:32:17 | path | semmle.label | path | +| test.rs:32:14:32:25 | path.clone() | semmle.label | path.clone() | +| test.rs:32:14:32:35 | ... .as_path() | semmle.label | ... .as_path() | +| test.rs:33:14:33:17 | path | semmle.label | path | +| test.rs:33:14:33:25 | path.clone() | semmle.label | path.clone() | +| test.rs:33:14:33:42 | ... .into_os_string() | semmle.label | ... .into_os_string() | +| test.rs:34:14:34:69 | ...::from(...) | semmle.label | ...::from(...) | +| test.rs:34:39:34:42 | path | semmle.label | path | +| test.rs:34:39:34:50 | path.clone() | semmle.label | path.clone() | +| test.rs:34:39:34:68 | ... .into_boxed_path() [Box(0)] | semmle.label | ... .into_boxed_path() [Box(0)] | +| test.rs:35:14:35:17 | path | semmle.label | path | +| test.rs:35:14:35:25 | path.clone() | semmle.label | path.clone() | +| test.rs:35:14:35:37 | ... .as_os_str() | semmle.label | ... .as_os_str() | +| test.rs:36:14:36:17 | path | semmle.label | path | +| test.rs:36:14:36:25 | path.clone() | semmle.label | path.clone() | +| test.rs:36:14:36:41 | ... .as_mut_os_str() | semmle.label | ... .as_mut_os_str() | +| test.rs:37:14:37:17 | path | semmle.label | path | +| test.rs:37:14:37:26 | path.to_str() | semmle.label | path.to_str() | +| test.rs:38:14:38:17 | path | semmle.label | path | +| test.rs:38:14:38:31 | path.to_path_buf() | semmle.label | path.to_path_buf() | +| test.rs:39:14:39:17 | path | semmle.label | path | +| test.rs:39:14:39:29 | path.file_name() [Some, &ref] | semmle.label | path.file_name() [Some, &ref] | +| test.rs:39:14:39:38 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:40:14:40:17 | path | semmle.label | path | -| test.rs:40:14:40:32 | path.canonicalize() [Ok] | semmle.label | path.canonicalize() [Ok] | -| test.rs:40:14:40:41 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:40:14:40:29 | path.extension() [Some, &ref] | semmle.label | path.extension() [Some, &ref] | +| test.rs:40:14:40:38 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:41:14:41:17 | path | semmle.label | path | -| test.rs:43:13:43:21 | file_name | semmle.label | file_name | -| test.rs:43:25:43:37 | e.file_name() | semmle.label | e.file_name() | -| test.rs:43:27:43:35 | file_name | semmle.label | file_name | -| test.rs:44:14:44:22 | file_name | semmle.label | file_name | -| test.rs:44:14:44:30 | file_name.clone() | semmle.label | file_name.clone() | +| test.rs:41:14:41:32 | path.canonicalize() [Ok] | semmle.label | path.canonicalize() [Ok] | +| test.rs:41:14:41:41 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:42:14:42:17 | path | semmle.label | path | +| test.rs:44:13:44:21 | file_name | semmle.label | file_name | +| test.rs:44:25:44:37 | e.file_name() | semmle.label | e.file_name() | +| test.rs:44:27:44:35 | file_name | semmle.label | file_name | | test.rs:45:14:45:22 | file_name | semmle.label | file_name | | test.rs:45:14:45:30 | file_name.clone() | semmle.label | file_name.clone() | -| test.rs:45:14:45:44 | ... .into_string() [Ok, String] | semmle.label | ... .into_string() [Ok, String] | -| test.rs:45:14:45:53 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:46:14:46:22 | file_name | semmle.label | file_name | +| test.rs:46:14:46:30 | file_name.clone() | semmle.label | file_name.clone() | +| test.rs:46:14:46:44 | ... .into_string() [Ok, String] | semmle.label | ... .into_string() [Ok, String] | +| test.rs:46:14:46:53 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:47:14:47:22 | file_name | semmle.label | file_name | +| test.rs:47:14:47:31 | file_name.to_str() [Some, &ref] | semmle.label | file_name.to_str() [Some, &ref] | +| test.rs:47:14:47:40 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:48:14:48:22 | file_name | semmle.label | file_name | +| test.rs:48:14:48:40 | file_name.to_string_lossy() [Owned] | semmle.label | file_name.to_string_lossy() [Owned] | +| test.rs:48:14:48:49 | ... .to_mut() | semmle.label | ... .to_mut() | | test.rs:49:14:49:22 | file_name | semmle.label | file_name | -| test.rs:65:13:65:18 | target | semmle.label | target | -| test.rs:65:22:65:34 | ...::read_link | semmle.label | ...::read_link | -| test.rs:65:22:65:49 | ...::read_link(...) [Ok] | semmle.label | ...::read_link(...) [Ok] | -| test.rs:65:22:65:50 | TryExpr | semmle.label | TryExpr | -| test.rs:66:14:66:19 | target | semmle.label | target | -| test.rs:74:13:74:18 | buffer | semmle.label | buffer | -| test.rs:74:31:74:45 | ...::read | semmle.label | ...::read | -| test.rs:74:31:74:57 | ...::read(...) [future, Ok] | semmle.label | ...::read(...) [future, Ok] | -| test.rs:74:31:74:63 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:74:31:74:64 | TryExpr | semmle.label | TryExpr | -| test.rs:75:14:75:19 | buffer | semmle.label | buffer | -| test.rs:79:13:79:18 | buffer | semmle.label | buffer | -| test.rs:79:31:79:45 | ...::read | semmle.label | ...::read | -| test.rs:79:31:79:57 | ...::read(...) [future, Ok] | semmle.label | ...::read(...) [future, Ok] | -| test.rs:79:31:79:63 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:79:31:79:64 | TryExpr | semmle.label | TryExpr | -| test.rs:80:14:80:19 | buffer | semmle.label | buffer | -| test.rs:84:13:84:18 | buffer | semmle.label | buffer | -| test.rs:84:22:84:46 | ...::read_to_string | semmle.label | ...::read_to_string | -| test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | semmle.label | ...::read_to_string(...) [future, Ok] | -| test.rs:84:22:84:64 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:84:22:84:65 | TryExpr | semmle.label | TryExpr | -| test.rs:85:14:85:19 | buffer | semmle.label | buffer | -| test.rs:90:13:90:16 | path | semmle.label | path | -| test.rs:90:20:90:31 | entry.path() | semmle.label | entry.path() | -| test.rs:90:26:90:29 | path | semmle.label | path | -| test.rs:91:13:91:21 | file_name | semmle.label | file_name | -| test.rs:91:25:91:41 | entry.file_name() | semmle.label | entry.file_name() | -| test.rs:91:31:91:39 | file_name | semmle.label | file_name | -| test.rs:92:14:92:17 | path | semmle.label | path | -| test.rs:93:14:93:22 | file_name | semmle.label | file_name | -| test.rs:97:13:97:18 | target | semmle.label | target | -| test.rs:97:22:97:41 | ...::read_link | semmle.label | ...::read_link | -| test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | semmle.label | ...::read_link(...) [future, Ok] | -| test.rs:97:22:97:62 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:97:22:97:63 | TryExpr | semmle.label | TryExpr | -| test.rs:98:14:98:19 | target | semmle.label | target | -| test.rs:107:9:107:16 | mut file | semmle.label | mut file | -| test.rs:107:20:107:38 | ...::open | semmle.label | ...::open | -| test.rs:107:20:107:50 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | -| test.rs:107:20:107:51 | TryExpr | semmle.label | TryExpr | -| test.rs:111:22:111:25 | file | semmle.label | file | -| test.rs:111:32:111:42 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:111:37:111:42 | [post] buffer | semmle.label | [post] buffer | -| test.rs:112:14:112:20 | &buffer | semmle.label | &buffer | -| test.rs:112:15:112:20 | buffer | semmle.label | buffer | -| test.rs:117:22:117:25 | file | semmle.label | file | -| test.rs:117:39:117:49 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:117:44:117:49 | [post] buffer | semmle.label | [post] buffer | -| test.rs:118:14:118:20 | &buffer | semmle.label | &buffer | -| test.rs:118:15:118:20 | buffer | semmle.label | buffer | -| test.rs:123:22:123:25 | file | semmle.label | file | -| test.rs:123:42:123:52 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:123:47:123:52 | [post] buffer | semmle.label | [post] buffer | -| test.rs:124:14:124:20 | &buffer | semmle.label | &buffer | -| test.rs:124:15:124:20 | buffer | semmle.label | buffer | -| test.rs:129:9:129:12 | file | semmle.label | file | -| test.rs:129:25:129:35 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:129:30:129:35 | [post] buffer | semmle.label | [post] buffer | -| test.rs:130:14:130:20 | &buffer | semmle.label | &buffer | -| test.rs:130:15:130:20 | buffer | semmle.label | buffer | -| test.rs:133:17:133:20 | file | semmle.label | file | -| test.rs:133:17:133:28 | file.bytes() | semmle.label | file.bytes() | -| test.rs:134:14:134:17 | byte | semmle.label | byte | -| test.rs:140:13:140:18 | mut f1 | semmle.label | mut f1 | -| test.rs:140:22:140:63 | ... .open(...) [Ok] | semmle.label | ... .open(...) [Ok] | -| test.rs:140:22:140:72 | ... .unwrap() | semmle.label | ... .unwrap() | -| test.rs:140:50:140:53 | open | semmle.label | open | -| test.rs:142:22:142:23 | f1 | semmle.label | f1 | -| test.rs:142:30:142:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:142:35:142:40 | [post] buffer | semmle.label | [post] buffer | -| test.rs:143:14:143:20 | &buffer | semmle.label | &buffer | -| test.rs:143:15:143:20 | buffer | semmle.label | buffer | -| test.rs:147:13:147:18 | mut f2 | semmle.label | mut f2 | -| test.rs:147:22:147:80 | ... .open(...) [Ok] | semmle.label | ... .open(...) [Ok] | -| test.rs:147:22:147:89 | ... .unwrap() | semmle.label | ... .unwrap() | -| test.rs:147:67:147:70 | open | semmle.label | open | -| test.rs:149:22:149:23 | f2 | semmle.label | f2 | -| test.rs:149:30:149:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:149:35:149:40 | [post] buffer | semmle.label | [post] buffer | -| test.rs:150:14:150:20 | &buffer | semmle.label | &buffer | -| test.rs:150:15:150:20 | buffer | semmle.label | buffer | -| test.rs:154:13:154:18 | mut f3 | semmle.label | mut f3 | -| test.rs:154:22:154:114 | ... .open(...) [Ok] | semmle.label | ... .open(...) [Ok] | -| test.rs:154:22:154:123 | ... .unwrap() | semmle.label | ... .unwrap() | -| test.rs:154:101:154:104 | open | semmle.label | open | -| test.rs:156:22:156:23 | f3 | semmle.label | f3 | -| test.rs:156:30:156:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:156:35:156:40 | [post] buffer | semmle.label | [post] buffer | -| test.rs:157:14:157:20 | &buffer | semmle.label | &buffer | -| test.rs:157:15:157:20 | buffer | semmle.label | buffer | -| test.rs:164:13:164:17 | file1 | semmle.label | file1 | -| test.rs:164:21:164:39 | ...::open | semmle.label | ...::open | -| test.rs:164:21:164:51 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | -| test.rs:164:21:164:52 | TryExpr | semmle.label | TryExpr | -| test.rs:165:13:165:17 | file2 | semmle.label | file2 | -| test.rs:165:21:165:39 | ...::open | semmle.label | ...::open | -| test.rs:165:21:165:59 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | -| test.rs:165:21:165:60 | TryExpr | semmle.label | TryExpr | -| test.rs:166:13:166:22 | mut reader | semmle.label | mut reader | -| test.rs:166:26:166:30 | file1 | semmle.label | file1 | -| test.rs:166:26:166:43 | file1.chain(...) | semmle.label | file1.chain(...) | -| test.rs:166:38:166:42 | file2 | semmle.label | file2 | -| test.rs:167:9:167:14 | reader | semmle.label | reader | -| test.rs:167:31:167:41 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:167:36:167:41 | [post] buffer | semmle.label | [post] buffer | -| test.rs:168:14:168:20 | &buffer | semmle.label | &buffer | -| test.rs:168:15:168:20 | buffer | semmle.label | buffer | -| test.rs:173:13:173:17 | file1 | semmle.label | file1 | -| test.rs:173:21:173:39 | ...::open | semmle.label | ...::open | -| test.rs:173:21:173:51 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | -| test.rs:173:21:173:52 | TryExpr | semmle.label | TryExpr | -| test.rs:174:13:174:22 | mut reader | semmle.label | mut reader | -| test.rs:174:26:174:30 | file1 | semmle.label | file1 | -| test.rs:174:26:174:40 | file1.take(...) | semmle.label | file1.take(...) | -| test.rs:175:9:175:14 | reader | semmle.label | reader | -| test.rs:175:31:175:41 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:175:36:175:41 | [post] buffer | semmle.label | [post] buffer | -| test.rs:176:14:176:20 | &buffer | semmle.label | &buffer | -| test.rs:176:15:176:20 | buffer | semmle.label | buffer | -| test.rs:185:9:185:16 | mut file | semmle.label | mut file | -| test.rs:185:20:185:40 | ...::open | semmle.label | ...::open | -| test.rs:185:20:185:52 | ...::open(...) [future, Ok] | semmle.label | ...::open(...) [future, Ok] | -| test.rs:185:20:185:58 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:185:20:185:59 | TryExpr | semmle.label | TryExpr | -| test.rs:189:22:189:25 | file | semmle.label | file | -| test.rs:189:32:189:42 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:189:37:189:42 | [post] buffer | semmle.label | [post] buffer | -| test.rs:190:14:190:20 | &buffer | semmle.label | &buffer | -| test.rs:190:15:190:20 | buffer | semmle.label | buffer | -| test.rs:195:22:195:25 | file | semmle.label | file | -| test.rs:195:39:195:49 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:195:44:195:49 | [post] buffer | semmle.label | [post] buffer | -| test.rs:196:14:196:20 | &buffer | semmle.label | &buffer | -| test.rs:196:15:196:20 | buffer | semmle.label | buffer | +| test.rs:49:14:49:30 | file_name.clone() | semmle.label | file_name.clone() | +| test.rs:49:14:49:49 | ... .as_encoded_bytes() | semmle.label | ... .as_encoded_bytes() | +| test.rs:50:14:50:22 | file_name | semmle.label | file_name | +| test.rs:68:13:68:18 | target | semmle.label | target | +| test.rs:68:22:68:34 | ...::read_link | semmle.label | ...::read_link | +| test.rs:68:22:68:49 | ...::read_link(...) [Ok] | semmle.label | ...::read_link(...) [Ok] | +| test.rs:68:22:68:50 | TryExpr | semmle.label | TryExpr | +| test.rs:69:14:69:19 | target | semmle.label | target | +| test.rs:77:13:77:18 | buffer | semmle.label | buffer | +| test.rs:77:31:77:45 | ...::read | semmle.label | ...::read | +| test.rs:77:31:77:57 | ...::read(...) [future, Ok] | semmle.label | ...::read(...) [future, Ok] | +| test.rs:77:31:77:63 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:77:31:77:64 | TryExpr | semmle.label | TryExpr | +| test.rs:78:14:78:19 | buffer | semmle.label | buffer | +| test.rs:82:13:82:18 | buffer | semmle.label | buffer | +| test.rs:82:31:82:45 | ...::read | semmle.label | ...::read | +| test.rs:82:31:82:57 | ...::read(...) [future, Ok] | semmle.label | ...::read(...) [future, Ok] | +| test.rs:82:31:82:63 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:82:31:82:64 | TryExpr | semmle.label | TryExpr | +| test.rs:83:14:83:19 | buffer | semmle.label | buffer | +| test.rs:87:13:87:18 | buffer | semmle.label | buffer | +| test.rs:87:22:87:46 | ...::read_to_string | semmle.label | ...::read_to_string | +| test.rs:87:22:87:58 | ...::read_to_string(...) [future, Ok] | semmle.label | ...::read_to_string(...) [future, Ok] | +| test.rs:87:22:87:64 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:87:22:87:65 | TryExpr | semmle.label | TryExpr | +| test.rs:88:14:88:19 | buffer | semmle.label | buffer | +| test.rs:93:13:93:16 | path | semmle.label | path | +| test.rs:93:20:93:31 | entry.path() | semmle.label | entry.path() | +| test.rs:93:26:93:29 | path | semmle.label | path | +| test.rs:94:13:94:21 | file_name | semmle.label | file_name | +| test.rs:94:25:94:41 | entry.file_name() | semmle.label | entry.file_name() | +| test.rs:94:31:94:39 | file_name | semmle.label | file_name | +| test.rs:95:14:95:17 | path | semmle.label | path | +| test.rs:96:14:96:22 | file_name | semmle.label | file_name | +| test.rs:100:13:100:18 | target | semmle.label | target | +| test.rs:100:22:100:41 | ...::read_link | semmle.label | ...::read_link | +| test.rs:100:22:100:56 | ...::read_link(...) [future, Ok] | semmle.label | ...::read_link(...) [future, Ok] | +| test.rs:100:22:100:62 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:100:22:100:63 | TryExpr | semmle.label | TryExpr | +| test.rs:101:14:101:19 | target | semmle.label | target | +| test.rs:110:9:110:16 | mut file | semmle.label | mut file | +| test.rs:110:20:110:38 | ...::open | semmle.label | ...::open | +| test.rs:110:20:110:50 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | +| test.rs:110:20:110:51 | TryExpr | semmle.label | TryExpr | +| test.rs:114:22:114:25 | file | semmle.label | file | +| test.rs:114:32:114:42 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:114:37:114:42 | [post] buffer | semmle.label | [post] buffer | +| test.rs:115:14:115:20 | &buffer | semmle.label | &buffer | +| test.rs:115:15:115:20 | buffer | semmle.label | buffer | +| test.rs:120:22:120:25 | file | semmle.label | file | +| test.rs:120:39:120:49 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:120:44:120:49 | [post] buffer | semmle.label | [post] buffer | +| test.rs:121:14:121:20 | &buffer | semmle.label | &buffer | +| test.rs:121:15:121:20 | buffer | semmle.label | buffer | +| test.rs:126:22:126:25 | file | semmle.label | file | +| test.rs:126:42:126:52 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:126:47:126:52 | [post] buffer | semmle.label | [post] buffer | +| test.rs:127:14:127:20 | &buffer | semmle.label | &buffer | +| test.rs:127:15:127:20 | buffer | semmle.label | buffer | +| test.rs:132:9:132:12 | file | semmle.label | file | +| test.rs:132:25:132:35 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:132:30:132:35 | [post] buffer | semmle.label | [post] buffer | +| test.rs:133:14:133:20 | &buffer | semmle.label | &buffer | +| test.rs:133:15:133:20 | buffer | semmle.label | buffer | +| test.rs:136:17:136:20 | file | semmle.label | file | +| test.rs:136:17:136:28 | file.bytes() | semmle.label | file.bytes() | +| test.rs:137:14:137:17 | byte | semmle.label | byte | +| test.rs:143:13:143:18 | mut f1 | semmle.label | mut f1 | +| test.rs:143:22:143:63 | ... .open(...) [Ok] | semmle.label | ... .open(...) [Ok] | +| test.rs:143:22:143:72 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:143:50:143:53 | open | semmle.label | open | +| test.rs:145:22:145:23 | f1 | semmle.label | f1 | +| test.rs:145:30:145:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:145:35:145:40 | [post] buffer | semmle.label | [post] buffer | +| test.rs:146:14:146:20 | &buffer | semmle.label | &buffer | +| test.rs:146:15:146:20 | buffer | semmle.label | buffer | +| test.rs:150:13:150:18 | mut f2 | semmle.label | mut f2 | +| test.rs:150:22:152:27 | ... .open(...) [Ok] | semmle.label | ... .open(...) [Ok] | +| test.rs:150:22:153:21 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:152:14:152:17 | open | semmle.label | open | +| test.rs:155:22:155:23 | f2 | semmle.label | f2 | +| test.rs:155:30:155:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:155:35:155:40 | [post] buffer | semmle.label | [post] buffer | +| test.rs:156:14:156:20 | &buffer | semmle.label | &buffer | +| test.rs:156:15:156:20 | buffer | semmle.label | buffer | +| test.rs:160:13:160:18 | mut f3 | semmle.label | mut f3 | +| test.rs:160:22:165:27 | ... .open(...) [Ok] | semmle.label | ... .open(...) [Ok] | +| test.rs:160:22:166:21 | ... .unwrap() | semmle.label | ... .unwrap() | +| test.rs:165:14:165:17 | open | semmle.label | open | +| test.rs:168:22:168:23 | f3 | semmle.label | f3 | +| test.rs:168:30:168:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:168:35:168:40 | [post] buffer | semmle.label | [post] buffer | +| test.rs:169:14:169:20 | &buffer | semmle.label | &buffer | +| test.rs:169:15:169:20 | buffer | semmle.label | buffer | +| test.rs:176:13:176:17 | file1 | semmle.label | file1 | +| test.rs:176:21:176:39 | ...::open | semmle.label | ...::open | +| test.rs:176:21:176:51 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | +| test.rs:176:21:176:52 | TryExpr | semmle.label | TryExpr | +| test.rs:177:13:177:17 | file2 | semmle.label | file2 | +| test.rs:177:21:177:39 | ...::open | semmle.label | ...::open | +| test.rs:177:21:177:59 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | +| test.rs:177:21:177:60 | TryExpr | semmle.label | TryExpr | +| test.rs:178:13:178:22 | mut reader | semmle.label | mut reader | +| test.rs:178:26:178:30 | file1 | semmle.label | file1 | +| test.rs:178:26:178:43 | file1.chain(...) | semmle.label | file1.chain(...) | +| test.rs:178:38:178:42 | file2 | semmle.label | file2 | +| test.rs:179:9:179:14 | reader | semmle.label | reader | +| test.rs:179:31:179:41 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:179:36:179:41 | [post] buffer | semmle.label | [post] buffer | +| test.rs:180:14:180:20 | &buffer | semmle.label | &buffer | +| test.rs:180:15:180:20 | buffer | semmle.label | buffer | +| test.rs:185:13:185:17 | file1 | semmle.label | file1 | +| test.rs:185:21:185:39 | ...::open | semmle.label | ...::open | +| test.rs:185:21:185:51 | ...::open(...) [Ok] | semmle.label | ...::open(...) [Ok] | +| test.rs:185:21:185:52 | TryExpr | semmle.label | TryExpr | +| test.rs:186:13:186:22 | mut reader | semmle.label | mut reader | +| test.rs:186:26:186:30 | file1 | semmle.label | file1 | +| test.rs:186:26:186:40 | file1.take(...) | semmle.label | file1.take(...) | +| test.rs:187:9:187:14 | reader | semmle.label | reader | +| test.rs:187:31:187:41 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:187:36:187:41 | [post] buffer | semmle.label | [post] buffer | +| test.rs:188:14:188:20 | &buffer | semmle.label | &buffer | +| test.rs:188:15:188:20 | buffer | semmle.label | buffer | +| test.rs:197:9:197:16 | mut file | semmle.label | mut file | +| test.rs:197:20:197:40 | ...::open | semmle.label | ...::open | +| test.rs:197:20:197:52 | ...::open(...) [future, Ok] | semmle.label | ...::open(...) [future, Ok] | +| test.rs:197:20:197:58 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:197:20:197:59 | TryExpr | semmle.label | TryExpr | | test.rs:201:22:201:25 | file | semmle.label | file | -| test.rs:201:42:201:52 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:201:47:201:52 | [post] buffer | semmle.label | [post] buffer | +| test.rs:201:32:201:42 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:201:37:201:42 | [post] buffer | semmle.label | [post] buffer | | test.rs:202:14:202:20 | &buffer | semmle.label | &buffer | | test.rs:202:15:202:20 | buffer | semmle.label | buffer | -| test.rs:207:9:207:12 | file | semmle.label | file | -| test.rs:207:25:207:35 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:207:30:207:35 | [post] buffer | semmle.label | [post] buffer | +| test.rs:207:22:207:25 | file | semmle.label | file | +| test.rs:207:39:207:49 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:207:44:207:49 | [post] buffer | semmle.label | [post] buffer | | test.rs:208:14:208:20 | &buffer | semmle.label | &buffer | | test.rs:208:15:208:20 | buffer | semmle.label | buffer | -| test.rs:212:13:212:14 | v1 | semmle.label | v1 | -| test.rs:212:18:212:21 | file | semmle.label | file | -| test.rs:212:18:212:31 | file.read_u8() [future, Ok] | semmle.label | file.read_u8() [future, Ok] | -| test.rs:212:18:212:37 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:212:18:212:38 | TryExpr | semmle.label | TryExpr | -| test.rs:213:13:213:14 | v2 | semmle.label | v2 | -| test.rs:213:18:213:21 | file | semmle.label | file | -| test.rs:213:18:213:32 | file.read_i16() [future, Ok] | semmle.label | file.read_i16() [future, Ok] | -| test.rs:213:18:213:38 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:213:18:213:39 | TryExpr | semmle.label | TryExpr | -| test.rs:214:13:214:14 | v3 | semmle.label | v3 | -| test.rs:214:18:214:21 | file | semmle.label | file | -| test.rs:214:18:214:32 | file.read_f32() [future, Ok] | semmle.label | file.read_f32() [future, Ok] | -| test.rs:214:18:214:38 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:214:18:214:39 | TryExpr | semmle.label | TryExpr | -| test.rs:215:13:215:14 | v4 | semmle.label | v4 | -| test.rs:215:18:215:21 | file | semmle.label | file | -| test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | semmle.label | file.read_i64_le() [future, Ok] | -| test.rs:215:18:215:41 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:215:18:215:42 | TryExpr | semmle.label | TryExpr | -| test.rs:216:14:216:15 | v1 | semmle.label | v1 | -| test.rs:217:14:217:15 | v2 | semmle.label | v2 | -| test.rs:218:14:218:15 | v3 | semmle.label | v3 | -| test.rs:219:14:219:15 | v4 | semmle.label | v4 | -| test.rs:224:9:224:12 | file | semmle.label | file | -| test.rs:224:23:224:33 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:224:28:224:33 | [post] buffer | semmle.label | [post] buffer | -| test.rs:225:14:225:20 | &buffer | semmle.label | &buffer | -| test.rs:225:15:225:20 | buffer | semmle.label | buffer | -| test.rs:231:13:231:18 | mut f1 | semmle.label | mut f1 | -| test.rs:231:22:231:65 | ... .open(...) [future, Ok] | semmle.label | ... .open(...) [future, Ok] | -| test.rs:231:22:231:71 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:231:22:231:72 | TryExpr | semmle.label | TryExpr | -| test.rs:231:52:231:55 | open | semmle.label | open | -| test.rs:233:22:233:23 | f1 | semmle.label | f1 | -| test.rs:233:30:233:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:233:35:233:40 | [post] buffer | semmle.label | [post] buffer | -| test.rs:234:14:234:20 | &buffer | semmle.label | &buffer | -| test.rs:234:15:234:20 | buffer | semmle.label | buffer | -| test.rs:262:9:262:16 | mut file | semmle.label | mut file | -| test.rs:262:20:262:44 | ...::open | semmle.label | ...::open | -| test.rs:262:20:262:56 | ...::open(...) [future, Ok] | semmle.label | ...::open(...) [future, Ok] | -| test.rs:262:20:262:62 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:262:20:262:63 | TryExpr | semmle.label | TryExpr | -| test.rs:266:22:266:25 | file | semmle.label | file | -| test.rs:266:32:266:42 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:266:37:266:42 | [post] buffer | semmle.label | [post] buffer | -| test.rs:267:14:267:20 | &buffer | semmle.label | &buffer | -| test.rs:267:15:267:20 | buffer | semmle.label | buffer | -| test.rs:273:13:273:18 | mut f1 | semmle.label | mut f1 | -| test.rs:273:22:273:69 | ... .open(...) [future, Ok] | semmle.label | ... .open(...) [future, Ok] | -| test.rs:273:22:273:75 | await ... [Ok] | semmle.label | await ... [Ok] | -| test.rs:273:22:273:76 | TryExpr | semmle.label | TryExpr | -| test.rs:273:56:273:59 | open | semmle.label | open | -| test.rs:275:22:275:23 | f1 | semmle.label | f1 | -| test.rs:275:30:275:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | -| test.rs:275:35:275:40 | [post] buffer | semmle.label | [post] buffer | -| test.rs:276:14:276:20 | &buffer | semmle.label | &buffer | -| test.rs:276:15:276:20 | buffer | semmle.label | buffer | +| test.rs:213:22:213:25 | file | semmle.label | file | +| test.rs:213:42:213:52 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:213:47:213:52 | [post] buffer | semmle.label | [post] buffer | +| test.rs:214:14:214:20 | &buffer | semmle.label | &buffer | +| test.rs:214:15:214:20 | buffer | semmle.label | buffer | +| test.rs:219:9:219:12 | file | semmle.label | file | +| test.rs:219:25:219:35 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:219:30:219:35 | [post] buffer | semmle.label | [post] buffer | +| test.rs:220:14:220:20 | &buffer | semmle.label | &buffer | +| test.rs:220:15:220:20 | buffer | semmle.label | buffer | +| test.rs:224:13:224:14 | v1 | semmle.label | v1 | +| test.rs:224:18:224:21 | file | semmle.label | file | +| test.rs:224:18:224:31 | file.read_u8() [future, Ok] | semmle.label | file.read_u8() [future, Ok] | +| test.rs:224:18:224:37 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:224:18:224:38 | TryExpr | semmle.label | TryExpr | +| test.rs:225:13:225:14 | v2 | semmle.label | v2 | +| test.rs:225:18:225:21 | file | semmle.label | file | +| test.rs:225:18:225:32 | file.read_i16() [future, Ok] | semmle.label | file.read_i16() [future, Ok] | +| test.rs:225:18:225:38 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:225:18:225:39 | TryExpr | semmle.label | TryExpr | +| test.rs:226:13:226:14 | v3 | semmle.label | v3 | +| test.rs:226:18:226:21 | file | semmle.label | file | +| test.rs:226:18:226:32 | file.read_f32() [future, Ok] | semmle.label | file.read_f32() [future, Ok] | +| test.rs:226:18:226:38 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:226:18:226:39 | TryExpr | semmle.label | TryExpr | +| test.rs:227:13:227:14 | v4 | semmle.label | v4 | +| test.rs:227:18:227:21 | file | semmle.label | file | +| test.rs:227:18:227:35 | file.read_i64_le() [future, Ok] | semmle.label | file.read_i64_le() [future, Ok] | +| test.rs:227:18:227:41 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:227:18:227:42 | TryExpr | semmle.label | TryExpr | +| test.rs:228:14:228:15 | v1 | semmle.label | v1 | +| test.rs:229:14:229:15 | v2 | semmle.label | v2 | +| test.rs:230:14:230:15 | v3 | semmle.label | v3 | +| test.rs:231:14:231:15 | v4 | semmle.label | v4 | +| test.rs:236:9:236:12 | file | semmle.label | file | +| test.rs:236:23:236:33 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:236:28:236:33 | [post] buffer | semmle.label | [post] buffer | +| test.rs:237:14:237:20 | &buffer | semmle.label | &buffer | +| test.rs:237:15:237:20 | buffer | semmle.label | buffer | +| test.rs:243:13:243:18 | mut f1 | semmle.label | mut f1 | +| test.rs:243:22:243:65 | ... .open(...) [future, Ok] | semmle.label | ... .open(...) [future, Ok] | +| test.rs:243:22:243:71 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:243:22:243:72 | TryExpr | semmle.label | TryExpr | +| test.rs:243:52:243:55 | open | semmle.label | open | +| test.rs:245:22:245:23 | f1 | semmle.label | f1 | +| test.rs:245:30:245:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:245:35:245:40 | [post] buffer | semmle.label | [post] buffer | +| test.rs:246:14:246:20 | &buffer | semmle.label | &buffer | +| test.rs:246:15:246:20 | buffer | semmle.label | buffer | +| test.rs:274:9:274:16 | mut file | semmle.label | mut file | +| test.rs:274:20:274:44 | ...::open | semmle.label | ...::open | +| test.rs:274:20:274:56 | ...::open(...) [future, Ok] | semmle.label | ...::open(...) [future, Ok] | +| test.rs:274:20:274:62 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:274:20:274:63 | TryExpr | semmle.label | TryExpr | +| test.rs:278:22:278:25 | file | semmle.label | file | +| test.rs:278:32:278:42 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:278:37:278:42 | [post] buffer | semmle.label | [post] buffer | +| test.rs:279:14:279:20 | &buffer | semmle.label | &buffer | +| test.rs:279:15:279:20 | buffer | semmle.label | buffer | +| test.rs:285:13:285:18 | mut f1 | semmle.label | mut f1 | +| test.rs:285:22:285:69 | ... .open(...) [future, Ok] | semmle.label | ... .open(...) [future, Ok] | +| test.rs:285:22:285:75 | await ... [Ok] | semmle.label | await ... [Ok] | +| test.rs:285:22:285:76 | TryExpr | semmle.label | TryExpr | +| test.rs:285:56:285:59 | open | semmle.label | open | +| test.rs:287:22:287:23 | f1 | semmle.label | f1 | +| test.rs:287:30:287:40 | [post] &mut buffer [&ref] | semmle.label | [post] &mut buffer [&ref] | +| test.rs:287:35:287:40 | [post] buffer | semmle.label | [post] buffer | +| test.rs:288:14:288:20 | &buffer | semmle.label | &buffer | +| test.rs:288:15:288:20 | buffer | semmle.label | buffer | subpaths testFailures #select | test.rs:13:14:13:19 | buffer | test.rs:12:31:12:43 | ...::read | test.rs:13:14:13:19 | buffer | $@ | test.rs:12:31:12:43 | ...::read | ...::read | | test.rs:18:14:18:19 | buffer | test.rs:17:31:17:38 | ...::read | test.rs:18:14:18:19 | buffer | $@ | test.rs:17:31:17:38 | ...::read | ...::read | | test.rs:23:14:23:19 | buffer | test.rs:22:22:22:39 | ...::read_to_string | test.rs:23:14:23:19 | buffer | $@ | test.rs:22:22:22:39 | ...::read_to_string | ...::read_to_string | -| test.rs:30:14:30:25 | path.clone() | test.rs:29:22:29:25 | path | test.rs:30:14:30:25 | path.clone() | $@ | test.rs:29:22:29:25 | path | path | -| test.rs:31:14:31:35 | ... .as_path() | test.rs:29:22:29:25 | path | test.rs:31:14:31:35 | ... .as_path() | $@ | test.rs:29:22:29:25 | path | path | -| test.rs:40:14:40:41 | ... .unwrap() | test.rs:29:22:29:25 | path | test.rs:40:14:40:41 | ... .unwrap() | $@ | test.rs:29:22:29:25 | path | path | -| test.rs:41:14:41:17 | path | test.rs:29:22:29:25 | path | test.rs:41:14:41:17 | path | $@ | test.rs:29:22:29:25 | path | path | -| test.rs:44:14:44:30 | file_name.clone() | test.rs:43:27:43:35 | file_name | test.rs:44:14:44:30 | file_name.clone() | $@ | test.rs:43:27:43:35 | file_name | file_name | -| test.rs:45:14:45:53 | ... .unwrap() | test.rs:43:27:43:35 | file_name | test.rs:45:14:45:53 | ... .unwrap() | $@ | test.rs:43:27:43:35 | file_name | file_name | -| test.rs:49:14:49:22 | file_name | test.rs:43:27:43:35 | file_name | test.rs:49:14:49:22 | file_name | $@ | test.rs:43:27:43:35 | file_name | file_name | -| test.rs:66:14:66:19 | target | test.rs:65:22:65:34 | ...::read_link | test.rs:66:14:66:19 | target | $@ | test.rs:65:22:65:34 | ...::read_link | ...::read_link | -| test.rs:75:14:75:19 | buffer | test.rs:74:31:74:45 | ...::read | test.rs:75:14:75:19 | buffer | $@ | test.rs:74:31:74:45 | ...::read | ...::read | -| test.rs:80:14:80:19 | buffer | test.rs:79:31:79:45 | ...::read | test.rs:80:14:80:19 | buffer | $@ | test.rs:79:31:79:45 | ...::read | ...::read | -| test.rs:85:14:85:19 | buffer | test.rs:84:22:84:46 | ...::read_to_string | test.rs:85:14:85:19 | buffer | $@ | test.rs:84:22:84:46 | ...::read_to_string | ...::read_to_string | -| test.rs:92:14:92:17 | path | test.rs:90:26:90:29 | path | test.rs:92:14:92:17 | path | $@ | test.rs:90:26:90:29 | path | path | -| test.rs:93:14:93:22 | file_name | test.rs:91:31:91:39 | file_name | test.rs:93:14:93:22 | file_name | $@ | test.rs:91:31:91:39 | file_name | file_name | -| test.rs:98:14:98:19 | target | test.rs:97:22:97:41 | ...::read_link | test.rs:98:14:98:19 | target | $@ | test.rs:97:22:97:41 | ...::read_link | ...::read_link | -| test.rs:112:14:112:20 | &buffer | test.rs:107:20:107:38 | ...::open | test.rs:112:14:112:20 | &buffer | $@ | test.rs:107:20:107:38 | ...::open | ...::open | -| test.rs:118:14:118:20 | &buffer | test.rs:107:20:107:38 | ...::open | test.rs:118:14:118:20 | &buffer | $@ | test.rs:107:20:107:38 | ...::open | ...::open | -| test.rs:124:14:124:20 | &buffer | test.rs:107:20:107:38 | ...::open | test.rs:124:14:124:20 | &buffer | $@ | test.rs:107:20:107:38 | ...::open | ...::open | -| test.rs:130:14:130:20 | &buffer | test.rs:107:20:107:38 | ...::open | test.rs:130:14:130:20 | &buffer | $@ | test.rs:107:20:107:38 | ...::open | ...::open | -| test.rs:134:14:134:17 | byte | test.rs:107:20:107:38 | ...::open | test.rs:134:14:134:17 | byte | $@ | test.rs:107:20:107:38 | ...::open | ...::open | -| test.rs:143:14:143:20 | &buffer | test.rs:140:50:140:53 | open | test.rs:143:14:143:20 | &buffer | $@ | test.rs:140:50:140:53 | open | open | -| test.rs:150:14:150:20 | &buffer | test.rs:147:67:147:70 | open | test.rs:150:14:150:20 | &buffer | $@ | test.rs:147:67:147:70 | open | open | -| test.rs:157:14:157:20 | &buffer | test.rs:154:101:154:104 | open | test.rs:157:14:157:20 | &buffer | $@ | test.rs:154:101:154:104 | open | open | -| test.rs:168:14:168:20 | &buffer | test.rs:164:21:164:39 | ...::open | test.rs:168:14:168:20 | &buffer | $@ | test.rs:164:21:164:39 | ...::open | ...::open | -| test.rs:168:14:168:20 | &buffer | test.rs:165:21:165:39 | ...::open | test.rs:168:14:168:20 | &buffer | $@ | test.rs:165:21:165:39 | ...::open | ...::open | -| test.rs:176:14:176:20 | &buffer | test.rs:173:21:173:39 | ...::open | test.rs:176:14:176:20 | &buffer | $@ | test.rs:173:21:173:39 | ...::open | ...::open | -| test.rs:190:14:190:20 | &buffer | test.rs:185:20:185:40 | ...::open | test.rs:190:14:190:20 | &buffer | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:196:14:196:20 | &buffer | test.rs:185:20:185:40 | ...::open | test.rs:196:14:196:20 | &buffer | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:202:14:202:20 | &buffer | test.rs:185:20:185:40 | ...::open | test.rs:202:14:202:20 | &buffer | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:208:14:208:20 | &buffer | test.rs:185:20:185:40 | ...::open | test.rs:208:14:208:20 | &buffer | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:216:14:216:15 | v1 | test.rs:185:20:185:40 | ...::open | test.rs:216:14:216:15 | v1 | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:217:14:217:15 | v2 | test.rs:185:20:185:40 | ...::open | test.rs:217:14:217:15 | v2 | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:218:14:218:15 | v3 | test.rs:185:20:185:40 | ...::open | test.rs:218:14:218:15 | v3 | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:219:14:219:15 | v4 | test.rs:185:20:185:40 | ...::open | test.rs:219:14:219:15 | v4 | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:225:14:225:20 | &buffer | test.rs:185:20:185:40 | ...::open | test.rs:225:14:225:20 | &buffer | $@ | test.rs:185:20:185:40 | ...::open | ...::open | -| test.rs:234:14:234:20 | &buffer | test.rs:231:52:231:55 | open | test.rs:234:14:234:20 | &buffer | $@ | test.rs:231:52:231:55 | open | open | -| test.rs:267:14:267:20 | &buffer | test.rs:262:20:262:44 | ...::open | test.rs:267:14:267:20 | &buffer | $@ | test.rs:262:20:262:44 | ...::open | ...::open | -| test.rs:276:14:276:20 | &buffer | test.rs:273:56:273:59 | open | test.rs:276:14:276:20 | &buffer | $@ | test.rs:273:56:273:59 | open | open | +| test.rs:31:14:31:25 | path.clone() | test.rs:30:22:30:25 | path | test.rs:31:14:31:25 | path.clone() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:32:14:32:35 | ... .as_path() | test.rs:30:22:30:25 | path | test.rs:32:14:32:35 | ... .as_path() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:33:14:33:42 | ... .into_os_string() | test.rs:30:22:30:25 | path | test.rs:33:14:33:42 | ... .into_os_string() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:34:14:34:69 | ...::from(...) | test.rs:30:22:30:25 | path | test.rs:34:14:34:69 | ...::from(...) | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:35:14:35:37 | ... .as_os_str() | test.rs:30:22:30:25 | path | test.rs:35:14:35:37 | ... .as_os_str() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:36:14:36:41 | ... .as_mut_os_str() | test.rs:30:22:30:25 | path | test.rs:36:14:36:41 | ... .as_mut_os_str() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:37:14:37:26 | path.to_str() | test.rs:30:22:30:25 | path | test.rs:37:14:37:26 | path.to_str() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:38:14:38:31 | path.to_path_buf() | test.rs:30:22:30:25 | path | test.rs:38:14:38:31 | path.to_path_buf() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:39:14:39:38 | ... .unwrap() | test.rs:30:22:30:25 | path | test.rs:39:14:39:38 | ... .unwrap() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:40:14:40:38 | ... .unwrap() | test.rs:30:22:30:25 | path | test.rs:40:14:40:38 | ... .unwrap() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:41:14:41:41 | ... .unwrap() | test.rs:30:22:30:25 | path | test.rs:41:14:41:41 | ... .unwrap() | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:42:14:42:17 | path | test.rs:30:22:30:25 | path | test.rs:42:14:42:17 | path | $@ | test.rs:30:22:30:25 | path | path | +| test.rs:45:14:45:30 | file_name.clone() | test.rs:44:27:44:35 | file_name | test.rs:45:14:45:30 | file_name.clone() | $@ | test.rs:44:27:44:35 | file_name | file_name | +| test.rs:46:14:46:53 | ... .unwrap() | test.rs:44:27:44:35 | file_name | test.rs:46:14:46:53 | ... .unwrap() | $@ | test.rs:44:27:44:35 | file_name | file_name | +| test.rs:47:14:47:40 | ... .unwrap() | test.rs:44:27:44:35 | file_name | test.rs:47:14:47:40 | ... .unwrap() | $@ | test.rs:44:27:44:35 | file_name | file_name | +| test.rs:48:14:48:49 | ... .to_mut() | test.rs:44:27:44:35 | file_name | test.rs:48:14:48:49 | ... .to_mut() | $@ | test.rs:44:27:44:35 | file_name | file_name | +| test.rs:49:14:49:49 | ... .as_encoded_bytes() | test.rs:44:27:44:35 | file_name | test.rs:49:14:49:49 | ... .as_encoded_bytes() | $@ | test.rs:44:27:44:35 | file_name | file_name | +| test.rs:50:14:50:22 | file_name | test.rs:44:27:44:35 | file_name | test.rs:50:14:50:22 | file_name | $@ | test.rs:44:27:44:35 | file_name | file_name | +| test.rs:69:14:69:19 | target | test.rs:68:22:68:34 | ...::read_link | test.rs:69:14:69:19 | target | $@ | test.rs:68:22:68:34 | ...::read_link | ...::read_link | +| test.rs:78:14:78:19 | buffer | test.rs:77:31:77:45 | ...::read | test.rs:78:14:78:19 | buffer | $@ | test.rs:77:31:77:45 | ...::read | ...::read | +| test.rs:83:14:83:19 | buffer | test.rs:82:31:82:45 | ...::read | test.rs:83:14:83:19 | buffer | $@ | test.rs:82:31:82:45 | ...::read | ...::read | +| test.rs:88:14:88:19 | buffer | test.rs:87:22:87:46 | ...::read_to_string | test.rs:88:14:88:19 | buffer | $@ | test.rs:87:22:87:46 | ...::read_to_string | ...::read_to_string | +| test.rs:95:14:95:17 | path | test.rs:93:26:93:29 | path | test.rs:95:14:95:17 | path | $@ | test.rs:93:26:93:29 | path | path | +| test.rs:96:14:96:22 | file_name | test.rs:94:31:94:39 | file_name | test.rs:96:14:96:22 | file_name | $@ | test.rs:94:31:94:39 | file_name | file_name | +| test.rs:101:14:101:19 | target | test.rs:100:22:100:41 | ...::read_link | test.rs:101:14:101:19 | target | $@ | test.rs:100:22:100:41 | ...::read_link | ...::read_link | +| test.rs:115:14:115:20 | &buffer | test.rs:110:20:110:38 | ...::open | test.rs:115:14:115:20 | &buffer | $@ | test.rs:110:20:110:38 | ...::open | ...::open | +| test.rs:121:14:121:20 | &buffer | test.rs:110:20:110:38 | ...::open | test.rs:121:14:121:20 | &buffer | $@ | test.rs:110:20:110:38 | ...::open | ...::open | +| test.rs:127:14:127:20 | &buffer | test.rs:110:20:110:38 | ...::open | test.rs:127:14:127:20 | &buffer | $@ | test.rs:110:20:110:38 | ...::open | ...::open | +| test.rs:133:14:133:20 | &buffer | test.rs:110:20:110:38 | ...::open | test.rs:133:14:133:20 | &buffer | $@ | test.rs:110:20:110:38 | ...::open | ...::open | +| test.rs:137:14:137:17 | byte | test.rs:110:20:110:38 | ...::open | test.rs:137:14:137:17 | byte | $@ | test.rs:110:20:110:38 | ...::open | ...::open | +| test.rs:146:14:146:20 | &buffer | test.rs:143:50:143:53 | open | test.rs:146:14:146:20 | &buffer | $@ | test.rs:143:50:143:53 | open | open | +| test.rs:156:14:156:20 | &buffer | test.rs:152:14:152:17 | open | test.rs:156:14:156:20 | &buffer | $@ | test.rs:152:14:152:17 | open | open | +| test.rs:169:14:169:20 | &buffer | test.rs:165:14:165:17 | open | test.rs:169:14:169:20 | &buffer | $@ | test.rs:165:14:165:17 | open | open | +| test.rs:180:14:180:20 | &buffer | test.rs:176:21:176:39 | ...::open | test.rs:180:14:180:20 | &buffer | $@ | test.rs:176:21:176:39 | ...::open | ...::open | +| test.rs:180:14:180:20 | &buffer | test.rs:177:21:177:39 | ...::open | test.rs:180:14:180:20 | &buffer | $@ | test.rs:177:21:177:39 | ...::open | ...::open | +| test.rs:188:14:188:20 | &buffer | test.rs:185:21:185:39 | ...::open | test.rs:188:14:188:20 | &buffer | $@ | test.rs:185:21:185:39 | ...::open | ...::open | +| test.rs:202:14:202:20 | &buffer | test.rs:197:20:197:40 | ...::open | test.rs:202:14:202:20 | &buffer | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:208:14:208:20 | &buffer | test.rs:197:20:197:40 | ...::open | test.rs:208:14:208:20 | &buffer | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:214:14:214:20 | &buffer | test.rs:197:20:197:40 | ...::open | test.rs:214:14:214:20 | &buffer | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:220:14:220:20 | &buffer | test.rs:197:20:197:40 | ...::open | test.rs:220:14:220:20 | &buffer | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:228:14:228:15 | v1 | test.rs:197:20:197:40 | ...::open | test.rs:228:14:228:15 | v1 | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:229:14:229:15 | v2 | test.rs:197:20:197:40 | ...::open | test.rs:229:14:229:15 | v2 | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:230:14:230:15 | v3 | test.rs:197:20:197:40 | ...::open | test.rs:230:14:230:15 | v3 | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:231:14:231:15 | v4 | test.rs:197:20:197:40 | ...::open | test.rs:231:14:231:15 | v4 | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:237:14:237:20 | &buffer | test.rs:197:20:197:40 | ...::open | test.rs:237:14:237:20 | &buffer | $@ | test.rs:197:20:197:40 | ...::open | ...::open | +| test.rs:246:14:246:20 | &buffer | test.rs:243:52:243:55 | open | test.rs:246:14:246:20 | &buffer | $@ | test.rs:243:52:243:55 | open | open | +| test.rs:279:14:279:20 | &buffer | test.rs:274:20:274:44 | ...::open | test.rs:279:14:279:20 | &buffer | $@ | test.rs:274:20:274:44 | ...::open | ...::open | +| test.rs:288:14:288:20 | &buffer | test.rs:285:56:285:59 | open | test.rs:288:14:288:20 | &buffer | $@ | test.rs:285:56:285:59 | open | open | diff --git a/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected index dd1b94de717..dc17269abe8 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected @@ -1,33 +1,33 @@ | test.rs:12:31:12:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:17:31:17:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:22:22:22:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:26:18:26:29 | ...::read_dir | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:29:22:29:25 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:43:27:43:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:51:52:51:59 | read_dir | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:54:22:54:25 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:55:27:55:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:57:56:57:63 | read_dir | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:60:22:60:25 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:61:27:61:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:65:22:65:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:74:31:74:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:79:31:79:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:84:22:84:46 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:90:26:90:29 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:91:31:91:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:97:22:97:41 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:107:20:107:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:140:50:140:53 | open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:147:67:147:70 | open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:154:101:154:104 | open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:164:21:164:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:165:21:165:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:173:21:173:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:185:20:185:40 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:231:52:231:55 | open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:241:21:241:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:242:21:242:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:250:21:250:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:262:20:262:44 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:273:56:273:59 | open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:27:26:27:37 | ...::read_dir | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:30:22:30:25 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:44:27:44:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:53:60:53:67 | read_dir | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:56:22:56:25 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:57:27:57:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:60:64:60:71 | read_dir | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:63:22:63:25 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:64:27:64:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:68:22:68:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:77:31:77:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:82:31:82:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:87:22:87:46 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:93:26:93:29 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:94:31:94:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:100:22:100:41 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:110:20:110:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:143:50:143:53 | open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:152:14:152:17 | open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:165:14:165:17 | open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:176:21:176:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:177:21:177:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:185:21:185:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:197:20:197:40 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:243:52:243:55 | open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:253:21:253:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:254:21:254:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:262:21:262:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:274:20:274:44 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:285:56:285:59 | open | Flow source 'FileSource' of type file (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/file/test.rs b/rust/ql/test/library-tests/dataflow/sources/file/test.rs index 18090a54568..5752c07f4d9 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/file/test.rs @@ -1,11 +1,11 @@ -fn sink(_: T) { } +fn sink(_: T) {} // --- tests --- +use async_std::io::ReadExt; use std::fs; use std::io::Read; use tokio::io::AsyncReadExt; -use async_std::io::ReadExt; fn test_fs() -> Result<(), Box> { { @@ -23,43 +23,46 @@ fn test_fs() -> Result<(), Box> { sink(buffer); // $ hasTaintFlow="file.txt" } - for entry in fs::read_dir("directory")? { // $ Alert[rust/summary/taint-sources] + #[rustfmt::skip] + let _ = for entry in fs::read_dir("directory")? { // $ Alert[rust/summary/taint-sources] let e = entry?; let path = e.path(); // $ Alert[rust/summary/taint-sources] sink(path.clone()); // $ hasTaintFlow sink(path.clone().as_path()); // $ hasTaintFlow - sink(path.clone().into_os_string()); // $ MISSING: hasTaintFlow - sink(std::path::PathBuf::from(path.clone().into_boxed_path())); // $ MISSING: hasTaintFlow - sink(path.clone().as_os_str()); // $ MISSING: hasTaintFlow - sink(path.clone().as_mut_os_str()); // $ MISSING: hasTaintFlow - sink(path.to_str()); // $ MISSING: hasTaintFlow - sink(path.to_path_buf()); // $ MISSING: hasTaintFlow - sink(path.file_name().unwrap()); // $ MISSING: hasTaintFlow - sink(path.extension().unwrap()); // $ MISSING: hasTaintFlow + sink(path.clone().into_os_string()); // $ hasTaintFlow + sink(std::path::PathBuf::from(path.clone().into_boxed_path())); // $ hasTaintFlow + sink(path.clone().as_os_str()); // $ hasTaintFlow + sink(path.clone().as_mut_os_str()); // $ hasTaintFlow + sink(path.to_str()); // $ hasTaintFlow + sink(path.to_path_buf()); // $ hasTaintFlow + sink(path.file_name().unwrap()); // $ hasTaintFlow + sink(path.extension().unwrap()); // $ hasTaintFlow sink(path.canonicalize().unwrap()); // $ hasTaintFlow sink(path); // $ hasTaintFlow let file_name = e.file_name(); // $ Alert[rust/summary/taint-sources] sink(file_name.clone()); // $ hasTaintFlow sink(file_name.clone().into_string().unwrap()); // $ hasTaintFlow - sink(file_name.to_str().unwrap()); // $ MISSING: hasTaintFlow - sink(file_name.to_string_lossy().to_mut()); // $ MISSING: hasTaintFlow - sink(file_name.clone().as_encoded_bytes()); // $ MISSING: hasTaintFlow + sink(file_name.to_str().unwrap()); // $ hasTaintFlow + sink(file_name.to_string_lossy().to_mut()); // $ hasTaintFlow + sink(file_name.clone().as_encoded_bytes()); // $ hasTaintFlow sink(file_name); // $ hasTaintFlow - } - for entry in std::path::Path::new("directory").read_dir()? { // $ Alert[rust/summary/taint-sources] + }; + #[rustfmt::skip] + let _ = for entry in std::path::Path::new("directory").read_dir()? { // $ Alert[rust/summary/taint-sources] let e = entry?; let path = e.path(); // $ Alert[rust/summary/taint-sources] let file_name = e.file_name(); // $ Alert[rust/summary/taint-sources] - } - for entry in std::path::PathBuf::from("directory").read_dir()? { // $ Alert[rust/summary/taint-sources] + }; + #[rustfmt::skip] + let _ = for entry in std::path::PathBuf::from("directory").read_dir()? { // $ Alert[rust/summary/taint-sources] let e = entry?; let path = e.path(); // $ Alert[rust/summary/taint-sources] let file_name = e.file_name(); // $ Alert[rust/summary/taint-sources] - } + }; { let target = fs::read_link("symlink.txt")?; // $ Alert[rust/summary/taint-sources] @@ -144,14 +147,23 @@ fn test_io_file() -> std::io::Result<()> { } { - let mut f2 = std::fs::OpenOptions::new().create_new(true).open("f2.txt").unwrap(); // $ Alert[rust/summary/taint-sources] + let mut f2 = std::fs::OpenOptions::new() + .create_new(true) + .open("f2.txt") // $ Alert[rust/summary/taint-sources] + .unwrap(); let mut buffer = [0u8; 1024]; let _bytes = f2.read(&mut buffer)?; sink(&buffer); // $ hasTaintFlow="f2.txt" } { - let mut f3 = std::fs::OpenOptions::new().read(true).write(true).truncate(true).create(true).open("f3.txt").unwrap(); // $ Alert[rust/summary/taint-sources] + let mut f3 = std::fs::OpenOptions::new() + .read(true) + .write(true) + .truncate(true) + .create(true) + .open("f3.txt") // $ Alert[rust/summary/taint-sources] + .unwrap(); let mut buffer = [0u8; 1024]; let _bytes = f3.read(&mut buffer)?; sink(&buffer); // $ hasTaintFlow="f3.txt" From 609eb17e3027d39cad523416a34016c198a8b0cc Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 8 Jan 2026 15:00:42 +0100 Subject: [PATCH 097/263] Rust: Add more models --- rust/ql/lib/codeql/rust/frameworks/http.model.yml | 7 +++++++ rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml | 1 + rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml | 2 ++ rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml | 1 + 4 files changed, 11 insertions(+) diff --git a/rust/ql/lib/codeql/rust/frameworks/http.model.yml b/rust/ql/lib/codeql/rust/frameworks/http.model.yml index 6a497f34647..5c527cc1d40 100644 --- a/rust/ql/lib/codeql/rust/frameworks/http.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/http.model.yml @@ -1,4 +1,11 @@ extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::body", "Argument[self].Reference.Field[http::response::Response::body]", "ReturnValue.Reference", "value", "manual"] + - ["::body_mut", "Argument[self].Reference.Field[http::response::Response::body]", "ReturnValue.Reference", "value", "manual"] + - ["::into_body", "Argument[self].Field[http::response::Response::body]", "ReturnValue", "value", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml index cfaef568f1f..84579743563 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml @@ -55,3 +55,4 @@ extensions: - ["::add", "Argument[0].Reference", "ReturnValue", "taint", "manual"] # Vec - ["alloc::vec::from_elem", "Argument[0]", "ReturnValue.Element", "value", "manual"] + - ["::deref", "Argument[self].Reference.Element", "ReturnValue.Reference.Element", "value", "manual"] \ No newline at end of file diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 0844dae5612..3ff02d732b0 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -123,6 +123,8 @@ extensions: - ["<_ as core::cmp::Ord>::min", "Argument[self,0]", "ReturnValue", "value", "manual"] - ["<_ as core::cmp::Ord>::max", "Argument[self,0]", "ReturnValue", "value", "manual"] - ["<_ as core::cmp::Ord>::clamp", "Argument[self,0,1]", "ReturnValue", "value", "manual"] + # Slice + - ["<[]>::get", "Argument[self].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml index 064c2cd19cf..afb6757ef66 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml @@ -24,4 +24,5 @@ extensions: - ["<_ as std::io::Read>::chain", "Argument[0]", "ReturnValue", "taint", "manual"] - ["<_ as std::io::Read>::take", "Argument[self]", "ReturnValue", "taint", "manual"] - ["::lock", "Argument[self].Reference", "ReturnValue", "taint", "manual"] + - ["::read_line", "Argument[self].Reference", "Argument[0].Reference", "taint", "manual"] - ["::next", "Argument[self].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "value", "manual"] From f3d78a4e0bcc60bcd11199bc6357d83379851872 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 8 Jan 2026 21:09:55 +0100 Subject: [PATCH 098/263] Rust: Update expected test output --- .../dataflow/sources/net/InlineFlow.expected | 68 +++++++---- .../dataflow/sources/net/test.rs | 6 +- .../security/CWE-117/LogInjection.expected | 114 ++++++++++++++++-- .../test/query-tests/security/CWE-117/main.rs | 16 +-- .../CWE-295/DisabledCertificateCheck.expected | 46 +++++-- .../test/query-tests/security/CWE-295/main.rs | 4 +- 6 files changed, 198 insertions(+), 56 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected index d9f811bd341..31a41522450 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected @@ -28,46 +28,49 @@ models | 27 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | | 28 | Summary: ::connect; Argument[1]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | | 29 | Summary: ::new; Argument[0]; ReturnValue; taint | -| 30 | Summary: ::bytes; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 31 | Summary: ::chunk; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint | -| 32 | Summary: ::text; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 33 | Summary: ::bytes; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 34 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 35 | Summary: ::text_with_charset; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 36 | Summary: ::new; Argument[0]; ReturnValue; taint | -| 37 | Summary: ::peek; Argument[self].Reference; Argument[0].Reference; taint | -| 38 | Summary: ::try_read; Argument[self].Reference; Argument[0].Reference; taint | -| 39 | Summary: ::try_read_buf; Argument[self].Reference; Argument[0].Reference; taint | +| 30 | Summary: ::body; Argument[self].Reference.Field[http::response::Response::body]; ReturnValue.Reference; value | +| 31 | Summary: ::body_mut; Argument[self].Reference.Field[http::response::Response::body]; ReturnValue.Reference; value | +| 32 | Summary: ::into_body; Argument[self].Field[http::response::Response::body]; ReturnValue; value | +| 33 | Summary: ::bytes; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 34 | Summary: ::chunk; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint | +| 35 | Summary: ::text; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 36 | Summary: ::bytes; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 37 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 38 | Summary: ::text_with_charset; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 39 | Summary: ::new; Argument[0]; ReturnValue; taint | +| 40 | Summary: ::peek; Argument[self].Reference; Argument[0].Reference; taint | +| 41 | Summary: ::try_read; Argument[self].Reference; Argument[0].Reference; taint | +| 42 | Summary: ::try_read_buf; Argument[self].Reference; Argument[0].Reference; taint | edges | test.rs:11:9:11:22 | remote_string1 | test.rs:12:10:12:23 | remote_string1 | provenance | | | test.rs:11:26:11:47 | ...::get | test.rs:11:26:11:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | | test.rs:11:26:11:62 | ...::get(...) [Ok] | test.rs:11:26:11:63 | TryExpr | provenance | | -| test.rs:11:26:11:63 | TryExpr | test.rs:11:26:11:70 | ... .text() [Ok] | provenance | MaD:34 | +| test.rs:11:26:11:63 | TryExpr | test.rs:11:26:11:70 | ... .text() [Ok] | provenance | MaD:37 | | test.rs:11:26:11:70 | ... .text() [Ok] | test.rs:11:26:11:71 | TryExpr | provenance | | | test.rs:11:26:11:71 | TryExpr | test.rs:11:9:11:22 | remote_string1 | provenance | | | test.rs:14:9:14:22 | remote_string2 | test.rs:15:10:15:23 | remote_string2 | provenance | | | test.rs:14:26:14:47 | ...::get | test.rs:14:26:14:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | | test.rs:14:26:14:62 | ...::get(...) [Ok] | test.rs:14:26:14:71 | ... .unwrap() | provenance | MaD:27 | -| test.rs:14:26:14:71 | ... .unwrap() | test.rs:14:26:14:78 | ... .text() [Ok] | provenance | MaD:34 | +| test.rs:14:26:14:71 | ... .unwrap() | test.rs:14:26:14:78 | ... .text() [Ok] | provenance | MaD:37 | | test.rs:14:26:14:78 | ... .text() [Ok] | test.rs:14:26:14:87 | ... .unwrap() | provenance | MaD:27 | | test.rs:14:26:14:87 | ... .unwrap() | test.rs:14:9:14:22 | remote_string2 | provenance | | | test.rs:17:9:17:22 | remote_string3 | test.rs:18:10:18:23 | remote_string3 | provenance | | | test.rs:17:26:17:47 | ...::get | test.rs:17:26:17:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | | test.rs:17:26:17:62 | ...::get(...) [Ok] | test.rs:17:26:17:71 | ... .unwrap() | provenance | MaD:27 | -| test.rs:17:26:17:71 | ... .unwrap() | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | provenance | MaD:35 | +| test.rs:17:26:17:71 | ... .unwrap() | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | provenance | MaD:38 | | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | test.rs:17:26:17:107 | ... .unwrap() | provenance | MaD:27 | | test.rs:17:26:17:107 | ... .unwrap() | test.rs:17:9:17:22 | remote_string3 | provenance | | | test.rs:20:9:20:22 | remote_string4 | test.rs:21:10:21:23 | remote_string4 | provenance | | | test.rs:20:26:20:47 | ...::get | test.rs:20:26:20:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | | test.rs:20:26:20:62 | ...::get(...) [Ok] | test.rs:20:26:20:71 | ... .unwrap() | provenance | MaD:27 | -| test.rs:20:26:20:71 | ... .unwrap() | test.rs:20:26:20:79 | ... .bytes() [Ok] | provenance | MaD:33 | +| test.rs:20:26:20:71 | ... .unwrap() | test.rs:20:26:20:79 | ... .bytes() [Ok] | provenance | MaD:36 | | test.rs:20:26:20:79 | ... .bytes() [Ok] | test.rs:20:26:20:88 | ... .unwrap() | provenance | MaD:27 | | test.rs:20:26:20:88 | ... .unwrap() | test.rs:20:9:20:22 | remote_string4 | provenance | | | test.rs:23:9:23:22 | remote_string5 | test.rs:24:10:24:23 | remote_string5 | provenance | | | test.rs:23:26:23:37 | ...::get | test.rs:23:26:23:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:8 | | test.rs:23:26:23:52 | ...::get(...) [future, Ok] | test.rs:23:26:23:58 | await ... [Ok] | provenance | | | test.rs:23:26:23:58 | await ... [Ok] | test.rs:23:26:23:59 | TryExpr | provenance | | -| test.rs:23:26:23:59 | TryExpr | test.rs:23:26:23:66 | ... .text() [future, Ok] | provenance | MaD:32 | +| test.rs:23:26:23:59 | TryExpr | test.rs:23:26:23:66 | ... .text() [future, Ok] | provenance | MaD:35 | | test.rs:23:26:23:66 | ... .text() [future, Ok] | test.rs:23:26:23:72 | await ... [Ok] | provenance | | | test.rs:23:26:23:72 | await ... [Ok] | test.rs:23:26:23:73 | TryExpr | provenance | | | test.rs:23:26:23:73 | TryExpr | test.rs:23:9:23:22 | remote_string5 | provenance | | @@ -75,7 +78,7 @@ edges | test.rs:26:26:26:37 | ...::get | test.rs:26:26:26:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:8 | | test.rs:26:26:26:52 | ...::get(...) [future, Ok] | test.rs:26:26:26:58 | await ... [Ok] | provenance | | | test.rs:26:26:26:58 | await ... [Ok] | test.rs:26:26:26:59 | TryExpr | provenance | | -| test.rs:26:26:26:59 | TryExpr | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | provenance | MaD:30 | +| test.rs:26:26:26:59 | TryExpr | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | provenance | MaD:33 | | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | test.rs:26:26:26:73 | await ... [Ok] | provenance | | | test.rs:26:26:26:73 | await ... [Ok] | test.rs:26:26:26:74 | TryExpr | provenance | | | test.rs:26:26:26:74 | TryExpr | test.rs:26:9:26:22 | remote_string6 | provenance | | @@ -85,13 +88,13 @@ edges | test.rs:29:24:29:50 | ...::get(...) [future, Ok] | test.rs:29:24:29:56 | await ... [Ok] | provenance | | | test.rs:29:24:29:56 | await ... [Ok] | test.rs:29:24:29:57 | TryExpr | provenance | | | test.rs:29:24:29:57 | TryExpr | test.rs:29:9:29:20 | mut request1 | provenance | | -| test.rs:30:10:30:17 | request1 | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | provenance | MaD:31 | +| test.rs:30:10:30:17 | request1 | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | provenance | MaD:34 | | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | test.rs:30:10:30:31 | await ... [Ok, Some] | provenance | | | test.rs:30:10:30:31 | await ... [Ok, Some] | test.rs:30:10:30:32 | TryExpr [Some] | provenance | | | test.rs:30:10:30:32 | TryExpr [Some] | test.rs:30:10:30:41 | ... .unwrap() | provenance | MaD:24 | | test.rs:31:15:31:25 | Some(...) [Some] | test.rs:31:20:31:24 | chunk | provenance | | | test.rs:31:20:31:24 | chunk | test.rs:32:14:32:18 | chunk | provenance | | -| test.rs:31:29:31:36 | request1 | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | provenance | MaD:31 | +| test.rs:31:29:31:36 | request1 | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | provenance | MaD:34 | | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | test.rs:31:29:31:50 | await ... [Ok, Some] | provenance | | | test.rs:31:29:31:50 | await ... [Ok, Some] | test.rs:31:29:31:51 | TryExpr [Some] | provenance | | | test.rs:31:29:31:51 | TryExpr [Some] | test.rs:31:15:31:25 | Some(...) [Some] | provenance | | @@ -103,11 +106,20 @@ edges | test.rs:60:31:60:42 | send_request | test.rs:60:24:60:51 | sender.send_request(...) [future, Ok] | provenance | Src:MaD:2 | | test.rs:61:15:61:22 | response | test.rs:61:14:61:22 | &response | provenance | | | test.rs:67:9:67:20 | mut response | test.rs:68:11:68:18 | response | provenance | | +| test.rs:67:9:67:20 | mut response | test.rs:76:18:76:25 | response | provenance | | +| test.rs:67:9:67:20 | mut response | test.rs:77:18:77:25 | response | provenance | | +| test.rs:67:9:67:20 | mut response | test.rs:79:24:79:31 | response | provenance | | | test.rs:67:24:67:51 | sender.send_request(...) [future, Ok] | test.rs:67:24:67:57 | await ... [Ok] | provenance | | | test.rs:67:24:67:57 | await ... [Ok] | test.rs:67:24:67:58 | TryExpr | provenance | | | test.rs:67:24:67:58 | TryExpr | test.rs:67:9:67:20 | mut response | provenance | | | test.rs:67:31:67:42 | send_request | test.rs:67:24:67:51 | sender.send_request(...) [future, Ok] | provenance | Src:MaD:2 | | test.rs:68:11:68:18 | response | test.rs:68:10:68:18 | &response | provenance | | +| test.rs:76:18:76:25 | response | test.rs:76:18:76:32 | response.body() | provenance | MaD:30 | +| test.rs:77:18:77:25 | response | test.rs:77:18:77:36 | response.body_mut() | provenance | MaD:31 | +| test.rs:79:17:79:20 | body | test.rs:80:19:80:22 | body | provenance | | +| test.rs:79:24:79:31 | response | test.rs:79:24:79:43 | response.into_body() | provenance | MaD:32 | +| test.rs:79:24:79:43 | response.into_body() | test.rs:79:17:79:20 | body | provenance | | +| test.rs:80:19:80:22 | body | test.rs:80:18:80:22 | &body | provenance | | | test.rs:155:13:155:22 | mut stream | test.rs:162:17:162:22 | stream | provenance | | | test.rs:155:26:155:53 | ...::connect | test.rs:155:26:155:62 | ...::connect(...) [Ok] | provenance | Src:MaD:4 | | test.rs:155:26:155:62 | ...::connect(...) [Ok] | test.rs:155:26:155:63 | TryExpr | provenance | | @@ -125,7 +137,7 @@ edges | test.rs:182:21:182:30 | mut reader | test.rs:185:27:185:32 | reader | provenance | | | test.rs:182:34:182:64 | ...::new(...) | test.rs:182:34:182:74 | ... .take(...) | provenance | MaD:22 | | test.rs:182:34:182:74 | ... .take(...) | test.rs:182:21:182:30 | mut reader | provenance | | -| test.rs:182:58:182:63 | stream | test.rs:182:34:182:64 | ...::new(...) | provenance | MaD:36 | +| test.rs:182:58:182:63 | stream | test.rs:182:34:182:64 | ...::new(...) | provenance | MaD:39 | | test.rs:185:27:185:32 | reader | test.rs:185:44:185:52 | [post] &mut line [&ref] | provenance | MaD:18 | | test.rs:185:44:185:52 | [post] &mut line [&ref] | test.rs:185:49:185:52 | [post] line | provenance | | | test.rs:185:49:185:52 | [post] line | test.rs:192:35:192:38 | line | provenance | | @@ -138,7 +150,7 @@ edges | test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | test.rs:224:28:224:72 | await ... [Ok] | provenance | | | test.rs:224:28:224:72 | await ... [Ok] | test.rs:224:28:224:73 | TryExpr | provenance | | | test.rs:224:28:224:73 | TryExpr | test.rs:224:9:224:24 | mut tokio_stream | provenance | | -| test.rs:232:17:232:28 | tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:37 | +| test.rs:232:17:232:28 | tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:40 | | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | test.rs:232:40:232:46 | [post] buffer1 | provenance | | | test.rs:232:40:232:46 | [post] buffer1 | test.rs:239:15:239:21 | buffer1 | provenance | | | test.rs:232:40:232:46 | [post] buffer1 | test.rs:240:14:240:20 | buffer1 | provenance | | @@ -150,11 +162,11 @@ edges | test.rs:240:14:240:20 | buffer1 | test.rs:240:14:240:23 | buffer1[0] | provenance | MaD:10 | | test.rs:243:15:243:21 | buffer2 | test.rs:243:14:243:21 | &buffer2 | provenance | | | test.rs:244:14:244:20 | buffer2 | test.rs:244:14:244:23 | buffer2[0] | provenance | MaD:10 | -| test.rs:252:19:252:30 | tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:38 | +| test.rs:252:19:252:30 | tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:41 | | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | test.rs:252:46:252:51 | [post] buffer | provenance | | | test.rs:252:46:252:51 | [post] buffer | test.rs:259:27:259:32 | buffer | provenance | | | test.rs:259:27:259:32 | buffer | test.rs:259:26:259:32 | &buffer | provenance | | -| test.rs:275:19:275:30 | tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:39 | +| test.rs:275:19:275:30 | tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:42 | | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | test.rs:275:50:275:55 | [post] buffer | provenance | | | test.rs:275:50:275:55 | [post] buffer | test.rs:282:27:282:32 | buffer | provenance | | | test.rs:282:27:282:32 | buffer | test.rs:282:26:282:32 | &buffer | provenance | | @@ -423,6 +435,15 @@ nodes | test.rs:67:31:67:42 | send_request | semmle.label | send_request | | test.rs:68:10:68:18 | &response | semmle.label | &response | | test.rs:68:11:68:18 | response | semmle.label | response | +| test.rs:76:18:76:25 | response | semmle.label | response | +| test.rs:76:18:76:32 | response.body() | semmle.label | response.body() | +| test.rs:77:18:77:25 | response | semmle.label | response | +| test.rs:77:18:77:36 | response.body_mut() | semmle.label | response.body_mut() | +| test.rs:79:17:79:20 | body | semmle.label | body | +| test.rs:79:24:79:31 | response | semmle.label | response | +| test.rs:79:24:79:43 | response.into_body() | semmle.label | response.into_body() | +| test.rs:80:18:80:22 | &body | semmle.label | &body | +| test.rs:80:19:80:22 | body | semmle.label | body | | test.rs:155:13:155:22 | mut stream | semmle.label | mut stream | | test.rs:155:26:155:53 | ...::connect | semmle.label | ...::connect | | test.rs:155:26:155:62 | ...::connect(...) [Ok] | semmle.label | ...::connect(...) [Ok] | @@ -668,6 +689,9 @@ testFailures | test.rs:61:14:61:22 | &response | test.rs:60:31:60:42 | send_request | test.rs:61:14:61:22 | &response | $@ | test.rs:60:31:60:42 | send_request | send_request | | test.rs:62:14:62:21 | response | test.rs:60:31:60:42 | send_request | test.rs:62:14:62:21 | response | $@ | test.rs:60:31:60:42 | send_request | send_request | | test.rs:68:10:68:18 | &response | test.rs:67:31:67:42 | send_request | test.rs:68:10:68:18 | &response | $@ | test.rs:67:31:67:42 | send_request | send_request | +| test.rs:76:18:76:32 | response.body() | test.rs:67:31:67:42 | send_request | test.rs:76:18:76:32 | response.body() | $@ | test.rs:67:31:67:42 | send_request | send_request | +| test.rs:77:18:77:36 | response.body_mut() | test.rs:67:31:67:42 | send_request | test.rs:77:18:77:36 | response.body_mut() | $@ | test.rs:67:31:67:42 | send_request | send_request | +| test.rs:80:18:80:22 | &body | test.rs:67:31:67:42 | send_request | test.rs:80:18:80:22 | &body | $@ | test.rs:67:31:67:42 | send_request | send_request | | test.rs:165:14:165:20 | &buffer | test.rs:155:26:155:53 | ...::connect | test.rs:165:14:165:20 | &buffer | $@ | test.rs:155:26:155:53 | ...::connect | ...::connect | | test.rs:166:14:166:22 | buffer[0] | test.rs:155:26:155:53 | ...::connect | test.rs:166:14:166:22 | buffer[0] | $@ | test.rs:155:26:155:53 | ...::connect | ...::connect | | test.rs:192:34:192:38 | &line | test.rs:174:26:174:61 | ...::connect_timeout | test.rs:192:34:192:38 | &line | $@ | test.rs:174:26:174:61 | ...::connect_timeout | ...::connect_timeout | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/test.rs b/rust/ql/test/library-tests/dataflow/sources/net/test.rs index f029ac53805..2f51be773b7 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/net/test.rs @@ -73,11 +73,11 @@ async fn test_hyper_http(case: i64) -> Result<(), Box> { match case { 1 => { - sink(response.body()); // $ MISSING: hasTaintFlow - sink(response.body_mut()); // $ MISSING: hasTaintFlow + sink(response.body()); // $ hasTaintFlow=request + sink(response.body_mut()); // $ hasTaintFlow=request let body = response.into_body(); - sink(&body); // $ MISSING: hasTaintFlow + sink(&body); // $ hasTaintFlow=request println!("awaiting response..."); let data = body.collect().await?; diff --git a/rust/ql/test/query-tests/security/CWE-117/LogInjection.expected b/rust/ql/test/query-tests/security/CWE-117/LogInjection.expected index d812380d9c7..e326a87c42d 100644 --- a/rust/ql/test/query-tests/security/CWE-117/LogInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-117/LogInjection.expected @@ -1,8 +1,14 @@ #select +| main.rs:15:5:15:9 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:15:5:15:9 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value | | main.rs:16:5:16:9 | ...::log | main.rs:10:22:10:34 | ...::var | main.rs:16:5:16:9 | ...::log | Log entry depends on a $@. | main.rs:10:22:10:34 | ...::var | user-provided value | | main.rs:17:5:17:10 | ...::log | main.rs:11:23:11:44 | ...::get | main.rs:17:5:17:10 | ...::log | Log entry depends on a $@. | main.rs:11:23:11:44 | ...::get | user-provided value | +| main.rs:18:5:18:10 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:18:5:18:10 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value | | main.rs:19:5:19:10 | ...::log | main.rs:10:22:10:34 | ...::var | main.rs:19:5:19:10 | ...::log | Log entry depends on a $@. | main.rs:10:22:10:34 | ...::var | user-provided value | +| main.rs:23:5:23:9 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:23:5:23:9 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value | +| main.rs:27:5:27:9 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:27:5:27:9 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value | +| main.rs:30:5:30:9 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:30:5:30:9 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value | | main.rs:30:5:30:9 | ...::log | main.rs:11:23:11:44 | ...::get | main.rs:30:5:30:9 | ...::log | Log entry depends on a $@. | main.rs:11:23:11:44 | ...::get | user-provided value | +| main.rs:66:5:66:9 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:66:5:66:9 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value | | main.rs:112:9:112:13 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:112:9:112:13 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value | | main.rs:113:9:113:13 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:113:9:113:13 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value | | main.rs:114:9:114:14 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:114:9:114:14 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value | @@ -12,22 +18,59 @@ | main.rs:126:9:126:16 | ...::_print | main.rs:123:25:123:37 | ...::var | main.rs:126:9:126:16 | ...::_print | Log entry depends on a $@. | main.rs:123:25:123:37 | ...::var | user-provided value | | main.rs:127:9:127:17 | ...::_eprint | main.rs:123:25:123:37 | ...::var | main.rs:127:9:127:17 | ...::_eprint | Log entry depends on a $@. | main.rs:123:25:123:37 | ...::var | user-provided value | edges +| main.rs:8:9:8:12 | args [element] | main.rs:9:20:9:23 | args [element] | provenance | | +| main.rs:8:29:8:37 | ...::args | main.rs:8:29:8:39 | ...::args(...) [element] | provenance | Src:MaD:5 | +| main.rs:8:29:8:39 | ...::args(...) [element] | main.rs:8:29:8:49 | ... .collect() [element] | provenance | MaD:9 | +| main.rs:8:29:8:49 | ... .collect() [element] | main.rs:8:9:8:12 | args [element] | provenance | | +| main.rs:9:9:9:16 | username | main.rs:15:11:15:36 | MacroExpr | provenance | | +| main.rs:9:9:9:16 | username | main.rs:18:12:18:37 | MacroExpr | provenance | | +| main.rs:9:9:9:16 | username | main.rs:22:33:22:63 | MacroExpr | provenance | | +| main.rs:9:9:9:16 | username | main.rs:26:55:26:62 | username | provenance | | +| main.rs:9:9:9:16 | username | main.rs:30:11:30:66 | MacroExpr | provenance | | +| main.rs:9:9:9:16 | username | main.rs:52:29:52:36 | username | provenance | | +| main.rs:9:20:9:23 | args [element] | main.rs:9:20:9:30 | args.get(...) [Some, &ref] | provenance | MaD:12 | +| main.rs:9:20:9:30 | args.get(...) [Some, &ref] | main.rs:9:20:9:64 | ... .unwrap_or(...) [&ref] | provenance | MaD:13 | +| main.rs:9:20:9:64 | ... .unwrap_or(...) [&ref] | main.rs:9:20:9:72 | ... .clone() | provenance | MaD:8 | +| main.rs:9:20:9:72 | ... .clone() | main.rs:9:9:9:16 | username | provenance | | | main.rs:10:9:10:18 | user_input | main.rs:16:11:16:44 | MacroExpr | provenance | | | main.rs:10:9:10:18 | user_input | main.rs:19:12:19:39 | MacroExpr | provenance | | | main.rs:10:22:10:34 | ...::var | main.rs:10:22:10:48 | ...::var(...) [Ok] | provenance | Src:MaD:6 | -| main.rs:10:22:10:48 | ...::var(...) [Ok] | main.rs:10:22:10:81 | ... .unwrap_or(...) | provenance | MaD:10 | +| main.rs:10:22:10:48 | ...::var(...) [Ok] | main.rs:10:22:10:81 | ... .unwrap_or(...) | provenance | MaD:16 | | main.rs:10:22:10:81 | ... .unwrap_or(...) | main.rs:10:9:10:18 | user_input | provenance | | | main.rs:11:9:11:19 | remote_data | main.rs:17:12:17:46 | MacroExpr | provenance | | | main.rs:11:9:11:19 | remote_data | main.rs:30:11:30:66 | MacroExpr | provenance | | | main.rs:11:23:11:44 | ...::get | main.rs:11:23:11:71 | ...::get(...) [Ok] | provenance | Src:MaD:4 | -| main.rs:11:23:11:71 | ...::get(...) [Ok] | main.rs:11:23:12:17 | ... .unwrap() | provenance | MaD:9 | -| main.rs:11:23:12:17 | ... .unwrap() | main.rs:11:23:12:24 | ... .text() [Ok] | provenance | MaD:12 | -| main.rs:11:23:12:24 | ... .text() [Ok] | main.rs:11:23:12:61 | ... .unwrap_or(...) | provenance | MaD:10 | +| main.rs:11:23:11:71 | ...::get(...) [Ok] | main.rs:11:23:12:17 | ... .unwrap() | provenance | MaD:15 | +| main.rs:11:23:12:17 | ... .unwrap() | main.rs:11:23:12:24 | ... .text() [Ok] | provenance | MaD:18 | +| main.rs:11:23:12:24 | ... .text() [Ok] | main.rs:11:23:12:61 | ... .unwrap_or(...) | provenance | MaD:16 | | main.rs:11:23:12:61 | ... .unwrap_or(...) | main.rs:11:9:11:19 | remote_data | provenance | | +| main.rs:15:11:15:36 | MacroExpr | main.rs:15:5:15:9 | ...::log | provenance | MaD:1 Sink:MaD:1 | | main.rs:16:11:16:44 | MacroExpr | main.rs:16:5:16:9 | ...::log | provenance | MaD:1 Sink:MaD:1 | | main.rs:17:12:17:46 | MacroExpr | main.rs:17:5:17:10 | ...::log | provenance | MaD:1 Sink:MaD:1 | +| main.rs:18:12:18:37 | MacroExpr | main.rs:18:5:18:10 | ...::log | provenance | MaD:1 Sink:MaD:1 | | main.rs:19:12:19:39 | MacroExpr | main.rs:19:5:19:10 | ...::log | provenance | MaD:1 Sink:MaD:1 | +| main.rs:22:9:22:21 | formatted_msg | main.rs:23:11:23:29 | MacroExpr | provenance | | +| main.rs:22:33:22:63 | ...::format(...) | main.rs:22:33:22:63 | { ... } | provenance | | +| main.rs:22:33:22:63 | ...::must_use(...) | main.rs:22:9:22:21 | formatted_msg | provenance | | +| main.rs:22:33:22:63 | MacroExpr | main.rs:22:33:22:63 | ...::format(...) | provenance | MaD:19 | +| main.rs:22:33:22:63 | { ... } | main.rs:22:33:22:63 | ...::must_use(...) | provenance | MaD:20 | +| main.rs:23:11:23:29 | MacroExpr | main.rs:23:5:23:9 | ...::log | provenance | MaD:1 Sink:MaD:1 | +| main.rs:26:9:26:18 | concat_msg | main.rs:27:11:27:26 | MacroExpr | provenance | | +| main.rs:26:22:26:62 | ... + ... | main.rs:26:9:26:18 | concat_msg | provenance | | +| main.rs:26:54:26:62 | &username [&ref] | main.rs:26:22:26:62 | ... + ... | provenance | MaD:11 | +| main.rs:26:55:26:62 | username | main.rs:26:54:26:62 | &username [&ref] | provenance | | +| main.rs:27:11:27:26 | MacroExpr | main.rs:27:5:27:9 | ...::log | provenance | MaD:1 Sink:MaD:1 | | main.rs:30:11:30:66 | MacroExpr | main.rs:30:5:30:9 | ...::log | provenance | MaD:1 Sink:MaD:1 | +| main.rs:52:28:52:36 | &username [&ref] | main.rs:56:27:56:40 | ...: ... [&ref] | provenance | | +| main.rs:52:29:52:36 | username | main.rs:52:28:52:36 | &username [&ref] | provenance | | +| main.rs:56:27:56:40 | ...: ... [&ref] | main.rs:65:38:65:45 | username [&ref] | provenance | | +| main.rs:65:9:65:17 | user_info [UserInfo] | main.rs:66:28:66:36 | user_info [UserInfo] | provenance | | +| main.rs:65:21:65:59 | UserInfo {...} [UserInfo] | main.rs:65:9:65:17 | user_info [UserInfo] | provenance | | +| main.rs:65:38:65:45 | username [&ref] | main.rs:65:38:65:57 | username.to_string() | provenance | MaD:7 | +| main.rs:65:38:65:57 | username.to_string() | main.rs:65:21:65:59 | UserInfo {...} [UserInfo] | provenance | | +| main.rs:66:11:66:41 | MacroExpr | main.rs:66:5:66:9 | ...::log | provenance | MaD:1 Sink:MaD:1 | +| main.rs:66:28:66:36 | user_info [UserInfo] | main.rs:66:28:66:41 | user_info.name | provenance | | +| main.rs:66:28:66:41 | user_info.name | main.rs:66:11:66:41 | MacroExpr | provenance | | | main.rs:109:13:109:21 | user_data | main.rs:112:15:112:35 | MacroExpr | provenance | | | main.rs:109:13:109:21 | user_data | main.rs:113:15:113:38 | MacroExpr | provenance | | | main.rs:109:13:109:21 | user_data | main.rs:114:16:114:37 | MacroExpr | provenance | | @@ -35,8 +78,8 @@ edges | main.rs:109:13:109:21 | user_data | main.rs:116:16:116:37 | MacroExpr | provenance | | | main.rs:109:13:109:21 | user_data | main.rs:119:15:119:75 | MacroExpr | provenance | | | main.rs:109:25:109:38 | ...::args | main.rs:109:25:109:40 | ...::args(...) [element] | provenance | Src:MaD:5 | -| main.rs:109:25:109:40 | ...::args(...) [element] | main.rs:109:25:109:47 | ... .nth(...) [Some] | provenance | MaD:7 | -| main.rs:109:25:109:47 | ... .nth(...) [Some] | main.rs:109:25:109:67 | ... .unwrap_or_default() | provenance | MaD:8 | +| main.rs:109:25:109:40 | ...::args(...) [element] | main.rs:109:25:109:47 | ... .nth(...) [Some] | provenance | MaD:10 | +| main.rs:109:25:109:47 | ... .nth(...) [Some] | main.rs:109:25:109:67 | ... .unwrap_or_default() | provenance | MaD:14 | | main.rs:109:25:109:67 | ... .unwrap_or_default() | main.rs:109:13:109:21 | user_data | provenance | | | main.rs:112:15:112:35 | MacroExpr | main.rs:112:9:112:13 | ...::log | provenance | MaD:1 Sink:MaD:1 | | main.rs:113:15:113:38 | MacroExpr | main.rs:113:9:113:13 | ...::log | provenance | MaD:1 Sink:MaD:1 | @@ -47,7 +90,7 @@ edges | main.rs:123:13:123:21 | user_data | main.rs:126:18:126:38 | MacroExpr | provenance | | | main.rs:123:13:123:21 | user_data | main.rs:127:19:127:49 | MacroExpr | provenance | | | main.rs:123:25:123:37 | ...::var | main.rs:123:25:123:45 | ...::var(...) [Ok] | provenance | Src:MaD:6 | -| main.rs:123:25:123:45 | ...::var(...) [Ok] | main.rs:123:25:123:65 | ... .unwrap_or_default() | provenance | MaD:11 | +| main.rs:123:25:123:45 | ...::var(...) [Ok] | main.rs:123:25:123:65 | ... .unwrap_or_default() | provenance | MaD:17 | | main.rs:123:25:123:65 | ... .unwrap_or_default() | main.rs:123:13:123:21 | user_data | provenance | | | main.rs:126:18:126:38 | MacroExpr | main.rs:126:9:126:16 | ...::_print | provenance | MaD:3 Sink:MaD:3 | | main.rs:127:19:127:49 | MacroExpr | main.rs:127:9:127:17 | ...::_eprint | provenance | MaD:2 Sink:MaD:2 | @@ -58,13 +101,30 @@ models | 4 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | | 5 | Source: std::env::args; ReturnValue.Element; commandargs | | 6 | Source: std::env::var; ReturnValue.Field[core::result::Result::Ok(0)]; environment | -| 7 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 8 | Summary: ::unwrap_or_default; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 9 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 10 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 11 | Summary: ::unwrap_or_default; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 12 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 7 | Summary: <_ as alloc::string::ToString>::to_string; Argument[self].Reference; ReturnValue; taint | +| 8 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | +| 9 | Summary: <_ as core::iter::traits::iterator::Iterator>::collect; Argument[self].Element; ReturnValue.Element; value | +| 10 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 11 | Summary: ::add; Argument[0].Reference; ReturnValue; taint | +| 12 | Summary: ::deref; Argument[self].Reference.Element; ReturnValue.Reference.Element; value | +| 13 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 14 | Summary: ::unwrap_or_default; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 15 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 16 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 17 | Summary: ::unwrap_or_default; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 18 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 19 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 20 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes +| main.rs:8:9:8:12 | args [element] | semmle.label | args [element] | +| main.rs:8:29:8:37 | ...::args | semmle.label | ...::args | +| main.rs:8:29:8:39 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | +| main.rs:8:29:8:49 | ... .collect() [element] | semmle.label | ... .collect() [element] | +| main.rs:9:9:9:16 | username | semmle.label | username | +| main.rs:9:20:9:23 | args [element] | semmle.label | args [element] | +| main.rs:9:20:9:30 | args.get(...) [Some, &ref] | semmle.label | args.get(...) [Some, &ref] | +| main.rs:9:20:9:64 | ... .unwrap_or(...) [&ref] | semmle.label | ... .unwrap_or(...) [&ref] | +| main.rs:9:20:9:72 | ... .clone() | semmle.label | ... .clone() | | main.rs:10:9:10:18 | user_input | semmle.label | user_input | | main.rs:10:22:10:34 | ...::var | semmle.label | ...::var | | main.rs:10:22:10:48 | ...::var(...) [Ok] | semmle.label | ...::var(...) [Ok] | @@ -75,14 +135,42 @@ nodes | main.rs:11:23:12:17 | ... .unwrap() | semmle.label | ... .unwrap() | | main.rs:11:23:12:24 | ... .text() [Ok] | semmle.label | ... .text() [Ok] | | main.rs:11:23:12:61 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | +| main.rs:15:5:15:9 | ...::log | semmle.label | ...::log | +| main.rs:15:11:15:36 | MacroExpr | semmle.label | MacroExpr | | main.rs:16:5:16:9 | ...::log | semmle.label | ...::log | | main.rs:16:11:16:44 | MacroExpr | semmle.label | MacroExpr | | main.rs:17:5:17:10 | ...::log | semmle.label | ...::log | | main.rs:17:12:17:46 | MacroExpr | semmle.label | MacroExpr | +| main.rs:18:5:18:10 | ...::log | semmle.label | ...::log | +| main.rs:18:12:18:37 | MacroExpr | semmle.label | MacroExpr | | main.rs:19:5:19:10 | ...::log | semmle.label | ...::log | | main.rs:19:12:19:39 | MacroExpr | semmle.label | MacroExpr | +| main.rs:22:9:22:21 | formatted_msg | semmle.label | formatted_msg | +| main.rs:22:33:22:63 | ...::format(...) | semmle.label | ...::format(...) | +| main.rs:22:33:22:63 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| main.rs:22:33:22:63 | MacroExpr | semmle.label | MacroExpr | +| main.rs:22:33:22:63 | { ... } | semmle.label | { ... } | +| main.rs:23:5:23:9 | ...::log | semmle.label | ...::log | +| main.rs:23:11:23:29 | MacroExpr | semmle.label | MacroExpr | +| main.rs:26:9:26:18 | concat_msg | semmle.label | concat_msg | +| main.rs:26:22:26:62 | ... + ... | semmle.label | ... + ... | +| main.rs:26:54:26:62 | &username [&ref] | semmle.label | &username [&ref] | +| main.rs:26:55:26:62 | username | semmle.label | username | +| main.rs:27:5:27:9 | ...::log | semmle.label | ...::log | +| main.rs:27:11:27:26 | MacroExpr | semmle.label | MacroExpr | | main.rs:30:5:30:9 | ...::log | semmle.label | ...::log | | main.rs:30:11:30:66 | MacroExpr | semmle.label | MacroExpr | +| main.rs:52:28:52:36 | &username [&ref] | semmle.label | &username [&ref] | +| main.rs:52:29:52:36 | username | semmle.label | username | +| main.rs:56:27:56:40 | ...: ... [&ref] | semmle.label | ...: ... [&ref] | +| main.rs:65:9:65:17 | user_info [UserInfo] | semmle.label | user_info [UserInfo] | +| main.rs:65:21:65:59 | UserInfo {...} [UserInfo] | semmle.label | UserInfo {...} [UserInfo] | +| main.rs:65:38:65:45 | username [&ref] | semmle.label | username [&ref] | +| main.rs:65:38:65:57 | username.to_string() | semmle.label | username.to_string() | +| main.rs:66:5:66:9 | ...::log | semmle.label | ...::log | +| main.rs:66:11:66:41 | MacroExpr | semmle.label | MacroExpr | +| main.rs:66:28:66:36 | user_info [UserInfo] | semmle.label | user_info [UserInfo] | +| main.rs:66:28:66:41 | user_info.name | semmle.label | user_info.name | | main.rs:109:13:109:21 | user_data | semmle.label | user_data | | main.rs:109:25:109:38 | ...::args | semmle.label | ...::args | | main.rs:109:25:109:40 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | diff --git a/rust/ql/test/query-tests/security/CWE-117/main.rs b/rust/ql/test/query-tests/security/CWE-117/main.rs index f5001846d1b..9fb3558b3d2 100644 --- a/rust/ql/test/query-tests/security/CWE-117/main.rs +++ b/rust/ql/test/query-tests/security/CWE-117/main.rs @@ -5,29 +5,29 @@ fn main() { env_logger::init(); // Sources of user input - let args: Vec = env::args().collect(); - let username = args.get(1).unwrap_or(&String::from("Guest")).clone(); // $ MISSING: Source=commandargs + let args: Vec = env::args().collect(); // $ Source=commandargs + let username = args.get(1).unwrap_or(&String::from("Guest")).clone(); let user_input = std::env::var("USER_INPUT").unwrap_or("default".to_string()); // $ Source=environment let remote_data = reqwest::blocking::get("http://example.com/user") // $ Source=remote .unwrap().text().unwrap_or("remote_user".to_string()); // BAD: Direct logging of user input - info!("User login: {}", username); // $ MISSING: Alert[rust/log-injection] + info!("User login: {}", username); // $ Alert[rust/log-injection]=commandargs warn!("Warning for user: {}", user_input); // $ Alert[rust/log-injection]=environment error!("Error processing: {}", remote_data); // $ Alert[rust/log-injection]=remote - debug!("Debug info: {}", username); // $ MISSING: Alert[rust/log-injection] + debug!("Debug info: {}", username); // $ Alert[rust/log-injection]=commandargs trace!("Trace data: {}", user_input); // $ Alert[rust/log-injection]=environment // BAD: Formatted strings with user input let formatted_msg = format!("Processing user: {}", username); - info!("{}", formatted_msg); // $ MISSING: Alert[rust/log-injection] + info!("{}", formatted_msg); // $ Alert[rust/log-injection]=commandargs // BAD: String concatenation with user input let concat_msg = "User activity: ".to_string() + &username; - info!("{}", concat_msg); // $ MISSING: Alert[rust/log-injection] + info!("{}", concat_msg); // $ Alert[rust/log-injection]=commandargs // BAD: Complex formatting - info!("User {} accessed resource at {}", username, remote_data); // $ Alert[rust/log-injection]=remote + info!("User {} accessed resource at {}", username, remote_data); // $ Alert[rust/log-injection]=remote Alert[rust/log-injection]=commandargs // GOOD: Sanitized input let sanitized_username = username.replace('\n', "").replace('\r', ""); @@ -63,7 +63,7 @@ fn test_complex_scenarios(username: &str, user_input: &str) { // BAD: Through struct fields let user_info = UserInfo { name: username.to_string() }; - info!("User info: {}", user_info.name); // $ MISSING: Alert[rust/log-injection] + info!("User info: {}", user_info.name); // $ Alert[rust/log-injection]=commandargs // GOOD: After sanitization let clean_input = sanitize_input(user_input); diff --git a/rust/ql/test/query-tests/security/CWE-295/DisabledCertificateCheck.expected b/rust/ql/test/query-tests/security/CWE-295/DisabledCertificateCheck.expected index bbc67f6fd18..dd4fd929404 100644 --- a/rust/ql/test/query-tests/security/CWE-295/DisabledCertificateCheck.expected +++ b/rust/ql/test/query-tests/security/CWE-295/DisabledCertificateCheck.expected @@ -15,6 +15,7 @@ | main.rs:109:4:109:34 | danger_accept_invalid_hostnames | main.rs:107:17:107:31 | ...::exists | main.rs:109:4:109:34 | danger_accept_invalid_hostnames | Disabling TLS certificate validation can expose the application to man-in-the-middle attacks. | | main.rs:115:4:115:34 | danger_accept_invalid_hostnames | main.rs:113:43:113:50 | metadata | main.rs:115:4:115:34 | danger_accept_invalid_hostnames | Disabling TLS certificate validation can expose the application to man-in-the-middle attacks. | | main.rs:121:4:121:34 | danger_accept_invalid_hostnames | main.rs:119:11:119:27 | ...::metadata | main.rs:121:4:121:34 | danger_accept_invalid_hostnames | Disabling TLS certificate validation can expose the application to man-in-the-middle attacks. | +| main.rs:134:4:134:34 | danger_accept_invalid_hostnames | main.rs:129:14:129:27 | ...::stdin | main.rs:134:4:134:34 | danger_accept_invalid_hostnames | Disabling TLS certificate validation can expose the application to man-in-the-middle attacks. | | main.rs:146:4:146:34 | danger_accept_invalid_hostnames | main.rs:144:39:144:42 | true | main.rs:146:4:146:34 | danger_accept_invalid_hostnames | Disabling TLS certificate validation can expose the application to man-in-the-middle attacks. | edges | main.rs:4:32:4:35 | true | main.rs:4:4:4:30 | danger_accept_invalid_certs | provenance | MaD:1 Sink:MaD:1 | @@ -37,21 +38,33 @@ edges | main.rs:93:32:93:47 | sometimes_global | main.rs:93:4:93:30 | danger_accept_invalid_certs | provenance | MaD:1 Sink:MaD:1 | | main.rs:107:6:107:7 | b1 | main.rs:109:36:109:37 | b1 | provenance | | | main.rs:107:17:107:31 | ...::exists | main.rs:107:17:107:42 | ...::exists(...) [Ok] | provenance | Src:MaD:8 | -| main.rs:107:17:107:42 | ...::exists(...) [Ok] | main.rs:107:17:107:51 | ... .unwrap() | provenance | MaD:10 | +| main.rs:107:17:107:42 | ...::exists(...) [Ok] | main.rs:107:17:107:51 | ... .unwrap() | provenance | MaD:13 | | main.rs:107:17:107:51 | ... .unwrap() | main.rs:107:6:107:7 | b1 | provenance | | | main.rs:109:36:109:37 | b1 | main.rs:109:4:109:34 | danger_accept_invalid_hostnames | provenance | MaD:2 Sink:MaD:2 | | main.rs:113:6:113:7 | b2 | main.rs:115:36:115:37 | b2 | provenance | | -| main.rs:113:11:113:52 | ... .metadata() [Ok] | main.rs:113:11:113:61 | ... .unwrap() | provenance | MaD:10 | -| main.rs:113:11:113:61 | ... .unwrap() | main.rs:113:11:113:71 | ... .is_file() | provenance | MaD:12 | +| main.rs:113:11:113:52 | ... .metadata() [Ok] | main.rs:113:11:113:61 | ... .unwrap() | provenance | MaD:13 | +| main.rs:113:11:113:61 | ... .unwrap() | main.rs:113:11:113:71 | ... .is_file() | provenance | MaD:16 | | main.rs:113:11:113:71 | ... .is_file() | main.rs:113:6:113:7 | b2 | provenance | | | main.rs:113:43:113:50 | metadata | main.rs:113:11:113:52 | ... .metadata() [Ok] | provenance | Src:MaD:7 | | main.rs:115:36:115:37 | b2 | main.rs:115:4:115:34 | danger_accept_invalid_hostnames | provenance | MaD:2 Sink:MaD:2 | | main.rs:119:6:119:7 | b3 | main.rs:121:36:121:37 | b3 | provenance | | | main.rs:119:11:119:27 | ...::metadata | main.rs:119:11:119:38 | ...::metadata(...) [Ok] | provenance | Src:MaD:9 | -| main.rs:119:11:119:38 | ...::metadata(...) [Ok] | main.rs:119:11:119:47 | ... .unwrap() | provenance | MaD:10 | -| main.rs:119:11:119:47 | ... .unwrap() | main.rs:119:11:119:56 | ... .is_dir() | provenance | MaD:11 | +| main.rs:119:11:119:38 | ...::metadata(...) [Ok] | main.rs:119:11:119:47 | ... .unwrap() | provenance | MaD:13 | +| main.rs:119:11:119:47 | ... .unwrap() | main.rs:119:11:119:56 | ... .is_dir() | provenance | MaD:15 | | main.rs:119:11:119:56 | ... .is_dir() | main.rs:119:6:119:7 | b3 | provenance | | | main.rs:121:36:121:37 | b3 | main.rs:121:4:121:34 | danger_accept_invalid_hostnames | provenance | MaD:2 Sink:MaD:2 | +| main.rs:129:6:129:10 | input | main.rs:130:2:130:6 | input | provenance | | +| main.rs:129:14:129:27 | ...::stdin | main.rs:129:14:129:29 | ...::stdin(...) | provenance | Src:MaD:10 MaD:10 | +| main.rs:129:14:129:29 | ...::stdin(...) | main.rs:129:6:129:10 | input | provenance | | +| main.rs:130:2:130:6 | input | main.rs:130:18:130:32 | [post] &mut input_line [&ref] | provenance | MaD:17 | +| main.rs:130:18:130:32 | [post] &mut input_line [&ref] | main.rs:130:23:130:32 | [post] input_line | provenance | | +| main.rs:130:23:130:32 | [post] input_line | main.rs:132:17:132:26 | input_line | provenance | | +| main.rs:132:6:132:7 | b4 | main.rs:134:36:134:37 | b4 | provenance | | +| main.rs:132:17:132:26 | input_line | main.rs:132:17:132:42 | input_line.parse() [Ok] | provenance | MaD:11 | +| main.rs:132:17:132:26 | input_line | main.rs:132:17:132:42 | input_line.parse() [Ok] | provenance | MaD:12 | +| main.rs:132:17:132:42 | input_line.parse() [Ok] | main.rs:132:17:132:59 | ... .unwrap_or(...) | provenance | MaD:14 | +| main.rs:132:17:132:59 | ... .unwrap_or(...) | main.rs:132:6:132:7 | b4 | provenance | | +| main.rs:134:36:134:37 | b4 | main.rs:134:4:134:34 | danger_accept_invalid_hostnames | provenance | MaD:2 Sink:MaD:2 | | main.rs:144:6:144:7 | b6 | main.rs:146:36:146:37 | b6 | provenance | | | main.rs:144:39:144:42 | true | main.rs:144:6:144:7 | b6 | provenance | | | main.rs:146:36:146:37 | b6 | main.rs:146:4:146:34 | danger_accept_invalid_hostnames | provenance | MaD:2 Sink:MaD:2 | @@ -66,9 +79,14 @@ models | 7 | Source: ::metadata; ReturnValue.Field[core::result::Result::Ok(0)]; file | | 8 | Source: std::fs::exists; ReturnValue.Field[core::result::Result::Ok(0)]; file | | 9 | Source: std::fs::metadata; ReturnValue.Field[core::result::Result::Ok(0)]; file | -| 10 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 11 | Summary: ::is_dir; Argument[self].Reference; ReturnValue; taint | -| 12 | Summary: ::is_file; Argument[self].Reference; ReturnValue; taint | +| 10 | Source: std::io::stdio::stdin; ReturnValue; stdin | +| 11 | Summary: <_ as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue.Reference; taint | +| 12 | Summary: ::deref; Argument[self]; ReturnValue; value | +| 13 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 14 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 15 | Summary: ::is_dir; Argument[self].Reference; ReturnValue; taint | +| 16 | Summary: ::is_file; Argument[self].Reference; ReturnValue; taint | +| 17 | Summary: ::read_line; Argument[self].Reference; Argument[0].Reference; taint | nodes | main.rs:4:4:4:30 | danger_accept_invalid_certs | semmle.label | danger_accept_invalid_certs | | main.rs:4:32:4:35 | true | semmle.label | true | @@ -121,6 +139,18 @@ nodes | main.rs:119:11:119:56 | ... .is_dir() | semmle.label | ... .is_dir() | | main.rs:121:4:121:34 | danger_accept_invalid_hostnames | semmle.label | danger_accept_invalid_hostnames | | main.rs:121:36:121:37 | b3 | semmle.label | b3 | +| main.rs:129:6:129:10 | input | semmle.label | input | +| main.rs:129:14:129:27 | ...::stdin | semmle.label | ...::stdin | +| main.rs:129:14:129:29 | ...::stdin(...) | semmle.label | ...::stdin(...) | +| main.rs:130:2:130:6 | input | semmle.label | input | +| main.rs:130:18:130:32 | [post] &mut input_line [&ref] | semmle.label | [post] &mut input_line [&ref] | +| main.rs:130:23:130:32 | [post] input_line | semmle.label | [post] input_line | +| main.rs:132:6:132:7 | b4 | semmle.label | b4 | +| main.rs:132:17:132:26 | input_line | semmle.label | input_line | +| main.rs:132:17:132:42 | input_line.parse() [Ok] | semmle.label | input_line.parse() [Ok] | +| main.rs:132:17:132:59 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | +| main.rs:134:4:134:34 | danger_accept_invalid_hostnames | semmle.label | danger_accept_invalid_hostnames | +| main.rs:134:36:134:37 | b4 | semmle.label | b4 | | main.rs:144:6:144:7 | b6 | semmle.label | b6 | | main.rs:144:39:144:42 | true | semmle.label | true | | main.rs:146:4:146:34 | danger_accept_invalid_hostnames | semmle.label | danger_accept_invalid_hostnames | diff --git a/rust/ql/test/query-tests/security/CWE-295/main.rs b/rust/ql/test/query-tests/security/CWE-295/main.rs index 6088e6fc1be..e8c20c1d6df 100644 --- a/rust/ql/test/query-tests/security/CWE-295/main.rs +++ b/rust/ql/test/query-tests/security/CWE-295/main.rs @@ -126,12 +126,12 @@ fn test_threat_model_source() { // (these are a little closer to something real) let mut input_line = String::new(); - let input = std::io::stdin(); + let input = std::io::stdin(); // $ Source=stdin input.read_line(&mut input_line).unwrap(); let b4: bool = input_line.parse::().unwrap_or(false); let _client = native_tls::TlsConnector::builder() - .danger_accept_invalid_hostnames(b4) // $ MISSING: Alert[rust/disabled-certificate-check]=stdin + .danger_accept_invalid_hostnames(b4) // $ Alert[rust/disabled-certificate-check]=stdin .build() .unwrap(); From d45269609afc5b15bd49e70d0b2a735dc36dd999 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 9 Jan 2026 15:33:42 +0100 Subject: [PATCH 099/263] Rust: Add test with fn trait syntax without return type --- .../library-tests/type-inference/closure.rs | 4 + .../type-inference/type-inference.expected | 308 +++++++++--------- 2 files changed, 162 insertions(+), 150 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/closure.rs b/rust/ql/test/library-tests/type-inference/closure.rs index 43b26819325..bc0cce6c642 100644 --- a/rust/ql/test/library-tests/type-inference/closure.rs +++ b/rust/ql/test/library-tests/type-inference/closure.rs @@ -36,6 +36,10 @@ mod fn_once_trait { let _return = f(true); // $ type=_return:i64 } + fn return_type_omitted(f: F) { + let _return = f(true); // $ MISSING: type=_return:() + } + fn argument_type i64>(f: F) { let arg = Default::default(); // $ target=default type=arg:bool f(arg); diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index a9328488156..0b9222d424f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -230,51 +230,55 @@ inferCertainType | closure.rs:35:50:37:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:36:23:36:23 | f | | closure.rs:35:20:35:41 | F | | closure.rs:36:25:36:28 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:39:46:39:46 | f | | closure.rs:39:22:39:43 | F | -| closure.rs:39:52:42:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:41:9:41:9 | f | | closure.rs:39:22:39:43 | F | -| closure.rs:44:39:44:39 | f | | closure.rs:44:20:44:36 | F | -| closure.rs:44:45:44:45 | a | | closure.rs:44:14:44:14 | A | -| closure.rs:44:56:46:5 | { ... } | | closure.rs:44:17:44:17 | B | -| closure.rs:45:9:45:9 | f | | closure.rs:44:20:44:36 | F | -| closure.rs:45:11:45:11 | a | | closure.rs:44:14:44:14 | A | -| closure.rs:48:18:48:18 | f | | closure.rs:48:21:48:43 | impl ... | -| closure.rs:48:53:50:5 | { ... } | | {EXTERNAL LOCATION} | i64 | -| closure.rs:49:9:49:9 | f | | closure.rs:48:21:48:43 | impl ... | -| closure.rs:52:15:64:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:53:18:53:18 | x | | {EXTERNAL LOCATION} | bool | -| closure.rs:54:16:54:16 | x | | {EXTERNAL LOCATION} | bool | -| closure.rs:60:27:60:30 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:63:13:63:15 | _r2 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:63:19:63:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:68:54:68:54 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:68:54:68:54 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:68:54:68:54 | f | T | closure.rs:68:26:68:51 | F | -| closure.rs:68:65:68:67 | arg | | closure.rs:68:20:68:20 | A | -| closure.rs:68:78:70:5 | { ... } | | closure.rs:68:23:68:23 | B | -| closure.rs:69:9:69:9 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:69:9:69:9 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:69:9:69:9 | f | T | closure.rs:68:26:68:51 | F | -| closure.rs:69:11:69:13 | arg | | closure.rs:68:20:68:20 | A | -| closure.rs:72:30:72:30 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:72:30:72:30 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:72:30:72:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:72:30:72:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:72:30:72:30 | f | T.dyn(Args).T0 | closure.rs:72:24:72:24 | A | -| closure.rs:72:30:72:30 | f | T.dyn(Output) | closure.rs:72:27:72:27 | B | -| closure.rs:72:58:72:60 | arg | | closure.rs:72:24:72:24 | A | -| closure.rs:72:66:75:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:73:31:73:31 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:73:31:73:31 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:73:31:73:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:73:31:73:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:73:31:73:31 | f | T.dyn(Args).T0 | closure.rs:72:24:72:24 | A | -| closure.rs:73:31:73:31 | f | T.dyn(Output) | closure.rs:72:27:72:27 | B | -| closure.rs:73:34:73:36 | arg | | closure.rs:72:24:72:24 | A | -| closure.rs:74:31:74:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| closure.rs:74:31:74:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| closure.rs:74:41:74:41 | _ | | {EXTERNAL LOCATION} | i64 | -| closure.rs:74:49:74:52 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:39:45:39:45 | f | | closure.rs:39:28:39:42 | F | +| closure.rs:39:51:41:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:40:23:40:23 | f | | closure.rs:39:28:39:42 | F | +| closure.rs:40:25:40:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:43:46:43:46 | f | | closure.rs:43:22:43:43 | F | +| closure.rs:43:52:46:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:45:9:45:9 | f | | closure.rs:43:22:43:43 | F | +| closure.rs:48:39:48:39 | f | | closure.rs:48:20:48:36 | F | +| closure.rs:48:45:48:45 | a | | closure.rs:48:14:48:14 | A | +| closure.rs:48:56:50:5 | { ... } | | closure.rs:48:17:48:17 | B | +| closure.rs:49:9:49:9 | f | | closure.rs:48:20:48:36 | F | +| closure.rs:49:11:49:11 | a | | closure.rs:48:14:48:14 | A | +| closure.rs:52:18:52:18 | f | | closure.rs:52:21:52:43 | impl ... | +| closure.rs:52:53:54:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:53:9:53:9 | f | | closure.rs:52:21:52:43 | impl ... | +| closure.rs:56:15:68:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:57:18:57:18 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:58:16:58:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:64:27:64:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:67:13:67:15 | _r2 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:67:19:67:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:72:54:72:54 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:72:54:72:54 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:72:54:72:54 | f | T | closure.rs:72:26:72:51 | F | +| closure.rs:72:65:72:67 | arg | | closure.rs:72:20:72:20 | A | +| closure.rs:72:78:74:5 | { ... } | | closure.rs:72:23:72:23 | B | +| closure.rs:73:9:73:9 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:73:9:73:9 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:73:9:73:9 | f | T | closure.rs:72:26:72:51 | F | +| closure.rs:73:11:73:13 | arg | | closure.rs:72:20:72:20 | A | +| closure.rs:76:30:76:30 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:76:30:76:30 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:76:30:76:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:76:30:76:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:76:30:76:30 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | +| closure.rs:76:30:76:30 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | +| closure.rs:76:58:76:60 | arg | | closure.rs:76:24:76:24 | A | +| closure.rs:76:66:79:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:77:31:77:31 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:77:31:77:31 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:77:31:77:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:77:31:77:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:77:31:77:31 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | +| closure.rs:77:31:77:31 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | +| closure.rs:77:34:77:36 | arg | | closure.rs:76:24:76:24 | A | +| closure.rs:78:31:78:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| closure.rs:78:31:78:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| closure.rs:78:41:78:41 | _ | | {EXTERNAL LOCATION} | i64 | +| closure.rs:78:49:78:52 | true | | {EXTERNAL LOCATION} | bool | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | @@ -4976,111 +4980,115 @@ inferType | closure.rs:36:23:36:23 | f | | closure.rs:35:20:35:41 | F | | closure.rs:36:23:36:29 | f(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:36:25:36:28 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:39:46:39:46 | f | | closure.rs:39:22:39:43 | F | -| closure.rs:39:52:42:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:40:13:40:15 | arg | | {EXTERNAL LOCATION} | bool | -| closure.rs:40:19:40:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| closure.rs:41:9:41:9 | f | | closure.rs:39:22:39:43 | F | -| closure.rs:41:9:41:14 | f(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:41:11:41:13 | arg | | {EXTERNAL LOCATION} | bool | -| closure.rs:44:39:44:39 | f | | closure.rs:44:20:44:36 | F | -| closure.rs:44:45:44:45 | a | | closure.rs:44:14:44:14 | A | -| closure.rs:44:56:46:5 | { ... } | | closure.rs:44:17:44:17 | B | -| closure.rs:45:9:45:9 | f | | closure.rs:44:20:44:36 | F | -| closure.rs:45:9:45:12 | f(...) | | closure.rs:44:17:44:17 | B | -| closure.rs:45:11:45:11 | a | | closure.rs:44:14:44:14 | A | -| closure.rs:48:18:48:18 | f | | closure.rs:48:21:48:43 | impl ... | -| closure.rs:48:53:50:5 | { ... } | | {EXTERNAL LOCATION} | i64 | -| closure.rs:49:9:49:9 | f | | closure.rs:48:21:48:43 | impl ... | -| closure.rs:49:9:49:12 | f(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:49:11:49:11 | 2 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:49:11:49:11 | 2 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:52:15:64:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:53:13:53:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:53:13:53:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:53:13:53:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:53:13:53:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:53:13:53:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:53:17:59:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:53:17:59:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:53:17:59:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:53:17:59:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:53:17:59:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:53:18:53:18 | x | | {EXTERNAL LOCATION} | bool | -| closure.rs:53:34:59:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:53:34:59:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| closure.rs:54:13:58:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| closure.rs:54:13:58:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| closure.rs:54:16:54:16 | x | | {EXTERNAL LOCATION} | bool | -| closure.rs:54:18:56:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:54:18:56:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| closure.rs:55:17:55:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:55:17:55:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:56:20:58:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:56:20:58:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| closure.rs:57:17:57:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:57:17:57:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:60:13:60:14 | _r | | {EXTERNAL LOCATION} | i32 | -| closure.rs:60:13:60:14 | _r | | {EXTERNAL LOCATION} | i64 | -| closure.rs:60:18:60:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | -| closure.rs:60:18:60:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:60:24:60:24 | f | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:60:24:60:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:60:24:60:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:60:24:60:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | -| closure.rs:60:24:60:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:60:27:60:30 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:62:13:62:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:62:13:62:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:62:17:62:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:62:17:62:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:62:25:62:25 | 1 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:63:13:63:15 | _r2 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:63:19:63:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:63:29:63:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:63:29:63:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:68:54:68:54 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:68:54:68:54 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:68:54:68:54 | f | T | closure.rs:68:26:68:51 | F | -| closure.rs:68:65:68:67 | arg | | closure.rs:68:20:68:20 | A | -| closure.rs:68:78:70:5 | { ... } | | closure.rs:68:23:68:23 | B | -| closure.rs:69:9:69:9 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:69:9:69:9 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:69:9:69:9 | f | T | closure.rs:68:26:68:51 | F | -| closure.rs:69:9:69:14 | f(...) | | closure.rs:68:23:68:23 | B | -| closure.rs:69:11:69:13 | arg | | closure.rs:68:20:68:20 | A | -| closure.rs:72:30:72:30 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:72:30:72:30 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:72:30:72:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:72:30:72:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:72:30:72:30 | f | T.dyn(Args).T0 | closure.rs:72:24:72:24 | A | -| closure.rs:72:30:72:30 | f | T.dyn(Output) | closure.rs:72:27:72:27 | B | -| closure.rs:72:58:72:60 | arg | | closure.rs:72:24:72:24 | A | -| closure.rs:72:66:75:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:73:13:73:15 | _r1 | | closure.rs:72:27:72:27 | B | -| closure.rs:73:19:73:37 | apply_boxed(...) | | closure.rs:72:27:72:27 | B | -| closure.rs:73:31:73:31 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:73:31:73:31 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:73:31:73:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:73:31:73:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:73:31:73:31 | f | T.dyn(Args).T0 | closure.rs:72:24:72:24 | A | -| closure.rs:73:31:73:31 | f | T.dyn(Output) | closure.rs:72:27:72:27 | B | -| closure.rs:73:34:73:36 | arg | | closure.rs:72:24:72:24 | A | -| closure.rs:74:13:74:15 | _r2 | | {EXTERNAL LOCATION} | bool | -| closure.rs:74:19:74:57 | apply_boxed(...) | | {EXTERNAL LOCATION} | bool | -| closure.rs:74:31:74:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| closure.rs:74:31:74:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| closure.rs:74:31:74:53 | ...::new(...) | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:74:31:74:53 | ...::new(...) | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:74:31:74:53 | ...::new(...) | T.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | -| closure.rs:74:31:74:53 | ...::new(...) | T.dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:74:40:74:52 | \|...\| true | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:74:40:74:52 | \|...\| true | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:74:40:74:52 | \|...\| true | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | -| closure.rs:74:40:74:52 | \|...\| true | dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:74:41:74:41 | _ | | {EXTERNAL LOCATION} | i64 | -| closure.rs:74:49:74:52 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:74:56:74:56 | 3 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:39:45:39:45 | f | | closure.rs:39:28:39:42 | F | +| closure.rs:39:51:41:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:40:23:40:23 | f | | closure.rs:39:28:39:42 | F | +| closure.rs:40:25:40:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:43:46:43:46 | f | | closure.rs:43:22:43:43 | F | +| closure.rs:43:52:46:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:44:13:44:15 | arg | | {EXTERNAL LOCATION} | bool | +| closure.rs:44:19:44:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:45:9:45:9 | f | | closure.rs:43:22:43:43 | F | +| closure.rs:45:9:45:14 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:45:11:45:13 | arg | | {EXTERNAL LOCATION} | bool | +| closure.rs:48:39:48:39 | f | | closure.rs:48:20:48:36 | F | +| closure.rs:48:45:48:45 | a | | closure.rs:48:14:48:14 | A | +| closure.rs:48:56:50:5 | { ... } | | closure.rs:48:17:48:17 | B | +| closure.rs:49:9:49:9 | f | | closure.rs:48:20:48:36 | F | +| closure.rs:49:9:49:12 | f(...) | | closure.rs:48:17:48:17 | B | +| closure.rs:49:11:49:11 | a | | closure.rs:48:14:48:14 | A | +| closure.rs:52:18:52:18 | f | | closure.rs:52:21:52:43 | impl ... | +| closure.rs:52:53:54:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:53:9:53:9 | f | | closure.rs:52:21:52:43 | impl ... | +| closure.rs:53:9:53:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:53:11:53:11 | 2 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:53:11:53:11 | 2 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:56:15:68:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:57:13:57:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:57:13:57:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:57:13:57:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:57:13:57:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:57:13:57:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:57:17:63:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:57:17:63:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:57:17:63:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:57:17:63:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:57:17:63:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:57:18:57:18 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:57:34:63:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:57:34:63:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:58:13:62:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| closure.rs:58:13:62:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| closure.rs:58:16:58:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:58:18:60:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:58:18:60:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:59:17:59:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:59:17:59:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:60:20:62:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:60:20:62:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:61:17:61:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:61:17:61:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:64:13:64:14 | _r | | {EXTERNAL LOCATION} | i32 | +| closure.rs:64:13:64:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:64:18:64:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | +| closure.rs:64:18:64:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:64:24:64:24 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:64:24:64:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:64:24:64:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:64:24:64:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:64:24:64:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:64:27:64:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:66:13:66:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:66:13:66:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:66:17:66:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:66:17:66:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:66:25:66:25 | 1 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:67:13:67:15 | _r2 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:67:19:67:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:67:29:67:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:67:29:67:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:72:54:72:54 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:72:54:72:54 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:72:54:72:54 | f | T | closure.rs:72:26:72:51 | F | +| closure.rs:72:65:72:67 | arg | | closure.rs:72:20:72:20 | A | +| closure.rs:72:78:74:5 | { ... } | | closure.rs:72:23:72:23 | B | +| closure.rs:73:9:73:9 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:73:9:73:9 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:73:9:73:9 | f | T | closure.rs:72:26:72:51 | F | +| closure.rs:73:9:73:14 | f(...) | | closure.rs:72:23:72:23 | B | +| closure.rs:73:11:73:13 | arg | | closure.rs:72:20:72:20 | A | +| closure.rs:76:30:76:30 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:76:30:76:30 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:76:30:76:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:76:30:76:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:76:30:76:30 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | +| closure.rs:76:30:76:30 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | +| closure.rs:76:58:76:60 | arg | | closure.rs:76:24:76:24 | A | +| closure.rs:76:66:79:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:77:13:77:15 | _r1 | | closure.rs:76:27:76:27 | B | +| closure.rs:77:19:77:37 | apply_boxed(...) | | closure.rs:76:27:76:27 | B | +| closure.rs:77:31:77:31 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:77:31:77:31 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:77:31:77:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:77:31:77:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:77:31:77:31 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | +| closure.rs:77:31:77:31 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | +| closure.rs:77:34:77:36 | arg | | closure.rs:76:24:76:24 | A | +| closure.rs:78:13:78:15 | _r2 | | {EXTERNAL LOCATION} | bool | +| closure.rs:78:19:78:57 | apply_boxed(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:78:31:78:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| closure.rs:78:31:78:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| closure.rs:78:31:78:53 | ...::new(...) | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:78:31:78:53 | ...::new(...) | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:78:31:78:53 | ...::new(...) | T.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:78:31:78:53 | ...::new(...) | T.dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:78:40:78:52 | \|...\| true | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:78:40:78:52 | \|...\| true | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:78:40:78:52 | \|...\| true | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:78:40:78:52 | \|...\| true | dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:78:41:78:41 | _ | | {EXTERNAL LOCATION} | i64 | +| closure.rs:78:49:78:52 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:78:56:78:56 | 3 | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | From 41921a85bb127b4f406d9543017987c413c5d87d Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 9 Jan 2026 16:08:01 +0100 Subject: [PATCH 100/263] Rust: Make function trait syntax without return type default to unit --- .../lib/codeql/rust/internal/TypeMention.qll | 38 +++++++++++++------ .../library-tests/type-inference/closure.rs | 2 +- .../type-inference/type-inference.expected | 2 + 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index 74661bb86c3..2f451c521d8 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -222,6 +222,33 @@ class NonAliasPathTypeMention extends PathTypeMention { result = this.getPositionalTypeArgument(pragma[only_bind_into](i), path) and tp = this.resolveRootType().getPositionalTypeParameter(pragma[only_bind_into](i)) ) + or + // Handle the special syntactic sugar for function traits. The syntactic + // form is detected by the presence of a parenthesized argument list which + // is a mandatory part of the syntax [1]. + // + // For now we only support `FnOnce` as we can't support the "inherited" + // associated types of `Fn` and `FnMut` yet. + // + // [1]: https://doc.rust-lang.org/reference/paths.html#grammar-TypePathFn + exists(FnOnceTrait t, PathSegment s | + t = resolved and + s = this.getSegment() and + s.hasParenthesizedArgList() + | + tp = TTypeParamTypeParameter(t.getTypeParam()) and + result = s.getParenthesizedArgList().(TypeMention).resolveTypeAt(path) + or + tp = TAssociatedTypeTypeParameter(t.getOutputType()) and + ( + result = s.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(path) + or + // When the `-> ...` return type is omitted, it defaults to `()`. + not s.hasRetType() and + result instanceof UnitType and + path.isEmpty() + ) + ) } pragma[nomagic] @@ -256,17 +283,6 @@ class NonAliasPathTypeMention extends PathTypeMention { result = alias.getTypeRepr() and tp = TAssociatedTypeTypeParameter(this.getResolvedAlias(pragma[only_bind_into](name))) ) - or - // Handle the special syntactic sugar for function traits. For now we only - // support `FnOnce` as we can't support the "inherited" associated types of - // `Fn` and `FnMut` yet. - exists(FnOnceTrait t | t = resolved | - tp = TTypeParamTypeParameter(t.getTypeParam()) and - result = this.getSegment().getParenthesizedArgList() - or - tp = TAssociatedTypeTypeParameter(t.getOutputType()) and - result = this.getSegment().getRetType().getTypeRepr() - ) } pragma[nomagic] diff --git a/rust/ql/test/library-tests/type-inference/closure.rs b/rust/ql/test/library-tests/type-inference/closure.rs index bc0cce6c642..e5a9c83aa07 100644 --- a/rust/ql/test/library-tests/type-inference/closure.rs +++ b/rust/ql/test/library-tests/type-inference/closure.rs @@ -37,7 +37,7 @@ mod fn_once_trait { } fn return_type_omitted(f: F) { - let _return = f(true); // $ MISSING: type=_return:() + let _return = f(true); // $ type=_return:() } fn argument_type i64>(f: F) { diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 0b9222d424f..353b18ff840 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -4982,7 +4982,9 @@ inferType | closure.rs:36:25:36:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:39:45:39:45 | f | | closure.rs:39:28:39:42 | F | | closure.rs:39:51:41:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:40:13:40:19 | _return | | {EXTERNAL LOCATION} | () | | closure.rs:40:23:40:23 | f | | closure.rs:39:28:39:42 | F | +| closure.rs:40:23:40:29 | f(...) | | {EXTERNAL LOCATION} | () | | closure.rs:40:25:40:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:43:46:43:46 | f | | closure.rs:43:22:43:43 | F | | closure.rs:43:52:46:5 | { ... } | | {EXTERNAL LOCATION} | () | From 4318c285cb24e521c0cfdf94f91967b4cc569eef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 03:07:33 +0000 Subject: [PATCH 101/263] Bump golang.org/x/mod Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/mod](https://github.com/golang/mod). Updates `golang.org/x/mod` from 0.31.0 to 0.32.0 - [Commits](https://github.com/golang/mod/compare/v0.31.0...v0.32.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-version: 0.32.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: extractor-dependencies ... Signed-off-by: dependabot[bot] --- go/extractor/go.mod | 2 +- go/extractor/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/extractor/go.mod b/go/extractor/go.mod index 2729c7dfcc5..ece2a30deb0 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -9,7 +9,7 @@ toolchain go1.25.0 // when adding or removing dependencies, run // bazel mod tidy require ( - golang.org/x/mod v0.31.0 + golang.org/x/mod v0.32.0 golang.org/x/tools v0.40.0 ) diff --git a/go/extractor/go.sum b/go/extractor/go.sum index 488d2003193..4b494d6f23f 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -1,7 +1,7 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= -golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= +golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= +golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= From aae8ec224038ec9782a77b0b475ba9fc10bd77bf Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 12 Jan 2026 09:39:15 +0100 Subject: [PATCH 102/263] SSA: Use fastTC for even better performance. --- shared/ssa/codeql/ssa/Ssa.qll | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/shared/ssa/codeql/ssa/Ssa.qll b/shared/ssa/codeql/ssa/Ssa.qll index b58d28c534f..cb2d527c964 100644 --- a/shared/ssa/codeql/ssa/Ssa.qll +++ b/shared/ssa/codeql/ssa/Ssa.qll @@ -2095,38 +2095,25 @@ module Make< ) } - /** - * Holds if `prev` is the block containing the unique predecessor of `phi` - * that reaches `phi` through the input block `input`, and that `mid` is a - * block in the dominator tree between `prev` and `input` that is - * guard-equivalent with `input` in the sense that the set of guards - * controlling `mid` is the same as the set of guards controlling `input`. - * - * This is restricted to phi inputs that are actually read. - */ - private predicate phiInputGuardEquivalenceReaches( - BasicBlock prev, BasicBlock mid, SsaPhiExt phi, BasicBlock input - ) { - phiInputHasRead(phi, input) and - AdjacentSsaRefs::adjacentRefPhi(prev, _, input, phi.getBasicBlock(), phi.getSourceVariable()) and - mid = input - or - exists(BasicBlock mid0 | - phiInputGuardEquivalenceReaches(prev, mid0, phi, input) and - not guardControlledBranchTarget(mid0) and - mid0 != prev and - mid = mid0.getImmediateDominator() - ) + private BasicBlock getGuardEquivalentImmediateDominator(BasicBlock bb) { + result = bb.getImmediateDominator() and + not guardControlledBranchTarget(bb) } /** * Holds if the immediately preceding reference to the input to `phi` from - * the block `input` is guard-equivalent with `input`. + * the block `input` is guard-equivalent with `input` in the sense that the + * set of guards controlling the preceding reference is the same as the set + * of guards controlling `input`. * * This is restricted to phi inputs that are actually read. */ private predicate phiInputIsGuardEquivalentWithPreviousRef(SsaPhiExt phi, BasicBlock input) { - exists(BasicBlock prev | phiInputGuardEquivalenceReaches(prev, prev, phi, input)) + exists(BasicBlock prev | + phiInputHasRead(phi, input) and + AdjacentSsaRefs::adjacentRefPhi(prev, _, input, phi.getBasicBlock(), phi.getSourceVariable()) and + prev = getGuardEquivalentImmediateDominator*(input) + ) } /** From 8e2d74a7b1d9bb731a3faf9b872e38fd62ba8718 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 12 Jan 2026 12:45:06 +0100 Subject: [PATCH 103/263] Java: Add TypeFlow base case for partially unbound types. --- java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll index 21cfc54fdf8..361b4feb54a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll @@ -202,6 +202,13 @@ private module Input implements TypeFlowInput { t1e = t2e and unbound(t2) and not unbound(t1) + or + t1e = t2e and + exists(int pos | + partiallyUnbound(t2, pos) and + not partiallyUnbound(t1, pos) and + not unbound(t1) + ) ) } @@ -370,6 +377,11 @@ private module Input implements TypeFlowInput { ) } + /** Holds if `t` is a parameterised type with unrestricted type argument at position `pos`. */ + private predicate partiallyUnbound(ParameterizedType t, int pos) { + unconstrained(t.getTypeArgument(pos)) + } + Type getErasure(Type t) { result = t.getErasure() } Type getAnAncestor(Type sub) { result = sub.getAnAncestor() } From 17441a5462d81f488953361f00c6a98d9b44f00a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 12 Jan 2026 09:52:47 +0100 Subject: [PATCH 104/263] Rust: Add missing `.Reference` in various models --- .../rust/dataflow/internal/ModelsAsData.qll | 88 +++++++--- .../codeql/rust/frameworks/futures.model.yml | 1 - .../rust/frameworks/stdlib/alloc.model.yml | 6 +- .../rust/frameworks/stdlib/core.model.yml | 2 +- .../rust/frameworks/stdlib/fs.model.yml | 2 +- .../rust/frameworks/stdlib/net.model.yml | 2 +- .../dataflow/sources/net/InlineFlow.expected | 155 ++++++++++-------- .../dataflow/sources/net/test.rs | 2 +- .../web_frameworks/InlineFlow.expected | 4 +- .../strings/inline-taint-flow.expected | 4 +- .../security/CWE-089/SqlInjection.expected | 4 +- .../CWE-312/CleartextLogging.expected | 68 ++++---- .../CWE-312/CleartextStorageDatabase.expected | 7 +- 13 files changed, 206 insertions(+), 139 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index 5036259d059..7a44dc520c5 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -128,38 +128,35 @@ private predicate summaryModel( } private predicate summaryModelRelevant( - Function f, string input, string output, string kind, Provenance provenance, + Function f, string input, string output, string kind, Provenance provenance, boolean isInherited, QlBuiltins::ExtensionId madId ) { - exists(boolean isInherited | - summaryModel(f, input, output, kind, provenance, isInherited, madId) - | - // Only apply generated or inherited models to functions in library code and - // when no strictly better model exists - if provenance.isGenerated() or isInherited = true - then - not f.fromSource() and - not exists(Provenance other | summaryModel(f, _, _, _, other, false, _) | - provenance.isGenerated() and other.isManual() - or - provenance = other and isInherited = true - ) - else any() - ) + summaryModel(f, input, output, kind, provenance, isInherited, madId) and + // Only apply generated or inherited models to functions in library code and + // when no strictly better model exists + if provenance.isGenerated() or isInherited = true + then + not f.fromSource() and + not exists(Provenance other | summaryModel(f, _, _, _, other, false, _) | + provenance.isGenerated() and other.isManual() + or + provenance = other and isInherited = true + ) + else any() } private class SummarizedCallableFromModel extends SummarizedCallable::Range { - SummarizedCallableFromModel() { summaryModelRelevant(this, _, _, _, _, _) } + SummarizedCallableFromModel() { summaryModelRelevant(this, _, _, _, _, _, _) } override predicate hasProvenance(Provenance provenance) { - summaryModelRelevant(this, _, _, _, provenance, _) + summaryModelRelevant(this, _, _, _, provenance, _, _) } override predicate propagatesFlow( string input, string output, boolean preservesValue, string model ) { exists(string kind, QlBuiltins::ExtensionId madId | - summaryModelRelevant(this, input, output, kind, _, madId) and + summaryModelRelevant(this, input, output, kind, _, _, madId) and model = "MaD:" + madId.toString() | kind = "value" and @@ -202,3 +199,56 @@ private class FlowSinkFromModel extends FlowSink::Range { ) } } + +private module Debug { + private import FlowSummaryImpl + private import Private + private import Content + private import codeql.rust.dataflow.internal.DataFlowImpl + private import codeql.rust.internal.TypeMention + private import codeql.rust.internal.Type + + private predicate relevantManualModel(SummarizedCallableImpl sc, string can) { + exists(Provenance manual | + can = sc.getCanonicalPath() and + summaryModelRelevant(sc, _, _, _, manual, false, _) and + manual.isManual() + ) + } + + predicate manualModelMissingParameterReference( + SummarizedCallableImpl sc, string can, SummaryComponentStack input, ParamBase p + ) { + exists(RustDataFlow::ParameterPosition pos, TypeMention tm | + relevantManualModel(sc, can) and + sc.propagatesFlow(input, _, _, _) and + input.head() = SummaryComponent::argument(pos) and + p = pos.getParameterIn(sc.getParamList()) and + tm.resolveType() instanceof RefType and + not input.tail().head() = SummaryComponent::content(TSingletonContentSet(TReferenceContent())) + | + tm = p.getTypeRepr() + or + tm = getSelfParamTypeMention(p) + ) + } + + predicate manualModelMissingReturnReference( + SummarizedCallableImpl sc, string can, SummaryComponentStack output + ) { + exists(TypeMention tm | + relevantManualModel(sc, can) and + sc.propagatesFlow(_, output, _, _) and + tm.resolveType() instanceof RefType and + output.head() = SummaryComponent::return(_) and + not output.tail().head() = + SummaryComponent::content(TSingletonContentSet(TReferenceContent())) and + tm = getReturnTypeMention(sc) and + not can = + [ + "<& as core::ops::deref::Deref>::deref", + "<&mut as core::ops::deref::Deref>::deref" + ] + ) + } +} diff --git a/rust/ql/lib/codeql/rust/frameworks/futures.model.yml b/rust/ql/lib/codeql/rust/frameworks/futures.model.yml index 712897186a8..29feee13616 100644 --- a/rust/ql/lib/codeql/rust/frameworks/futures.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/futures.model.yml @@ -5,7 +5,6 @@ extensions: data: - ["futures_executor::local_pool::block_on", "Argument[0]", "ReturnValue", "value", "manual"] - ["::new", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["<_ as futures_util::io::AsyncReadExt>::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] - ["<_ as futures_util::io::AsyncReadExt>::read", "Argument[self].Reference", "Argument[0].Reference", "taint", "manual"] - ["<_ as futures_util::io::AsyncReadExt>::read_to_end", "Argument[self].Reference", "Argument[0].Reference", "taint", "manual"] - ["<_ as futures_util::io::AsyncBufReadExt>::read_line", "Argument[self].Reference", "Argument[0].Reference", "taint", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml index 84579743563..74432649bd8 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/alloc.model.yml @@ -47,11 +47,11 @@ extensions: - ["::pad_to_align", "Argument[self].Reference", "ReturnValue", "taint", "manual"] - ["::size", "Argument[self].Reference", "ReturnValue", "taint", "manual"] # String - - ["::as_str", "Argument[self]", "ReturnValue", "value", "manual"] - - ["::as_bytes", "Argument[self]", "ReturnValue", "value", "manual"] + - ["::as_str", "Argument[self].Reference", "ReturnValue.Reference", "taint", "manual"] + - ["::as_bytes", "Argument[self].Reference", "ReturnValue.Reference.Element", "taint", "manual"] - ["<_ as alloc::string::ToString>::to_string", "Argument[self].Reference", "ReturnValue", "taint", "manual"] # Overwrite generated model - - ["::add", "Argument[self,0]", "ReturnValue", "taint", "manual"] + - ["::add", "Argument[self]", "ReturnValue", "taint", "manual"] - ["::add", "Argument[0].Reference", "ReturnValue", "taint", "manual"] # Vec - ["alloc::vec::from_elem", "Argument[0]", "ReturnValue.Element", "value", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 3ff02d732b0..e92ae4defa3 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -114,7 +114,7 @@ extensions: - ["::deref", "Argument[self].Reference.Field[core::pin::Pin::pointer].Reference", "ReturnValue.Reference", "value", "manual"] - ["::deref", "Argument[self].Reference.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "manual"] # Str - - ["::as_str", "Argument[self]", "ReturnValue", "value", "manual"] + - ["::as_str", "Argument[self].Reference", "ReturnValue.Reference", "taint", "manual"] - ["::as_bytes", "Argument[self].Reference", "ReturnValue.Reference", "taint", "manual"] - ["::parse", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::trim", "Argument[self].Reference", "ReturnValue.Reference", "taint", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml index 6216f79ea85..2a57b38ace5 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml @@ -61,7 +61,7 @@ extensions: - ["::as_path", "Argument[self].Reference", "ReturnValue.Reference", "value", "manual"] - ["::into_boxed_path", "Argument[self]", "ReturnValue.Field[alloc::boxed::Box(0)]", "taint", "manual"] - ["::new", "Argument[0].Reference", "ReturnValue.Reference", "value", "manual"] - - ["::join", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["::join", "Argument[self].Reference", "ReturnValue", "taint", "manual"] - ["::join", "Argument[0]", "ReturnValue", "taint", "manual"] - ["::as_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "manual"] - ["::as_mut_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml index 8aa03133354..fc4c043cecf 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml @@ -9,4 +9,4 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["::try_clone", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] + - ["::try_clone", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected index 31a41522450..b5a008f9838 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected @@ -16,61 +16,63 @@ models | 15 | Summary: <_ as futures_util::io::AsyncBufReadExt>::read_until; Argument[self].Reference; Argument[1].Reference; taint | | 16 | Summary: <_ as futures_util::io::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | | 17 | Summary: <_ as futures_util::io::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | -| 18 | Summary: <_ as std::io::BufRead>::read_line; Argument[self].Reference; Argument[0].Reference; taint | -| 19 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 20 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | -| 21 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | -| 22 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | -| 23 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 24 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 25 | Summary: ::new; Argument[0].Reference; ReturnValue; value | -| 26 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 27 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 28 | Summary: ::connect; Argument[1]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 29 | Summary: ::new; Argument[0]; ReturnValue; taint | -| 30 | Summary: ::body; Argument[self].Reference.Field[http::response::Response::body]; ReturnValue.Reference; value | -| 31 | Summary: ::body_mut; Argument[self].Reference.Field[http::response::Response::body]; ReturnValue.Reference; value | -| 32 | Summary: ::into_body; Argument[self].Field[http::response::Response::body]; ReturnValue; value | -| 33 | Summary: ::bytes; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 34 | Summary: ::chunk; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint | -| 35 | Summary: ::text; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 36 | Summary: ::bytes; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 37 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 38 | Summary: ::text_with_charset; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 39 | Summary: ::new; Argument[0]; ReturnValue; taint | -| 40 | Summary: ::peek; Argument[self].Reference; Argument[0].Reference; taint | -| 41 | Summary: ::try_read; Argument[self].Reference; Argument[0].Reference; taint | -| 42 | Summary: ::try_read_buf; Argument[self].Reference; Argument[0].Reference; taint | +| 18 | Summary: <_ as std::io::BufRead>::lines; Argument[self]; ReturnValue; taint | +| 19 | Summary: <_ as std::io::BufRead>::read_line; Argument[self].Reference; Argument[0].Reference; taint | +| 20 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 21 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | +| 22 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | +| 23 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | +| 24 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 25 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 26 | Summary: ::new; Argument[0].Reference; ReturnValue; value | +| 27 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 28 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 29 | Summary: ::connect; Argument[1]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 30 | Summary: ::new; Argument[0]; ReturnValue; taint | +| 31 | Summary: ::body; Argument[self].Reference.Field[http::response::Response::body]; ReturnValue.Reference; value | +| 32 | Summary: ::body_mut; Argument[self].Reference.Field[http::response::Response::body]; ReturnValue.Reference; value | +| 33 | Summary: ::into_body; Argument[self].Field[http::response::Response::body]; ReturnValue; value | +| 34 | Summary: ::bytes; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 35 | Summary: ::chunk; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]; taint | +| 36 | Summary: ::text; Argument[self]; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 37 | Summary: ::bytes; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 38 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 39 | Summary: ::text_with_charset; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 40 | Summary: ::new; Argument[0]; ReturnValue; taint | +| 41 | Summary: ::try_clone; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 42 | Summary: ::peek; Argument[self].Reference; Argument[0].Reference; taint | +| 43 | Summary: ::try_read; Argument[self].Reference; Argument[0].Reference; taint | +| 44 | Summary: ::try_read_buf; Argument[self].Reference; Argument[0].Reference; taint | edges | test.rs:11:9:11:22 | remote_string1 | test.rs:12:10:12:23 | remote_string1 | provenance | | | test.rs:11:26:11:47 | ...::get | test.rs:11:26:11:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | | test.rs:11:26:11:62 | ...::get(...) [Ok] | test.rs:11:26:11:63 | TryExpr | provenance | | -| test.rs:11:26:11:63 | TryExpr | test.rs:11:26:11:70 | ... .text() [Ok] | provenance | MaD:37 | +| test.rs:11:26:11:63 | TryExpr | test.rs:11:26:11:70 | ... .text() [Ok] | provenance | MaD:38 | | test.rs:11:26:11:70 | ... .text() [Ok] | test.rs:11:26:11:71 | TryExpr | provenance | | | test.rs:11:26:11:71 | TryExpr | test.rs:11:9:11:22 | remote_string1 | provenance | | | test.rs:14:9:14:22 | remote_string2 | test.rs:15:10:15:23 | remote_string2 | provenance | | | test.rs:14:26:14:47 | ...::get | test.rs:14:26:14:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | -| test.rs:14:26:14:62 | ...::get(...) [Ok] | test.rs:14:26:14:71 | ... .unwrap() | provenance | MaD:27 | -| test.rs:14:26:14:71 | ... .unwrap() | test.rs:14:26:14:78 | ... .text() [Ok] | provenance | MaD:37 | -| test.rs:14:26:14:78 | ... .text() [Ok] | test.rs:14:26:14:87 | ... .unwrap() | provenance | MaD:27 | +| test.rs:14:26:14:62 | ...::get(...) [Ok] | test.rs:14:26:14:71 | ... .unwrap() | provenance | MaD:28 | +| test.rs:14:26:14:71 | ... .unwrap() | test.rs:14:26:14:78 | ... .text() [Ok] | provenance | MaD:38 | +| test.rs:14:26:14:78 | ... .text() [Ok] | test.rs:14:26:14:87 | ... .unwrap() | provenance | MaD:28 | | test.rs:14:26:14:87 | ... .unwrap() | test.rs:14:9:14:22 | remote_string2 | provenance | | | test.rs:17:9:17:22 | remote_string3 | test.rs:18:10:18:23 | remote_string3 | provenance | | | test.rs:17:26:17:47 | ...::get | test.rs:17:26:17:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | -| test.rs:17:26:17:62 | ...::get(...) [Ok] | test.rs:17:26:17:71 | ... .unwrap() | provenance | MaD:27 | -| test.rs:17:26:17:71 | ... .unwrap() | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | provenance | MaD:38 | -| test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | test.rs:17:26:17:107 | ... .unwrap() | provenance | MaD:27 | +| test.rs:17:26:17:62 | ...::get(...) [Ok] | test.rs:17:26:17:71 | ... .unwrap() | provenance | MaD:28 | +| test.rs:17:26:17:71 | ... .unwrap() | test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | provenance | MaD:39 | +| test.rs:17:26:17:98 | ... .text_with_charset(...) [Ok] | test.rs:17:26:17:107 | ... .unwrap() | provenance | MaD:28 | | test.rs:17:26:17:107 | ... .unwrap() | test.rs:17:9:17:22 | remote_string3 | provenance | | | test.rs:20:9:20:22 | remote_string4 | test.rs:21:10:21:23 | remote_string4 | provenance | | | test.rs:20:26:20:47 | ...::get | test.rs:20:26:20:62 | ...::get(...) [Ok] | provenance | Src:MaD:7 | -| test.rs:20:26:20:62 | ...::get(...) [Ok] | test.rs:20:26:20:71 | ... .unwrap() | provenance | MaD:27 | -| test.rs:20:26:20:71 | ... .unwrap() | test.rs:20:26:20:79 | ... .bytes() [Ok] | provenance | MaD:36 | -| test.rs:20:26:20:79 | ... .bytes() [Ok] | test.rs:20:26:20:88 | ... .unwrap() | provenance | MaD:27 | +| test.rs:20:26:20:62 | ...::get(...) [Ok] | test.rs:20:26:20:71 | ... .unwrap() | provenance | MaD:28 | +| test.rs:20:26:20:71 | ... .unwrap() | test.rs:20:26:20:79 | ... .bytes() [Ok] | provenance | MaD:37 | +| test.rs:20:26:20:79 | ... .bytes() [Ok] | test.rs:20:26:20:88 | ... .unwrap() | provenance | MaD:28 | | test.rs:20:26:20:88 | ... .unwrap() | test.rs:20:9:20:22 | remote_string4 | provenance | | | test.rs:23:9:23:22 | remote_string5 | test.rs:24:10:24:23 | remote_string5 | provenance | | | test.rs:23:26:23:37 | ...::get | test.rs:23:26:23:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:8 | | test.rs:23:26:23:52 | ...::get(...) [future, Ok] | test.rs:23:26:23:58 | await ... [Ok] | provenance | | | test.rs:23:26:23:58 | await ... [Ok] | test.rs:23:26:23:59 | TryExpr | provenance | | -| test.rs:23:26:23:59 | TryExpr | test.rs:23:26:23:66 | ... .text() [future, Ok] | provenance | MaD:35 | +| test.rs:23:26:23:59 | TryExpr | test.rs:23:26:23:66 | ... .text() [future, Ok] | provenance | MaD:36 | | test.rs:23:26:23:66 | ... .text() [future, Ok] | test.rs:23:26:23:72 | await ... [Ok] | provenance | | | test.rs:23:26:23:72 | await ... [Ok] | test.rs:23:26:23:73 | TryExpr | provenance | | | test.rs:23:26:23:73 | TryExpr | test.rs:23:9:23:22 | remote_string5 | provenance | | @@ -78,7 +80,7 @@ edges | test.rs:26:26:26:37 | ...::get | test.rs:26:26:26:52 | ...::get(...) [future, Ok] | provenance | Src:MaD:8 | | test.rs:26:26:26:52 | ...::get(...) [future, Ok] | test.rs:26:26:26:58 | await ... [Ok] | provenance | | | test.rs:26:26:26:58 | await ... [Ok] | test.rs:26:26:26:59 | TryExpr | provenance | | -| test.rs:26:26:26:59 | TryExpr | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | provenance | MaD:33 | +| test.rs:26:26:26:59 | TryExpr | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | provenance | MaD:34 | | test.rs:26:26:26:67 | ... .bytes() [future, Ok] | test.rs:26:26:26:73 | await ... [Ok] | provenance | | | test.rs:26:26:26:73 | await ... [Ok] | test.rs:26:26:26:74 | TryExpr | provenance | | | test.rs:26:26:26:74 | TryExpr | test.rs:26:9:26:22 | remote_string6 | provenance | | @@ -88,13 +90,13 @@ edges | test.rs:29:24:29:50 | ...::get(...) [future, Ok] | test.rs:29:24:29:56 | await ... [Ok] | provenance | | | test.rs:29:24:29:56 | await ... [Ok] | test.rs:29:24:29:57 | TryExpr | provenance | | | test.rs:29:24:29:57 | TryExpr | test.rs:29:9:29:20 | mut request1 | provenance | | -| test.rs:30:10:30:17 | request1 | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | provenance | MaD:34 | +| test.rs:30:10:30:17 | request1 | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | provenance | MaD:35 | | test.rs:30:10:30:25 | request1.chunk() [future, Ok, Some] | test.rs:30:10:30:31 | await ... [Ok, Some] | provenance | | | test.rs:30:10:30:31 | await ... [Ok, Some] | test.rs:30:10:30:32 | TryExpr [Some] | provenance | | -| test.rs:30:10:30:32 | TryExpr [Some] | test.rs:30:10:30:41 | ... .unwrap() | provenance | MaD:24 | +| test.rs:30:10:30:32 | TryExpr [Some] | test.rs:30:10:30:41 | ... .unwrap() | provenance | MaD:25 | | test.rs:31:15:31:25 | Some(...) [Some] | test.rs:31:20:31:24 | chunk | provenance | | | test.rs:31:20:31:24 | chunk | test.rs:32:14:32:18 | chunk | provenance | | -| test.rs:31:29:31:36 | request1 | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | provenance | MaD:34 | +| test.rs:31:29:31:36 | request1 | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | provenance | MaD:35 | | test.rs:31:29:31:44 | request1.chunk() [future, Ok, Some] | test.rs:31:29:31:50 | await ... [Ok, Some] | provenance | | | test.rs:31:29:31:50 | await ... [Ok, Some] | test.rs:31:29:31:51 | TryExpr [Some] | provenance | | | test.rs:31:29:31:51 | TryExpr [Some] | test.rs:31:15:31:25 | Some(...) [Some] | provenance | | @@ -114,34 +116,44 @@ edges | test.rs:67:24:67:58 | TryExpr | test.rs:67:9:67:20 | mut response | provenance | | | test.rs:67:31:67:42 | send_request | test.rs:67:24:67:51 | sender.send_request(...) [future, Ok] | provenance | Src:MaD:2 | | test.rs:68:11:68:18 | response | test.rs:68:10:68:18 | &response | provenance | | -| test.rs:76:18:76:25 | response | test.rs:76:18:76:32 | response.body() | provenance | MaD:30 | -| test.rs:77:18:77:25 | response | test.rs:77:18:77:36 | response.body_mut() | provenance | MaD:31 | +| test.rs:76:18:76:25 | response | test.rs:76:18:76:32 | response.body() | provenance | MaD:31 | +| test.rs:77:18:77:25 | response | test.rs:77:18:77:36 | response.body_mut() | provenance | MaD:32 | | test.rs:79:17:79:20 | body | test.rs:80:19:80:22 | body | provenance | | -| test.rs:79:24:79:31 | response | test.rs:79:24:79:43 | response.into_body() | provenance | MaD:32 | +| test.rs:79:24:79:31 | response | test.rs:79:24:79:43 | response.into_body() | provenance | MaD:33 | | test.rs:79:24:79:43 | response.into_body() | test.rs:79:17:79:20 | body | provenance | | | test.rs:80:19:80:22 | body | test.rs:80:18:80:22 | &body | provenance | | | test.rs:155:13:155:22 | mut stream | test.rs:162:17:162:22 | stream | provenance | | | test.rs:155:26:155:53 | ...::connect | test.rs:155:26:155:62 | ...::connect(...) [Ok] | provenance | Src:MaD:4 | | test.rs:155:26:155:62 | ...::connect(...) [Ok] | test.rs:155:26:155:63 | TryExpr | provenance | | | test.rs:155:26:155:63 | TryExpr | test.rs:155:13:155:22 | mut stream | provenance | | -| test.rs:162:17:162:22 | stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:19 | +| test.rs:162:17:162:22 | stream | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | provenance | MaD:20 | | test.rs:162:29:162:39 | [post] &mut buffer [&ref] | test.rs:162:34:162:39 | [post] buffer | provenance | | | test.rs:162:34:162:39 | [post] buffer | test.rs:165:15:165:20 | buffer | provenance | | | test.rs:162:34:162:39 | [post] buffer | test.rs:166:14:166:19 | buffer | provenance | | | test.rs:165:15:165:20 | buffer | test.rs:165:14:165:20 | &buffer | provenance | | | test.rs:166:14:166:19 | buffer | test.rs:166:14:166:22 | buffer[0] | provenance | MaD:10 | | test.rs:174:13:174:22 | mut stream | test.rs:182:58:182:63 | stream | provenance | | +| test.rs:174:13:174:22 | mut stream | test.rs:203:54:203:59 | stream | provenance | | | test.rs:174:26:174:61 | ...::connect_timeout | test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | provenance | Src:MaD:5 | | test.rs:174:26:174:105 | ...::connect_timeout(...) [Ok] | test.rs:174:26:174:106 | TryExpr | provenance | | | test.rs:174:26:174:106 | TryExpr | test.rs:174:13:174:22 | mut stream | provenance | | | test.rs:182:21:182:30 | mut reader | test.rs:185:27:185:32 | reader | provenance | | -| test.rs:182:34:182:64 | ...::new(...) | test.rs:182:34:182:74 | ... .take(...) | provenance | MaD:22 | +| test.rs:182:34:182:64 | ...::new(...) | test.rs:182:34:182:74 | ... .take(...) | provenance | MaD:23 | | test.rs:182:34:182:74 | ... .take(...) | test.rs:182:21:182:30 | mut reader | provenance | | -| test.rs:182:58:182:63 | stream | test.rs:182:34:182:64 | ...::new(...) | provenance | MaD:39 | -| test.rs:185:27:185:32 | reader | test.rs:185:44:185:52 | [post] &mut line [&ref] | provenance | MaD:18 | +| test.rs:182:58:182:63 | stream | test.rs:182:34:182:64 | ...::new(...) | provenance | MaD:40 | +| test.rs:185:27:185:32 | reader | test.rs:185:44:185:52 | [post] &mut line [&ref] | provenance | MaD:19 | | test.rs:185:44:185:52 | [post] &mut line [&ref] | test.rs:185:49:185:52 | [post] line | provenance | | | test.rs:185:49:185:52 | [post] line | test.rs:192:35:192:38 | line | provenance | | | test.rs:192:35:192:38 | line | test.rs:192:34:192:38 | &line | provenance | | +| test.rs:203:21:203:26 | reader | test.rs:204:29:204:34 | reader | provenance | | +| test.rs:203:30:203:73 | ...::new(...) | test.rs:203:30:203:83 | ... .take(...) | provenance | MaD:23 | +| test.rs:203:30:203:83 | ... .take(...) | test.rs:203:21:203:26 | reader | provenance | | +| test.rs:203:54:203:59 | stream | test.rs:203:54:203:71 | stream.try_clone() [Ok] | provenance | MaD:41 | +| test.rs:203:54:203:71 | stream.try_clone() [Ok] | test.rs:203:54:203:72 | TryExpr | provenance | | +| test.rs:203:54:203:72 | TryExpr | test.rs:203:30:203:73 | ...::new(...) | provenance | MaD:40 | +| test.rs:204:29:204:34 | reader | test.rs:204:29:204:42 | reader.lines() | provenance | MaD:18 | +| test.rs:204:29:204:42 | reader.lines() | test.rs:205:28:205:37 | Ok(...) | provenance | | +| test.rs:205:28:205:37 | Ok(...) | test.rs:207:30:207:35 | string | provenance | | | test.rs:224:9:224:24 | mut tokio_stream | test.rs:232:17:232:28 | tokio_stream | provenance | | | test.rs:224:9:224:24 | mut tokio_stream | test.rs:236:18:236:29 | tokio_stream | provenance | | | test.rs:224:9:224:24 | mut tokio_stream | test.rs:252:19:252:30 | tokio_stream | provenance | | @@ -150,11 +162,11 @@ edges | test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | test.rs:224:28:224:72 | await ... [Ok] | provenance | | | test.rs:224:28:224:72 | await ... [Ok] | test.rs:224:28:224:73 | TryExpr | provenance | | | test.rs:224:28:224:73 | TryExpr | test.rs:224:9:224:24 | mut tokio_stream | provenance | | -| test.rs:232:17:232:28 | tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:40 | +| test.rs:232:17:232:28 | tokio_stream | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | provenance | MaD:42 | | test.rs:232:35:232:46 | [post] &mut buffer1 [&ref] | test.rs:232:40:232:46 | [post] buffer1 | provenance | | | test.rs:232:40:232:46 | [post] buffer1 | test.rs:239:15:239:21 | buffer1 | provenance | | | test.rs:232:40:232:46 | [post] buffer1 | test.rs:240:14:240:20 | buffer1 | provenance | | -| test.rs:236:18:236:29 | tokio_stream | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | provenance | MaD:23 | +| test.rs:236:18:236:29 | tokio_stream | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | provenance | MaD:24 | | test.rs:236:36:236:47 | [post] &mut buffer2 [&ref] | test.rs:236:41:236:47 | [post] buffer2 | provenance | | | test.rs:236:41:236:47 | [post] buffer2 | test.rs:243:15:243:21 | buffer2 | provenance | | | test.rs:236:41:236:47 | [post] buffer2 | test.rs:244:14:244:20 | buffer2 | provenance | | @@ -162,17 +174,17 @@ edges | test.rs:240:14:240:20 | buffer1 | test.rs:240:14:240:23 | buffer1[0] | provenance | MaD:10 | | test.rs:243:15:243:21 | buffer2 | test.rs:243:14:243:21 | &buffer2 | provenance | | | test.rs:244:14:244:20 | buffer2 | test.rs:244:14:244:23 | buffer2[0] | provenance | MaD:10 | -| test.rs:252:19:252:30 | tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:41 | +| test.rs:252:19:252:30 | tokio_stream | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | provenance | MaD:43 | | test.rs:252:41:252:51 | [post] &mut buffer [&ref] | test.rs:252:46:252:51 | [post] buffer | provenance | | | test.rs:252:46:252:51 | [post] buffer | test.rs:259:27:259:32 | buffer | provenance | | | test.rs:259:27:259:32 | buffer | test.rs:259:26:259:32 | &buffer | provenance | | -| test.rs:275:19:275:30 | tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:42 | +| test.rs:275:19:275:30 | tokio_stream | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | provenance | MaD:44 | | test.rs:275:45:275:55 | [post] &mut buffer [&ref] | test.rs:275:50:275:55 | [post] buffer | provenance | | | test.rs:275:50:275:55 | [post] buffer | test.rs:282:27:282:32 | buffer | provenance | | | test.rs:282:27:282:32 | buffer | test.rs:282:26:282:32 | &buffer | provenance | | | test.rs:332:9:332:18 | mut client | test.rs:333:22:333:27 | client | provenance | | | test.rs:332:22:332:50 | ...::new | test.rs:332:22:332:75 | ...::new(...) [Ok] | provenance | Src:MaD:3 | -| test.rs:332:22:332:75 | ...::new(...) [Ok] | test.rs:332:22:332:84 | ... .unwrap() | provenance | MaD:27 | +| test.rs:332:22:332:75 | ...::new(...) [Ok] | test.rs:332:22:332:84 | ... .unwrap() | provenance | MaD:28 | | test.rs:332:22:332:84 | ... .unwrap() | test.rs:332:9:332:18 | mut client | provenance | | | test.rs:333:9:333:18 | mut reader | test.rs:334:11:334:16 | reader | provenance | | | test.rs:333:9:333:18 | mut reader | test.rs:338:22:338:27 | reader | provenance | | @@ -181,15 +193,15 @@ edges | test.rs:333:22:333:27 | client | test.rs:333:22:333:36 | client.reader() | provenance | MaD:9 | | test.rs:333:22:333:36 | client.reader() | test.rs:333:9:333:18 | mut reader | provenance | | | test.rs:334:11:334:16 | reader | test.rs:334:10:334:16 | &reader | provenance | | -| test.rs:338:22:338:27 | reader | test.rs:338:34:338:44 | [post] &mut buffer [&ref] | provenance | MaD:19 | +| test.rs:338:22:338:27 | reader | test.rs:338:34:338:44 | [post] &mut buffer [&ref] | provenance | MaD:20 | | test.rs:338:34:338:44 | [post] &mut buffer [&ref] | test.rs:338:39:338:44 | [post] buffer | provenance | | | test.rs:338:39:338:44 | [post] buffer | test.rs:339:15:339:20 | buffer | provenance | | | test.rs:339:15:339:20 | buffer | test.rs:339:14:339:20 | &buffer | provenance | | -| test.rs:344:22:344:27 | reader | test.rs:344:41:344:51 | [post] &mut buffer [&ref] | provenance | MaD:20 | +| test.rs:344:22:344:27 | reader | test.rs:344:41:344:51 | [post] &mut buffer [&ref] | provenance | MaD:21 | | test.rs:344:41:344:51 | [post] &mut buffer [&ref] | test.rs:344:46:344:51 | [post] buffer | provenance | | | test.rs:344:46:344:51 | [post] buffer | test.rs:345:15:345:20 | buffer | provenance | | | test.rs:345:15:345:20 | buffer | test.rs:345:14:345:20 | &buffer | provenance | | -| test.rs:350:22:350:27 | reader | test.rs:350:44:350:54 | [post] &mut buffer [&ref] | provenance | MaD:21 | +| test.rs:350:22:350:27 | reader | test.rs:350:44:350:54 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:350:44:350:54 | [post] &mut buffer [&ref] | test.rs:350:49:350:54 | [post] buffer | provenance | | | test.rs:350:49:350:54 | [post] buffer | test.rs:351:15:351:20 | buffer | provenance | | | test.rs:351:15:351:20 | buffer | test.rs:351:14:351:20 | &buffer | provenance | | @@ -208,15 +220,15 @@ edges | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | test.rs:380:26:380:66 | await ... [Ok] | provenance | | | test.rs:380:26:380:66 | await ... [Ok] | test.rs:380:26:380:67 | TryExpr | provenance | | | test.rs:380:26:380:67 | TryExpr | test.rs:380:13:380:22 | mut reader | provenance | | -| test.rs:380:57:380:59 | tcp | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | provenance | MaD:28 | +| test.rs:380:57:380:59 | tcp | test.rs:380:26:380:60 | connector.connect(...) [future, Ok] | provenance | MaD:29 | | test.rs:381:15:381:20 | reader | test.rs:381:14:381:20 | &reader | provenance | | | test.rs:386:17:386:26 | mut pinned | test.rs:387:19:387:24 | pinned | provenance | | | test.rs:386:17:386:26 | mut pinned | test.rs:389:30:389:35 | pinned | provenance | | | test.rs:386:17:386:26 | mut pinned [Pin, &ref] | test.rs:387:19:387:24 | pinned [Pin, &ref] | provenance | | | test.rs:386:30:386:50 | ...::new(...) | test.rs:386:17:386:26 | mut pinned | provenance | | | test.rs:386:30:386:50 | ...::new(...) [Pin, &ref] | test.rs:386:17:386:26 | mut pinned [Pin, &ref] | provenance | | -| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) | provenance | MaD:25 | -| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) [Pin, &ref] | provenance | MaD:26 | +| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) | provenance | MaD:26 | +| test.rs:386:39:386:49 | &mut reader [&ref] | test.rs:386:30:386:50 | ...::new(...) [Pin, &ref] | provenance | MaD:27 | | test.rs:386:44:386:49 | reader | test.rs:386:39:386:49 | &mut reader [&ref] | provenance | | | test.rs:387:19:387:24 | pinned | test.rs:387:18:387:24 | &pinned | provenance | | | test.rs:387:19:387:24 | pinned [Pin, &ref] | test.rs:387:18:387:24 | &pinned | provenance | | @@ -254,15 +266,15 @@ edges | test.rs:408:13:408:23 | mut reader2 | test.rs:493:31:493:37 | reader2 | provenance | | | test.rs:408:13:408:23 | mut reader2 | test.rs:500:31:500:37 | reader2 | provenance | | | test.rs:408:27:408:61 | ...::new(...) | test.rs:408:13:408:23 | mut reader2 | provenance | | -| test.rs:408:55:408:60 | reader | test.rs:408:27:408:61 | ...::new(...) | provenance | MaD:29 | +| test.rs:408:55:408:60 | reader | test.rs:408:27:408:61 | ...::new(...) | provenance | MaD:30 | | test.rs:409:15:409:21 | reader2 | test.rs:409:14:409:21 | &reader2 | provenance | | | test.rs:413:17:413:26 | mut pinned | test.rs:414:19:414:24 | pinned | provenance | | | test.rs:413:17:413:26 | mut pinned | test.rs:416:26:416:31 | pinned | provenance | | | test.rs:413:17:413:26 | mut pinned [Pin, &ref] | test.rs:414:19:414:24 | pinned [Pin, &ref] | provenance | | | test.rs:413:30:413:51 | ...::new(...) | test.rs:413:17:413:26 | mut pinned | provenance | | | test.rs:413:30:413:51 | ...::new(...) [Pin, &ref] | test.rs:413:17:413:26 | mut pinned [Pin, &ref] | provenance | | -| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) | provenance | MaD:25 | -| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) [Pin, &ref] | provenance | MaD:26 | +| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) | provenance | MaD:26 | +| test.rs:413:39:413:50 | &mut reader2 [&ref] | test.rs:413:30:413:51 | ...::new(...) [Pin, &ref] | provenance | MaD:27 | | test.rs:413:44:413:50 | reader2 | test.rs:413:39:413:50 | &mut reader2 [&ref] | provenance | | | test.rs:414:19:414:24 | pinned | test.rs:414:18:414:24 | &pinned | provenance | | | test.rs:414:19:414:24 | pinned [Pin, &ref] | test.rs:414:18:414:24 | &pinned | provenance | | @@ -277,7 +289,7 @@ edges | test.rs:423:17:423:23 | buffer2 [Ready, Ok] | test.rs:424:20:424:26 | buffer2 [Ready, Ok] | provenance | | | test.rs:423:27:423:48 | ...::new(...) | test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | provenance | MaD:11 | | test.rs:423:27:423:71 | ... .poll_fill_buf(...) [Ready, Ok] | test.rs:423:17:423:23 | buffer2 [Ready, Ok] | provenance | | -| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) | provenance | MaD:25 | +| test.rs:423:36:423:47 | &mut reader2 [&ref] | test.rs:423:27:423:48 | ...::new(...) | provenance | MaD:26 | | test.rs:423:41:423:47 | reader2 | test.rs:423:36:423:47 | &mut reader2 [&ref] | provenance | | | test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:425:17:425:36 | ...::Ready(...) [Ready, Ok] | provenance | | | test.rs:424:20:424:26 | buffer2 [Ready, Ok] | test.rs:426:27:426:33 | buffer2 [Ready, Ok] | provenance | | @@ -295,8 +307,8 @@ edges | test.rs:444:17:444:26 | mut pinned [Pin, &ref] | test.rs:445:19:445:24 | pinned [Pin, &ref] | provenance | | | test.rs:444:30:444:51 | ...::new(...) | test.rs:444:17:444:26 | mut pinned | provenance | | | test.rs:444:30:444:51 | ...::new(...) [Pin, &ref] | test.rs:444:17:444:26 | mut pinned [Pin, &ref] | provenance | | -| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) | provenance | MaD:25 | -| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) [Pin, &ref] | provenance | MaD:26 | +| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) | provenance | MaD:26 | +| test.rs:444:39:444:50 | &mut reader2 [&ref] | test.rs:444:30:444:51 | ...::new(...) [Pin, &ref] | provenance | MaD:27 | | test.rs:444:44:444:50 | reader2 | test.rs:444:39:444:50 | &mut reader2 [&ref] | provenance | | | test.rs:445:19:445:24 | pinned | test.rs:445:18:445:24 | &pinned | provenance | | | test.rs:445:19:445:24 | pinned [Pin, &ref] | test.rs:445:18:445:24 | &pinned | provenance | | @@ -326,8 +338,8 @@ edges | test.rs:467:17:467:26 | mut pinned [Pin, &ref] | test.rs:468:19:468:24 | pinned [Pin, &ref] | provenance | | | test.rs:467:30:467:51 | ...::new(...) | test.rs:467:17:467:26 | mut pinned | provenance | | | test.rs:467:30:467:51 | ...::new(...) [Pin, &ref] | test.rs:467:17:467:26 | mut pinned [Pin, &ref] | provenance | | -| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) | provenance | MaD:25 | -| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) [Pin, &ref] | provenance | MaD:26 | +| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) | provenance | MaD:26 | +| test.rs:467:39:467:50 | &mut reader2 [&ref] | test.rs:467:30:467:51 | ...::new(...) [Pin, &ref] | provenance | MaD:27 | | test.rs:467:44:467:50 | reader2 | test.rs:467:39:467:50 | &mut reader2 [&ref] | provenance | | | test.rs:468:19:468:24 | pinned | test.rs:468:18:468:24 | &pinned | provenance | | | test.rs:468:19:468:24 | pinned [Pin, &ref] | test.rs:468:18:468:24 | &pinned | provenance | | @@ -468,6 +480,16 @@ nodes | test.rs:185:49:185:52 | [post] line | semmle.label | [post] line | | test.rs:192:34:192:38 | &line | semmle.label | &line | | test.rs:192:35:192:38 | line | semmle.label | line | +| test.rs:203:21:203:26 | reader | semmle.label | reader | +| test.rs:203:30:203:73 | ...::new(...) | semmle.label | ...::new(...) | +| test.rs:203:30:203:83 | ... .take(...) | semmle.label | ... .take(...) | +| test.rs:203:54:203:59 | stream | semmle.label | stream | +| test.rs:203:54:203:71 | stream.try_clone() [Ok] | semmle.label | stream.try_clone() [Ok] | +| test.rs:203:54:203:72 | TryExpr | semmle.label | TryExpr | +| test.rs:204:29:204:34 | reader | semmle.label | reader | +| test.rs:204:29:204:42 | reader.lines() | semmle.label | reader.lines() | +| test.rs:205:28:205:37 | Ok(...) | semmle.label | Ok(...) | +| test.rs:207:30:207:35 | string | semmle.label | string | | test.rs:224:9:224:24 | mut tokio_stream | semmle.label | mut tokio_stream | | test.rs:224:28:224:57 | ...::connect | semmle.label | ...::connect | | test.rs:224:28:224:66 | ...::connect(...) [future, Ok] | semmle.label | ...::connect(...) [future, Ok] | @@ -695,6 +717,7 @@ testFailures | test.rs:165:14:165:20 | &buffer | test.rs:155:26:155:53 | ...::connect | test.rs:165:14:165:20 | &buffer | $@ | test.rs:155:26:155:53 | ...::connect | ...::connect | | test.rs:166:14:166:22 | buffer[0] | test.rs:155:26:155:53 | ...::connect | test.rs:166:14:166:22 | buffer[0] | $@ | test.rs:155:26:155:53 | ...::connect | ...::connect | | test.rs:192:34:192:38 | &line | test.rs:174:26:174:61 | ...::connect_timeout | test.rs:192:34:192:38 | &line | $@ | test.rs:174:26:174:61 | ...::connect_timeout | ...::connect_timeout | +| test.rs:207:30:207:35 | string | test.rs:174:26:174:61 | ...::connect_timeout | test.rs:207:30:207:35 | string | $@ | test.rs:174:26:174:61 | ...::connect_timeout | ...::connect_timeout | | test.rs:239:14:239:21 | &buffer1 | test.rs:224:28:224:57 | ...::connect | test.rs:239:14:239:21 | &buffer1 | $@ | test.rs:224:28:224:57 | ...::connect | ...::connect | | test.rs:240:14:240:23 | buffer1[0] | test.rs:224:28:224:57 | ...::connect | test.rs:240:14:240:23 | buffer1[0] | $@ | test.rs:224:28:224:57 | ...::connect | ...::connect | | test.rs:243:14:243:21 | &buffer2 | test.rs:224:28:224:57 | ...::connect | test.rs:243:14:243:21 | &buffer2 | $@ | test.rs:224:28:224:57 | ...::connect | ...::connect | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/test.rs b/rust/ql/test/library-tests/dataflow/sources/net/test.rs index 2f51be773b7..bb6f54cb913 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/net/test.rs @@ -204,7 +204,7 @@ async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { for line in reader.lines() { // $ MISSING: Alert[rust/summary/taint-sources] if let Ok(string) = line { println!("line = {}", string); - sink(string); // $ MISSING: hasTaintFlow=&sock_addr + sink(string); // $ hasTaintFlow=&sock_addr } } } diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected index 4c85f166699..d3c65fac62f 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected @@ -10,8 +10,8 @@ models | 9 | Source: axum::routing::method_routing::post; Argument[0].Parameter[0..7]; remote | | 10 | Source: axum::routing::method_routing::put; Argument[0].Parameter[0..7]; remote | | 11 | Summary: ::into_inner; Argument[self]; ReturnValue; taint | -| 12 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | -| 13 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 12 | Summary: ::as_bytes; Argument[self].Reference; ReturnValue.Reference.Element; taint | +| 13 | Summary: ::as_str; Argument[self].Reference; ReturnValue.Reference; taint | edges | test.rs:11:31:11:31 | a | test.rs:13:14:13:14 | a | provenance | | | test.rs:11:31:11:31 | a | test.rs:14:14:14:14 | a | provenance | | diff --git a/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected b/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected index c39c5e60476..86f7d8f0bc0 100644 --- a/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected +++ b/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected @@ -5,8 +5,8 @@ models | 4 | Summary: ::from; Argument[0].Field[alloc::borrow::Cow::Owned(0)]; ReturnValue; value | | 5 | Summary: ::from; Argument[0].Reference; ReturnValue; value | | 6 | Summary: ::add; Argument[0].Reference; ReturnValue; taint | -| 7 | Summary: ::add; Argument[self,0]; ReturnValue; taint | -| 8 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 7 | Summary: ::add; Argument[self]; ReturnValue; taint | +| 8 | Summary: ::as_str; Argument[self].Reference; ReturnValue.Reference; taint | | 9 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | | 10 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | edges diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected index 808d4848e48..57034006055 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -224,8 +224,8 @@ models | 24 | Source: std::env::args; ReturnValue.Element; commandargs | | 25 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | | 26 | Summary: ::add; Argument[0].Reference; ReturnValue; taint | -| 27 | Summary: ::add; Argument[self,0]; ReturnValue; taint | -| 28 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 27 | Summary: ::add; Argument[self]; ReturnValue; taint | +| 28 | Summary: ::as_str; Argument[self].Reference; ReturnValue.Reference; taint | | 29 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | | 30 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | | 31 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index e399f4ce0b7..61de9de03b5 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -136,7 +136,6 @@ edges | test_logging.rs:94:11:94:28 | MacroExpr | test_logging.rs:94:5:94:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:96:9:96:10 | m2 | test_logging.rs:97:11:97:18 | MacroExpr | provenance | | | test_logging.rs:96:14:96:49 | ... + ... | test_logging.rs:96:9:96:10 | m2 | provenance | | -| test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:17 | | test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:16 | | test_logging.rs:96:41:96:49 | &password [&ref] | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:16 | | test_logging.rs:96:42:96:49 | password | test_logging.rs:96:41:96:49 | &password | provenance | Config | @@ -145,8 +144,8 @@ edges | test_logging.rs:99:9:99:10 | m3 | test_logging.rs:100:11:100:18 | MacroExpr | provenance | | | test_logging.rs:99:22:99:45 | ...::format(...) | test_logging.rs:99:22:99:45 | { ... } | provenance | | | test_logging.rs:99:22:99:45 | ...::must_use(...) | test_logging.rs:99:9:99:10 | m3 | provenance | | -| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:99:38:99:45 | password | test_logging.rs:99:22:99:45 | MacroExpr | provenance | | | test_logging.rs:100:11:100:18 | MacroExpr | test_logging.rs:100:5:100:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | @@ -167,8 +166,8 @@ edges | test_logging.rs:176:34:176:79 | MacroExpr | test_logging.rs:176:33:176:79 | &... [&ref] | provenance | | | test_logging.rs:176:42:176:78 | ...::format(...) | test_logging.rs:176:42:176:78 | { ... } | provenance | | | test_logging.rs:176:42:176:78 | ...::must_use(...) | test_logging.rs:176:34:176:79 | MacroExpr | provenance | | -| test_logging.rs:176:42:176:78 | MacroExpr | test_logging.rs:176:42:176:78 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:176:42:176:78 | MacroExpr | test_logging.rs:176:42:176:78 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:176:70:176:78 | password2 | test_logging.rs:176:42:176:78 | MacroExpr | provenance | | | test_logging.rs:180:35:180:81 | &... | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:3 Sink:MaD:3 | | test_logging.rs:180:35:180:81 | &... [&ref] | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:3 Sink:MaD:3 | @@ -176,8 +175,8 @@ edges | test_logging.rs:180:36:180:81 | MacroExpr | test_logging.rs:180:35:180:81 | &... [&ref] | provenance | | | test_logging.rs:180:44:180:80 | ...::format(...) | test_logging.rs:180:44:180:80 | { ... } | provenance | | | test_logging.rs:180:44:180:80 | ...::must_use(...) | test_logging.rs:180:36:180:81 | MacroExpr | provenance | | -| test_logging.rs:180:44:180:80 | MacroExpr | test_logging.rs:180:44:180:80 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:180:44:180:80 | MacroExpr | test_logging.rs:180:44:180:80 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:180:72:180:80 | password2 | test_logging.rs:180:44:180:80 | MacroExpr | provenance | | | test_logging.rs:183:9:183:19 | err_result2 [Err] | test_logging.rs:184:13:184:23 | err_result2 [Err] | provenance | | | test_logging.rs:183:47:183:68 | Err(...) [Err] | test_logging.rs:183:9:183:19 | err_result2 [Err] | provenance | | @@ -220,40 +219,40 @@ edges | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:28 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | | test_logging.rs:226:36:226:59 | MacroExpr | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | provenance | | | test_logging.rs:226:52:226:59 | password | test_logging.rs:226:36:226:59 | MacroExpr | provenance | | -| test_logging.rs:229:30:229:62 | MacroExpr | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | provenance | MaD:19 | +| test_logging.rs:229:30:229:62 | MacroExpr | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | provenance | MaD:18 | | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | test_logging.rs:229:23:229:28 | expect | provenance | MaD:2 Sink:MaD:2 | | test_logging.rs:229:38:229:61 | ...::format(...) | test_logging.rs:229:38:229:61 | { ... } | provenance | | | test_logging.rs:229:38:229:61 | ...::must_use(...) | test_logging.rs:229:30:229:62 | MacroExpr | provenance | | -| test_logging.rs:229:38:229:61 | MacroExpr | test_logging.rs:229:38:229:61 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:229:38:229:61 | { ... } | test_logging.rs:229:38:229:61 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:229:38:229:61 | MacroExpr | test_logging.rs:229:38:229:61 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:229:38:229:61 | { ... } | test_logging.rs:229:38:229:61 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:229:54:229:61 | password | test_logging.rs:229:38:229:61 | MacroExpr | provenance | | -| test_logging.rs:242:16:242:50 | MacroExpr | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | provenance | MaD:18 | -| test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | test_logging.rs:242:10:242:14 | write | provenance | MaD:7 Sink:MaD:7 | +| test_logging.rs:242:16:242:50 | MacroExpr | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref, element] | provenance | MaD:17 | +| test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref, element] | test_logging.rs:242:10:242:14 | write | provenance | MaD:7 Sink:MaD:7 Sink:MaD:7 | | test_logging.rs:242:24:242:49 | ...::format(...) | test_logging.rs:242:24:242:49 | { ... } | provenance | | | test_logging.rs:242:24:242:49 | ...::must_use(...) | test_logging.rs:242:16:242:50 | MacroExpr | provenance | | -| test_logging.rs:242:24:242:49 | MacroExpr | test_logging.rs:242:24:242:49 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:242:24:242:49 | { ... } | test_logging.rs:242:24:242:49 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:242:24:242:49 | MacroExpr | test_logging.rs:242:24:242:49 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:242:24:242:49 | { ... } | test_logging.rs:242:24:242:49 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:242:42:242:49 | password | test_logging.rs:242:24:242:49 | MacroExpr | provenance | | -| test_logging.rs:245:20:245:54 | MacroExpr | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | provenance | MaD:18 | -| test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | test_logging.rs:245:10:245:18 | write_all | provenance | MaD:8 Sink:MaD:8 | +| test_logging.rs:245:20:245:54 | MacroExpr | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref, element] | provenance | MaD:17 | +| test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref, element] | test_logging.rs:245:10:245:18 | write_all | provenance | MaD:8 Sink:MaD:8 Sink:MaD:8 | | test_logging.rs:245:28:245:53 | ...::format(...) | test_logging.rs:245:28:245:53 | { ... } | provenance | | | test_logging.rs:245:28:245:53 | ...::must_use(...) | test_logging.rs:245:20:245:54 | MacroExpr | provenance | | -| test_logging.rs:245:28:245:53 | MacroExpr | test_logging.rs:245:28:245:53 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:245:28:245:53 | { ... } | test_logging.rs:245:28:245:53 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:245:28:245:53 | MacroExpr | test_logging.rs:245:28:245:53 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:245:28:245:53 | { ... } | test_logging.rs:245:28:245:53 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:245:46:245:53 | password | test_logging.rs:245:28:245:53 | MacroExpr | provenance | | -| test_logging.rs:248:15:248:49 | MacroExpr | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | provenance | MaD:18 | -| test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | test_logging.rs:248:9:248:13 | write | provenance | MaD:7 Sink:MaD:7 | +| test_logging.rs:248:15:248:49 | MacroExpr | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref, element] | provenance | MaD:17 | +| test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref, element] | test_logging.rs:248:9:248:13 | write | provenance | MaD:7 Sink:MaD:7 Sink:MaD:7 | | test_logging.rs:248:23:248:48 | ...::format(...) | test_logging.rs:248:23:248:48 | { ... } | provenance | | | test_logging.rs:248:23:248:48 | ...::must_use(...) | test_logging.rs:248:15:248:49 | MacroExpr | provenance | | -| test_logging.rs:248:23:248:48 | MacroExpr | test_logging.rs:248:23:248:48 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:248:23:248:48 | { ... } | test_logging.rs:248:23:248:48 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:248:23:248:48 | MacroExpr | test_logging.rs:248:23:248:48 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:248:23:248:48 | { ... } | test_logging.rs:248:23:248:48 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:248:41:248:48 | password | test_logging.rs:248:23:248:48 | MacroExpr | provenance | | -| test_logging.rs:251:15:251:49 | MacroExpr | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | provenance | MaD:18 | -| test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | test_logging.rs:251:9:251:13 | write | provenance | MaD:6 Sink:MaD:6 | +| test_logging.rs:251:15:251:49 | MacroExpr | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref, element] | provenance | MaD:17 | +| test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref, element] | test_logging.rs:251:9:251:13 | write | provenance | MaD:6 Sink:MaD:6 Sink:MaD:6 | | test_logging.rs:251:23:251:48 | ...::format(...) | test_logging.rs:251:23:251:48 | { ... } | provenance | | | test_logging.rs:251:23:251:48 | ...::must_use(...) | test_logging.rs:251:15:251:49 | MacroExpr | provenance | | -| test_logging.rs:251:23:251:48 | MacroExpr | test_logging.rs:251:23:251:48 | ...::format(...) | provenance | MaD:20 | -| test_logging.rs:251:23:251:48 | { ... } | test_logging.rs:251:23:251:48 | ...::must_use(...) | provenance | MaD:21 | +| test_logging.rs:251:23:251:48 | MacroExpr | test_logging.rs:251:23:251:48 | ...::format(...) | provenance | MaD:19 | +| test_logging.rs:251:23:251:48 | { ... } | test_logging.rs:251:23:251:48 | ...::must_use(...) | provenance | MaD:20 | | test_logging.rs:251:41:251:48 | password | test_logging.rs:251:23:251:48 | MacroExpr | provenance | | models | 1 | Sink: ::log_expect; Argument[0]; log-injection | @@ -272,11 +271,10 @@ models | 14 | Sink: std::io::stdio::_print; Argument[0]; log-injection | | 15 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | | 16 | Summary: ::add; Argument[0].Reference; ReturnValue; taint | -| 17 | Summary: ::add; Argument[self,0]; ReturnValue; taint | -| 18 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | -| 19 | Summary: ::as_str; Argument[self]; ReturnValue; value | -| 20 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | -| 21 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 17 | Summary: ::as_bytes; Argument[self].Reference; ReturnValue.Reference.Element; taint | +| 18 | Summary: ::as_str; Argument[self].Reference; ReturnValue.Reference; taint | +| 19 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 20 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes | test_logging.rs:42:5:42:10 | ...::log | semmle.label | ...::log | | test_logging.rs:42:12:42:35 | MacroExpr | semmle.label | MacroExpr | @@ -491,7 +489,7 @@ nodes | test_logging.rs:229:54:229:61 | password | semmle.label | password | | test_logging.rs:242:10:242:14 | write | semmle.label | write | | test_logging.rs:242:16:242:50 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | semmle.label | ... .as_bytes() [&ref] | +| test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref, element] | semmle.label | ... .as_bytes() [&ref, element] | | test_logging.rs:242:24:242:49 | ...::format(...) | semmle.label | ...::format(...) | | test_logging.rs:242:24:242:49 | ...::must_use(...) | semmle.label | ...::must_use(...) | | test_logging.rs:242:24:242:49 | MacroExpr | semmle.label | MacroExpr | @@ -499,7 +497,7 @@ nodes | test_logging.rs:242:42:242:49 | password | semmle.label | password | | test_logging.rs:245:10:245:18 | write_all | semmle.label | write_all | | test_logging.rs:245:20:245:54 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | semmle.label | ... .as_bytes() [&ref] | +| test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref, element] | semmle.label | ... .as_bytes() [&ref, element] | | test_logging.rs:245:28:245:53 | ...::format(...) | semmle.label | ...::format(...) | | test_logging.rs:245:28:245:53 | ...::must_use(...) | semmle.label | ...::must_use(...) | | test_logging.rs:245:28:245:53 | MacroExpr | semmle.label | MacroExpr | @@ -507,7 +505,7 @@ nodes | test_logging.rs:245:46:245:53 | password | semmle.label | password | | test_logging.rs:248:9:248:13 | write | semmle.label | write | | test_logging.rs:248:15:248:49 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | semmle.label | ... .as_bytes() [&ref] | +| test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref, element] | semmle.label | ... .as_bytes() [&ref, element] | | test_logging.rs:248:23:248:48 | ...::format(...) | semmle.label | ...::format(...) | | test_logging.rs:248:23:248:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | | test_logging.rs:248:23:248:48 | MacroExpr | semmle.label | MacroExpr | @@ -515,7 +513,7 @@ nodes | test_logging.rs:248:41:248:48 | password | semmle.label | password | | test_logging.rs:251:9:251:13 | write | semmle.label | write | | test_logging.rs:251:15:251:49 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | semmle.label | ... .as_bytes() [&ref] | +| test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref, element] | semmle.label | ... .as_bytes() [&ref, element] | | test_logging.rs:251:23:251:48 | ...::format(...) | semmle.label | ...::format(...) | | test_logging.rs:251:23:251:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | | test_logging.rs:251:23:251:48 | MacroExpr | semmle.label | MacroExpr | diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextStorageDatabase.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextStorageDatabase.expected index 23a715355f4..732b422c65f 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextStorageDatabase.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextStorageDatabase.expected @@ -15,7 +15,6 @@ edges | test_storage.rs:71:9:71:21 | insert_query2 | test_storage.rs:139:25:139:37 | insert_query2 | provenance | | | test_storage.rs:71:25:71:114 | ... + ... | test_storage.rs:71:25:71:121 | ... + ... | provenance | MaD:7 | | test_storage.rs:71:25:71:121 | ... + ... | test_storage.rs:71:9:71:21 | insert_query2 | provenance | | -| test_storage.rs:71:96:71:114 | &... | test_storage.rs:71:25:71:114 | ... + ... | provenance | MaD:7 | | test_storage.rs:71:96:71:114 | &... | test_storage.rs:71:25:71:114 | ... + ... | provenance | MaD:6 | | test_storage.rs:71:96:71:114 | &... [&ref] | test_storage.rs:71:25:71:114 | ... + ... | provenance | MaD:6 | | test_storage.rs:71:97:71:114 | get_phone_number(...) | test_storage.rs:71:96:71:114 | &... | provenance | Config | @@ -33,7 +32,6 @@ edges | test_storage.rs:189:9:189:24 | insert_query_bad | test_storage.rs:194:25:194:40 | insert_query_bad | provenance | | | test_storage.rs:189:28:189:117 | ... + ... | test_storage.rs:189:28:189:124 | ... + ... | provenance | MaD:7 | | test_storage.rs:189:28:189:124 | ... + ... | test_storage.rs:189:9:189:24 | insert_query_bad | provenance | | -| test_storage.rs:189:99:189:117 | &... | test_storage.rs:189:28:189:117 | ... + ... | provenance | MaD:7 | | test_storage.rs:189:99:189:117 | &... | test_storage.rs:189:28:189:117 | ... + ... | provenance | MaD:6 | | test_storage.rs:189:99:189:117 | &... [&ref] | test_storage.rs:189:28:189:117 | ... + ... | provenance | MaD:6 | | test_storage.rs:189:100:189:117 | get_phone_number(...) | test_storage.rs:189:99:189:117 | &... | provenance | Config | @@ -41,7 +39,6 @@ edges | test_storage.rs:190:9:190:24 | select_query_bad | test_storage.rs:196:35:196:50 | select_query_bad | provenance | | | test_storage.rs:190:28:190:103 | ... + ... | test_storage.rs:190:28:190:109 | ... + ... | provenance | MaD:7 | | test_storage.rs:190:28:190:109 | ... + ... | test_storage.rs:190:9:190:24 | select_query_bad | provenance | | -| test_storage.rs:190:85:190:103 | &... | test_storage.rs:190:28:190:103 | ... + ... | provenance | MaD:7 | | test_storage.rs:190:85:190:103 | &... | test_storage.rs:190:28:190:103 | ... + ... | provenance | MaD:6 | | test_storage.rs:190:85:190:103 | &... [&ref] | test_storage.rs:190:28:190:103 | ... + ... | provenance | MaD:6 | | test_storage.rs:190:86:190:103 | get_phone_number(...) | test_storage.rs:190:85:190:103 | &... | provenance | Config | @@ -66,8 +63,8 @@ models | 4 | Sink: sqlx_core::query::query; Argument[0]; sql-injection | | 5 | Sink: sqlx_core::raw_sql::raw_sql; Argument[0]; sql-injection | | 6 | Summary: ::add; Argument[0].Reference; ReturnValue; taint | -| 7 | Summary: ::add; Argument[self,0]; ReturnValue; taint | -| 8 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 7 | Summary: ::add; Argument[self]; ReturnValue; taint | +| 8 | Summary: ::as_str; Argument[self].Reference; ReturnValue.Reference; taint | nodes | test_storage.rs:71:9:71:21 | insert_query2 | semmle.label | insert_query2 | | test_storage.rs:71:25:71:114 | ... + ... | semmle.label | ... + ... | From 7658ebb4490ce80971d1427cb9b2f23380cec36d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 9 Jan 2026 12:00:51 +0000 Subject: [PATCH 105/263] Rust: Add spurious test case for rust/uncontrolled-allocation-size. --- .../UncontrolledAllocationSize.expected | 534 +++++++++--------- .../test/query-tests/security/CWE-770/main.rs | 3 + 2 files changed, 273 insertions(+), 264 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected index 24edd2ff7f5..ad50ebbcd49 100644 --- a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected +++ b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected @@ -1,166 +1,167 @@ #select -| main.rs:18:13:18:31 | ...::realloc | main.rs:317:13:317:26 | ...::args | main.rs:18:13:18:31 | ...::realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:21:13:21:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:21:13:21:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:22:13:22:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:22:13:22:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:23:13:23:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:23:13:23:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:24:13:24:36 | ...::alloc_zeroed | main.rs:317:13:317:26 | ...::args | main.rs:24:13:24:36 | ...::alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:30:13:30:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:30:13:30:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:33:13:33:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:33:13:33:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:37:13:37:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:37:13:37:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:40:13:40:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:40:13:40:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:50:13:50:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:50:13:50:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:51:13:51:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:51:13:51:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:53:13:53:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:53:13:53:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:54:13:54:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:54:13:54:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:59:13:59:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:59:13:59:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:61:13:61:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:61:13:61:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:63:13:63:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:63:13:63:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:64:13:64:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:64:13:64:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:65:13:65:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:65:13:65:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:68:13:68:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:68:13:68:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:88:13:88:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:88:13:88:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:96:17:96:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:96:17:96:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:102:17:102:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:102:17:102:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:103:17:103:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:103:17:103:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:109:17:109:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:109:17:109:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:111:17:111:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:111:17:111:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:146:17:146:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:146:17:146:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:148:17:148:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:148:17:148:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:152:13:152:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:152:13:152:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:155:13:155:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:155:13:155:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:162:17:162:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:162:17:162:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:169:17:169:33 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:169:17:169:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:177:13:177:29 | ...::alloc | main.rs:317:13:317:26 | ...::args | main.rs:177:13:177:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:193:32:193:36 | alloc | main.rs:317:13:317:26 | ...::args | main.rs:193:32:193:36 | alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:194:32:194:43 | alloc_zeroed | main.rs:317:13:317:26 | ...::args | main.rs:194:32:194:43 | alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:194:32:194:43 | alloc_zeroed | main.rs:317:13:317:26 | ...::args | main.rs:194:32:194:43 | alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:195:32:195:39 | allocate | main.rs:317:13:317:26 | ...::args | main.rs:195:32:195:39 | allocate | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:196:32:196:46 | allocate_zeroed | main.rs:317:13:317:26 | ...::args | main.rs:196:32:196:46 | allocate_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:197:32:197:39 | allocate | main.rs:317:13:317:26 | ...::args | main.rs:197:32:197:39 | allocate | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:198:32:198:46 | allocate_zeroed | main.rs:317:13:317:26 | ...::args | main.rs:198:32:198:46 | allocate_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:202:32:202:38 | realloc | main.rs:317:13:317:26 | ...::args | main.rs:202:32:202:38 | realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:202:32:202:38 | realloc | main.rs:317:13:317:26 | ...::args | main.rs:202:32:202:38 | realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:208:40:208:43 | grow | main.rs:317:13:317:26 | ...::args | main.rs:208:40:208:43 | grow | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:210:40:210:50 | grow_zeroed | main.rs:317:13:317:26 | ...::args | main.rs:210:40:210:50 | grow_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:213:36:213:41 | shrink | main.rs:317:13:317:26 | ...::args | main.rs:213:36:213:41 | shrink | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:219:13:219:24 | ...::malloc | main.rs:317:13:317:26 | ...::args | main.rs:219:13:219:24 | ...::malloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:220:13:220:31 | ...::aligned_alloc | main.rs:317:13:317:26 | ...::args | main.rs:220:13:220:31 | ...::aligned_alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:222:13:222:24 | ...::calloc | main.rs:317:13:317:26 | ...::args | main.rs:222:13:222:24 | ...::calloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:223:13:223:24 | ...::calloc | main.rs:317:13:317:26 | ...::args | main.rs:223:13:223:24 | ...::calloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:224:13:224:25 | ...::realloc | main.rs:317:13:317:26 | ...::args | main.rs:224:13:224:25 | ...::realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:230:13:230:44 | ...::try_with_capacity_in | main.rs:317:13:317:26 | ...::args | main.rs:230:13:230:44 | ...::try_with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:231:13:231:40 | ...::with_capacity_in | main.rs:317:13:317:26 | ...::args | main.rs:231:13:231:40 | ...::with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:317:13:317:26 | ...::args | user-provided value | -| main.rs:284:22:284:38 | ...::alloc | main.rs:308:25:308:38 | ...::args | main.rs:284:22:284:38 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:308:25:308:38 | ...::args | user-provided value | +| main.rs:18:13:18:31 | ...::realloc | main.rs:320:13:320:26 | ...::args | main.rs:18:13:18:31 | ...::realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:21:13:21:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:21:13:21:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:22:13:22:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:22:13:22:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:23:13:23:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:23:13:23:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:24:13:24:36 | ...::alloc_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:24:13:24:36 | ...::alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:30:13:30:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:30:13:30:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:33:13:33:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:33:13:33:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:37:13:37:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:37:13:37:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:40:13:40:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:40:13:40:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:50:13:50:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:50:13:50:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:51:13:51:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:51:13:51:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:53:13:53:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:53:13:53:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:54:13:54:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:54:13:54:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:59:13:59:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:59:13:59:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:61:13:61:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:61:13:61:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:63:13:63:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:63:13:63:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:64:13:64:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:64:13:64:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:65:13:65:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:65:13:65:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:68:13:68:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:68:13:68:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:88:13:88:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:88:13:88:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:96:17:96:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:96:17:96:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:102:17:102:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:102:17:102:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:103:17:103:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:103:17:103:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:109:17:109:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:109:17:109:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:111:17:111:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:111:17:111:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:146:17:146:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:146:17:146:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:148:17:148:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:148:17:148:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:152:13:152:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:152:13:152:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:155:13:155:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:155:13:155:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:162:17:162:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:162:17:162:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:169:17:169:33 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:169:17:169:33 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:177:13:177:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:177:13:177:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:193:32:193:36 | alloc | main.rs:320:13:320:26 | ...::args | main.rs:193:32:193:36 | alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:194:32:194:43 | alloc_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:194:32:194:43 | alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:194:32:194:43 | alloc_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:194:32:194:43 | alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:195:32:195:39 | allocate | main.rs:320:13:320:26 | ...::args | main.rs:195:32:195:39 | allocate | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:196:32:196:46 | allocate_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:196:32:196:46 | allocate_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:197:32:197:39 | allocate | main.rs:320:13:320:26 | ...::args | main.rs:197:32:197:39 | allocate | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:198:32:198:46 | allocate_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:198:32:198:46 | allocate_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:202:32:202:38 | realloc | main.rs:320:13:320:26 | ...::args | main.rs:202:32:202:38 | realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:202:32:202:38 | realloc | main.rs:320:13:320:26 | ...::args | main.rs:202:32:202:38 | realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:208:40:208:43 | grow | main.rs:320:13:320:26 | ...::args | main.rs:208:40:208:43 | grow | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:210:40:210:50 | grow_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:210:40:210:50 | grow_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:213:36:213:41 | shrink | main.rs:320:13:320:26 | ...::args | main.rs:213:36:213:41 | shrink | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:219:13:219:24 | ...::malloc | main.rs:320:13:320:26 | ...::args | main.rs:219:13:219:24 | ...::malloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:220:13:220:31 | ...::aligned_alloc | main.rs:320:13:320:26 | ...::args | main.rs:220:13:220:31 | ...::aligned_alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:222:13:222:24 | ...::calloc | main.rs:320:13:320:26 | ...::args | main.rs:222:13:222:24 | ...::calloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:223:13:223:24 | ...::calloc | main.rs:320:13:320:26 | ...::args | main.rs:223:13:223:24 | ...::calloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:224:13:224:25 | ...::realloc | main.rs:320:13:320:26 | ...::args | main.rs:224:13:224:25 | ...::realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:230:13:230:44 | ...::try_with_capacity_in | main.rs:320:13:320:26 | ...::args | main.rs:230:13:230:44 | ...::try_with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:231:13:231:40 | ...::with_capacity_in | main.rs:320:13:320:26 | ...::args | main.rs:231:13:231:40 | ...::with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:242:16:242:24 | split_off | main.rs:320:13:320:26 | ...::args | main.rs:242:16:242:24 | split_off | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:287:22:287:38 | ...::alloc | main.rs:311:25:311:38 | ...::args | main.rs:287:22:287:38 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:311:25:311:38 | ...::args | user-provided value | edges | main.rs:12:36:12:43 | ...: usize | main.rs:18:41:18:41 | v | provenance | | -| main.rs:18:41:18:41 | v | main.rs:18:13:18:31 | ...::realloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:18:41:18:41 | v | main.rs:18:13:18:31 | ...::realloc | provenance | MaD:18 Sink:MaD:18 | | main.rs:18:41:18:41 | v | main.rs:20:50:20:50 | v | provenance | | | main.rs:18:41:18:41 | v | main.rs:29:60:29:60 | v | provenance | | | main.rs:18:41:18:41 | v | main.rs:32:60:32:60 | v | provenance | | | main.rs:18:41:18:41 | v | main.rs:35:49:35:49 | v | provenance | | | main.rs:20:9:20:10 | l2 | main.rs:21:31:21:32 | l2 | provenance | | -| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:42 | +| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:43 | | main.rs:20:14:20:63 | ... .unwrap() | main.rs:20:9:20:10 | l2 | provenance | | -| main.rs:20:50:20:50 | v | main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | -| main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:20:50:20:50 | v | main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | +| main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:21:31:21:32 | l2 | main.rs:22:31:22:32 | l2 | provenance | | | main.rs:21:31:21:32 | l2 | main.rs:23:31:23:32 | l2 | provenance | | | main.rs:21:31:21:32 | l2 | main.rs:24:38:24:39 | l2 | provenance | | -| main.rs:22:31:22:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:28 | -| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:42 | -| main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:23:31:23:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:28 | -| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:42 | -| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:36 | -| main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:16 Sink:MaD:16 | +| main.rs:22:31:22:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:29 | +| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:43 | +| main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:23:31:23:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:29 | +| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:43 | +| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:37 | +| main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:17 Sink:MaD:17 | | main.rs:29:9:29:10 | l4 | main.rs:30:31:30:32 | l4 | provenance | | | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | main.rs:29:9:29:10 | l4 | provenance | | -| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | -| main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | +| main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:32:9:32:10 | l5 | main.rs:33:31:33:32 | l5 | provenance | | | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | main.rs:32:9:32:10 | l5 | provenance | | -| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:27 | -| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:45 | -| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | -| main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:28 | +| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:46 | +| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | +| main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:35:9:35:10 | s6 | main.rs:36:60:36:61 | s6 | provenance | | | main.rs:35:14:35:54 | ... + ... | main.rs:35:9:35:10 | s6 | provenance | | -| main.rs:35:15:35:49 | ... * ... | main.rs:35:14:35:54 | ... + ... | provenance | MaD:24 | +| main.rs:35:15:35:49 | ... * ... | main.rs:35:14:35:54 | ... + ... | provenance | MaD:25 | +| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:27 | | main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:26 | -| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:25 | -| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:44 | +| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:45 | | main.rs:36:9:36:10 | l6 | main.rs:37:31:37:32 | l6 | provenance | | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | main.rs:36:9:36:10 | l6 | provenance | | -| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | -| main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | +| main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:37:31:37:32 | l6 | main.rs:39:60:39:61 | l6 | provenance | | | main.rs:39:9:39:10 | l7 | main.rs:40:31:40:32 | l7 | provenance | | | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | main.rs:39:9:39:10 | l7 | provenance | | -| main.rs:39:60:39:61 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:39 | -| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | -| main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:39:60:39:61 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:40 | +| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | +| main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:43:44:43:51 | ...: usize | main.rs:50:41:50:41 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:51:41:51:41 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:53:48:53:48 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:54:48:54:48 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:58:34:58:34 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:67:46:67:46 | v | provenance | | -| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:42 | +| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:43 | | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | main.rs:50:31:50:53 | ... .0 | provenance | | -| main.rs:50:31:50:53 | ... .0 | main.rs:50:13:50:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:37 | -| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:42 | +| main.rs:50:31:50:53 | ... .0 | main.rs:50:13:50:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:38 | +| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:43 | | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | main.rs:51:31:51:57 | ... .0 | provenance | | -| main.rs:51:31:51:57 | ... .0 | main.rs:51:13:51:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:51:41:51:41 | v | main.rs:51:41:51:45 | ... + ... | provenance | MaD:24 | -| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:37 | -| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:42 | -| main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:38 | -| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:42 | -| main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:54:48:54:48 | v | main.rs:54:48:54:53 | ... * ... | provenance | MaD:27 | -| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:38 | +| main.rs:51:31:51:57 | ... .0 | main.rs:51:13:51:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:51:41:51:41 | v | main.rs:51:41:51:45 | ... + ... | provenance | MaD:25 | +| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:38 | +| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:43 | +| main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:39 | +| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:43 | +| main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:54:48:54:48 | v | main.rs:54:48:54:53 | ... * ... | provenance | MaD:28 | +| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:39 | | main.rs:58:9:58:20 | TuplePat [tuple.0] | main.rs:58:10:58:11 | k1 | provenance | | | main.rs:58:10:58:11 | k1 | main.rs:59:31:59:32 | k1 | provenance | | -| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:41 | +| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:42 | | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | main.rs:58:9:58:20 | TuplePat [tuple.0] | provenance | | -| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:37 | -| main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:38 | +| main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:59:31:59:32 | k1 | main.rs:60:34:60:35 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:62:24:62:25 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:64:48:64:49 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:65:31:65:32 | k1 | provenance | | | main.rs:60:9:60:20 | TuplePat [tuple.0] | main.rs:60:10:60:11 | k2 | provenance | | | main.rs:60:10:60:11 | k2 | main.rs:61:31:61:32 | k2 | provenance | | -| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:42 | +| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:43 | | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | main.rs:60:9:60:20 | TuplePat [tuple.0] | provenance | | -| main.rs:60:34:60:35 | k1 | main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | provenance | MaD:30 | -| main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:60:34:60:35 | k1 | main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | provenance | MaD:31 | +| main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:62:9:62:20 | TuplePat [tuple.0] | main.rs:62:10:62:11 | k3 | provenance | | | main.rs:62:10:62:11 | k3 | main.rs:63:31:63:32 | k3 | provenance | | -| main.rs:62:24:62:25 | k1 | main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | provenance | MaD:31 | -| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:42 | +| main.rs:62:24:62:25 | k1 | main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | provenance | MaD:32 | +| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:43 | | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | main.rs:62:9:62:20 | TuplePat [tuple.0] | provenance | | -| main.rs:63:31:63:32 | k3 | main.rs:63:13:63:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:42 | -| main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:32 | -| main.rs:65:31:65:32 | k1 | main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | provenance | MaD:33 | -| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:42 | -| main.rs:65:31:65:59 | ... .unwrap() | main.rs:65:13:65:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:63:31:63:32 | k3 | main.rs:63:13:63:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:43 | +| main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:33 | +| main.rs:65:31:65:32 | k1 | main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | provenance | MaD:34 | +| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:43 | +| main.rs:65:31:65:59 | ... .unwrap() | main.rs:65:13:65:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:67:9:67:10 | l4 | main.rs:68:31:68:32 | l4 | provenance | | -| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:42 | +| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:43 | | main.rs:67:14:67:56 | ... .unwrap() | main.rs:67:9:67:10 | l4 | provenance | | -| main.rs:67:46:67:46 | v | main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | -| main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:67:46:67:46 | v | main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | +| main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:86:35:86:42 | ...: usize | main.rs:87:54:87:54 | v | provenance | | | main.rs:87:9:87:14 | layout | main.rs:88:31:88:36 | layout | provenance | | -| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:42 | +| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:43 | | main.rs:87:18:87:67 | ... .unwrap() | main.rs:87:9:87:14 | layout | provenance | | -| main.rs:87:54:87:54 | v | main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | -| main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:87:54:87:54 | v | main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | +| main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:91:38:91:45 | ...: usize | main.rs:92:47:92:47 | v | provenance | | | main.rs:91:38:91:45 | ...: usize | main.rs:101:51:101:51 | v | provenance | | | main.rs:91:38:91:45 | ...: usize | main.rs:105:33:105:33 | v | provenance | | @@ -170,66 +171,66 @@ edges | main.rs:91:38:91:45 | ...: usize | main.rs:161:55:161:55 | v | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:96:35:96:36 | l1 | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:102:35:102:36 | l1 | provenance | | -| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:42 | +| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:43 | | main.rs:92:14:92:57 | ... .unwrap() | main.rs:92:9:92:10 | l1 | provenance | | -| main.rs:92:47:92:47 | v | main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | -| main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:92:47:92:47 | v | main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | +| main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:96:35:96:36 | l1 | main.rs:109:35:109:36 | l1 | provenance | | | main.rs:96:35:96:36 | l1 | main.rs:111:35:111:36 | l1 | provenance | | | main.rs:101:13:101:14 | l3 | main.rs:103:35:103:36 | l3 | provenance | | -| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:42 | +| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:43 | | main.rs:101:18:101:61 | ... .unwrap() | main.rs:101:13:101:14 | l3 | provenance | | -| main.rs:101:51:101:51 | v | main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | -| main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:101:51:101:51 | v | main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | +| main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:102:35:102:36 | l1 | main.rs:109:35:109:36 | l1 | provenance | | | main.rs:102:35:102:36 | l1 | main.rs:111:35:111:36 | l1 | provenance | | -| main.rs:103:35:103:36 | l3 | main.rs:103:17:103:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:103:35:103:36 | l3 | main.rs:103:17:103:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:105:33:105:33 | v | main.rs:86:35:86:42 | ...: usize | provenance | | -| main.rs:109:35:109:36 | l1 | main.rs:109:17:109:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:109:35:109:36 | l1 | main.rs:109:17:109:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:109:35:109:36 | l1 | main.rs:146:35:146:36 | l1 | provenance | | -| main.rs:111:35:111:36 | l1 | main.rs:111:17:111:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:111:35:111:36 | l1 | main.rs:111:17:111:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:111:35:111:36 | l1 | main.rs:146:35:146:36 | l1 | provenance | | | main.rs:145:13:145:14 | l9 | main.rs:148:35:148:36 | l9 | provenance | | -| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:42 | +| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:43 | | main.rs:145:18:145:61 | ... .unwrap() | main.rs:145:13:145:14 | l9 | provenance | | -| main.rs:145:51:145:51 | v | main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | -| main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:145:51:145:51 | v | main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | +| main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:146:35:146:36 | l1 | main.rs:177:31:177:32 | l1 | provenance | | -| main.rs:148:35:148:36 | l9 | main.rs:148:17:148:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:148:35:148:36 | l9 | main.rs:148:17:148:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:151:9:151:11 | l10 | main.rs:152:31:152:33 | l10 | provenance | | -| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:42 | +| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:43 | | main.rs:151:15:151:78 | ... .unwrap() | main.rs:151:9:151:11 | l10 | provenance | | -| main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | -| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:47 | -| main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | +| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:48 | +| main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:154:9:154:11 | l11 | main.rs:155:31:155:33 | l11 | provenance | | -| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:42 | +| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:43 | | main.rs:154:15:154:78 | ... .unwrap() | main.rs:154:9:154:11 | l11 | provenance | | -| main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | -| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:46 | -| main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | +| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:47 | +| main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:161:13:161:15 | l13 | main.rs:162:35:162:37 | l13 | provenance | | -| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:42 | +| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:43 | | main.rs:161:19:161:68 | ... .unwrap() | main.rs:161:13:161:15 | l13 | provenance | | -| main.rs:161:55:161:55 | v | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | -| main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:161:55:161:55 | v | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | +| main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:162:35:162:37 | l13 | main.rs:169:35:169:37 | l13 | provenance | | -| main.rs:169:35:169:37 | l13 | main.rs:169:17:169:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:169:35:169:37 | l13 | main.rs:169:17:169:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | | main.rs:183:29:183:36 | ...: usize | main.rs:192:46:192:46 | v | provenance | | | main.rs:183:29:183:36 | ...: usize | main.rs:202:48:202:48 | v | provenance | | | main.rs:192:9:192:10 | l2 | main.rs:193:38:193:39 | l2 | provenance | | -| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:42 | +| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:43 | | main.rs:192:14:192:56 | ... .unwrap() | main.rs:192:9:192:10 | l2 | provenance | | -| main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | -| main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:10 Sink:MaD:10 | +| main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | +| main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:11 Sink:MaD:11 | | main.rs:193:38:193:39 | l2 | main.rs:194:45:194:46 | l2 | provenance | | -| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:11 Sink:MaD:11 | | main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:12 Sink:MaD:12 | +| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:13 Sink:MaD:13 | | main.rs:194:45:194:46 | l2 | main.rs:195:41:195:42 | l2 | provenance | | -| main.rs:195:41:195:42 | l2 | main.rs:195:32:195:39 | allocate | provenance | MaD:5 Sink:MaD:5 | +| main.rs:195:41:195:42 | l2 | main.rs:195:32:195:39 | allocate | provenance | MaD:6 Sink:MaD:6 | | main.rs:195:41:195:42 | l2 | main.rs:196:48:196:49 | l2 | provenance | | -| main.rs:196:48:196:49 | l2 | main.rs:196:32:196:46 | allocate_zeroed | provenance | MaD:6 Sink:MaD:6 | +| main.rs:196:48:196:49 | l2 | main.rs:196:32:196:46 | allocate_zeroed | provenance | MaD:7 Sink:MaD:7 | | main.rs:196:48:196:49 | l2 | main.rs:197:41:197:42 | l2 | provenance | | | main.rs:197:41:197:42 | l2 | main.rs:197:32:197:39 | allocate | provenance | MaD:1 Sink:MaD:1 | | main.rs:197:41:197:42 | l2 | main.rs:198:48:198:49 | l2 | provenance | | @@ -237,107 +238,110 @@ edges | main.rs:198:48:198:49 | l2 | main.rs:208:53:208:54 | l2 | provenance | | | main.rs:198:48:198:49 | l2 | main.rs:210:60:210:61 | l2 | provenance | | | main.rs:198:48:198:49 | l2 | main.rs:213:51:213:52 | l2 | provenance | | -| main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:13 Sink:MaD:13 | | main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:14 Sink:MaD:14 | -| main.rs:208:53:208:54 | l2 | main.rs:208:40:208:43 | grow | provenance | MaD:7 Sink:MaD:7 | -| main.rs:210:60:210:61 | l2 | main.rs:210:40:210:50 | grow_zeroed | provenance | MaD:8 Sink:MaD:8 | -| main.rs:213:51:213:52 | l2 | main.rs:213:36:213:41 | shrink | provenance | MaD:9 Sink:MaD:9 | +| main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:208:53:208:54 | l2 | main.rs:208:40:208:43 | grow | provenance | MaD:8 Sink:MaD:8 | +| main.rs:210:60:210:61 | l2 | main.rs:210:40:210:50 | grow_zeroed | provenance | MaD:9 Sink:MaD:9 | +| main.rs:213:51:213:52 | l2 | main.rs:213:36:213:41 | shrink | provenance | MaD:10 Sink:MaD:10 | | main.rs:217:27:217:34 | ...: usize | main.rs:219:26:219:26 | v | provenance | | -| main.rs:219:26:219:26 | v | main.rs:219:13:219:24 | ...::malloc | provenance | MaD:20 Sink:MaD:20 | +| main.rs:219:26:219:26 | v | main.rs:219:13:219:24 | ...::malloc | provenance | MaD:21 Sink:MaD:21 | | main.rs:219:26:219:26 | v | main.rs:220:36:220:36 | v | provenance | | -| main.rs:220:36:220:36 | v | main.rs:220:13:220:31 | ...::aligned_alloc | provenance | MaD:18 Sink:MaD:18 | +| main.rs:220:36:220:36 | v | main.rs:220:13:220:31 | ...::aligned_alloc | provenance | MaD:19 Sink:MaD:19 | | main.rs:220:36:220:36 | v | main.rs:222:30:222:30 | v | provenance | | -| main.rs:222:30:222:30 | v | main.rs:222:13:222:24 | ...::calloc | provenance | MaD:19 Sink:MaD:19 | +| main.rs:222:30:222:30 | v | main.rs:222:13:222:24 | ...::calloc | provenance | MaD:20 Sink:MaD:20 | | main.rs:222:30:222:30 | v | main.rs:223:26:223:26 | v | provenance | | -| main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:19 Sink:MaD:19 | +| main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:20 Sink:MaD:20 | | main.rs:223:26:223:26 | v | main.rs:224:31:224:31 | v | provenance | | -| main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:21 Sink:MaD:21 | +| main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:22 Sink:MaD:22 | | main.rs:227:24:227:31 | ...: usize | main.rs:230:46:230:46 | v | provenance | | -| main.rs:230:46:230:46 | v | main.rs:230:13:230:44 | ...::try_with_capacity_in | provenance | MaD:3 Sink:MaD:3 | +| main.rs:230:46:230:46 | v | main.rs:230:13:230:44 | ...::try_with_capacity_in | provenance | MaD:4 Sink:MaD:4 | | main.rs:230:46:230:46 | v | main.rs:231:42:231:42 | v | provenance | | -| main.rs:231:42:231:42 | v | main.rs:231:13:231:40 | ...::with_capacity_in | provenance | MaD:4 Sink:MaD:4 | -| main.rs:279:24:279:41 | ...: String | main.rs:280:21:280:30 | user_input | provenance | | -| main.rs:280:9:280:17 | num_bytes | main.rs:282:54:282:62 | num_bytes | provenance | | -| main.rs:280:21:280:30 | user_input | main.rs:280:21:280:47 | user_input.parse() [Ok] | provenance | MaD:43 | -| main.rs:280:21:280:47 | user_input.parse() [Ok] | main.rs:280:21:280:48 | TryExpr | provenance | | -| main.rs:280:21:280:48 | TryExpr | main.rs:280:21:280:77 | ... * ... | provenance | MaD:27 | -| main.rs:280:21:280:48 | TryExpr | main.rs:280:21:280:77 | ... * ... | provenance | MaD:45 | -| main.rs:280:21:280:77 | ... * ... | main.rs:280:9:280:17 | num_bytes | provenance | | -| main.rs:282:9:282:14 | layout | main.rs:284:40:284:45 | layout | provenance | | -| main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | main.rs:282:18:282:75 | ... .unwrap() | provenance | MaD:42 | -| main.rs:282:18:282:75 | ... .unwrap() | main.rs:282:9:282:14 | layout | provenance | | -| main.rs:282:54:282:62 | num_bytes | main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | -| main.rs:284:40:284:45 | layout | main.rs:284:22:284:38 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:308:25:308:38 | ...::args | main.rs:308:25:308:40 | ...::args(...) [element] | provenance | Src:MaD:22 | -| main.rs:308:25:308:40 | ...::args(...) [element] | main.rs:308:25:308:47 | ... .nth(...) [Some] | provenance | MaD:23 | -| main.rs:308:25:308:47 | ... .nth(...) [Some] | main.rs:308:25:308:74 | ... .unwrap_or(...) | provenance | MaD:40 | -| main.rs:308:25:308:74 | ... .unwrap_or(...) | main.rs:279:24:279:41 | ...: String | provenance | | -| main.rs:317:9:317:9 | v | main.rs:320:34:320:34 | v | provenance | | -| main.rs:317:9:317:9 | v | main.rs:321:42:321:42 | v | provenance | | -| main.rs:317:9:317:9 | v | main.rs:322:36:322:36 | v | provenance | | -| main.rs:317:9:317:9 | v | main.rs:323:27:323:27 | v | provenance | | -| main.rs:317:9:317:9 | v | main.rs:324:25:324:25 | v | provenance | | -| main.rs:317:9:317:9 | v | main.rs:325:22:325:22 | v | provenance | | -| main.rs:317:13:317:26 | ...::args | main.rs:317:13:317:28 | ...::args(...) [element] | provenance | Src:MaD:22 | -| main.rs:317:13:317:28 | ...::args(...) [element] | main.rs:317:13:317:35 | ... .nth(...) [Some] | provenance | MaD:23 | -| main.rs:317:13:317:35 | ... .nth(...) [Some] | main.rs:317:13:317:65 | ... .unwrap_or(...) | provenance | MaD:40 | -| main.rs:317:13:317:65 | ... .unwrap_or(...) | main.rs:317:13:317:82 | ... .parse() [Ok] | provenance | MaD:43 | -| main.rs:317:13:317:82 | ... .parse() [Ok] | main.rs:317:13:317:91 | ... .unwrap() | provenance | MaD:42 | -| main.rs:317:13:317:91 | ... .unwrap() | main.rs:317:9:317:9 | v | provenance | | -| main.rs:320:34:320:34 | v | main.rs:12:36:12:43 | ...: usize | provenance | | -| main.rs:321:42:321:42 | v | main.rs:43:44:43:51 | ...: usize | provenance | | -| main.rs:322:36:322:36 | v | main.rs:91:38:91:45 | ...: usize | provenance | | -| main.rs:323:27:323:27 | v | main.rs:183:29:183:36 | ...: usize | provenance | | -| main.rs:324:25:324:25 | v | main.rs:217:27:217:34 | ...: usize | provenance | | -| main.rs:325:22:325:22 | v | main.rs:227:24:227:31 | ...: usize | provenance | | +| main.rs:231:42:231:42 | v | main.rs:231:13:231:40 | ...::with_capacity_in | provenance | MaD:5 Sink:MaD:5 | +| main.rs:231:42:231:42 | v | main.rs:242:26:242:26 | v | provenance | | +| main.rs:242:26:242:26 | v | main.rs:242:16:242:24 | split_off | provenance | MaD:3 Sink:MaD:3 | +| main.rs:282:24:282:41 | ...: String | main.rs:283:21:283:30 | user_input | provenance | | +| main.rs:283:9:283:17 | num_bytes | main.rs:285:54:285:62 | num_bytes | provenance | | +| main.rs:283:21:283:30 | user_input | main.rs:283:21:283:47 | user_input.parse() [Ok] | provenance | MaD:44 | +| main.rs:283:21:283:47 | user_input.parse() [Ok] | main.rs:283:21:283:48 | TryExpr | provenance | | +| main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:28 | +| main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:46 | +| main.rs:283:21:283:77 | ... * ... | main.rs:283:9:283:17 | num_bytes | provenance | | +| main.rs:285:9:285:14 | layout | main.rs:287:40:287:45 | layout | provenance | | +| main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | main.rs:285:18:285:75 | ... .unwrap() | provenance | MaD:43 | +| main.rs:285:18:285:75 | ... .unwrap() | main.rs:285:9:285:14 | layout | provenance | | +| main.rs:285:54:285:62 | num_bytes | main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | +| main.rs:287:40:287:45 | layout | main.rs:287:22:287:38 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:311:25:311:38 | ...::args | main.rs:311:25:311:40 | ...::args(...) [element] | provenance | Src:MaD:23 | +| main.rs:311:25:311:40 | ...::args(...) [element] | main.rs:311:25:311:47 | ... .nth(...) [Some] | provenance | MaD:24 | +| main.rs:311:25:311:47 | ... .nth(...) [Some] | main.rs:311:25:311:74 | ... .unwrap_or(...) | provenance | MaD:41 | +| main.rs:311:25:311:74 | ... .unwrap_or(...) | main.rs:282:24:282:41 | ...: String | provenance | | +| main.rs:320:9:320:9 | v | main.rs:323:34:323:34 | v | provenance | | +| main.rs:320:9:320:9 | v | main.rs:324:42:324:42 | v | provenance | | +| main.rs:320:9:320:9 | v | main.rs:325:36:325:36 | v | provenance | | +| main.rs:320:9:320:9 | v | main.rs:326:27:326:27 | v | provenance | | +| main.rs:320:9:320:9 | v | main.rs:327:25:327:25 | v | provenance | | +| main.rs:320:9:320:9 | v | main.rs:328:22:328:22 | v | provenance | | +| main.rs:320:13:320:26 | ...::args | main.rs:320:13:320:28 | ...::args(...) [element] | provenance | Src:MaD:23 | +| main.rs:320:13:320:28 | ...::args(...) [element] | main.rs:320:13:320:35 | ... .nth(...) [Some] | provenance | MaD:24 | +| main.rs:320:13:320:35 | ... .nth(...) [Some] | main.rs:320:13:320:65 | ... .unwrap_or(...) | provenance | MaD:41 | +| main.rs:320:13:320:65 | ... .unwrap_or(...) | main.rs:320:13:320:82 | ... .parse() [Ok] | provenance | MaD:44 | +| main.rs:320:13:320:82 | ... .parse() [Ok] | main.rs:320:13:320:91 | ... .unwrap() | provenance | MaD:43 | +| main.rs:320:13:320:91 | ... .unwrap() | main.rs:320:9:320:9 | v | provenance | | +| main.rs:323:34:323:34 | v | main.rs:12:36:12:43 | ...: usize | provenance | | +| main.rs:324:42:324:42 | v | main.rs:43:44:43:51 | ...: usize | provenance | | +| main.rs:325:36:325:36 | v | main.rs:91:38:91:45 | ...: usize | provenance | | +| main.rs:326:27:326:27 | v | main.rs:183:29:183:36 | ...: usize | provenance | | +| main.rs:327:25:327:25 | v | main.rs:217:27:217:34 | ...: usize | provenance | | +| main.rs:328:22:328:22 | v | main.rs:227:24:227:31 | ...: usize | provenance | | models | 1 | Sink: ::allocate; Argument[0]; alloc-layout | | 2 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | -| 3 | Sink: ::try_with_capacity_in; Argument[0]; alloc-layout | -| 4 | Sink: ::with_capacity_in; Argument[0]; alloc-layout | -| 5 | Sink: ::allocate; Argument[0]; alloc-layout | -| 6 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | -| 7 | Sink: ::grow; Argument[2]; alloc-layout | -| 8 | Sink: ::grow_zeroed; Argument[2]; alloc-layout | -| 9 | Sink: ::shrink; Argument[2]; alloc-layout | -| 10 | Sink: ::alloc; Argument[0]; alloc-size | -| 11 | Sink: ::alloc_zeroed; Argument[0]; alloc-layout | -| 12 | Sink: ::alloc_zeroed; Argument[0]; alloc-size | -| 13 | Sink: ::realloc; Argument[2]; alloc-layout | -| 14 | Sink: ::realloc; Argument[2]; alloc-size | -| 15 | Sink: alloc::alloc::alloc; Argument[0]; alloc-layout | -| 16 | Sink: alloc::alloc::alloc_zeroed; Argument[0]; alloc-layout | -| 17 | Sink: alloc::alloc::realloc; Argument[2]; alloc-size | -| 18 | Sink: libc::unix::aligned_alloc; Argument[1]; alloc-size | -| 19 | Sink: libc::unix::calloc; Argument[0,1]; alloc-size | -| 20 | Sink: libc::unix::malloc; Argument[0]; alloc-size | -| 21 | Sink: libc::unix::realloc; Argument[1]; alloc-size | -| 22 | Source: std::env::args; ReturnValue.Element; commandargs | -| 23 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 24 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | -| 25 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0].Reference; ReturnValue; taint | -| 26 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0]; ReturnValue; taint | -| 27 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[self]; ReturnValue; taint | -| 28 | Summary: ::align_to; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 29 | Summary: ::array; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 30 | Summary: ::extend; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 31 | Summary: ::extend; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 32 | Summary: ::extend_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 33 | Summary: ::extend_packed; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 34 | Summary: ::from_size_align; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 35 | Summary: ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | -| 36 | Summary: ::pad_to_align; Argument[self].Reference; ReturnValue; taint | -| 37 | Summary: ::repeat; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 38 | Summary: ::repeat_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 39 | Summary: ::size; Argument[self].Reference; ReturnValue; taint | -| 40 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 41 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 42 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 43 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 44 | Summary: ::mul; Argument[0]; ReturnValue; taint | -| 45 | Summary: ::mul; Argument[self]; ReturnValue; taint | -| 46 | Summary: core::cmp::max; Argument[0]; ReturnValue; value | -| 47 | Summary: core::cmp::min; Argument[0]; ReturnValue; value | +| 3 | Sink: ::split_off; Argument[0]; alloc-layout | +| 4 | Sink: ::try_with_capacity_in; Argument[0]; alloc-layout | +| 5 | Sink: ::with_capacity_in; Argument[0]; alloc-layout | +| 6 | Sink: ::allocate; Argument[0]; alloc-layout | +| 7 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | +| 8 | Sink: ::grow; Argument[2]; alloc-layout | +| 9 | Sink: ::grow_zeroed; Argument[2]; alloc-layout | +| 10 | Sink: ::shrink; Argument[2]; alloc-layout | +| 11 | Sink: ::alloc; Argument[0]; alloc-size | +| 12 | Sink: ::alloc_zeroed; Argument[0]; alloc-layout | +| 13 | Sink: ::alloc_zeroed; Argument[0]; alloc-size | +| 14 | Sink: ::realloc; Argument[2]; alloc-layout | +| 15 | Sink: ::realloc; Argument[2]; alloc-size | +| 16 | Sink: alloc::alloc::alloc; Argument[0]; alloc-layout | +| 17 | Sink: alloc::alloc::alloc_zeroed; Argument[0]; alloc-layout | +| 18 | Sink: alloc::alloc::realloc; Argument[2]; alloc-size | +| 19 | Sink: libc::unix::aligned_alloc; Argument[1]; alloc-size | +| 20 | Sink: libc::unix::calloc; Argument[0,1]; alloc-size | +| 21 | Sink: libc::unix::malloc; Argument[0]; alloc-size | +| 22 | Sink: libc::unix::realloc; Argument[1]; alloc-size | +| 23 | Source: std::env::args; ReturnValue.Element; commandargs | +| 24 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 25 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | +| 26 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0].Reference; ReturnValue; taint | +| 27 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0]; ReturnValue; taint | +| 28 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[self]; ReturnValue; taint | +| 29 | Summary: ::align_to; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 30 | Summary: ::array; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 31 | Summary: ::extend; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 32 | Summary: ::extend; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 33 | Summary: ::extend_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 34 | Summary: ::extend_packed; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 35 | Summary: ::from_size_align; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 36 | Summary: ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | +| 37 | Summary: ::pad_to_align; Argument[self].Reference; ReturnValue; taint | +| 38 | Summary: ::repeat; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 39 | Summary: ::repeat_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 40 | Summary: ::size; Argument[self].Reference; ReturnValue; taint | +| 41 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 42 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 43 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 44 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 45 | Summary: ::mul; Argument[0]; ReturnValue; taint | +| 46 | Summary: ::mul; Argument[self]; ReturnValue; taint | +| 47 | Summary: core::cmp::max; Argument[0]; ReturnValue; value | +| 48 | Summary: core::cmp::min; Argument[0]; ReturnValue; value | nodes | main.rs:12:36:12:43 | ...: usize | semmle.label | ...: usize | | main.rs:18:13:18:31 | ...::realloc | semmle.label | ...::realloc | @@ -543,33 +547,35 @@ nodes | main.rs:230:46:230:46 | v | semmle.label | v | | main.rs:231:13:231:40 | ...::with_capacity_in | semmle.label | ...::with_capacity_in | | main.rs:231:42:231:42 | v | semmle.label | v | -| main.rs:279:24:279:41 | ...: String | semmle.label | ...: String | -| main.rs:280:9:280:17 | num_bytes | semmle.label | num_bytes | -| main.rs:280:21:280:30 | user_input | semmle.label | user_input | -| main.rs:280:21:280:47 | user_input.parse() [Ok] | semmle.label | user_input.parse() [Ok] | -| main.rs:280:21:280:48 | TryExpr | semmle.label | TryExpr | -| main.rs:280:21:280:77 | ... * ... | semmle.label | ... * ... | -| main.rs:282:9:282:14 | layout | semmle.label | layout | -| main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | semmle.label | ...::from_size_align(...) [Ok] | -| main.rs:282:18:282:75 | ... .unwrap() | semmle.label | ... .unwrap() | -| main.rs:282:54:282:62 | num_bytes | semmle.label | num_bytes | -| main.rs:284:22:284:38 | ...::alloc | semmle.label | ...::alloc | -| main.rs:284:40:284:45 | layout | semmle.label | layout | -| main.rs:308:25:308:38 | ...::args | semmle.label | ...::args | -| main.rs:308:25:308:40 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | -| main.rs:308:25:308:47 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] | -| main.rs:308:25:308:74 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | -| main.rs:317:9:317:9 | v | semmle.label | v | -| main.rs:317:13:317:26 | ...::args | semmle.label | ...::args | -| main.rs:317:13:317:28 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | -| main.rs:317:13:317:35 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] | -| main.rs:317:13:317:65 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | -| main.rs:317:13:317:82 | ... .parse() [Ok] | semmle.label | ... .parse() [Ok] | -| main.rs:317:13:317:91 | ... .unwrap() | semmle.label | ... .unwrap() | -| main.rs:320:34:320:34 | v | semmle.label | v | -| main.rs:321:42:321:42 | v | semmle.label | v | -| main.rs:322:36:322:36 | v | semmle.label | v | -| main.rs:323:27:323:27 | v | semmle.label | v | -| main.rs:324:25:324:25 | v | semmle.label | v | -| main.rs:325:22:325:22 | v | semmle.label | v | +| main.rs:242:16:242:24 | split_off | semmle.label | split_off | +| main.rs:242:26:242:26 | v | semmle.label | v | +| main.rs:282:24:282:41 | ...: String | semmle.label | ...: String | +| main.rs:283:9:283:17 | num_bytes | semmle.label | num_bytes | +| main.rs:283:21:283:30 | user_input | semmle.label | user_input | +| main.rs:283:21:283:47 | user_input.parse() [Ok] | semmle.label | user_input.parse() [Ok] | +| main.rs:283:21:283:48 | TryExpr | semmle.label | TryExpr | +| main.rs:283:21:283:77 | ... * ... | semmle.label | ... * ... | +| main.rs:285:9:285:14 | layout | semmle.label | layout | +| main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | semmle.label | ...::from_size_align(...) [Ok] | +| main.rs:285:18:285:75 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:285:54:285:62 | num_bytes | semmle.label | num_bytes | +| main.rs:287:22:287:38 | ...::alloc | semmle.label | ...::alloc | +| main.rs:287:40:287:45 | layout | semmle.label | layout | +| main.rs:311:25:311:38 | ...::args | semmle.label | ...::args | +| main.rs:311:25:311:40 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | +| main.rs:311:25:311:47 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] | +| main.rs:311:25:311:74 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | +| main.rs:320:9:320:9 | v | semmle.label | v | +| main.rs:320:13:320:26 | ...::args | semmle.label | ...::args | +| main.rs:320:13:320:28 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | +| main.rs:320:13:320:35 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] | +| main.rs:320:13:320:65 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | +| main.rs:320:13:320:82 | ... .parse() [Ok] | semmle.label | ... .parse() [Ok] | +| main.rs:320:13:320:91 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:323:34:323:34 | v | semmle.label | v | +| main.rs:324:42:324:42 | v | semmle.label | v | +| main.rs:325:36:325:36 | v | semmle.label | v | +| main.rs:326:27:326:27 | v | semmle.label | v | +| main.rs:327:25:327:25 | v | semmle.label | v | +| main.rs:328:22:328:22 | v | semmle.label | v | subpaths diff --git a/rust/ql/test/query-tests/security/CWE-770/main.rs b/rust/ql/test/query-tests/security/CWE-770/main.rs index 1f549cb2675..e3034c9c28c 100644 --- a/rust/ql/test/query-tests/security/CWE-770/main.rs +++ b/rust/ql/test/query-tests/security/CWE-770/main.rs @@ -238,6 +238,9 @@ unsafe fn test_vectors(v: usize) { v1.resize(v, 1); // $ MISSING: Alert[rust/uncontrolled-allocation-size] v1.set_len(v); // $ MISSING: Alert[rust/uncontrolled-allocation-size] + let mut v2 = vec![1, 2, 3, 4, 5, 6]; + let _ = v2.split_off(v); // $ SPURIOUS: Alert[rust/uncontrolled-allocation-size]=arg1 + let l2 = std::alloc::Layout::new::<[u64; 200]>(); let m2 = std::ptr::NonNull::::new(std::alloc::alloc(l2).cast::()).unwrap(); let _ = Vec::::from_parts(m2, v, 200); // $ MISSING: Alert[rust/uncontrolled-allocation-size] From 479c58bef56cf9940a56663c59996d5c266786cf Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 9 Jan 2026 16:54:32 +0000 Subject: [PATCH 106/263] Rust: Add a barrier. --- .../UncontrolledAllocationSizeExtensions.qll | 13 + .../UncontrolledAllocationSize.expected | 332 +++++++++--------- .../test/query-tests/security/CWE-770/main.rs | 2 +- 3 files changed, 177 insertions(+), 170 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll index c6251563ea6..e323f0d9544 100644 --- a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll @@ -63,4 +63,17 @@ module UncontrolledAllocationSize { branch = false ) } + + /** + * A barrier for uncontrolled allocation size flow into particular functions. + */ + private class ModelledBarrier extends Barrier { + ModelledBarrier() { + exists(MethodCall c | + c.getStaticTarget().getCanonicalPath() = + ["::split_off", "::split_off"] and + this.asExpr() = c.getAnArgument() + ) + } + } } diff --git a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected index ad50ebbcd49..bc7e7fa7945 100644 --- a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected +++ b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected @@ -50,118 +50,117 @@ | main.rs:224:13:224:25 | ...::realloc | main.rs:320:13:320:26 | ...::args | main.rs:224:13:224:25 | ...::realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:230:13:230:44 | ...::try_with_capacity_in | main.rs:320:13:320:26 | ...::args | main.rs:230:13:230:44 | ...::try_with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:231:13:231:40 | ...::with_capacity_in | main.rs:320:13:320:26 | ...::args | main.rs:231:13:231:40 | ...::with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | -| main.rs:242:16:242:24 | split_off | main.rs:320:13:320:26 | ...::args | main.rs:242:16:242:24 | split_off | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:287:22:287:38 | ...::alloc | main.rs:311:25:311:38 | ...::args | main.rs:287:22:287:38 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:311:25:311:38 | ...::args | user-provided value | edges | main.rs:12:36:12:43 | ...: usize | main.rs:18:41:18:41 | v | provenance | | -| main.rs:18:41:18:41 | v | main.rs:18:13:18:31 | ...::realloc | provenance | MaD:18 Sink:MaD:18 | +| main.rs:18:41:18:41 | v | main.rs:18:13:18:31 | ...::realloc | provenance | MaD:17 Sink:MaD:17 | | main.rs:18:41:18:41 | v | main.rs:20:50:20:50 | v | provenance | | | main.rs:18:41:18:41 | v | main.rs:29:60:29:60 | v | provenance | | | main.rs:18:41:18:41 | v | main.rs:32:60:32:60 | v | provenance | | | main.rs:18:41:18:41 | v | main.rs:35:49:35:49 | v | provenance | | | main.rs:20:9:20:10 | l2 | main.rs:21:31:21:32 | l2 | provenance | | -| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:43 | +| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:42 | | main.rs:20:14:20:63 | ... .unwrap() | main.rs:20:9:20:10 | l2 | provenance | | -| main.rs:20:50:20:50 | v | main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | -| main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:20:50:20:50 | v | main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | +| main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:21:31:21:32 | l2 | main.rs:22:31:22:32 | l2 | provenance | | | main.rs:21:31:21:32 | l2 | main.rs:23:31:23:32 | l2 | provenance | | | main.rs:21:31:21:32 | l2 | main.rs:24:38:24:39 | l2 | provenance | | -| main.rs:22:31:22:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:29 | -| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:43 | -| main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:23:31:23:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:29 | -| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:43 | -| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:37 | -| main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:17 Sink:MaD:17 | +| main.rs:22:31:22:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:28 | +| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:42 | +| main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:23:31:23:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:28 | +| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:42 | +| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:36 | +| main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:16 Sink:MaD:16 | | main.rs:29:9:29:10 | l4 | main.rs:30:31:30:32 | l4 | provenance | | | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | main.rs:29:9:29:10 | l4 | provenance | | -| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | -| main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | +| main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:32:9:32:10 | l5 | main.rs:33:31:33:32 | l5 | provenance | | | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | main.rs:32:9:32:10 | l5 | provenance | | -| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:28 | -| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:46 | -| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | -| main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:27 | +| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:45 | +| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | +| main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:35:9:35:10 | s6 | main.rs:36:60:36:61 | s6 | provenance | | | main.rs:35:14:35:54 | ... + ... | main.rs:35:9:35:10 | s6 | provenance | | -| main.rs:35:15:35:49 | ... * ... | main.rs:35:14:35:54 | ... + ... | provenance | MaD:25 | -| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:27 | +| main.rs:35:15:35:49 | ... * ... | main.rs:35:14:35:54 | ... + ... | provenance | MaD:24 | | main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:26 | -| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:45 | +| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:25 | +| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:44 | | main.rs:36:9:36:10 | l6 | main.rs:37:31:37:32 | l6 | provenance | | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | main.rs:36:9:36:10 | l6 | provenance | | -| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | -| main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | +| main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:37:31:37:32 | l6 | main.rs:39:60:39:61 | l6 | provenance | | | main.rs:39:9:39:10 | l7 | main.rs:40:31:40:32 | l7 | provenance | | | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | main.rs:39:9:39:10 | l7 | provenance | | -| main.rs:39:60:39:61 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:40 | -| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:36 | -| main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:39:60:39:61 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:39 | +| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:35 | +| main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:43:44:43:51 | ...: usize | main.rs:50:41:50:41 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:51:41:51:41 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:53:48:53:48 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:54:48:54:48 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:58:34:58:34 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:67:46:67:46 | v | provenance | | -| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:43 | +| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:42 | | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | main.rs:50:31:50:53 | ... .0 | provenance | | -| main.rs:50:31:50:53 | ... .0 | main.rs:50:13:50:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:38 | -| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:43 | +| main.rs:50:31:50:53 | ... .0 | main.rs:50:13:50:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:37 | +| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:42 | | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | main.rs:51:31:51:57 | ... .0 | provenance | | -| main.rs:51:31:51:57 | ... .0 | main.rs:51:13:51:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:51:41:51:41 | v | main.rs:51:41:51:45 | ... + ... | provenance | MaD:25 | -| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:38 | -| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:43 | -| main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:39 | -| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:43 | -| main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:54:48:54:48 | v | main.rs:54:48:54:53 | ... * ... | provenance | MaD:28 | -| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:39 | +| main.rs:51:31:51:57 | ... .0 | main.rs:51:13:51:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:51:41:51:41 | v | main.rs:51:41:51:45 | ... + ... | provenance | MaD:24 | +| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:37 | +| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:42 | +| main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:38 | +| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:42 | +| main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:54:48:54:48 | v | main.rs:54:48:54:53 | ... * ... | provenance | MaD:27 | +| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:38 | | main.rs:58:9:58:20 | TuplePat [tuple.0] | main.rs:58:10:58:11 | k1 | provenance | | | main.rs:58:10:58:11 | k1 | main.rs:59:31:59:32 | k1 | provenance | | -| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:42 | +| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:41 | | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | main.rs:58:9:58:20 | TuplePat [tuple.0] | provenance | | -| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:38 | -| main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:37 | +| main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:59:31:59:32 | k1 | main.rs:60:34:60:35 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:62:24:62:25 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:64:48:64:49 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:65:31:65:32 | k1 | provenance | | | main.rs:60:9:60:20 | TuplePat [tuple.0] | main.rs:60:10:60:11 | k2 | provenance | | | main.rs:60:10:60:11 | k2 | main.rs:61:31:61:32 | k2 | provenance | | -| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:43 | +| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:42 | | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | main.rs:60:9:60:20 | TuplePat [tuple.0] | provenance | | -| main.rs:60:34:60:35 | k1 | main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | provenance | MaD:31 | -| main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:60:34:60:35 | k1 | main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | provenance | MaD:30 | +| main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:62:9:62:20 | TuplePat [tuple.0] | main.rs:62:10:62:11 | k3 | provenance | | | main.rs:62:10:62:11 | k3 | main.rs:63:31:63:32 | k3 | provenance | | -| main.rs:62:24:62:25 | k1 | main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | provenance | MaD:32 | -| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:43 | +| main.rs:62:24:62:25 | k1 | main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | provenance | MaD:31 | +| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:42 | | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | main.rs:62:9:62:20 | TuplePat [tuple.0] | provenance | | -| main.rs:63:31:63:32 | k3 | main.rs:63:13:63:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:43 | -| main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:33 | -| main.rs:65:31:65:32 | k1 | main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | provenance | MaD:34 | -| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:43 | -| main.rs:65:31:65:59 | ... .unwrap() | main.rs:65:13:65:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:63:31:63:32 | k3 | main.rs:63:13:63:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:42 | +| main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:32 | +| main.rs:65:31:65:32 | k1 | main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | provenance | MaD:33 | +| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:42 | +| main.rs:65:31:65:59 | ... .unwrap() | main.rs:65:13:65:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:67:9:67:10 | l4 | main.rs:68:31:68:32 | l4 | provenance | | -| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:43 | +| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:42 | | main.rs:67:14:67:56 | ... .unwrap() | main.rs:67:9:67:10 | l4 | provenance | | -| main.rs:67:46:67:46 | v | main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | -| main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:67:46:67:46 | v | main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | +| main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:86:35:86:42 | ...: usize | main.rs:87:54:87:54 | v | provenance | | | main.rs:87:9:87:14 | layout | main.rs:88:31:88:36 | layout | provenance | | -| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:43 | +| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:42 | | main.rs:87:18:87:67 | ... .unwrap() | main.rs:87:9:87:14 | layout | provenance | | -| main.rs:87:54:87:54 | v | main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | -| main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:87:54:87:54 | v | main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | +| main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:91:38:91:45 | ...: usize | main.rs:92:47:92:47 | v | provenance | | | main.rs:91:38:91:45 | ...: usize | main.rs:101:51:101:51 | v | provenance | | | main.rs:91:38:91:45 | ...: usize | main.rs:105:33:105:33 | v | provenance | | @@ -171,66 +170,66 @@ edges | main.rs:91:38:91:45 | ...: usize | main.rs:161:55:161:55 | v | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:96:35:96:36 | l1 | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:102:35:102:36 | l1 | provenance | | -| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:43 | +| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:42 | | main.rs:92:14:92:57 | ... .unwrap() | main.rs:92:9:92:10 | l1 | provenance | | -| main.rs:92:47:92:47 | v | main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | -| main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:92:47:92:47 | v | main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | +| main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:96:35:96:36 | l1 | main.rs:109:35:109:36 | l1 | provenance | | | main.rs:96:35:96:36 | l1 | main.rs:111:35:111:36 | l1 | provenance | | | main.rs:101:13:101:14 | l3 | main.rs:103:35:103:36 | l3 | provenance | | -| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:43 | +| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:42 | | main.rs:101:18:101:61 | ... .unwrap() | main.rs:101:13:101:14 | l3 | provenance | | -| main.rs:101:51:101:51 | v | main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | -| main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:101:51:101:51 | v | main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | +| main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:102:35:102:36 | l1 | main.rs:109:35:109:36 | l1 | provenance | | | main.rs:102:35:102:36 | l1 | main.rs:111:35:111:36 | l1 | provenance | | -| main.rs:103:35:103:36 | l3 | main.rs:103:17:103:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:103:35:103:36 | l3 | main.rs:103:17:103:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:105:33:105:33 | v | main.rs:86:35:86:42 | ...: usize | provenance | | -| main.rs:109:35:109:36 | l1 | main.rs:109:17:109:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:109:35:109:36 | l1 | main.rs:109:17:109:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:109:35:109:36 | l1 | main.rs:146:35:146:36 | l1 | provenance | | -| main.rs:111:35:111:36 | l1 | main.rs:111:17:111:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:111:35:111:36 | l1 | main.rs:111:17:111:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:111:35:111:36 | l1 | main.rs:146:35:146:36 | l1 | provenance | | | main.rs:145:13:145:14 | l9 | main.rs:148:35:148:36 | l9 | provenance | | -| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:43 | +| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:42 | | main.rs:145:18:145:61 | ... .unwrap() | main.rs:145:13:145:14 | l9 | provenance | | -| main.rs:145:51:145:51 | v | main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | -| main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:145:51:145:51 | v | main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | +| main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:146:35:146:36 | l1 | main.rs:177:31:177:32 | l1 | provenance | | -| main.rs:148:35:148:36 | l9 | main.rs:148:17:148:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:148:35:148:36 | l9 | main.rs:148:17:148:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:151:9:151:11 | l10 | main.rs:152:31:152:33 | l10 | provenance | | -| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:43 | +| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:42 | | main.rs:151:15:151:78 | ... .unwrap() | main.rs:151:9:151:11 | l10 | provenance | | -| main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | -| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:48 | -| main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | +| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:47 | +| main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:154:9:154:11 | l11 | main.rs:155:31:155:33 | l11 | provenance | | -| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:43 | +| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:42 | | main.rs:154:15:154:78 | ... .unwrap() | main.rs:154:9:154:11 | l11 | provenance | | -| main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | -| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:47 | -| main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | +| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:46 | +| main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:161:13:161:15 | l13 | main.rs:162:35:162:37 | l13 | provenance | | -| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:43 | +| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:42 | | main.rs:161:19:161:68 | ... .unwrap() | main.rs:161:13:161:15 | l13 | provenance | | -| main.rs:161:55:161:55 | v | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | -| main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:161:55:161:55 | v | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | +| main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:162:35:162:37 | l13 | main.rs:169:35:169:37 | l13 | provenance | | -| main.rs:169:35:169:37 | l13 | main.rs:169:17:169:33 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | +| main.rs:169:35:169:37 | l13 | main.rs:169:17:169:33 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:183:29:183:36 | ...: usize | main.rs:192:46:192:46 | v | provenance | | | main.rs:183:29:183:36 | ...: usize | main.rs:202:48:202:48 | v | provenance | | | main.rs:192:9:192:10 | l2 | main.rs:193:38:193:39 | l2 | provenance | | -| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:43 | +| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:42 | | main.rs:192:14:192:56 | ... .unwrap() | main.rs:192:9:192:10 | l2 | provenance | | -| main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:30 | -| main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:11 Sink:MaD:11 | +| main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:29 | +| main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:10 Sink:MaD:10 | | main.rs:193:38:193:39 | l2 | main.rs:194:45:194:46 | l2 | provenance | | +| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:11 Sink:MaD:11 | | main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:12 Sink:MaD:12 | -| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:13 Sink:MaD:13 | | main.rs:194:45:194:46 | l2 | main.rs:195:41:195:42 | l2 | provenance | | -| main.rs:195:41:195:42 | l2 | main.rs:195:32:195:39 | allocate | provenance | MaD:6 Sink:MaD:6 | +| main.rs:195:41:195:42 | l2 | main.rs:195:32:195:39 | allocate | provenance | MaD:5 Sink:MaD:5 | | main.rs:195:41:195:42 | l2 | main.rs:196:48:196:49 | l2 | provenance | | -| main.rs:196:48:196:49 | l2 | main.rs:196:32:196:46 | allocate_zeroed | provenance | MaD:7 Sink:MaD:7 | +| main.rs:196:48:196:49 | l2 | main.rs:196:32:196:46 | allocate_zeroed | provenance | MaD:6 Sink:MaD:6 | | main.rs:196:48:196:49 | l2 | main.rs:197:41:197:42 | l2 | provenance | | | main.rs:197:41:197:42 | l2 | main.rs:197:32:197:39 | allocate | provenance | MaD:1 Sink:MaD:1 | | main.rs:197:41:197:42 | l2 | main.rs:198:48:198:49 | l2 | provenance | | @@ -238,42 +237,40 @@ edges | main.rs:198:48:198:49 | l2 | main.rs:208:53:208:54 | l2 | provenance | | | main.rs:198:48:198:49 | l2 | main.rs:210:60:210:61 | l2 | provenance | | | main.rs:198:48:198:49 | l2 | main.rs:213:51:213:52 | l2 | provenance | | +| main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:13 Sink:MaD:13 | | main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:14 Sink:MaD:14 | -| main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:208:53:208:54 | l2 | main.rs:208:40:208:43 | grow | provenance | MaD:8 Sink:MaD:8 | -| main.rs:210:60:210:61 | l2 | main.rs:210:40:210:50 | grow_zeroed | provenance | MaD:9 Sink:MaD:9 | -| main.rs:213:51:213:52 | l2 | main.rs:213:36:213:41 | shrink | provenance | MaD:10 Sink:MaD:10 | +| main.rs:208:53:208:54 | l2 | main.rs:208:40:208:43 | grow | provenance | MaD:7 Sink:MaD:7 | +| main.rs:210:60:210:61 | l2 | main.rs:210:40:210:50 | grow_zeroed | provenance | MaD:8 Sink:MaD:8 | +| main.rs:213:51:213:52 | l2 | main.rs:213:36:213:41 | shrink | provenance | MaD:9 Sink:MaD:9 | | main.rs:217:27:217:34 | ...: usize | main.rs:219:26:219:26 | v | provenance | | -| main.rs:219:26:219:26 | v | main.rs:219:13:219:24 | ...::malloc | provenance | MaD:21 Sink:MaD:21 | +| main.rs:219:26:219:26 | v | main.rs:219:13:219:24 | ...::malloc | provenance | MaD:20 Sink:MaD:20 | | main.rs:219:26:219:26 | v | main.rs:220:36:220:36 | v | provenance | | -| main.rs:220:36:220:36 | v | main.rs:220:13:220:31 | ...::aligned_alloc | provenance | MaD:19 Sink:MaD:19 | +| main.rs:220:36:220:36 | v | main.rs:220:13:220:31 | ...::aligned_alloc | provenance | MaD:18 Sink:MaD:18 | | main.rs:220:36:220:36 | v | main.rs:222:30:222:30 | v | provenance | | -| main.rs:222:30:222:30 | v | main.rs:222:13:222:24 | ...::calloc | provenance | MaD:20 Sink:MaD:20 | +| main.rs:222:30:222:30 | v | main.rs:222:13:222:24 | ...::calloc | provenance | MaD:19 Sink:MaD:19 | | main.rs:222:30:222:30 | v | main.rs:223:26:223:26 | v | provenance | | -| main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:20 Sink:MaD:20 | +| main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:19 Sink:MaD:19 | | main.rs:223:26:223:26 | v | main.rs:224:31:224:31 | v | provenance | | -| main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:22 Sink:MaD:22 | +| main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:21 Sink:MaD:21 | | main.rs:227:24:227:31 | ...: usize | main.rs:230:46:230:46 | v | provenance | | -| main.rs:230:46:230:46 | v | main.rs:230:13:230:44 | ...::try_with_capacity_in | provenance | MaD:4 Sink:MaD:4 | +| main.rs:230:46:230:46 | v | main.rs:230:13:230:44 | ...::try_with_capacity_in | provenance | MaD:3 Sink:MaD:3 | | main.rs:230:46:230:46 | v | main.rs:231:42:231:42 | v | provenance | | -| main.rs:231:42:231:42 | v | main.rs:231:13:231:40 | ...::with_capacity_in | provenance | MaD:5 Sink:MaD:5 | -| main.rs:231:42:231:42 | v | main.rs:242:26:242:26 | v | provenance | | -| main.rs:242:26:242:26 | v | main.rs:242:16:242:24 | split_off | provenance | MaD:3 Sink:MaD:3 | +| main.rs:231:42:231:42 | v | main.rs:231:13:231:40 | ...::with_capacity_in | provenance | MaD:4 Sink:MaD:4 | | main.rs:282:24:282:41 | ...: String | main.rs:283:21:283:30 | user_input | provenance | | | main.rs:283:9:283:17 | num_bytes | main.rs:285:54:285:62 | num_bytes | provenance | | -| main.rs:283:21:283:30 | user_input | main.rs:283:21:283:47 | user_input.parse() [Ok] | provenance | MaD:44 | +| main.rs:283:21:283:30 | user_input | main.rs:283:21:283:47 | user_input.parse() [Ok] | provenance | MaD:43 | | main.rs:283:21:283:47 | user_input.parse() [Ok] | main.rs:283:21:283:48 | TryExpr | provenance | | -| main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:28 | -| main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:46 | +| main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:27 | +| main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:45 | | main.rs:283:21:283:77 | ... * ... | main.rs:283:9:283:17 | num_bytes | provenance | | | main.rs:285:9:285:14 | layout | main.rs:287:40:287:45 | layout | provenance | | -| main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | main.rs:285:18:285:75 | ... .unwrap() | provenance | MaD:43 | +| main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | main.rs:285:18:285:75 | ... .unwrap() | provenance | MaD:42 | | main.rs:285:18:285:75 | ... .unwrap() | main.rs:285:9:285:14 | layout | provenance | | -| main.rs:285:54:285:62 | num_bytes | main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | provenance | MaD:35 | -| main.rs:287:40:287:45 | layout | main.rs:287:22:287:38 | ...::alloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:311:25:311:38 | ...::args | main.rs:311:25:311:40 | ...::args(...) [element] | provenance | Src:MaD:23 | -| main.rs:311:25:311:40 | ...::args(...) [element] | main.rs:311:25:311:47 | ... .nth(...) [Some] | provenance | MaD:24 | -| main.rs:311:25:311:47 | ... .nth(...) [Some] | main.rs:311:25:311:74 | ... .unwrap_or(...) | provenance | MaD:41 | +| main.rs:285:54:285:62 | num_bytes | main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | provenance | MaD:34 | +| main.rs:287:40:287:45 | layout | main.rs:287:22:287:38 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | +| main.rs:311:25:311:38 | ...::args | main.rs:311:25:311:40 | ...::args(...) [element] | provenance | Src:MaD:22 | +| main.rs:311:25:311:40 | ...::args(...) [element] | main.rs:311:25:311:47 | ... .nth(...) [Some] | provenance | MaD:23 | +| main.rs:311:25:311:47 | ... .nth(...) [Some] | main.rs:311:25:311:74 | ... .unwrap_or(...) | provenance | MaD:40 | | main.rs:311:25:311:74 | ... .unwrap_or(...) | main.rs:282:24:282:41 | ...: String | provenance | | | main.rs:320:9:320:9 | v | main.rs:323:34:323:34 | v | provenance | | | main.rs:320:9:320:9 | v | main.rs:324:42:324:42 | v | provenance | | @@ -281,11 +278,11 @@ edges | main.rs:320:9:320:9 | v | main.rs:326:27:326:27 | v | provenance | | | main.rs:320:9:320:9 | v | main.rs:327:25:327:25 | v | provenance | | | main.rs:320:9:320:9 | v | main.rs:328:22:328:22 | v | provenance | | -| main.rs:320:13:320:26 | ...::args | main.rs:320:13:320:28 | ...::args(...) [element] | provenance | Src:MaD:23 | -| main.rs:320:13:320:28 | ...::args(...) [element] | main.rs:320:13:320:35 | ... .nth(...) [Some] | provenance | MaD:24 | -| main.rs:320:13:320:35 | ... .nth(...) [Some] | main.rs:320:13:320:65 | ... .unwrap_or(...) | provenance | MaD:41 | -| main.rs:320:13:320:65 | ... .unwrap_or(...) | main.rs:320:13:320:82 | ... .parse() [Ok] | provenance | MaD:44 | -| main.rs:320:13:320:82 | ... .parse() [Ok] | main.rs:320:13:320:91 | ... .unwrap() | provenance | MaD:43 | +| main.rs:320:13:320:26 | ...::args | main.rs:320:13:320:28 | ...::args(...) [element] | provenance | Src:MaD:22 | +| main.rs:320:13:320:28 | ...::args(...) [element] | main.rs:320:13:320:35 | ... .nth(...) [Some] | provenance | MaD:23 | +| main.rs:320:13:320:35 | ... .nth(...) [Some] | main.rs:320:13:320:65 | ... .unwrap_or(...) | provenance | MaD:40 | +| main.rs:320:13:320:65 | ... .unwrap_or(...) | main.rs:320:13:320:82 | ... .parse() [Ok] | provenance | MaD:43 | +| main.rs:320:13:320:82 | ... .parse() [Ok] | main.rs:320:13:320:91 | ... .unwrap() | provenance | MaD:42 | | main.rs:320:13:320:91 | ... .unwrap() | main.rs:320:9:320:9 | v | provenance | | | main.rs:323:34:323:34 | v | main.rs:12:36:12:43 | ...: usize | provenance | | | main.rs:324:42:324:42 | v | main.rs:43:44:43:51 | ...: usize | provenance | | @@ -296,52 +293,51 @@ edges models | 1 | Sink: ::allocate; Argument[0]; alloc-layout | | 2 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | -| 3 | Sink: ::split_off; Argument[0]; alloc-layout | -| 4 | Sink: ::try_with_capacity_in; Argument[0]; alloc-layout | -| 5 | Sink: ::with_capacity_in; Argument[0]; alloc-layout | -| 6 | Sink: ::allocate; Argument[0]; alloc-layout | -| 7 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | -| 8 | Sink: ::grow; Argument[2]; alloc-layout | -| 9 | Sink: ::grow_zeroed; Argument[2]; alloc-layout | -| 10 | Sink: ::shrink; Argument[2]; alloc-layout | -| 11 | Sink: ::alloc; Argument[0]; alloc-size | -| 12 | Sink: ::alloc_zeroed; Argument[0]; alloc-layout | -| 13 | Sink: ::alloc_zeroed; Argument[0]; alloc-size | -| 14 | Sink: ::realloc; Argument[2]; alloc-layout | -| 15 | Sink: ::realloc; Argument[2]; alloc-size | -| 16 | Sink: alloc::alloc::alloc; Argument[0]; alloc-layout | -| 17 | Sink: alloc::alloc::alloc_zeroed; Argument[0]; alloc-layout | -| 18 | Sink: alloc::alloc::realloc; Argument[2]; alloc-size | -| 19 | Sink: libc::unix::aligned_alloc; Argument[1]; alloc-size | -| 20 | Sink: libc::unix::calloc; Argument[0,1]; alloc-size | -| 21 | Sink: libc::unix::malloc; Argument[0]; alloc-size | -| 22 | Sink: libc::unix::realloc; Argument[1]; alloc-size | -| 23 | Source: std::env::args; ReturnValue.Element; commandargs | -| 24 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 25 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | -| 26 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0].Reference; ReturnValue; taint | -| 27 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0]; ReturnValue; taint | -| 28 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[self]; ReturnValue; taint | -| 29 | Summary: ::align_to; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 30 | Summary: ::array; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 31 | Summary: ::extend; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 32 | Summary: ::extend; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 33 | Summary: ::extend_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 34 | Summary: ::extend_packed; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 35 | Summary: ::from_size_align; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 36 | Summary: ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | -| 37 | Summary: ::pad_to_align; Argument[self].Reference; ReturnValue; taint | -| 38 | Summary: ::repeat; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 39 | Summary: ::repeat_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 40 | Summary: ::size; Argument[self].Reference; ReturnValue; taint | -| 41 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 42 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 43 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 44 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 45 | Summary: ::mul; Argument[0]; ReturnValue; taint | -| 46 | Summary: ::mul; Argument[self]; ReturnValue; taint | -| 47 | Summary: core::cmp::max; Argument[0]; ReturnValue; value | -| 48 | Summary: core::cmp::min; Argument[0]; ReturnValue; value | +| 3 | Sink: ::try_with_capacity_in; Argument[0]; alloc-layout | +| 4 | Sink: ::with_capacity_in; Argument[0]; alloc-layout | +| 5 | Sink: ::allocate; Argument[0]; alloc-layout | +| 6 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | +| 7 | Sink: ::grow; Argument[2]; alloc-layout | +| 8 | Sink: ::grow_zeroed; Argument[2]; alloc-layout | +| 9 | Sink: ::shrink; Argument[2]; alloc-layout | +| 10 | Sink: ::alloc; Argument[0]; alloc-size | +| 11 | Sink: ::alloc_zeroed; Argument[0]; alloc-layout | +| 12 | Sink: ::alloc_zeroed; Argument[0]; alloc-size | +| 13 | Sink: ::realloc; Argument[2]; alloc-layout | +| 14 | Sink: ::realloc; Argument[2]; alloc-size | +| 15 | Sink: alloc::alloc::alloc; Argument[0]; alloc-layout | +| 16 | Sink: alloc::alloc::alloc_zeroed; Argument[0]; alloc-layout | +| 17 | Sink: alloc::alloc::realloc; Argument[2]; alloc-size | +| 18 | Sink: libc::unix::aligned_alloc; Argument[1]; alloc-size | +| 19 | Sink: libc::unix::calloc; Argument[0,1]; alloc-size | +| 20 | Sink: libc::unix::malloc; Argument[0]; alloc-size | +| 21 | Sink: libc::unix::realloc; Argument[1]; alloc-size | +| 22 | Source: std::env::args; ReturnValue.Element; commandargs | +| 23 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 24 | Summary: <_ as core::ops::arith::Add>::add; Argument[self]; ReturnValue; taint | +| 25 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0].Reference; ReturnValue; taint | +| 26 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[0]; ReturnValue; taint | +| 27 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[self]; ReturnValue; taint | +| 28 | Summary: ::align_to; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 29 | Summary: ::array; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 30 | Summary: ::extend; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 31 | Summary: ::extend; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 32 | Summary: ::extend_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 33 | Summary: ::extend_packed; Argument[self].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 34 | Summary: ::from_size_align; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 35 | Summary: ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | +| 36 | Summary: ::pad_to_align; Argument[self].Reference; ReturnValue; taint | +| 37 | Summary: ::repeat; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 38 | Summary: ::repeat_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 39 | Summary: ::size; Argument[self].Reference; ReturnValue; taint | +| 40 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 41 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 42 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 43 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 44 | Summary: ::mul; Argument[0]; ReturnValue; taint | +| 45 | Summary: ::mul; Argument[self]; ReturnValue; taint | +| 46 | Summary: core::cmp::max; Argument[0]; ReturnValue; value | +| 47 | Summary: core::cmp::min; Argument[0]; ReturnValue; value | nodes | main.rs:12:36:12:43 | ...: usize | semmle.label | ...: usize | | main.rs:18:13:18:31 | ...::realloc | semmle.label | ...::realloc | @@ -547,8 +543,6 @@ nodes | main.rs:230:46:230:46 | v | semmle.label | v | | main.rs:231:13:231:40 | ...::with_capacity_in | semmle.label | ...::with_capacity_in | | main.rs:231:42:231:42 | v | semmle.label | v | -| main.rs:242:16:242:24 | split_off | semmle.label | split_off | -| main.rs:242:26:242:26 | v | semmle.label | v | | main.rs:282:24:282:41 | ...: String | semmle.label | ...: String | | main.rs:283:9:283:17 | num_bytes | semmle.label | num_bytes | | main.rs:283:21:283:30 | user_input | semmle.label | user_input | diff --git a/rust/ql/test/query-tests/security/CWE-770/main.rs b/rust/ql/test/query-tests/security/CWE-770/main.rs index e3034c9c28c..1b3a5fc4e93 100644 --- a/rust/ql/test/query-tests/security/CWE-770/main.rs +++ b/rust/ql/test/query-tests/security/CWE-770/main.rs @@ -239,7 +239,7 @@ unsafe fn test_vectors(v: usize) { v1.set_len(v); // $ MISSING: Alert[rust/uncontrolled-allocation-size] let mut v2 = vec![1, 2, 3, 4, 5, 6]; - let _ = v2.split_off(v); // $ SPURIOUS: Alert[rust/uncontrolled-allocation-size]=arg1 + let _ = v2.split_off(v); // GOOD (any allocation is bounded by the initial size of the vector) let l2 = std::alloc::Layout::new::<[u64; 200]>(); let m2 = std::ptr::NonNull::::new(std::alloc::alloc(l2).cast::()).unwrap(); From 659ec3999b86d030b40e7bd64e7beb409be45887 Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 12 Jan 2026 15:24:01 +0000 Subject: [PATCH 107/263] Mark generated files as generated --- python/extractor/tsg-python/tsp/.gitattributes | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/extractor/tsg-python/tsp/.gitattributes diff --git a/python/extractor/tsg-python/tsp/.gitattributes b/python/extractor/tsg-python/tsp/.gitattributes new file mode 100644 index 00000000000..6ee9efab466 --- /dev/null +++ b/python/extractor/tsg-python/tsp/.gitattributes @@ -0,0 +1,4 @@ +# Mark tree-sitter generated files +src/grammar.json linguist-generated +src/node-types.json linguist-generated +src/parser.c linguist-generated From 8c90c113c25c54c629b53d78ec2e842f734c0bf7 Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 12 Jan 2026 15:27:38 +0000 Subject: [PATCH 108/263] Update change note to reflect Python 2 changes --- .../2025-12-09-python-support-relaxed-except-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md b/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md index f4091725cbc..6187bc8136c 100644 --- a/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md +++ b/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md @@ -1,4 +1,4 @@ --- category: feature --- -* The extractor now supports the new, relaxed syntax `except A, B, C: ...` (which would previously have to be written as `except (A, B, C): ...`) as defined in [PEP-758](https://peps.python.org/pep-0758/). +* The extractor now supports the new, relaxed syntax `except A, B, C: ...` (which would previously have to be written as `except (A, B, C): ...`) as defined in [PEP-758](https://peps.python.org/pep-0758/). This may cause changes in results for code that uses Python 2-style exception binding (`except Foo, e: ...`). The more modern format, `except Foo as e: ...` (available since Python 2.6) is unaffected. From 9e74a7869aa9119ff7cf00d55ca87a294a0ee210 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 Jan 2026 14:50:08 +0100 Subject: [PATCH 109/263] Rust: Move everything type inference related into the typeinference directory --- .../ql/consistency-queries/TypeInferenceConsistency.ql | 2 +- .../lib/codeql/rust/dataflow/internal/DataFlowImpl.qll | 2 +- .../lib/codeql/rust/dataflow/internal/ModelsAsData.qll | 4 ++-- rust/ql/lib/codeql/rust/dataflow/internal/Node.qll | 2 +- .../rust/dataflow/internal/TaintTrackingImpl.qll | 4 ++-- .../lib/codeql/rust/elements/internal/CallExprImpl.qll | 2 +- rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll | 2 +- .../codeql/rust/elements/internal/FieldExprImpl.qll | 2 +- .../rust/elements/internal/InvocationExprImpl.qll | 2 +- .../codeql/rust/frameworks/rustcrypto/RustCrypto.qll | 4 ++-- rust/ql/lib/codeql/rust/internal/CachedStages.qll | 4 ++-- .../internal/typeinference/BlanketImplementation.qll | 6 +++--- .../codeql/rust/internal/typeinference/DerefChain.qll | 6 +++--- .../internal/typeinference/FunctionOverloading.qll | 6 +++--- .../rust/internal/typeinference/FunctionType.qll | 6 +++--- .../codeql/rust/internal/{ => typeinference}/Type.qll | 2 +- .../internal/{ => typeinference}/TypeInference.qll | 10 +++++----- .../{ => typeinference}/TypeInferenceConsistency.qll | 0 .../rust/internal/{ => typeinference}/TypeMention.qll | 2 +- .../rust/security/AccessAfterLifetimeExtensions.qll | 4 ++-- .../rust/security/AccessInvalidPointerExtensions.qll | 4 ++-- rust/ql/lib/codeql/rust/security/Barriers.qll | 4 ++-- .../test/PathResolutionInlineExpectationsTest.qll | 2 +- .../diagnostics/TypeInferenceConsistencyCounts.ql | 2 +- .../src/queries/summary/NodesWithTypeAtLengthLimit.ql | 2 +- rust/ql/src/queries/summary/Stats.qll | 2 +- rust/ql/src/queries/telemetry/DatabaseQuality.qll | 4 ++-- .../library-tests/type-inference/type-inference.ql | 4 ++-- 28 files changed, 48 insertions(+), 48 deletions(-) rename rust/ql/lib/codeql/rust/internal/{ => typeinference}/Type.qll (99%) rename rust/ql/lib/codeql/rust/internal/{ => typeinference}/TypeInference.qll (99%) rename rust/ql/lib/codeql/rust/internal/{ => typeinference}/TypeInferenceConsistency.qll (100%) rename rust/ql/lib/codeql/rust/internal/{ => typeinference}/TypeMention.qll (99%) diff --git a/rust/ql/consistency-queries/TypeInferenceConsistency.ql b/rust/ql/consistency-queries/TypeInferenceConsistency.ql index 2ca9e55e964..0040e6a5473 100644 --- a/rust/ql/consistency-queries/TypeInferenceConsistency.ql +++ b/rust/ql/consistency-queries/TypeInferenceConsistency.ql @@ -5,4 +5,4 @@ * @id rust/diagnostics/type-inference-consistency */ -import codeql.rust.internal.TypeInferenceConsistency +import codeql.rust.internal.typeinference.TypeInferenceConsistency diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index c21c053b173..f0da3cd38f7 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -15,7 +15,7 @@ private import codeql.rust.internal.PathResolution private import codeql.rust.controlflow.ControlFlowGraph private import codeql.rust.dataflow.Ssa private import codeql.rust.dataflow.FlowSummary -private import codeql.rust.internal.TypeInference as TypeInference +private import codeql.rust.internal.typeinference.TypeInference as TypeInference private import codeql.rust.internal.typeinference.DerefChain private import Node private import Content diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index 7a44dc520c5..a0c6caf8542 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -205,8 +205,8 @@ private module Debug { private import Private private import Content private import codeql.rust.dataflow.internal.DataFlowImpl - private import codeql.rust.internal.TypeMention - private import codeql.rust.internal.Type + private import codeql.rust.internal.typeinference.TypeMention + private import codeql.rust.internal.typeinference.Type private predicate relevantManualModel(SummarizedCallableImpl sc, string can) { exists(Provenance manual | diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll index b8bfddf8adb..e422962e71d 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll @@ -14,7 +14,7 @@ private import codeql.rust.controlflow.ControlFlowGraph private import codeql.rust.controlflow.CfgNodes private import codeql.rust.dataflow.Ssa private import codeql.rust.dataflow.FlowSummary -private import codeql.rust.internal.TypeInference as TypeInference +private import codeql.rust.internal.typeinference.TypeInference as TypeInference private import codeql.rust.internal.typeinference.DerefChain private import Node as Node private import DataFlowImpl diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index 944227d2fcc..a7c58c53dd1 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -7,8 +7,8 @@ private import Node as Node private import Content private import FlowSummaryImpl as FlowSummaryImpl private import codeql.rust.internal.CachedStages -private import codeql.rust.internal.TypeInference as TypeInference -private import codeql.rust.internal.Type as Type +private import codeql.rust.internal.typeinference.TypeInference as TypeInference +private import codeql.rust.internal.typeinference.Type as Type private import codeql.rust.frameworks.stdlib.Builtins as Builtins /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll index cad921640ef..b65b603dd8f 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll @@ -15,7 +15,7 @@ module Impl { private import codeql.rust.elements.internal.InvocationExprImpl::Impl as InvocationExprImpl private import codeql.rust.elements.internal.CallImpl::Impl as CallImpl private import codeql.rust.internal.PathResolution as PathResolution - private import codeql.rust.internal.TypeInference as TypeInference + private import codeql.rust.internal.typeinference.TypeInference as TypeInference pragma[nomagic] Path getFunctionPath(CallExpr ce) { result = ce.getFunction().(PathExpr).getPath() } diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll index e35b932242c..2af80de6697 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll @@ -1,7 +1,7 @@ private import rust module Impl { - private import codeql.rust.internal.TypeInference as TypeInference + private import codeql.rust.internal.typeinference.TypeInference as TypeInference private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl private import codeql.rust.elements.internal.InvocationExprImpl::Impl as InvocationExprImpl diff --git a/rust/ql/lib/codeql/rust/elements/internal/FieldExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/FieldExprImpl.qll index 469a8ccc05d..db5578b835a 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/FieldExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/FieldExprImpl.qll @@ -12,7 +12,7 @@ private import codeql.rust.elements.internal.generated.FieldExpr */ module Impl { private import rust - private import codeql.rust.internal.TypeInference as TypeInference + private import codeql.rust.internal.typeinference.TypeInference as TypeInference // the following QLdoc is generated: if you need to edit it, do it in the schema file /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/InvocationExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/InvocationExprImpl.qll index e1db44eb4d1..d4f68329de9 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/InvocationExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/InvocationExprImpl.qll @@ -1,7 +1,7 @@ private import rust module Impl { - private import codeql.rust.internal.TypeInference as TypeInference + private import codeql.rust.internal.typeinference.TypeInference as TypeInference private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl private newtype TArgumentPosition = diff --git a/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll b/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll index cbc638c8ae5..41fdd4abe72 100644 --- a/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll +++ b/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll @@ -5,8 +5,8 @@ private import rust private import codeql.rust.Concepts private import codeql.rust.dataflow.DataFlow -private import codeql.rust.internal.TypeInference -private import codeql.rust.internal.Type +private import codeql.rust.internal.typeinference.TypeInference +private import codeql.rust.internal.typeinference.Type bindingset[algorithmName] private string simplifyAlgorithmName(string algorithmName) { diff --git a/rust/ql/lib/codeql/rust/internal/CachedStages.qll b/rust/ql/lib/codeql/rust/internal/CachedStages.qll index dc80fc09dad..a92770ed238 100644 --- a/rust/ql/lib/codeql/rust/internal/CachedStages.qll +++ b/rust/ql/lib/codeql/rust/internal/CachedStages.qll @@ -128,8 +128,8 @@ module Stages { */ cached module TypeInferenceStage { - private import codeql.rust.internal.Type - private import codeql.rust.internal.TypeInference + private import codeql.rust.internal.typeinference.Type + private import codeql.rust.internal.typeinference.TypeInference /** * Always holds. diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll index c60ad3f6ae3..1d2eda61ddb 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll @@ -7,9 +7,9 @@ private import rust private import codeql.rust.internal.PathResolution -private import codeql.rust.internal.Type -private import codeql.rust.internal.TypeMention -private import codeql.rust.internal.TypeInference +private import Type +private import TypeMention +private import TypeInference /** * Holds if `traitBound` is the first non-trivial trait bound of `tp`. diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll b/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll index 16e35bae421..7fbfb7b9d7d 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll @@ -2,9 +2,9 @@ private import rust private import codeql.rust.internal.PathResolution -private import codeql.rust.internal.Type -private import codeql.rust.internal.TypeInference -private import codeql.rust.internal.TypeMention +private import Type +private import TypeInference +private import codeql.rust.internal.typeinference.TypeMention private import codeql.rust.frameworks.stdlib.Stdlib private import codeql.rust.frameworks.stdlib.Builtins as Builtins private import codeql.util.UnboundList as UnboundListImpl diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index b58084e31cf..e67fb05485f 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -7,9 +7,9 @@ private import rust private import codeql.rust.internal.PathResolution -private import codeql.rust.internal.Type -private import codeql.rust.internal.TypeMention -private import codeql.rust.internal.TypeInference +private import Type +private import TypeMention +private import TypeInference private import FunctionType pragma[nomagic] diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll index bbbbeaba2a6..8a72c967867 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll @@ -1,8 +1,8 @@ private import rust -private import codeql.rust.internal.TypeInference private import codeql.rust.internal.PathResolution -private import codeql.rust.internal.Type -private import codeql.rust.internal.TypeMention +private import TypeInference +private import Type +private import TypeMention private newtype TFunctionPosition = TArgumentFunctionPosition(ArgumentPosition pos) or diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll similarity index 99% rename from rust/ql/lib/codeql/rust/internal/Type.qll rename to rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index 9b409e20f76..df08d84edd0 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -1,7 +1,7 @@ /** Provides classes representing types without type arguments. */ private import rust -private import PathResolution +private import codeql.rust.internal.PathResolution private import TypeMention private import codeql.rust.internal.CachedStages private import codeql.rust.elements.internal.generated.Raw diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll similarity index 99% rename from rust/ql/lib/codeql/rust/internal/TypeInference.qll rename to rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 22fa673af94..46454ec88b0 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -3,14 +3,14 @@ private import codeql.util.Boolean private import codeql.util.Option private import rust -private import PathResolution +private import codeql.rust.internal.PathResolution private import Type private import Type as T private import TypeMention -private import typeinference.DerefChain -private import typeinference.FunctionType -private import typeinference.FunctionOverloading as FunctionOverloading -private import typeinference.BlanketImplementation as BlanketImplementation +private import codeql.rust.internal.typeinference.DerefChain +private import FunctionType +private import FunctionOverloading as FunctionOverloading +private import BlanketImplementation as BlanketImplementation private import codeql.rust.elements.internal.VariableImpl::Impl as VariableImpl private import codeql.rust.internal.CachedStages private import codeql.typeinference.internal.TypeInference diff --git a/rust/ql/lib/codeql/rust/internal/TypeInferenceConsistency.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll similarity index 100% rename from rust/ql/lib/codeql/rust/internal/TypeInferenceConsistency.qll rename to rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll similarity index 99% rename from rust/ql/lib/codeql/rust/internal/TypeMention.qll rename to rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 2f451c521d8..41146e22c1b 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -1,9 +1,9 @@ /** Provides classes for representing type mentions, used in type inference. */ private import rust +private import codeql.rust.internal.PathResolution private import codeql.rust.frameworks.stdlib.Stdlib private import Type -private import PathResolution private import TypeInference /** An AST node that may mention a type. */ diff --git a/rust/ql/lib/codeql/rust/security/AccessAfterLifetimeExtensions.qll b/rust/ql/lib/codeql/rust/security/AccessAfterLifetimeExtensions.qll index c404f13b531..a23e3886b24 100644 --- a/rust/ql/lib/codeql/rust/security/AccessAfterLifetimeExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/AccessAfterLifetimeExtensions.qll @@ -6,8 +6,8 @@ import rust private import codeql.rust.dataflow.DataFlow private import codeql.rust.security.AccessInvalidPointerExtensions -private import codeql.rust.internal.Type -private import codeql.rust.internal.TypeInference as TypeInference +private import codeql.rust.internal.typeinference.Type +private import codeql.rust.internal.typeinference.TypeInference as TypeInference /** * Provides default sources, sinks and barriers for detecting accesses to a diff --git a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll index d8d7be25933..117f67a7b4e 100644 --- a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll @@ -10,8 +10,8 @@ private import codeql.rust.dataflow.FlowSink private import codeql.rust.Concepts private import codeql.rust.dataflow.internal.Node private import codeql.rust.security.Barriers as Barriers -private import codeql.rust.internal.TypeInference as TypeInference -private import codeql.rust.internal.Type +private import codeql.rust.internal.typeinference.TypeInference as TypeInference +private import codeql.rust.internal.typeinference.Type /** * Provides default sources, sinks and barriers for detecting accesses to diff --git a/rust/ql/lib/codeql/rust/security/Barriers.qll b/rust/ql/lib/codeql/rust/security/Barriers.qll index a285bfe3569..3de984073a8 100644 --- a/rust/ql/lib/codeql/rust/security/Barriers.qll +++ b/rust/ql/lib/codeql/rust/security/Barriers.qll @@ -5,8 +5,8 @@ import rust private import codeql.rust.dataflow.DataFlow -private import codeql.rust.internal.TypeInference as TypeInference -private import codeql.rust.internal.Type +private import codeql.rust.internal.typeinference.TypeInference as TypeInference +private import codeql.rust.internal.typeinference.Type private import codeql.rust.controlflow.ControlFlowGraph as Cfg private import codeql.rust.controlflow.CfgNodes as CfgNodes private import codeql.rust.frameworks.stdlib.Builtins as Builtins diff --git a/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll b/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll index d8b2703203d..bde96ace1a4 100644 --- a/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll +++ b/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll @@ -4,7 +4,7 @@ private import rust private import codeql.rust.internal.PathResolution -private import codeql.rust.internal.TypeInference +private import codeql.rust.internal.typeinference.TypeInference private import utils.test.InlineExpectationsTest private module ResolveTest implements TestSig { diff --git a/rust/ql/src/queries/diagnostics/TypeInferenceConsistencyCounts.ql b/rust/ql/src/queries/diagnostics/TypeInferenceConsistencyCounts.ql index 3a98cef3b81..c3cd00674c9 100644 --- a/rust/ql/src/queries/diagnostics/TypeInferenceConsistencyCounts.ql +++ b/rust/ql/src/queries/diagnostics/TypeInferenceConsistencyCounts.ql @@ -5,7 +5,7 @@ * @id rust/diagnostics/type-inference-consistency-counts */ -private import codeql.rust.internal.TypeInferenceConsistency as Consistency +private import codeql.rust.internal.typeinference.TypeInferenceConsistency as Consistency // see also `rust/diagnostics/type-inference-consistency`, which lists the // individual inconsistency results. diff --git a/rust/ql/src/queries/summary/NodesWithTypeAtLengthLimit.ql b/rust/ql/src/queries/summary/NodesWithTypeAtLengthLimit.ql index d06d1af510c..135bb8098ca 100644 --- a/rust/ql/src/queries/summary/NodesWithTypeAtLengthLimit.ql +++ b/rust/ql/src/queries/summary/NodesWithTypeAtLengthLimit.ql @@ -7,7 +7,7 @@ */ import rust -import codeql.rust.internal.TypeInference +import codeql.rust.internal.typeinference.TypeInference from int atLimit where diff --git a/rust/ql/src/queries/summary/Stats.qll b/rust/ql/src/queries/summary/Stats.qll index d06389fb6a7..36eeb0df4ef 100644 --- a/rust/ql/src/queries/summary/Stats.qll +++ b/rust/ql/src/queries/summary/Stats.qll @@ -8,7 +8,7 @@ private import codeql.rust.dataflow.internal.DataFlowImpl private import codeql.rust.dataflow.internal.TaintTrackingImpl private import codeql.rust.internal.AstConsistency as AstConsistency private import codeql.rust.internal.PathResolutionConsistency as PathResolutionConsistency -private import codeql.rust.internal.TypeInferenceConsistency as TypeInferenceConsistency +private import codeql.rust.internal.typeinference.TypeInferenceConsistency as TypeInferenceConsistency private import codeql.rust.controlflow.internal.CfgConsistency as CfgConsistency private import codeql.rust.dataflow.internal.DataFlowConsistency as DataFlowConsistency private import codeql.rust.dataflow.internal.SsaImpl::Consistency as SsaConsistency diff --git a/rust/ql/src/queries/telemetry/DatabaseQuality.qll b/rust/ql/src/queries/telemetry/DatabaseQuality.qll index 5f50cdd4c4f..37163ffd7dd 100644 --- a/rust/ql/src/queries/telemetry/DatabaseQuality.qll +++ b/rust/ql/src/queries/telemetry/DatabaseQuality.qll @@ -7,8 +7,8 @@ import rust import codeql.util.ReportStats import codeql.rust.elements.internal.CallExprImpl::Impl as CallExprImpl -import codeql.rust.internal.TypeInference as TypeInference -import codeql.rust.internal.Type +import codeql.rust.internal.typeinference.TypeInference as TypeInference +import codeql.rust.internal.typeinference.Type /** * A file that is included in the quality statistics. diff --git a/rust/ql/test/library-tests/type-inference/type-inference.ql b/rust/ql/test/library-tests/type-inference/type-inference.ql index 81cad0f975e..c4653f557ac 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.ql +++ b/rust/ql/test/library-tests/type-inference/type-inference.ql @@ -1,7 +1,7 @@ import rust import utils.test.InlineExpectationsTest -import codeql.rust.internal.Type -import codeql.rust.internal.TypeInference as TypeInference +import codeql.rust.internal.typeinference.Type +import codeql.rust.internal.typeinference.TypeInference as TypeInference import TypeInference private predicate relevantNode(AstNode n) { From de1d183ca63afbeaa0dd04ed28baa0648b92704d Mon Sep 17 00:00:00 2001 From: Taus Date: Mon, 12 Jan 2026 15:32:03 +0000 Subject: [PATCH 110/263] Misc: Add CLI interface to `create-change-note.py` This may be useful when working in "the other place", where the VSCode task may not be easily accessible. (Also, some people may just prefer to use a CLI interface.) --- misc/scripts/create-change-note.py | 112 +++++++++++++++++++++++++++-- 1 file changed, 107 insertions(+), 5 deletions(-) diff --git a/misc/scripts/create-change-note.py b/misc/scripts/create-change-note.py index 1de42126c90..acaf0794c86 100755 --- a/misc/scripts/create-change-note.py +++ b/misc/scripts/create-change-note.py @@ -9,6 +9,8 @@ # - The name of the change note (in kebab-case) # - The category of the change (see https://github.com/github/codeql/blob/main/docs/change-notes.md#change-categories). +# Alternatively, run without arguments for interactive mode. + # The change note will be created in the `{language}/ql/{subdir}/change-notes` directory, where `subdir` is either `src` or `lib`. # The format of the change note filename is `{current_date}-{change_note_name}.md` with the date in @@ -17,11 +19,111 @@ import sys import os -# Read the given arguments -language = sys.argv[1] -subdir = sys.argv[2] -change_note_name = sys.argv[3] -change_category = sys.argv[4] +LANGUAGES = [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift", +] + +SUBDIRS = { + "src": "query", + "lib": "library", +} + +CATEGORIES_QUERY = [ + "breaking", + "deprecated", + "newQuery", + "queryMetadata", + "majorAnalysis", + "minorAnalysis", + "fix", +] + +CATEGORIES_LIBRARY = [ + "breaking", + "deprecated", + "feature", + "majorAnalysis", + "minorAnalysis", + "fix", +] + + +def is_subsequence(needle: str, haystack: str) -> bool: + """Check if needle is a subsequence of haystack (case-insensitive).""" + it = iter(haystack.lower()) + return all(c in it for c in needle.lower()) + + +def pick_option(prompt: str, options: list[str]) -> str: + """Display options and let the user pick by subsequence match.""" + print(f"\n{prompt}") + print(f" Options: {', '.join(options)}") + while True: + choice = input("Choice: ").strip() + if not choice: + continue + # Try exact match first + for o in options: + if o.lower() == choice.lower(): + return o + # Try subsequence match + matches = [o for o in options if is_subsequence(choice, o)] + if len(matches) == 1: + return matches[0] + if len(matches) > 1: + print(f" Ambiguous: {', '.join(matches)}") + continue + print(f" No match for '{choice}'. Try again.") + + +def prompt_string(prompt: str) -> str: + """Prompt the user for a string value.""" + while True: + value = input(f"\n{prompt}: ").strip() + if value: + return value + print("Value cannot be empty.") + + +def interactive_mode() -> tuple[str, str, str, str]: + """Run interactive mode to gather all required inputs.""" + print("=== Create Change Note (Interactive Mode) ===") + + language = pick_option("Select language:", LANGUAGES) + subdir = pick_option("Change type:", list(SUBDIRS.keys())) + + change_note_name = prompt_string("Short name (kebab-case)") + + if subdir == "src": + categories = CATEGORIES_QUERY + else: + categories = CATEGORIES_LIBRARY + change_category = pick_option("Select category:", categories) + + return language, subdir, change_note_name, change_category + + +# Check if running in interactive mode (no arguments) or with arguments +if len(sys.argv) == 1: + language, subdir, change_note_name, change_category = interactive_mode() +elif len(sys.argv) == 5: + language = sys.argv[1] + subdir = sys.argv[2] + change_note_name = sys.argv[3] + change_category = sys.argv[4] +else: + print("Usage: create-change-note.py [language subdir name category]") + print(" Run without arguments for interactive mode.") + sys.exit(1) # Find the root of the repository. The current script should be located in `misc/scripts`. root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) From 37bb9d77d349f2d5d1fb615fa5cc9e0107b4cac7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jan 2026 05:38:36 +0000 Subject: [PATCH 111/263] Bump golang.org/x/tools Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools). Updates `golang.org/x/tools` from 0.40.0 to 0.41.0 - [Release notes](https://github.com/golang/tools/releases) - [Commits](https://github.com/golang/tools/compare/v0.40.0...v0.41.0) --- updated-dependencies: - dependency-name: golang.org/x/tools dependency-version: 0.41.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: extractor-dependencies ... Signed-off-by: dependabot[bot] --- go/extractor/go.mod | 2 +- go/extractor/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/extractor/go.mod b/go/extractor/go.mod index ece2a30deb0..62d42b037ef 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -10,7 +10,7 @@ toolchain go1.25.0 // bazel mod tidy require ( golang.org/x/mod v0.32.0 - golang.org/x/tools v0.40.0 + golang.org/x/tools v0.41.0 ) require golang.org/x/sync v0.19.0 // indirect diff --git a/go/extractor/go.sum b/go/extractor/go.sum index 4b494d6f23f..d462d8f3668 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -4,5 +4,5 @@ golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= -golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= +golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= +golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= From e7791120fa2ed0bebca8a16ddbfc97e4a31928ed Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 13 Jan 2026 07:53:39 +0100 Subject: [PATCH 112/263] Rust: Address review comments --- rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll b/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll index 7fbfb7b9d7d..c568fca48b6 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/DerefChain.qll @@ -4,7 +4,7 @@ private import rust private import codeql.rust.internal.PathResolution private import Type private import TypeInference -private import codeql.rust.internal.typeinference.TypeMention +private import TypeMention private import codeql.rust.frameworks.stdlib.Stdlib private import codeql.rust.frameworks.stdlib.Builtins as Builtins private import codeql.util.UnboundList as UnboundListImpl From 1151fc3be210f7125021b1f7745b77f461644ffb Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 13 Jan 2026 09:14:33 +0100 Subject: [PATCH 113/263] Update csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> --- .../lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 0604413bb22..1e6fed03d5c 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -474,7 +474,7 @@ private module Cached { kmp = TMkPair(kind, model) and gv = convertAcceptingValue(acceptingvalue) | - g.(Call).getAnArgument() = e or g.(MethodCall).getQualifier() = e + g.(Call).getAnArgument() = e or g.(QualifiableExpr).getQualifier() = e ) } From b2d19b610eac90f3e0fbf524cdfc6d56e3fc1712 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 13 Jan 2026 09:01:12 +0000 Subject: [PATCH 114/263] Rust: US spelling. --- .../rust/security/UncontrolledAllocationSizeExtensions.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll index e323f0d9544..0390ca77932 100644 --- a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll @@ -67,8 +67,8 @@ module UncontrolledAllocationSize { /** * A barrier for uncontrolled allocation size flow into particular functions. */ - private class ModelledBarrier extends Barrier { - ModelledBarrier() { + private class ModeledBarrier extends Barrier { + ModeledBarrier() { exists(MethodCall c | c.getStaticTarget().getCanonicalPath() = ["::split_off", "::split_off"] and From d6ec174e0c7c6068f9e20d95b146bf95f0bc2790 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 10:20:47 +0100 Subject: [PATCH 115/263] Rust: Remove `MacroBlockExpr` class --- rust/ast-generator/src/main.rs | 2 -- rust/schema/annotations.py | 22 ---------------------- 2 files changed, 24 deletions(-) diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index ddacc0d913e..b1de337f3ac 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -22,7 +22,6 @@ fn class_name(type_name: &str) -> String { "Literal" => "LiteralExpr".to_owned(), "ArrayExpr" => "ArrayExprInternal".to_owned(), "AsmOptions" => "AsmOptionsList".to_owned(), - "MacroStmts" => "MacroBlockExpr".to_owned(), _ if type_name.starts_with("Record") => type_name.replacen("Record", "Struct", 1), _ if type_name.ends_with("Type") => format!("{type_name}Repr"), _ => type_name.to_owned(), @@ -36,7 +35,6 @@ fn property_name(type_name: &str, field_name: &str) -> String { ("MatchExpr", "expr") => "scrutinee", ("Variant", "expr") => "discriminant", ("FieldExpr", "expr") => "container", - ("MacroBlockExpr", "expr") => "tail_expr", (_, "name_ref") => "identifier", (_, "then_branch") => "then", (_, "else_branch") => "else_", diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index 8896e5809f2..6fb45ae05b9 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -1440,28 +1440,6 @@ class _: """ -class MacroBlockExpr(Expr): - """ - A sequence of statements generated by a `MacroCall`. For example: - ```rust - macro_rules! my_macro { - () => { - let mut x = 40; - x += 2; - x - }; - } - - my_macro!(); // this macro expands to a sequence of statements (and an expression) - ``` - """ - - __cfg__ = True - - statements: list[Stmt] | child - tail_expr: optional[Expr] | child - - @annotate(MacroTypeRepr) class _: """ From 3eafca055004b5f75700922801e37e83c8d70dd0 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 10:22:16 +0100 Subject: [PATCH 116/263] Rust: Run codegen --- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 63 ---------------- rust/ql/.generated.list | 17 ++--- rust/ql/.gitattributes | 5 -- .../internal/generated/CfgNodes.qll | 70 ------------------ rust/ql/lib/codeql/rust/elements.qll | 1 - .../codeql/rust/elements/MacroBlockExpr.qll | 24 ------- .../internal/MacroBlockExprConstructor.qll | 14 ---- .../elements/internal/MacroBlockExprImpl.qll | 30 -------- .../internal/generated/MacroBlockExpr.qll | 72 ------------------- .../internal/generated/ParentChild.qll | 20 ------ .../rust/elements/internal/generated/Raw.qll | 51 ------------- .../elements/internal/generated/Synth.qll | 27 +------ .../internal/generated/SynthConstructors.qll | 1 - rust/ql/lib/rust.dbscheme | 18 ----- .../generated/.generated_tests.list | 1 - .../extractor-tests/generated/.gitattributes | 1 - .../MacroBlockExpr/MacroBlockExpr.ql | 13 ---- .../MacroBlockExpr/gen_macro_block_expr.rs | 14 ---- 19 files changed, 10 insertions(+), 434 deletions(-) delete mode 100644 rust/ql/lib/codeql/rust/elements/MacroBlockExpr.qll delete mode 100644 rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll delete mode 100644 rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll delete mode 100644 rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll delete mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/gen_macro_block_expr.rs diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 11f99621d16..89659a4811d 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs 92ef55101899570ddcb197b872a5b6a38aed874bb8f0ad604af27b2fec00eba5 92ef55101899570ddcb197b872a5b6a38aed874bb8f0ad604af27b2fec00eba5 +top.rs ea9c28694da3d0e90d09fc7d31824e35817c34720ea91e7c8bf8e7e74ffe4ee8 ea9c28694da3d0e90d09fc7d31824e35817c34720ea91e7c8bf8e7e74ffe4ee8 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index 2365084bb82..1c4fd0f00d6 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -6145,69 +6145,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct MacroBlockExpr { - pub id: trap::TrapId, - pub statements: Vec>, - pub tail_expr: Option>, -} - -impl trap::TrapEntry for MacroBlockExpr { - fn extract_id(&mut self) -> trap::TrapId { - std::mem::replace(&mut self.id, trap::TrapId::Star) - } - - fn emit(self, id: trap::Label, out: &mut trap::Writer) { - out.add_tuple("macro_block_exprs", vec![id.into()]); - for (i, v) in self.statements.into_iter().enumerate() { - out.add_tuple("macro_block_expr_statements", vec![id.into(), i.into(), v.into()]); - } - if let Some(v) = self.tail_expr { - out.add_tuple("macro_block_expr_tail_exprs", vec![id.into(), v.into()]); - } - } -} - -impl trap::TrapClass for MacroBlockExpr { - fn class_name() -> &'static str { "MacroBlockExpr" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of Expr - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of AstNode - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of Locatable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of Element - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct MacroExpr { pub id: trap::TrapId, diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index de0cdb6224f..003ede90023 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,4 +1,4 @@ -lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 1eac5a95247dec5cf51a453788b5bdebcf612590014b1e28f6b6f7e841c96a20 d4d8c9664ca406c3fd14d96a488eea97c42401e2791f41d7248ee5d3f299805c +lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 3f4499c892277e07380232b2c90138d7c312911ef8af4a89ba0c9c2958da028b d8a8b330f8dc43e009c261a41801893230b6b568f503c17faeae9cea54714075 lib/codeql/rust/elements/Abi.qll 485a2e79f6f7bfd1c02a6e795a71e62dede3c3e150149d5f8f18b761253b7208 6159ba175e7ead0dd2e3f2788f49516c306ee11b1a443bd4bdc00b7017d559bd lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be lib/codeql/rust/elements/ArgList.qll 3d2f6f5542340b80a4c6e944ac17aba0d00727588bb66e501453ac0f80c82f83 afd52700bf5a337f19827846667cd0fb1fea5abbbcbc353828e292a727ea58c9 @@ -88,7 +88,6 @@ lib/codeql/rust/elements/LiteralPat.qll daffb5f380a47543669c8cc92628b0e0de478c3a lib/codeql/rust/elements/Locatable.qll 2855efa4a469b54e0ca85daa89309a8b991cded6f3f10db361010831ba1e11d3 00c3406d14603f90abea11bf074eaf2c0b623a30e29cf6afc3a247cb58b92f0f lib/codeql/rust/elements/LoopExpr.qll ee171177650fa23eef102a9580765f4b6073a1cc41bab1ec31ad4f84ffe6c2c9 bfcf0cca4dc944270d9748a202829a38c64dfae167c0d3a4202788ceb9daf5f6 lib/codeql/rust/elements/LoopingExpr.qll 7ad7d4bbfd05adc0bb9b4ca90ff3377b8298121ca5360ffb45d5a7a1e20fe37a 964168b2045ee9bad827bba53f10a64d649b3513f2d1e3c17a1b1f11d0fc7f3a -lib/codeql/rust/elements/MacroBlockExpr.qll 077c968da099c10456be4b594675a074e9a4e43b5c5145e1b1ae1fa47ae6d570 99586e3766ee0c80364998128e067cab2639ac25c1dcbe13e0247d629490af6f lib/codeql/rust/elements/MacroCall.qll 452aee152b655cdd5a69bf973977072f000a6451f626469a3f7313f0468ffc18 a8652d0de1c6c2118d683d5465ba4115dd4c65031896440269a2a0522d90fceb lib/codeql/rust/elements/MacroDef.qll 5bcf2bba7ba40879fe47370bfeb65b23c67c463be20535327467338a1e2e04bb c3d28416fc08e5d79149fccd388fea2bc3097bce074468a323383056404926db lib/codeql/rust/elements/MacroExpr.qll 640554f4964def19936a16ce88a03fb12f74ec2bcfe38b88d32742b79f85d909 a284fb66e012664a33a4e9c8fd3e38d3ffd588fccd6b16b02270da55fc025f7a @@ -299,8 +298,6 @@ lib/codeql/rust/elements/internal/LiteralExprConstructor.qll 8ea3569bd50704ce7d5 lib/codeql/rust/elements/internal/LiteralPatConstructor.qll b660cb428a0cba0b713fc7b07d5d2921de4a2f65a805535fb6387684c40620de 2dbc9fbc56e9de53d24265d6b13738ef5b9ced33cc3c4c1c270e04dc2fc1330f lib/codeql/rust/elements/internal/LoopExprConstructor.qll 45f3f8f7441fcab6adc58831421679ee07bac68ac0417f3cbc90c97426cc805b f7ab3361b4a11e898126378ea277d76949466946762cd6cb5e9e9b4bb9860420 lib/codeql/rust/elements/internal/LoopingExprImpl.qll 17885c1bcf7b5a3f9c7bbad3d4d55e24372af0dedd5e7fc0efcfc0a8b2cdad70 104dc45ca399b9f6e8227ad561679f728d60170398a52b31fc90cb2a2dd3c33c -lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll 90097c0d2c94083e997396e01cf24349af5eb1788060368dc21ae8cd8ce90d93 e067904a734356e38fbadbc4277629c5987adce6d8f7737f7458ac07e9b264af -lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll 323c0695ab1d8ee7d88a678eabdb6ac9d92293b9ae0846ec2c7ed8d76a591369 7b662b77cf2d885423d8734ff322c199650c1ea59a2c3371a1370efd7966e0c9 lib/codeql/rust/elements/internal/MacroCallConstructor.qll 707fee4fba1fd632cd00128f493e8919eaaea552ad653af4c1b7a138e362907d b49e7e36bf9306199f2326af042740ff858871b5c79f6aeddf3d5037044dbf1f lib/codeql/rust/elements/internal/MacroDefConstructor.qll 382a3bdf46905d112ee491620cc94f87d584d72f49e01eb1483f749e4709c055 eb61b90d8d8d655c2b00ff576ae20c8da9709eeef754212bc64d8e1558ad05ce lib/codeql/rust/elements/internal/MacroDefImpl.qll 73db95ff82834e0063699c7d31349b65e95ba7436fe0a8914dbdd3a383f8b1c9 cd2f078f84ce73fdc88b207df105b297f2cd3b780428968214443af3a2719e8f @@ -534,7 +531,6 @@ lib/codeql/rust/elements/internal/generated/LiteralPat.qll f36b09cf39330019c111e lib/codeql/rust/elements/internal/generated/Locatable.qll c897dc1bdd4dfcb6ded83a4a93332ca3d8f421bae02493ea2a0555023071775e b32d242f8c9480dc9b53c1e13a5cb8dcfce575b0373991c082c1db460a3e37b8 lib/codeql/rust/elements/internal/generated/LoopExpr.qll db6bc87e795c9852426ec661fa2c2c54106805897408b43a67f5b82fb4657afd 1492866ccf8213469be85bbdbcae0142f4e2a39df305d4c0d664229ecd1ebdb9 lib/codeql/rust/elements/internal/generated/LoopingExpr.qll 0792c38d84b8c68114da2bbdfef32ef803b696cb0fd06e10e101756d5c46976c 111fe961fad512722006323c3f2a075fddf59bd3eb5c7afc349835fcec8eb102 -lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll 7705de831e797c8742726a3c28dd8f87f6c1b9e2cccd20f01839d161f7ca37c7 ac79c5c95befc82f53b620ccc8a28fd9cc0f9e00c585ed4032bd75f99e0935fa lib/codeql/rust/elements/internal/generated/MacroCall.qll 1a7ee9c782ebc9ab0a807762aabebc9e0a7ef10c6eb945679737598630b20af2 782a437654cb316355c020e89d50b07c93ba7817715fa5d42a9e807cf12d1a43 lib/codeql/rust/elements/internal/generated/MacroDef.qll 90393408d9e10ff6167789367c30f9bfe1d3e8ac3b83871c6cb30a8ae37eef47 f022d1df45bc9546cb9fd7059f20e16a3acfaae2053bbd10075fe467c96e2379 lib/codeql/rust/elements/internal/generated/MacroExpr.qll 5a86ae36a28004ce5e7eb30addf763eef0f1c614466f4507a3935b0dab2c7ce3 11c15e8ebd36455ec9f6b7819134f6b22a15a3644678ca96b911ed0eb1181873 @@ -562,7 +558,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll eaa0cd4402d3665013d47e lib/codeql/rust/elements/internal/generated/ParenExpr.qll 812d2ff65079277f39f15c084657a955a960a7c1c0e96dd60472a58d56b945eb eb8c607f43e1fcbb41f37a10de203a1db806690e10ff4f04d48ed874189cb0eb lib/codeql/rust/elements/internal/generated/ParenPat.qll 24f9dc7fce75827d6fddb856cd48f80168143151b27295c0bab6db5a06567a09 ebadbc6f5498e9ed754b39893ce0763840409a0721036a25b56e1ead7dcc09aa lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 03f5c5b96a37adeb845352d7fcea3e098da9050e534972d14ac0f70d60a2d776 ed3d6e5d02086523087adebce4e89e35461eb95f2a66d1d4100fe23fc691b126 -lib/codeql/rust/elements/internal/generated/ParentChild.qll 2a7dd6ec90e4d557b36704a04bb9eb4191469126f960c52827e12c90e51c5343 37781e023a93982be30c9d80aee7c6d87d52cc934705db66f838604563391f95 +lib/codeql/rust/elements/internal/generated/ParentChild.qll b0e3c13b2ca75faaf0d92b2ca3d70cac7b78b3729aaccf635063cc5836c163af a340e8f34a6d7425f38845e789b4aeb83aec90c11429a68ad6632a5aa132fa57 lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll d901fdc8142a5b8847cc98fc2afcfd16428b8ace4fbffb457e761b5fd3901a77 5dbb0aea5a13f937da666ccb042494af8f11e776ade1459d16b70a4dd193f9fb lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -577,7 +573,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll 22bb3aa871d1dcac60bfa46393da911f95467065e52bb78981d17469c7854c93 3ccc518319d79f3c8d9e9901a5665ab4c889253781edf76fcbc3de64dff91069 +lib/codeql/rust/elements/internal/generated/Raw.qll 6e32bd7167d3eece2d22f893a92410129b1bd18e59533b1cf82f72f31465b43a bb25c56118df0e2755be2350cf307c19e6c4d85b2a39388c08f2cc1bad303692 lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b @@ -602,8 +598,8 @@ lib/codeql/rust/elements/internal/generated/StructFieldList.qll 5da528a51a6a5db9 lib/codeql/rust/elements/internal/generated/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58 lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll 1a95a1bd9f64fb18e9571657cf2d02a8b13c747048a1f0f74baf31b91f0392ad fc274e414ff4ed54386046505920de92755ad0b4d39a7523cdffa4830bd53b37 -lib/codeql/rust/elements/internal/generated/Synth.qll 00f19e9d0a03b9d8e42caceda06da69d67280be16f67f3459f0adec8f9f8cacd ebcc049fe946540277893bf095787c061cd119c9d4eb708cec9df93257780e8d -lib/codeql/rust/elements/internal/generated/SynthConstructors.qll f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a +lib/codeql/rust/elements/internal/generated/Synth.qll 3b9f71b9b6b9952c967e1ba74175b74dd563492d5adc00a27e19ab735bf37918 3ef3e4fe71ab08f772ebd68036cba7b2ec4109d706cfb03747aa05835f376628 +lib/codeql/rust/elements/internal/generated/SynthConstructors.qll ec935bac4f775b64c76cd15ab975d885f544e77bf4833fd0f47acd40438fe66f ec935bac4f775b64c76cd15ab975d885f544e77bf4833fd0f47acd40438fe66f lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf lib/codeql/rust/elements/internal/generated/Trait.qll 8fa41b50fa0f68333534f2b66bb4ec8e103ff09ac8fa5c2cc64bc04beafec205 ce1c9aa6d0e2f05d28aab8e1165c3b9fb8e24681ade0cf6a9df2e8617abeae7e @@ -640,7 +636,7 @@ lib/codeql/rust/elements/internal/generated/WhileExpr.qll 0353aab87c49569e1fbf58 lib/codeql/rust/elements/internal/generated/WildcardPat.qll d74b70b57a0a66bfae017a329352a5b27a6b9e73dd5521d627f680e810c6c59e 4b913b548ba27ff3c82fcd32cf996ff329cb57d176d3bebd0fcef394486ea499 lib/codeql/rust/elements/internal/generated/YeetExpr.qll cac328200872a35337b4bcb15c851afb4743f82c080f9738d295571eb01d7392 94af734eea08129b587fed849b643e7572800e8330c0b57d727d41abda47930b lib/codeql/rust/elements/internal/generated/YieldExpr.qll 37e5f0c1e373a22bbc53d8b7f2c0e1f476e5be5080b8437c5e964f4e83fad79a 4a9a68643401637bf48e5c2b2f74a6bf0ddcb4ff76f6bffb61d436b685621e85 -lib/codeql/rust/elements.qll 47adb2b43274ce791299d1e94299e560f392f75d2cc4d4ace02e29f31a7db4af 47adb2b43274ce791299d1e94299e560f392f75d2cc4d4ace02e29f31a7db4af +lib/codeql/rust/elements.qll be9c7606d429b62fcb8686285e8eeff41f45f0dd22feb5b4fd3ea2f3cdfb39be be9c7606d429b62fcb8686285e8eeff41f45f0dd22feb5b4fd3ea2f3cdfb39be test/extractor-tests/generated/Abi/Abi.ql 086ed104ab1a7e7fe5c1ed29e03f1719a797c7096c738868bf6ebe872ab8fdaa fe23fe67ab0d9201e1177ea3f844b18ed428e13e3ce77381bf2b6910adfa3a0e test/extractor-tests/generated/ArgList/ArgList.ql da97b5b25418b2aa8cb8df793f48870c89fa00759cdade8ddba60d7f1f4bbc01 acfd5d2caf67282ad2d57b961068472100482d0f770a52a3c00214c647d18c75 test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql 42b365276aa43e2cad588338463542d3ce1dd0db3a428621554584b07a1431d5 08a66a8b69af35ee3bc64c35c453a19a6c9881cc6cc7e65275d1fff056121270 @@ -712,7 +708,6 @@ test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql a96f586af332969878 test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql 00570642966d233a10ec3106ae65e6ea865c29d0776fdbc452815f528301117c adb286ad3bd763f1b1b350cac91bc2615869dcb9b0faf29276ace9a99d31f0cc test/extractor-tests/generated/LiteralPat/LiteralPat.ql 863d4902e7e22de3176398cbb908e6f5f487b3d22c0f9f7a5498a1ebc112c0fd 47e3f70c5c32f17050d3ca8c8b42d94ecd38e378627880d8100b7ca182cfa793 test/extractor-tests/generated/LoopExpr/LoopExpr.ql a178e25f63b4d517482ec63e5dfb6903dd41dadd8db39be2dd2a831e8456811f f34165f78179960cc7e5876dac26a1d0f6f67933eff9a015b92ca0e2872b63e8 -test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql 936920b5b609b1e62b201004055bbce449d2d7c1f8016f57d9b27d3ea8107f07 21493009ed3b1810aa4fd8af4d8c7b7794982da032dfb6b7e9048445d651eecb test/extractor-tests/generated/MacroCall/MacroCall.ql 28abee68c0681334e4ffd412f1b9b9b0fe844a6ae6c915ec18ea186b4766f58e c8c73902827d69a4b903ab3028408086b64b9f5d9a4da97620a2100f45ceaf69 test/extractor-tests/generated/MacroDef/MacroDef.ql edcdd65706641c2827cac546091a99e0a1473ff8d383efd968023db411591197 b7832c67c6dd32e9e5ecfa4b6256e7cd820f55d49c44458a140cbf4d46542eb3 test/extractor-tests/generated/MacroExpr/MacroExpr.ql 83fadb88fd8f913bb1b1cda26d21b173bdc94bb6682a74eaddce650ebf72aa41 1c502cde6a95ec637e43d348c613be3dec4092b69d2c8692abdc5a9377e37f5f diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index dd6ca829eed..d8004cb5b35 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -90,7 +90,6 @@ /lib/codeql/rust/elements/Locatable.qll linguist-generated /lib/codeql/rust/elements/LoopExpr.qll linguist-generated /lib/codeql/rust/elements/LoopingExpr.qll linguist-generated -/lib/codeql/rust/elements/MacroBlockExpr.qll linguist-generated /lib/codeql/rust/elements/MacroCall.qll linguist-generated /lib/codeql/rust/elements/MacroDef.qll linguist-generated /lib/codeql/rust/elements/MacroExpr.qll linguist-generated @@ -301,8 +300,6 @@ /lib/codeql/rust/elements/internal/LiteralPatConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/LoopExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/LoopingExprImpl.qll linguist-generated -/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll linguist-generated -/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/MacroCallConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/MacroDefConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/MacroDefImpl.qll linguist-generated @@ -536,7 +533,6 @@ /lib/codeql/rust/elements/internal/generated/Locatable.qll linguist-generated /lib/codeql/rust/elements/internal/generated/LoopExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/LoopingExpr.qll linguist-generated -/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroCall.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroDef.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroExpr.qll linguist-generated @@ -714,7 +710,6 @@ /test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql linguist-generated /test/extractor-tests/generated/LiteralPat/LiteralPat.ql linguist-generated /test/extractor-tests/generated/LoopExpr/LoopExpr.ql linguist-generated -/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef.ql linguist-generated /test/extractor-tests/generated/MacroExpr/MacroExpr.ql linguist-generated diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll index 016217e0a46..6aeaa3dd4f4 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll @@ -1758,64 +1758,6 @@ module MakeCfgNodes Input> { predicate hasLoopBody() { exists(this.getLoopBody()) } } - final private class ParentMacroBlockExpr extends ParentAstNode, MacroBlockExpr { - override predicate relevantChild(AstNode child) { - none() - or - child = this.getTailExpr() - } - } - - /** - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * macro_rules! my_macro { - * () => { - * let mut x = 40; - * x += 2; - * x - * }; - * } - * - * my_macro!(); // this macro expands to a sequence of statements (and an expression) - * ``` - */ - final class MacroBlockExprCfgNode extends CfgNodeFinal, ExprCfgNode { - private MacroBlockExpr node; - - MacroBlockExprCfgNode() { node = this.getAstNode() } - - /** Gets the underlying `MacroBlockExpr`. */ - MacroBlockExpr getMacroBlockExpr() { result = node } - - /** - * Gets the `index`th statement of this macro block expression (0-based). - */ - Stmt getStatement(int index) { result = node.getStatement(index) } - - /** - * Gets any of the statements of this macro block expression. - */ - Stmt getAStatement() { result = this.getStatement(_) } - - /** - * Gets the number of statements of this macro block expression. - */ - int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) } - - /** - * Gets the tail expression of this macro block expression, if it exists. - */ - ExprCfgNode getTailExpr() { - any(ChildMapping mapping).hasCfgChild(node, node.getTailExpr(), this, result) - } - - /** - * Holds if `getTailExpr()` exists. - */ - predicate hasTailExpr() { exists(this.getTailExpr()) } - } - final private class ParentMacroCall extends ParentAstNode, MacroCall { override predicate relevantChild(AstNode child) { none() } } @@ -3807,18 +3749,6 @@ module MakeCfgNodes Input> { cfgNode ) or - pred = "getTailExpr" and - parent = - any(Nodes::MacroBlockExprCfgNode cfgNode, MacroBlockExpr astNode | - astNode = cfgNode.getMacroBlockExpr() and - child = getDesugared(astNode.getTailExpr()) and - i = -1 and - hasCfgNode(child) and - not child = cfgNode.getTailExpr().getAstNode() - | - cfgNode - ) - or pred = "getMacroCall" and parent = any(Nodes::MacroExprCfgNode cfgNode, MacroExpr astNode | diff --git a/rust/ql/lib/codeql/rust/elements.qll b/rust/ql/lib/codeql/rust/elements.qll index 1377c543f78..b7ca8fe1ca5 100644 --- a/rust/ql/lib/codeql/rust/elements.qll +++ b/rust/ql/lib/codeql/rust/elements.qll @@ -93,7 +93,6 @@ import codeql.rust.elements.LiteralPat import codeql.rust.elements.Locatable import codeql.rust.elements.LoopExpr import codeql.rust.elements.LoopingExpr -import codeql.rust.elements.MacroBlockExpr import codeql.rust.elements.MacroCall import codeql.rust.elements.MacroDef import codeql.rust.elements.MacroExpr diff --git a/rust/ql/lib/codeql/rust/elements/MacroBlockExpr.qll b/rust/ql/lib/codeql/rust/elements/MacroBlockExpr.qll deleted file mode 100644 index 0ad76f8a973..00000000000 --- a/rust/ql/lib/codeql/rust/elements/MacroBlockExpr.qll +++ /dev/null @@ -1,24 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the public class `MacroBlockExpr`. - */ - -private import internal.MacroBlockExprImpl -import codeql.rust.elements.Expr -import codeql.rust.elements.Stmt - -/** - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * macro_rules! my_macro { - * () => { - * let mut x = 40; - * x += 2; - * x - * }; - * } - * - * my_macro!(); // this macro expands to a sequence of statements (and an expression) - * ``` - */ -final class MacroBlockExpr = Impl::MacroBlockExpr; diff --git a/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll b/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll deleted file mode 100644 index 0bb4936209a..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll +++ /dev/null @@ -1,14 +0,0 @@ -// generated by codegen, remove this comment if you wish to edit this file -/** - * This module defines the hook used internally to tweak the characteristic predicate of - * `MacroBlockExpr` synthesized instances. - * INTERNAL: Do not use. - */ - -private import codeql.rust.elements.internal.generated.Raw - -/** - * The characteristic predicate of `MacroBlockExpr` synthesized instances. - * INTERNAL: Do not use. - */ -predicate constructMacroBlockExpr(Raw::MacroBlockExpr id) { any() } diff --git a/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll deleted file mode 100644 index 289e6c33a30..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll +++ /dev/null @@ -1,30 +0,0 @@ -// generated by codegen, remove this comment if you wish to edit this file -/** - * This module provides a hand-modifiable wrapper around the generated class `MacroBlockExpr`. - * - * INTERNAL: Do not use. - */ - -private import codeql.rust.elements.internal.generated.MacroBlockExpr - -/** - * INTERNAL: This module contains the customizable definition of `MacroBlockExpr` and should not - * be referenced directly. - */ -module Impl { - /** - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * macro_rules! my_macro { - * () => { - * let mut x = 40; - * x += 2; - * x - * }; - * } - * - * my_macro!(); // this macro expands to a sequence of statements (and an expression) - * ``` - */ - class MacroBlockExpr extends Generated::MacroBlockExpr { } -} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll deleted file mode 100644 index e7b94d9f04c..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll +++ /dev/null @@ -1,72 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the generated definition of `MacroBlockExpr`. - * INTERNAL: Do not import directly. - */ - -private import codeql.rust.elements.internal.generated.Synth -private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.Expr -import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl -import codeql.rust.elements.Stmt - -/** - * INTERNAL: This module contains the fully generated definition of `MacroBlockExpr` and should not - * be referenced directly. - */ -module Generated { - /** - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * macro_rules! my_macro { - * () => { - * let mut x = 40; - * x += 2; - * x - * }; - * } - * - * my_macro!(); // this macro expands to a sequence of statements (and an expression) - * ``` - * INTERNAL: Do not reference the `Generated::MacroBlockExpr` class directly. - * Use the subclass `MacroBlockExpr`, where the following predicates are available. - */ - class MacroBlockExpr extends Synth::TMacroBlockExpr, ExprImpl::Expr { - override string getAPrimaryQlClass() { result = "MacroBlockExpr" } - - /** - * Gets the `index`th statement of this macro block expression (0-based). - */ - Stmt getStatement(int index) { - result = - Synth::convertStmtFromRaw(Synth::convertMacroBlockExprToRaw(this) - .(Raw::MacroBlockExpr) - .getStatement(index)) - } - - /** - * Gets any of the statements of this macro block expression. - */ - final Stmt getAStatement() { result = this.getStatement(_) } - - /** - * Gets the number of statements of this macro block expression. - */ - final int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) } - - /** - * Gets the tail expression of this macro block expression, if it exists. - */ - Expr getTailExpr() { - result = - Synth::convertExprFromRaw(Synth::convertMacroBlockExprToRaw(this) - .(Raw::MacroBlockExpr) - .getTailExpr()) - } - - /** - * Holds if `getTailExpr()` exists. - */ - final predicate hasTailExpr() { exists(this.getTailExpr()) } - } -} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index 2b51f614619..c593451b993 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -1505,24 +1505,6 @@ private module Impl { ) } - private Element getImmediateChildOfMacroBlockExpr( - MacroBlockExpr e, int index, string partialPredicateCall - ) { - exists(int n, int nStatement, int nTailExpr | - n = 0 and - nStatement = n + e.getNumberOfStatements() and - nTailExpr = nStatement + 1 and - ( - none() - or - result = e.getStatement(index - n) and - partialPredicateCall = "Statement(" + (index - n).toString() + ")" - or - index = nStatement and result = e.getTailExpr() and partialPredicateCall = "TailExpr()" - ) - ) - } - private Element getImmediateChildOfMacroExpr(MacroExpr e, int index, string partialPredicateCall) { exists(int n, int nMacroCall | n = 0 and @@ -3217,8 +3199,6 @@ private module Impl { or result = getImmediateChildOfLiteralPat(e, index, partialAccessor) or - result = getImmediateChildOfMacroBlockExpr(e, index, partialAccessor) - or result = getImmediateChildOfMacroExpr(e, index, partialAccessor) or result = getImmediateChildOfMacroPat(e, index, partialAccessor) diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 5cc81a8777b..01f54e7ab60 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -4169,55 +4169,6 @@ module Raw { ) } - /** - * INTERNAL: Do not use. - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * macro_rules! my_macro { - * () => { - * let mut x = 40; - * x += 2; - * x - * }; - * } - * - * my_macro!(); // this macro expands to a sequence of statements (and an expression) - * ``` - */ - class MacroBlockExpr extends @macro_block_expr, Expr { - override string toString() { result = "MacroBlockExpr" } - - /** - * Gets the `index`th statement of this macro block expression (0-based). - */ - Stmt getStatement(int index) { macro_block_expr_statements(this, index, result) } - - /** - * Gets the number of statements of this macro block expression. - */ - int getNumberOfStatements() { result = count(int i | macro_block_expr_statements(this, i, _)) } - - /** - * Gets the tail expression of this macro block expression, if it exists. - */ - Expr getTailExpr() { macro_block_expr_tail_exprs(this, result) } - } - - private Element getImmediateChildOfMacroBlockExpr(MacroBlockExpr e, int index) { - exists(int n, int nStatement, int nTailExpr | - n = 0 and - nStatement = n + e.getNumberOfStatements() and - nTailExpr = nStatement + 1 and - ( - none() - or - result = e.getStatement(index - n) - or - index = nStatement and result = e.getTailExpr() - ) - ) - } - /** * INTERNAL: Do not use. * A macro expression, representing the invocation of a macro that produces an expression. @@ -7915,8 +7866,6 @@ module Raw { or result = getImmediateChildOfLiteralPat(e, index) or - result = getImmediateChildOfMacroBlockExpr(e, index) - or result = getImmediateChildOfMacroExpr(e, index) or result = getImmediateChildOfMacroPat(e, index) diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll index 8b22dbbac9d..eebd86348e0 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -318,10 +318,6 @@ module Synth { * INTERNAL: Do not use. */ TLoopExpr(Raw::LoopExpr id) { constructLoopExpr(id) } or - /** - * INTERNAL: Do not use. - */ - TMacroBlockExpr(Raw::MacroBlockExpr id) { constructMacroBlockExpr(id) } or /** * INTERNAL: Do not use. */ @@ -736,9 +732,9 @@ module Synth { TArrayExpr or TArrayExprInternal or TAsmExpr or TAwaitExpr or TBecomeExpr or TBinaryExpr or TBreakExpr or TCallExpr or TCastExpr or TClosureExpr or TContinueExpr or TFieldExpr or TFormatArgsExpr or TIfExpr or TIndexExpr or TLabelableExpr or TLetExpr or TLiteralExpr or - TMacroBlockExpr or TMacroExpr or TMatchExpr or TMethodCallExpr or TOffsetOfExpr or - TParenExpr or TPathExprBase or TPrefixExpr or TRangeExpr or TRefExpr or TReturnExpr or - TStructExpr or TTryExpr or TTupleExpr or TUnderscoreExpr or TYeetExpr or TYieldExpr; + TMacroExpr or TMatchExpr or TMethodCallExpr or TOffsetOfExpr or TParenExpr or + TPathExprBase or TPrefixExpr or TRangeExpr or TRefExpr or TReturnExpr or TStructExpr or + TTryExpr or TTupleExpr or TUnderscoreExpr or TYeetExpr or TYieldExpr; /** * INTERNAL: Do not use. @@ -1377,13 +1373,6 @@ module Synth { */ TLoopExpr convertLoopExprFromRaw(Raw::Element e) { result = TLoopExpr(e) } - /** - * INTERNAL: Do not use. - * - * Converts a raw element to a synthesized `TMacroBlockExpr`, if possible. - */ - TMacroBlockExpr convertMacroBlockExprFromRaw(Raw::Element e) { result = TMacroBlockExpr(e) } - /** * INTERNAL: Do not use. * @@ -2277,8 +2266,6 @@ module Synth { or result = convertLiteralExprFromRaw(e) or - result = convertMacroBlockExprFromRaw(e) - or result = convertMacroExprFromRaw(e) or result = convertMatchExprFromRaw(e) @@ -3036,12 +3023,6 @@ module Synth { */ Raw::Element convertLoopExprToRaw(TLoopExpr e) { e = TLoopExpr(result) } - /** - * INTERNAL: Do not use. - * Converts a synthesized `TMacroBlockExpr` to a raw DB element, if possible. - */ - Raw::Element convertMacroBlockExprToRaw(TMacroBlockExpr e) { e = TMacroBlockExpr(result) } - /** * INTERNAL: Do not use. * Converts a synthesized `TMacroCall` to a raw DB element, if possible. @@ -3845,8 +3826,6 @@ module Synth { or result = convertLiteralExprToRaw(e) or - result = convertMacroBlockExprToRaw(e) - or result = convertMacroExprToRaw(e) or result = convertMatchExprToRaw(e) diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll index d701fa09d76..613af726ba4 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll @@ -77,7 +77,6 @@ import codeql.rust.elements.internal.LifetimeParamConstructor import codeql.rust.elements.internal.LiteralExprConstructor import codeql.rust.elements.internal.LiteralPatConstructor import codeql.rust.elements.internal.LoopExprConstructor -import codeql.rust.elements.internal.MacroBlockExprConstructor import codeql.rust.elements.internal.MacroCallConstructor import codeql.rust.elements.internal.MacroDefConstructor import codeql.rust.elements.internal.MacroExprConstructor diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index c467bf63916..90861289dd4 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -409,7 +409,6 @@ callable_attrs( | @labelable_expr | @let_expr | @literal_expr -| @macro_block_expr | @macro_expr | @match_expr | @method_call_expr @@ -2036,23 +2035,6 @@ literal_pat_literals( int literal: @literal_expr ref ); -macro_block_exprs( - unique int id: @macro_block_expr -); - -#keyset[id, index] -macro_block_expr_statements( - int id: @macro_block_expr ref, - int index: int ref, - int statement: @stmt ref -); - -#keyset[id] -macro_block_expr_tail_exprs( - int id: @macro_block_expr ref, - int tail_expr: @expr ref -); - macro_exprs( unique int id: @macro_expr ); diff --git a/rust/ql/test/extractor-tests/generated/.generated_tests.list b/rust/ql/test/extractor-tests/generated/.generated_tests.list index a0f338af420..73e2a1b767d 100644 --- a/rust/ql/test/extractor-tests/generated/.generated_tests.list +++ b/rust/ql/test/extractor-tests/generated/.generated_tests.list @@ -67,7 +67,6 @@ LifetimeParam/gen_lifetime_param.rs e3f9a417ae7a88a4d81d9cb747b361a3246d270d142f LiteralExpr/gen_literal_expr.rs 2db01ad390e5c0c63a957c043230a462cb4cc25715eea6ede15d43c55d35976d 2db01ad390e5c0c63a957c043230a462cb4cc25715eea6ede15d43c55d35976d LiteralPat/gen_literal_pat.rs a471b481b6989001817a3988696f445d9a4dea784e543c346536dacbee1e96f3 a471b481b6989001817a3988696f445d9a4dea784e543c346536dacbee1e96f3 LoopExpr/gen_loop_expr.rs 35deaf35e765db4ae3124a11284266d8f341d1ce7b700030efada0dda8878619 35deaf35e765db4ae3124a11284266d8f341d1ce7b700030efada0dda8878619 -MacroBlockExpr/gen_macro_block_expr.rs 4284a6e6ad81827d8616a00fec7f5bc21104eed40d93e3acc2b933ee22cb8577 4284a6e6ad81827d8616a00fec7f5bc21104eed40d93e3acc2b933ee22cb8577 MacroCall/gen_macro_call.rs c30added613d9edb3cb1321ae46fc6a088a2f22d2cc979119466ec02f6e09ed6 c30added613d9edb3cb1321ae46fc6a088a2f22d2cc979119466ec02f6e09ed6 MacroDef/gen_macro_def.rs 6f895ecab8c13a73c28ce67fcee39baf7928745a80fb440811014f6d31b22378 6f895ecab8c13a73c28ce67fcee39baf7928745a80fb440811014f6d31b22378 MacroExpr/gen_macro_expr.rs 5e1748356f431eea343a2aad2798c22073151940ea2cda0f0cce78c3d96104f0 5e1748356f431eea343a2aad2798c22073151940ea2cda0f0cce78c3d96104f0 diff --git a/rust/ql/test/extractor-tests/generated/.gitattributes b/rust/ql/test/extractor-tests/generated/.gitattributes index 2679395b34f..660ad73721a 100644 --- a/rust/ql/test/extractor-tests/generated/.gitattributes +++ b/rust/ql/test/extractor-tests/generated/.gitattributes @@ -69,7 +69,6 @@ /LiteralExpr/gen_literal_expr.rs linguist-generated /LiteralPat/gen_literal_pat.rs linguist-generated /LoopExpr/gen_loop_expr.rs linguist-generated -/MacroBlockExpr/gen_macro_block_expr.rs linguist-generated /MacroCall/gen_macro_call.rs linguist-generated /MacroDef/gen_macro_def.rs linguist-generated /MacroExpr/gen_macro_expr.rs linguist-generated diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql deleted file mode 100644 index bae6d7d1f62..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql +++ /dev/null @@ -1,13 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -query predicate instances(MacroBlockExpr x) { toBeTested(x) and not x.isUnknown() } - -query predicate getStatement(MacroBlockExpr x, int index, Stmt getStatement) { - toBeTested(x) and not x.isUnknown() and getStatement = x.getStatement(index) -} - -query predicate getTailExpr(MacroBlockExpr x, Expr getTailExpr) { - toBeTested(x) and not x.isUnknown() and getTailExpr = x.getTailExpr() -} diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/gen_macro_block_expr.rs b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/gen_macro_block_expr.rs deleted file mode 100644 index 62a408411e8..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/gen_macro_block_expr.rs +++ /dev/null @@ -1,14 +0,0 @@ -// generated by codegen, do not edit - -fn test_macro_block_expr() -> () { - // A sequence of statements generated by a `MacroCall`. For example: - macro_rules! my_macro { - () => { - let mut x = 40; - x += 2; - x - }; - } - - my_macro!(); // this macro expands to a sequence of statements (and an expression) -} From 5fb425fd67f3fd9fd426f8796b1c8eedaf864e75 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 10:24:04 +0100 Subject: [PATCH 117/263] Rust: Update extractor and QL code after removing `MacroBlockExpr` --- rust/extractor/src/translate/base.rs | 19 ++++++++++-- .../internal/ControlFlowGraphImpl.qll | 11 +------ .../rust/dataflow/internal/DataFlowImpl.qll | 1 - .../codeql/rust/internal/PathResolution.qll | 31 +++++++++++-------- 4 files changed, 35 insertions(+), 27 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index a3a0b3c9133..94d8545bb15 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -518,7 +518,7 @@ impl<'a> Translator<'a> { pub(crate) fn emit_macro_stmts( &mut self, node: &ast::MacroStmts, - ) -> Option> { + ) -> Option> { // not generated to work around a bug in rust-analyzer AST generation machinery. // Because an Expr can also be a Stmt (AsmExpr: Expr and AsmExpr: Item: Stmt) // then such an element will be returned by both `expr()` and `statements()` @@ -537,10 +537,23 @@ impl<'a> Translator<'a> { .iter() .filter_map(|x| self.emit_stmt(x)) .collect(); - let label = self.trap.emit(generated::MacroBlockExpr { + let stmt_list = self.trap.emit(generated::StmtList { id: TrapId::Star, - tail_expr, + attrs: vec![], statements, + tail_expr, + }); + let label = self.trap.emit(generated::BlockExpr { + id: TrapId::Star, + label: None, + attrs: vec![], + is_async: false, + is_const: false, + is_gen: false, + is_move: false, + is_try: false, + is_unsafe: false, + stmt_list: Some(stmt_list), }); self.emit_location(label, node); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll index 522e5741795..16e14ce84a2 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll @@ -99,7 +99,7 @@ class FormatTemplateVariableAccessTree extends LeafTree, FormatTemplateVariableA class ItemTree extends LeafTree, Item { ItemTree() { not this instanceof MacroCall and - this = [any(StmtList s).getAStatement(), any(MacroBlockExpr s).getAStatement()] + this = any(StmtList s).getAStatement() } } @@ -140,15 +140,6 @@ class MacroCallTree extends StandardPostOrderTree, MacroCall { override AstNode getChildNode(int i) { i = 0 and result = this.getMacroCallExpansion() } } -class MacroBlockExprTree extends StandardPostOrderTree, MacroBlockExpr { - override AstNode getChildNode(int i) { - result = this.getStatement(i) - or - i = this.getNumberOfStatements() and - result = this.getTailExpr() - } -} - class MatchArmTree extends ControlFlowTree, MatchArm { override predicate propagatesAbnormal(AstNode child) { child = this.getExpr() } diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index c21c053b173..a0026f6757e 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -149,7 +149,6 @@ private Expr getALastEvalNode(Expr e) { not be.isAsync() and result = be.getTailExpr() ) or - result = e.(MacroBlockExpr).getTailExpr() or result = e.(MatchExpr).getAnArm().getExpr() or result = e.(MacroExpr).getMacroCall().getMacroCallExpansion() or result.(BreakExpr).getTarget() = e or diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index e23efc60ee4..f30625807b4 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -110,20 +110,18 @@ pragma[nomagic] private ItemNode getAChildSuccessor(ItemNode item, string name, SuccessorKind kind) { item = result.getImmediateParent() and name = result.getName() and - ( - // type parameters are only available inside the declaring item - if result instanceof TypeParam - then kind.isInternal() + // type parameters are only available inside the declaring item + if result instanceof TypeParam + then kind.isInternal() + else + // associated items must always be qualified, also within the declaring + // item (using `Self`) + if item instanceof ImplOrTraitItemNode and result instanceof AssocItem + then kind.isExternal() else - // associated items must always be qualified, also within the declaring - // item (using `Self`) - if item instanceof ImplOrTraitItemNode and result instanceof AssocItem - then kind.isExternal() - else - if result.isPublic() - then kind.isBoth() - else kind.isInternal() - ) + if result.isPublic() + then kind.isBoth() + else kind.isInternal() } private module UseOption = Option; @@ -372,6 +370,13 @@ abstract class ItemNode extends Locatable { result = this.(TypeAliasItemNodeImpl).resolveAliasCand().getASuccessor(name, kind, useOpt) and kind.isExternalOrBoth() or + // items declared at top-level inside macros are also available at the macro invocation sites + exists(BlockExprItemNode be | + this = be.getImmediateParent() and + be = any(MacroCall mc).getMacroCallExpansion() and + result = be.getASuccessor(name, kind, useOpt) + ) + or name = "super" and useOpt.isNone() and ( From 5d5bad6cd463f76376d4ebd6e91ce38faae24cb4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 10:24:10 +0100 Subject: [PATCH 118/263] Rust: Update expected test output --- .../generated/MacroCall/MacroCall.expected | 2 +- .../macro-expansion/PrintAst.expected | 3823 +++++++++-------- .../macro-expansion/test.expected | 12 +- .../library-tests/controlflow/Cfg.expected | 40 +- .../dataflow/local/DataFlowStep.expected | 12 +- .../type-inference/type-inference.expected | 458 +- .../test/library-tests/variables/Cfg.expected | 16 +- 7 files changed, 2463 insertions(+), 1900 deletions(-) diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected index e73178f5a4f..1f74bc9cc36 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected @@ -10,5 +10,5 @@ getTokenTree | gen_macro_call.rs:7:5:7:29 | println!... | gen_macro_call.rs:7:13:7:29 | TokenTree | | gen_macro_call.rs:7:14:7:28 | ...::format_args_nl!... | gen_macro_call.rs:7:14:7:28 | TokenTree | getMacroCallExpansion -| gen_macro_call.rs:7:5:7:29 | println!... | gen_macro_call.rs:7:14:7:28 | MacroBlockExpr | +| gen_macro_call.rs:7:5:7:29 | println!... | gen_macro_call.rs:7:14:7:28 | { ... } | | gen_macro_call.rs:7:14:7:28 | ...::format_args_nl!... | gen_macro_call.rs:7:14:7:28 | FormatArgsExpr | diff --git a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected index 5d43ff532fd..6f0b278d062 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected @@ -356,41 +356,43 @@ macro_expansion.rs: # 33| getSegment(): [PathSegment] hello # 33| getIdentifier(): [NameRef] hello # 33| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 31| getStatement(0): [ExprStmt] ExprStmt -# 31| getExpr(): [MacroExpr] MacroExpr -# 31| getMacroCall(): [MacroCall] println!... -# 31| getPath(): [Path] println -# 31| getSegment(): [PathSegment] println -# 31| getIdentifier(): [NameRef] println -# 31| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 31| getTailExpr(): [BlockExpr] { ... } +# 31| getMacroCallExpansion(): [BlockExpr] { ... } +# 33| getStmtList(): [StmtList] StmtList +# 31| getStatement(0): [ExprStmt] ExprStmt +# 31| getExpr(): [MacroExpr] MacroExpr +# 31| getMacroCall(): [MacroCall] println!... +# 31| getPath(): [Path] println +# 31| getSegment(): [PathSegment] println +# 31| getIdentifier(): [NameRef] println +# 31| getTokenTree(): [TokenTree] TokenTree +# 31| getMacroCallExpansion(): [BlockExpr] { ... } # 31| getStmtList(): [StmtList] StmtList -# 31| getStatement(0): [ExprStmt] ExprStmt -# 31| getExpr(): [CallExpr] ...::_print(...) -# 31| getArgList(): [ArgList] ArgList -# 31| getArg(0): [MacroExpr] MacroExpr -# 31| getMacroCall(): [MacroCall] ...::format_args_nl!... -# 31| getPath(): [Path] ...::format_args_nl -# 31| getQualifier(): [Path] $crate -# 31| getSegment(): [PathSegment] $crate -# 31| getIdentifier(): [NameRef] $crate -# 31| getSegment(): [PathSegment] format_args_nl -# 31| getIdentifier(): [NameRef] format_args_nl -# 31| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr -# 31| getTemplate(): [StringLiteralExpr] "hello!\n" -# 31| getFunction(): [PathExpr] ...::_print -# 31| getPath(): [Path] ...::_print -# 31| getQualifier(): [Path] ...::io -# 31| getQualifier(): [Path] $crate -# 31| getSegment(): [PathSegment] $crate -# 31| getIdentifier(): [NameRef] $crate -# 31| getSegment(): [PathSegment] io -# 31| getIdentifier(): [NameRef] io -# 31| getSegment(): [PathSegment] _print -# 31| getIdentifier(): [NameRef] _print +# 31| getTailExpr(): [BlockExpr] { ... } +# 31| getStmtList(): [StmtList] StmtList +# 31| getStatement(0): [ExprStmt] ExprStmt +# 31| getExpr(): [CallExpr] ...::_print(...) +# 31| getArgList(): [ArgList] ArgList +# 31| getArg(0): [MacroExpr] MacroExpr +# 31| getMacroCall(): [MacroCall] ...::format_args_nl!... +# 31| getPath(): [Path] ...::format_args_nl +# 31| getQualifier(): [Path] $crate +# 31| getSegment(): [PathSegment] $crate +# 31| getIdentifier(): [NameRef] $crate +# 31| getSegment(): [PathSegment] format_args_nl +# 31| getIdentifier(): [NameRef] format_args_nl +# 31| getTokenTree(): [TokenTree] TokenTree +# 31| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr +# 31| getTemplate(): [StringLiteralExpr] "hello!\n" +# 31| getFunction(): [PathExpr] ...::_print +# 31| getPath(): [Path] ...::_print +# 31| getQualifier(): [Path] ...::io +# 31| getQualifier(): [Path] $crate +# 31| getSegment(): [PathSegment] $crate +# 31| getIdentifier(): [NameRef] $crate +# 31| getSegment(): [PathSegment] io +# 31| getIdentifier(): [NameRef] io +# 31| getSegment(): [PathSegment] _print +# 31| getIdentifier(): [NameRef] _print # 32| getName(): [Name] bzz_0 # 32| getVisibility(): [Visibility] pub # 32| getItem(1): [Function] fn bzz_1 @@ -404,41 +406,43 @@ macro_expansion.rs: # 33| getSegment(): [PathSegment] hello # 33| getIdentifier(): [NameRef] hello # 33| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 31| getStatement(0): [ExprStmt] ExprStmt -# 31| getExpr(): [MacroExpr] MacroExpr -# 31| getMacroCall(): [MacroCall] println!... -# 31| getPath(): [Path] println -# 31| getSegment(): [PathSegment] println -# 31| getIdentifier(): [NameRef] println -# 31| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 31| getTailExpr(): [BlockExpr] { ... } +# 31| getMacroCallExpansion(): [BlockExpr] { ... } +# 33| getStmtList(): [StmtList] StmtList +# 31| getStatement(0): [ExprStmt] ExprStmt +# 31| getExpr(): [MacroExpr] MacroExpr +# 31| getMacroCall(): [MacroCall] println!... +# 31| getPath(): [Path] println +# 31| getSegment(): [PathSegment] println +# 31| getIdentifier(): [NameRef] println +# 31| getTokenTree(): [TokenTree] TokenTree +# 31| getMacroCallExpansion(): [BlockExpr] { ... } # 31| getStmtList(): [StmtList] StmtList -# 31| getStatement(0): [ExprStmt] ExprStmt -# 31| getExpr(): [CallExpr] ...::_print(...) -# 31| getArgList(): [ArgList] ArgList -# 31| getArg(0): [MacroExpr] MacroExpr -# 31| getMacroCall(): [MacroCall] ...::format_args_nl!... -# 31| getPath(): [Path] ...::format_args_nl -# 31| getQualifier(): [Path] $crate -# 31| getSegment(): [PathSegment] $crate -# 31| getIdentifier(): [NameRef] $crate -# 31| getSegment(): [PathSegment] format_args_nl -# 31| getIdentifier(): [NameRef] format_args_nl -# 31| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr -# 31| getTemplate(): [StringLiteralExpr] "hello!\n" -# 31| getFunction(): [PathExpr] ...::_print -# 31| getPath(): [Path] ...::_print -# 31| getQualifier(): [Path] ...::io -# 31| getQualifier(): [Path] $crate -# 31| getSegment(): [PathSegment] $crate -# 31| getIdentifier(): [NameRef] $crate -# 31| getSegment(): [PathSegment] io -# 31| getIdentifier(): [NameRef] io -# 31| getSegment(): [PathSegment] _print -# 31| getIdentifier(): [NameRef] _print +# 31| getTailExpr(): [BlockExpr] { ... } +# 31| getStmtList(): [StmtList] StmtList +# 31| getStatement(0): [ExprStmt] ExprStmt +# 31| getExpr(): [CallExpr] ...::_print(...) +# 31| getArgList(): [ArgList] ArgList +# 31| getArg(0): [MacroExpr] MacroExpr +# 31| getMacroCall(): [MacroCall] ...::format_args_nl!... +# 31| getPath(): [Path] ...::format_args_nl +# 31| getQualifier(): [Path] $crate +# 31| getSegment(): [PathSegment] $crate +# 31| getIdentifier(): [NameRef] $crate +# 31| getSegment(): [PathSegment] format_args_nl +# 31| getIdentifier(): [NameRef] format_args_nl +# 31| getTokenTree(): [TokenTree] TokenTree +# 31| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr +# 31| getTemplate(): [StringLiteralExpr] "hello!\n" +# 31| getFunction(): [PathExpr] ...::_print +# 31| getPath(): [Path] ...::_print +# 31| getQualifier(): [Path] ...::io +# 31| getQualifier(): [Path] $crate +# 31| getSegment(): [PathSegment] $crate +# 31| getIdentifier(): [NameRef] $crate +# 31| getSegment(): [PathSegment] io +# 31| getIdentifier(): [NameRef] io +# 31| getSegment(): [PathSegment] _print +# 31| getIdentifier(): [NameRef] _print # 32| getName(): [Name] bzz_1 # 32| getVisibility(): [Visibility] pub # 32| getItem(2): [Function] fn bzz_2 @@ -452,41 +456,43 @@ macro_expansion.rs: # 33| getSegment(): [PathSegment] hello # 33| getIdentifier(): [NameRef] hello # 33| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 31| getStatement(0): [ExprStmt] ExprStmt -# 31| getExpr(): [MacroExpr] MacroExpr -# 31| getMacroCall(): [MacroCall] println!... -# 31| getPath(): [Path] println -# 31| getSegment(): [PathSegment] println -# 31| getIdentifier(): [NameRef] println -# 31| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 31| getTailExpr(): [BlockExpr] { ... } +# 31| getMacroCallExpansion(): [BlockExpr] { ... } +# 33| getStmtList(): [StmtList] StmtList +# 31| getStatement(0): [ExprStmt] ExprStmt +# 31| getExpr(): [MacroExpr] MacroExpr +# 31| getMacroCall(): [MacroCall] println!... +# 31| getPath(): [Path] println +# 31| getSegment(): [PathSegment] println +# 31| getIdentifier(): [NameRef] println +# 31| getTokenTree(): [TokenTree] TokenTree +# 31| getMacroCallExpansion(): [BlockExpr] { ... } # 31| getStmtList(): [StmtList] StmtList -# 31| getStatement(0): [ExprStmt] ExprStmt -# 31| getExpr(): [CallExpr] ...::_print(...) -# 31| getArgList(): [ArgList] ArgList -# 31| getArg(0): [MacroExpr] MacroExpr -# 31| getMacroCall(): [MacroCall] ...::format_args_nl!... -# 31| getPath(): [Path] ...::format_args_nl -# 31| getQualifier(): [Path] $crate -# 31| getSegment(): [PathSegment] $crate -# 31| getIdentifier(): [NameRef] $crate -# 31| getSegment(): [PathSegment] format_args_nl -# 31| getIdentifier(): [NameRef] format_args_nl -# 31| getTokenTree(): [TokenTree] TokenTree -# 31| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr -# 31| getTemplate(): [StringLiteralExpr] "hello!\n" -# 31| getFunction(): [PathExpr] ...::_print -# 31| getPath(): [Path] ...::_print -# 31| getQualifier(): [Path] ...::io -# 31| getQualifier(): [Path] $crate -# 31| getSegment(): [PathSegment] $crate -# 31| getIdentifier(): [NameRef] $crate -# 31| getSegment(): [PathSegment] io -# 31| getIdentifier(): [NameRef] io -# 31| getSegment(): [PathSegment] _print -# 31| getIdentifier(): [NameRef] _print +# 31| getTailExpr(): [BlockExpr] { ... } +# 31| getStmtList(): [StmtList] StmtList +# 31| getStatement(0): [ExprStmt] ExprStmt +# 31| getExpr(): [CallExpr] ...::_print(...) +# 31| getArgList(): [ArgList] ArgList +# 31| getArg(0): [MacroExpr] MacroExpr +# 31| getMacroCall(): [MacroCall] ...::format_args_nl!... +# 31| getPath(): [Path] ...::format_args_nl +# 31| getQualifier(): [Path] $crate +# 31| getSegment(): [PathSegment] $crate +# 31| getIdentifier(): [NameRef] $crate +# 31| getSegment(): [PathSegment] format_args_nl +# 31| getIdentifier(): [NameRef] format_args_nl +# 31| getTokenTree(): [TokenTree] TokenTree +# 31| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr +# 31| getTemplate(): [StringLiteralExpr] "hello!\n" +# 31| getFunction(): [PathExpr] ...::_print +# 31| getPath(): [Path] ...::_print +# 31| getQualifier(): [Path] ...::io +# 31| getQualifier(): [Path] $crate +# 31| getSegment(): [PathSegment] $crate +# 31| getIdentifier(): [NameRef] $crate +# 31| getSegment(): [PathSegment] io +# 31| getIdentifier(): [NameRef] io +# 31| getSegment(): [PathSegment] _print +# 31| getIdentifier(): [NameRef] _print # 32| getName(): [Name] bzz_2 # 32| getVisibility(): [Visibility] pub # 31| getAttr(0): [Attr] Attr @@ -1428,243 +1434,94 @@ proc_macro.rs: # 15| getSegment(): [PathSegment] quote_each_token # 15| getIdentifier(): [NameRef] quote_each_token # 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... -# 15| getPath(): [Path] ...::quote_tokens_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_tokens_with_context -# 15| getIdentifier(): [NameRef] quote_tokens_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(0): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(1): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(2): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(3): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getTailExpr(): [BlockExpr] { ... } -# 16| getStmtList(): [StmtList] StmtList -# 15| getStatement(0): [Use] use ...::ext::* -# 15| getUseTree(): [UseTree] ...::ext::* -# 15| getPath(): [Path] ...::ext -# 15| getQualifier(): [Path] ...::__private -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] __private -# 15| getIdentifier(): [NameRef] __private -# 15| getSegment(): [PathSegment] ext -# 15| getIdentifier(): [NameRef] ext -# 15| getStatement(1): [LetStmt] let ... = ...::ThereIsNoIteratorInRepetition -# 15| getInitializer(): [PathExpr] ...::ThereIsNoIteratorInRepetition -# 15| getPath(): [Path] ...::ThereIsNoIteratorInRepetition -# 15| getQualifier(): [Path] ...::__private -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] __private -# 15| getIdentifier(): [NameRef] __private -# 15| getSegment(): [PathSegment] ThereIsNoIteratorInRepetition -# 15| getIdentifier(): [NameRef] ThereIsNoIteratorInRepetition -# 15| getPat(): [IdentPat] has_iter -# 15| getName(): [Name] has_iter -# 16| getStatement(2): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_names!... -# 15| getPath(): [Path] ...::pounded_var_names -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_names -# 15| getIdentifier(): [NameRef] pounded_var_names -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... -# 15| getPath(): [Path] ...::pounded_var_names_with_context +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... +# 15| getPath(): [Path] ...::quote_tokens_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_tokens_with_context +# 15| getIdentifier(): [NameRef] quote_tokens_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(1): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(2): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(3): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getTailExpr(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 15| getStatement(0): [Use] use ...::ext::* +# 15| getUseTree(): [UseTree] ...::ext::* +# 15| getPath(): [Path] ...::ext +# 15| getQualifier(): [Path] ...::__private # 15| getQualifier(): [Path] $crate # 15| getSegment(): [PathSegment] $crate # 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_names_with_context -# 15| getIdentifier(): [NameRef] pounded_var_names_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getStatement(0): [ExprStmt] ExprStmt -# 15| getExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getTailExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_names!... -# 15| getPath(): [Path] ...::pounded_var_names -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_names -# 15| getIdentifier(): [NameRef] pounded_var_names -# 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getTailExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... -# 15| getPath(): [Path] ...::pounded_var_names_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_names_with_context -# 15| getIdentifier(): [NameRef] pounded_var_names_with_context -# 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getTailExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(1): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(2): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(0): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_bind_into_iter!... -# 15| getPath(): [Path] ...::quote_bind_into_iter -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_bind_into_iter -# 15| getIdentifier(): [NameRef] quote_bind_into_iter -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(0): [LetStmt] let ... = ... -# 15| getAttr(0): [Attr] Attr -# 15| getMeta(): [Meta] Meta -# 15| getPath(): [Path] allow -# 15| getSegment(): [PathSegment] allow -# 15| getIdentifier(): [NameRef] allow -# 15| getTokenTree(): [TokenTree] TokenTree -# 16| getInitializer(): [MethodCallExpr] items.quote_into_iter() -# 15| getArgList(): [ArgList] ArgList -# 15| getIdentifier(): [NameRef] quote_into_iter -# 16| getReceiver(): [VariableAccess] items -# 16| getPath(): [Path] items -# 16| getSegment(): [PathSegment] items -# 16| getIdentifier(): [NameRef] items -# 16| getPat(): [TuplePat] TuplePat -# 16| getField(0): [IdentPat] mut items -# 16| getName(): [Name] items -# 15| getField(1): [IdentPat] i -# 15| getName(): [Name] i -# 15| getStatement(1): [LetStmt] let ... = ... -# 15| getInitializer(): [BinaryExpr] ... | ... -# 15| getLhs(): [VariableAccess] has_iter -# 15| getPath(): [Path] has_iter -# 15| getSegment(): [PathSegment] has_iter -# 15| getIdentifier(): [NameRef] has_iter -# 15| getRhs(): [VariableAccess] i -# 15| getPath(): [Path] i -# 15| getSegment(): [PathSegment] i -# 15| getIdentifier(): [NameRef] i -# 15| getPat(): [IdentPat] has_iter -# 15| getName(): [Name] has_iter -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getStatement(3): [LetStmt] let _ = has_iter -# 15| getInitializer(): [VariableAccess] has_iter -# 15| getPath(): [Path] has_iter -# 15| getSegment(): [PathSegment] has_iter -# 15| getIdentifier(): [NameRef] has_iter -# 15| getPat(): [WildcardPat] _ -# 15| getTypeRepr(): [PathTypeRepr] ...::HasIterator -# 15| getPath(): [Path] ...::HasIterator -# 15| getQualifier(): [Path] ...::__private -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] __private -# 15| getIdentifier(): [NameRef] __private -# 15| getSegment(): [PathSegment] HasIterator -# 15| getIdentifier(): [NameRef] HasIterator -# 16| getTailExpr(): [WhileExpr] while true { ... } -# 16| getLoopBody(): [BlockExpr] { ... } -# 16| getStmtList(): [StmtList] StmtList -# 16| getStatement(0): [ExprStmt] ExprStmt +# 15| getSegment(): [PathSegment] __private +# 15| getIdentifier(): [NameRef] __private +# 15| getSegment(): [PathSegment] ext +# 15| getIdentifier(): [NameRef] ext +# 15| getStatement(1): [LetStmt] let ... = ...::ThereIsNoIteratorInRepetition +# 15| getInitializer(): [PathExpr] ...::ThereIsNoIteratorInRepetition +# 15| getPath(): [Path] ...::ThereIsNoIteratorInRepetition +# 15| getQualifier(): [Path] ...::__private +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] __private +# 15| getIdentifier(): [NameRef] __private +# 15| getSegment(): [PathSegment] ThereIsNoIteratorInRepetition +# 15| getIdentifier(): [NameRef] ThereIsNoIteratorInRepetition +# 15| getPat(): [IdentPat] has_iter +# 15| getName(): [Name] has_iter +# 16| getStatement(2): [ExprStmt] ExprStmt # 16| getExpr(): [MacroExpr] MacroExpr # 16| getMacroCall(): [MacroCall] ...::pounded_var_names!... # 15| getPath(): [Path] ...::pounded_var_names @@ -1674,325 +1531,515 @@ proc_macro.rs: # 15| getSegment(): [PathSegment] pounded_var_names # 15| getIdentifier(): [NameRef] pounded_var_names # 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... -# 15| getPath(): [Path] ...::pounded_var_names_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_names_with_context -# 15| getIdentifier(): [NameRef] pounded_var_names_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getStatement(0): [ExprStmt] ExprStmt -# 15| getExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getTailExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_names!... -# 15| getPath(): [Path] ...::pounded_var_names -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_names -# 15| getIdentifier(): [NameRef] pounded_var_names -# 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... +# 15| getPath(): [Path] ...::pounded_var_names_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_names_with_context +# 15| getIdentifier(): [NameRef] pounded_var_names_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 15| getStatement(0): [ExprStmt] ExprStmt +# 15| getExpr(): [MacroExpr] MacroExpr +# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 15| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList # 15| getTailExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... -# 15| getPath(): [Path] ...::pounded_var_names_with_context +# 15| getMacroCall(): [MacroCall] ...::pounded_var_names!... +# 15| getPath(): [Path] ...::pounded_var_names # 15| getQualifier(): [Path] $crate # 15| getSegment(): [PathSegment] $crate # 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_names_with_context -# 15| getIdentifier(): [NameRef] pounded_var_names_with_context +# 15| getSegment(): [PathSegment] pounded_var_names +# 15| getIdentifier(): [NameRef] pounded_var_names # 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList +# 15| getTailExpr(): [MacroExpr] MacroExpr +# 15| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... +# 15| getPath(): [Path] ...::pounded_var_names_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_names_with_context +# 15| getIdentifier(): [NameRef] pounded_var_names_with_context +# 15| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList +# 15| getTailExpr(): [MacroExpr] MacroExpr +# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 15| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList +# 16| getStatement(1): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(2): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_bind_into_iter!... +# 15| getPath(): [Path] ...::quote_bind_into_iter +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_bind_into_iter +# 15| getIdentifier(): [NameRef] quote_bind_into_iter +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [LetStmt] let ... = ... +# 15| getAttr(0): [Attr] Attr +# 15| getMeta(): [Meta] Meta +# 15| getPath(): [Path] allow +# 15| getSegment(): [PathSegment] allow +# 15| getIdentifier(): [NameRef] allow +# 15| getTokenTree(): [TokenTree] TokenTree +# 16| getInitializer(): [MethodCallExpr] items.quote_into_iter() +# 15| getArgList(): [ArgList] ArgList +# 15| getIdentifier(): [NameRef] quote_into_iter +# 16| getReceiver(): [VariableAccess] items +# 16| getPath(): [Path] items +# 16| getSegment(): [PathSegment] items +# 16| getIdentifier(): [NameRef] items +# 16| getPat(): [TuplePat] TuplePat +# 16| getField(0): [IdentPat] mut items +# 16| getName(): [Name] items +# 15| getField(1): [IdentPat] i +# 15| getName(): [Name] i +# 15| getStatement(1): [LetStmt] let ... = ... +# 15| getInitializer(): [BinaryExpr] ... | ... +# 15| getLhs(): [VariableAccess] has_iter +# 15| getPath(): [Path] has_iter +# 15| getSegment(): [PathSegment] has_iter +# 15| getIdentifier(): [NameRef] has_iter +# 15| getRhs(): [VariableAccess] i +# 15| getPath(): [Path] i +# 15| getSegment(): [PathSegment] i +# 15| getIdentifier(): [NameRef] i +# 15| getPat(): [IdentPat] has_iter +# 15| getName(): [Name] has_iter +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 15| getStatement(3): [LetStmt] let _ = has_iter +# 15| getInitializer(): [VariableAccess] has_iter +# 15| getPath(): [Path] has_iter +# 15| getSegment(): [PathSegment] has_iter +# 15| getIdentifier(): [NameRef] has_iter +# 15| getPat(): [WildcardPat] _ +# 15| getTypeRepr(): [PathTypeRepr] ...::HasIterator +# 15| getPath(): [Path] ...::HasIterator +# 15| getQualifier(): [Path] ...::__private +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] __private +# 15| getIdentifier(): [NameRef] __private +# 15| getSegment(): [PathSegment] HasIterator +# 15| getIdentifier(): [NameRef] HasIterator +# 16| getTailExpr(): [WhileExpr] while true { ... } +# 16| getLoopBody(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_names!... +# 15| getPath(): [Path] ...::pounded_var_names +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_names +# 15| getIdentifier(): [NameRef] pounded_var_names +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... +# 15| getPath(): [Path] ...::pounded_var_names_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_names_with_context +# 15| getIdentifier(): [NameRef] pounded_var_names_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 15| getStatement(0): [ExprStmt] ExprStmt +# 15| getExpr(): [MacroExpr] MacroExpr +# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 15| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList # 15| getTailExpr(): [MacroExpr] MacroExpr -# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getMacroCall(): [MacroCall] ...::pounded_var_names!... +# 15| getPath(): [Path] ...::pounded_var_names # 15| getQualifier(): [Path] $crate # 15| getSegment(): [PathSegment] $crate # 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 15| getSegment(): [PathSegment] pounded_var_names +# 15| getIdentifier(): [NameRef] pounded_var_names # 15| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(1): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(2): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(0): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_bind_next_or_break!... -# 15| getPath(): [Path] ...::quote_bind_next_or_break +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList +# 15| getTailExpr(): [MacroExpr] MacroExpr +# 15| getMacroCall(): [MacroCall] ...::pounded_var_names_with_context!... +# 15| getPath(): [Path] ...::pounded_var_names_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_names_with_context +# 15| getIdentifier(): [NameRef] pounded_var_names_with_context +# 15| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList +# 15| getTailExpr(): [MacroExpr] MacroExpr +# 15| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 15| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 15| getStmtList(): [StmtList] StmtList +# 16| getStatement(1): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(2): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_bind_next_or_break!... +# 15| getPath(): [Path] ...::quote_bind_next_or_break +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_bind_next_or_break +# 15| getIdentifier(): [NameRef] quote_bind_next_or_break +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [LetStmt] let ... = ... +# 16| getInitializer(): [MatchExpr] match ... { ... } +# 16| getScrutinee(): [MethodCallExpr] items.next() +# 15| getArgList(): [ArgList] ArgList +# 15| getIdentifier(): [NameRef] next +# 16| getReceiver(): [VariableAccess] items +# 16| getPath(): [Path] items +# 16| getSegment(): [PathSegment] items +# 16| getIdentifier(): [NameRef] items +# 15| getMatchArmList(): [MatchArmList] MatchArmList +# 15| getArm(0): [MatchArm] ... => ... +# 15| getExpr(): [TupleStructExpr] ...::RepInterp(...) +# 15| getArgList(): [ArgList] ArgList +# 15| getArg(0): [VariableAccess] _x +# 15| getPath(): [Path] _x +# 15| getSegment(): [PathSegment] _x +# 15| getIdentifier(): [NameRef] _x +# 15| getFunction(): [PathExpr] ...::RepInterp +# 15| getPath(): [Path] ...::RepInterp +# 15| getQualifier(): [Path] ...::__private +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] __private +# 15| getIdentifier(): [NameRef] __private +# 15| getSegment(): [PathSegment] RepInterp +# 15| getIdentifier(): [NameRef] RepInterp +# 15| getPat(): [TupleStructPat] Some(...) +# 15| getPath(): [Path] Some +# 15| getSegment(): [PathSegment] Some +# 15| getIdentifier(): [NameRef] Some +# 15| getField(0): [IdentPat] _x +# 15| getName(): [Name] _x +# 15| getArm(1): [MatchArm] ... => ... +# 15| getExpr(): [BreakExpr] break +# 15| getPat(): [IdentPat] None +# 15| getName(): [Name] None +# 16| getPat(): [IdentPat] items +# 16| getName(): [Name] items +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... +# 15| getPath(): [Path] ...::pounded_var_with_context # 15| getQualifier(): [Path] $crate # 15| getSegment(): [PathSegment] $crate # 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_bind_next_or_break -# 15| getIdentifier(): [NameRef] quote_bind_next_or_break +# 15| getSegment(): [PathSegment] pounded_var_with_context +# 15| getIdentifier(): [NameRef] pounded_var_with_context # 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(0): [LetStmt] let ... = ... -# 16| getInitializer(): [MatchExpr] match ... { ... } -# 16| getScrutinee(): [MethodCallExpr] items.next() -# 15| getArgList(): [ArgList] ArgList -# 15| getIdentifier(): [NameRef] next -# 16| getReceiver(): [VariableAccess] items -# 16| getPath(): [Path] items -# 16| getSegment(): [PathSegment] items -# 16| getIdentifier(): [NameRef] items -# 15| getMatchArmList(): [MatchArmList] MatchArmList -# 15| getArm(0): [MatchArm] ... => ... -# 15| getExpr(): [TupleStructExpr] ...::RepInterp(...) -# 15| getArgList(): [ArgList] ArgList -# 15| getArg(0): [VariableAccess] _x -# 15| getPath(): [Path] _x -# 15| getSegment(): [PathSegment] _x -# 15| getIdentifier(): [NameRef] _x -# 15| getFunction(): [PathExpr] ...::RepInterp -# 15| getPath(): [Path] ...::RepInterp -# 15| getQualifier(): [Path] ...::__private -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] __private -# 15| getIdentifier(): [NameRef] __private -# 15| getSegment(): [PathSegment] RepInterp -# 15| getIdentifier(): [NameRef] RepInterp -# 15| getPat(): [TupleStructPat] Some(...) -# 15| getPath(): [Path] Some -# 15| getSegment(): [PathSegment] Some -# 15| getIdentifier(): [NameRef] Some -# 15| getField(0): [IdentPat] _x -# 15| getName(): [Name] _x -# 15| getArm(1): [MatchArm] ... => ... -# 15| getExpr(): [BreakExpr] break -# 15| getPat(): [IdentPat] None -# 15| getName(): [Name] None -# 16| getPat(): [IdentPat] items -# 16| getName(): [Name] items -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::pounded_var_with_context!... -# 15| getPath(): [Path] ...::pounded_var_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] pounded_var_with_context -# 15| getIdentifier(): [NameRef] pounded_var_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_each_token!... -# 15| getPath(): [Path] ...::quote_each_token -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_each_token -# 15| getIdentifier(): [NameRef] quote_each_token -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList # 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... -# 15| getPath(): [Path] ...::quote_tokens_with_context +# 16| getMacroCall(): [MacroCall] ...::quote_each_token!... +# 15| getPath(): [Path] ...::quote_each_token # 15| getQualifier(): [Path] $crate # 15| getSegment(): [PathSegment] $crate # 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_tokens_with_context -# 15| getIdentifier(): [NameRef] quote_tokens_with_context +# 15| getSegment(): [PathSegment] quote_each_token +# 15| getIdentifier(): [NameRef] quote_each_token # 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(0): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... +# 15| getPath(): [Path] ...::quote_tokens_with_context # 15| getQualifier(): [Path] $crate # 15| getSegment(): [PathSegment] $crate # 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context +# 15| getSegment(): [PathSegment] quote_tokens_with_context +# 15| getIdentifier(): [NameRef] quote_tokens_with_context # 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(1): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(2): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(3): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 16| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(0): [ExprStmt] ExprStmt -# 16| getExpr(): [CallExpr] ...::to_tokens(...) -# 16| getArgList(): [ArgList] ArgList -# 16| getArg(0): [RefExpr] &items -# 16| getExpr(): [VariableAccess] items -# 16| getPath(): [Path] items -# 16| getSegment(): [PathSegment] items -# 16| getIdentifier(): [NameRef] items -# 15| getArg(1): [RefExpr] &mut _s -# 15| getExpr(): [VariableAccess] _s -# 15| getPath(): [Path] _s -# 15| getSegment(): [PathSegment] _s -# 15| getIdentifier(): [NameRef] _s -# 15| getFunction(): [PathExpr] ...::to_tokens -# 15| getPath(): [Path] ...::to_tokens -# 15| getQualifier(): [Path] ...::ToTokens +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context # 15| getQualifier(): [Path] $crate # 15| getSegment(): [PathSegment] $crate # 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] ToTokens -# 15| getIdentifier(): [NameRef] ToTokens -# 15| getSegment(): [PathSegment] to_tokens -# 15| getIdentifier(): [NameRef] to_tokens -# 16| getStatement(4): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(5): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(6): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 15| getCondition(): [BooleanLiteralExpr] true -# 16| getStatement(4): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(5): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(6): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getStatement(7): [ExprStmt] ExprStmt -# 16| getExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 16| getTailExpr(): [MacroExpr] MacroExpr -# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 15| getPath(): [Path] ...::quote_token_with_context -# 15| getQualifier(): [Path] $crate -# 15| getSegment(): [PathSegment] $crate -# 15| getIdentifier(): [NameRef] $crate -# 15| getSegment(): [PathSegment] quote_token_with_context -# 15| getIdentifier(): [NameRef] quote_token_with_context -# 16| getTokenTree(): [TokenTree] TokenTree -# 15| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(1): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(2): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(3): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 16| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(0): [ExprStmt] ExprStmt +# 16| getExpr(): [CallExpr] ...::to_tokens(...) +# 16| getArgList(): [ArgList] ArgList +# 16| getArg(0): [RefExpr] &items +# 16| getExpr(): [VariableAccess] items +# 16| getPath(): [Path] items +# 16| getSegment(): [PathSegment] items +# 16| getIdentifier(): [NameRef] items +# 15| getArg(1): [RefExpr] &mut _s +# 15| getExpr(): [VariableAccess] _s +# 15| getPath(): [Path] _s +# 15| getSegment(): [PathSegment] _s +# 15| getIdentifier(): [NameRef] _s +# 15| getFunction(): [PathExpr] ...::to_tokens +# 15| getPath(): [Path] ...::to_tokens +# 15| getQualifier(): [Path] ...::ToTokens +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] ToTokens +# 15| getIdentifier(): [NameRef] ToTokens +# 15| getSegment(): [PathSegment] to_tokens +# 15| getIdentifier(): [NameRef] to_tokens +# 16| getStatement(4): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(5): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(6): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 15| getCondition(): [BooleanLiteralExpr] true +# 16| getStatement(4): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(5): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(6): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getStatement(7): [ExprStmt] ExprStmt +# 16| getExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList +# 16| getTailExpr(): [MacroExpr] MacroExpr +# 16| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 15| getPath(): [Path] ...::quote_token_with_context +# 15| getQualifier(): [Path] $crate +# 15| getSegment(): [PathSegment] $crate +# 15| getIdentifier(): [NameRef] $crate +# 15| getSegment(): [PathSegment] quote_token_with_context +# 15| getIdentifier(): [NameRef] quote_token_with_context +# 16| getTokenTree(): [TokenTree] TokenTree +# 15| getMacroCallExpansion(): [BlockExpr] { ... } +# 16| getStmtList(): [StmtList] StmtList # 15| getTailExpr(): [VariableAccess] _s # 15| getPath(): [Path] _s # 15| getSegment(): [PathSegment] _s @@ -2258,172 +2305,184 @@ proc_macro.rs: # 25| getSegment(): [PathSegment] quote_each_token # 25| getIdentifier(): [NameRef] quote_each_token # 26| getTokenTree(): [TokenTree] TokenTree -# 26| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getTailExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... -# 25| getPath(): [Path] ...::quote_tokens_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_tokens_with_context -# 25| getIdentifier(): [NameRef] quote_tokens_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 26| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getStatement(0): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getStatement(1): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getStatement(2): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getStatement(3): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 26| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getStatement(0): [ExprStmt] ExprStmt -# 26| getExpr(): [CallExpr] ...::to_tokens(...) -# 26| getArgList(): [ArgList] ArgList -# 26| getArg(0): [RefExpr] &ast -# 26| getExpr(): [VariableAccess] ast -# 26| getPath(): [Path] ast -# 26| getSegment(): [PathSegment] ast -# 26| getIdentifier(): [NameRef] ast -# 25| getArg(1): [RefExpr] &mut _s -# 25| getExpr(): [VariableAccess] _s -# 25| getPath(): [Path] _s -# 25| getSegment(): [PathSegment] _s -# 25| getIdentifier(): [NameRef] _s -# 25| getFunction(): [PathExpr] ...::to_tokens -# 25| getPath(): [Path] ...::to_tokens -# 25| getQualifier(): [Path] ...::ToTokens -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] ToTokens -# 25| getIdentifier(): [NameRef] ToTokens -# 25| getSegment(): [PathSegment] to_tokens -# 25| getIdentifier(): [NameRef] to_tokens -# 26| getStatement(4): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getStatement(5): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 27| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 27| getStatement(0): [ExprStmt] ExprStmt -# 27| getExpr(): [CallExpr] ...::to_tokens(...) -# 27| getArgList(): [ArgList] ArgList -# 27| getArg(0): [RefExpr] &new_ast -# 27| getExpr(): [VariableAccess] new_ast -# 27| getPath(): [Path] new_ast -# 27| getSegment(): [PathSegment] new_ast -# 27| getIdentifier(): [NameRef] new_ast -# 25| getArg(1): [RefExpr] &mut _s -# 25| getExpr(): [VariableAccess] _s -# 25| getPath(): [Path] _s -# 25| getSegment(): [PathSegment] _s -# 25| getIdentifier(): [NameRef] _s -# 25| getFunction(): [PathExpr] ...::to_tokens -# 25| getPath(): [Path] ...::to_tokens -# 25| getQualifier(): [Path] ...::ToTokens -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] ToTokens -# 25| getIdentifier(): [NameRef] ToTokens -# 25| getSegment(): [PathSegment] to_tokens -# 25| getIdentifier(): [NameRef] to_tokens -# 26| getStatement(6): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 26| getStatement(7): [ExprStmt] ExprStmt -# 26| getExpr(): [MacroExpr] MacroExpr -# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 26| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 27| getStatement(8): [ExprStmt] ExprStmt -# 27| getExpr(): [MacroExpr] MacroExpr -# 27| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 27| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 27| getTailExpr(): [MacroExpr] MacroExpr -# 27| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 25| getPath(): [Path] ...::quote_token_with_context -# 25| getQualifier(): [Path] $crate -# 25| getSegment(): [PathSegment] $crate -# 25| getIdentifier(): [NameRef] $crate -# 25| getSegment(): [PathSegment] quote_token_with_context -# 25| getIdentifier(): [NameRef] quote_token_with_context -# 27| getTokenTree(): [TokenTree] TokenTree -# 25| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 26| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getTailExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... +# 25| getPath(): [Path] ...::quote_tokens_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_tokens_with_context +# 25| getIdentifier(): [NameRef] quote_tokens_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 26| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getStatement(0): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getStatement(1): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getStatement(2): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getStatement(3): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 26| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getStatement(0): [ExprStmt] ExprStmt +# 26| getExpr(): [CallExpr] ...::to_tokens(...) +# 26| getArgList(): [ArgList] ArgList +# 26| getArg(0): [RefExpr] &ast +# 26| getExpr(): [VariableAccess] ast +# 26| getPath(): [Path] ast +# 26| getSegment(): [PathSegment] ast +# 26| getIdentifier(): [NameRef] ast +# 25| getArg(1): [RefExpr] &mut _s +# 25| getExpr(): [VariableAccess] _s +# 25| getPath(): [Path] _s +# 25| getSegment(): [PathSegment] _s +# 25| getIdentifier(): [NameRef] _s +# 25| getFunction(): [PathExpr] ...::to_tokens +# 25| getPath(): [Path] ...::to_tokens +# 25| getQualifier(): [Path] ...::ToTokens +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] ToTokens +# 25| getIdentifier(): [NameRef] ToTokens +# 25| getSegment(): [PathSegment] to_tokens +# 25| getIdentifier(): [NameRef] to_tokens +# 26| getStatement(4): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getStatement(5): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 27| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 27| getStatement(0): [ExprStmt] ExprStmt +# 27| getExpr(): [CallExpr] ...::to_tokens(...) +# 27| getArgList(): [ArgList] ArgList +# 27| getArg(0): [RefExpr] &new_ast +# 27| getExpr(): [VariableAccess] new_ast +# 27| getPath(): [Path] new_ast +# 27| getSegment(): [PathSegment] new_ast +# 27| getIdentifier(): [NameRef] new_ast +# 25| getArg(1): [RefExpr] &mut _s +# 25| getExpr(): [VariableAccess] _s +# 25| getPath(): [Path] _s +# 25| getSegment(): [PathSegment] _s +# 25| getIdentifier(): [NameRef] _s +# 25| getFunction(): [PathExpr] ...::to_tokens +# 25| getPath(): [Path] ...::to_tokens +# 25| getQualifier(): [Path] ...::ToTokens +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] ToTokens +# 25| getIdentifier(): [NameRef] ToTokens +# 25| getSegment(): [PathSegment] to_tokens +# 25| getIdentifier(): [NameRef] to_tokens +# 26| getStatement(6): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 26| getStatement(7): [ExprStmt] ExprStmt +# 26| getExpr(): [MacroExpr] MacroExpr +# 26| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 26| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 26| getStmtList(): [StmtList] StmtList +# 27| getStatement(8): [ExprStmt] ExprStmt +# 27| getExpr(): [MacroExpr] MacroExpr +# 27| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 27| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 27| getStmtList(): [StmtList] StmtList +# 27| getTailExpr(): [MacroExpr] MacroExpr +# 27| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 25| getPath(): [Path] ...::quote_token_with_context +# 25| getQualifier(): [Path] $crate +# 25| getSegment(): [PathSegment] $crate +# 25| getIdentifier(): [NameRef] $crate +# 25| getSegment(): [PathSegment] quote_token_with_context +# 25| getIdentifier(): [NameRef] quote_token_with_context +# 27| getTokenTree(): [TokenTree] TokenTree +# 25| getMacroCallExpansion(): [BlockExpr] { ... } +# 27| getStmtList(): [StmtList] StmtList # 25| getTailExpr(): [VariableAccess] _s # 25| getPath(): [Path] _s # 25| getSegment(): [PathSegment] _s @@ -2707,1097 +2766,1149 @@ proc_macro.rs: # 41| getSegment(): [PathSegment] quote_each_token # 41| getIdentifier(): [NameRef] quote_each_token # 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getTailExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... -# 41| getPath(): [Path] ...::quote_tokens_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_tokens_with_context -# 41| getIdentifier(): [NameRef] quote_tokens_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(0): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(1): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(2): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(3): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getTailExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getTailExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... +# 41| getPath(): [Path] ...::quote_tokens_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_tokens_with_context +# 41| getIdentifier(): [NameRef] quote_tokens_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(0): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(1): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(2): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(3): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getTailExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(0): [ExprStmt] ExprStmt +# 42| getExpr(): [CallExpr] ...::push_ident(...) +# 42| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 42| getArg(1): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "const" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 42| getStatement(4): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList # 42| getStatement(0): [ExprStmt] ExprStmt -# 42| getExpr(): [CallExpr] ...::push_ident(...) +# 42| getExpr(): [CallExpr] ...::to_tokens(...) # 42| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s +# 42| getArg(0): [RefExpr] &const_ident +# 42| getExpr(): [VariableAccess] const_ident +# 42| getPath(): [Path] const_ident +# 42| getSegment(): [PathSegment] const_ident +# 42| getIdentifier(): [NameRef] const_ident +# 41| getArg(1): [RefExpr] &mut _s # 41| getExpr(): [VariableAccess] _s # 41| getPath(): [Path] _s # 41| getSegment(): [PathSegment] _s # 41| getIdentifier(): [NameRef] _s -# 42| getArg(1): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "const" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private +# 41| getFunction(): [PathExpr] ...::to_tokens +# 41| getPath(): [Path] ...::to_tokens +# 41| getQualifier(): [Path] ...::ToTokens # 41| getQualifier(): [Path] $crate # 41| getSegment(): [PathSegment] $crate # 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 42| getStatement(4): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(0): [ExprStmt] ExprStmt -# 42| getExpr(): [CallExpr] ...::to_tokens(...) -# 42| getArgList(): [ArgList] ArgList -# 42| getArg(0): [RefExpr] &const_ident -# 42| getExpr(): [VariableAccess] const_ident -# 42| getPath(): [Path] const_ident -# 42| getSegment(): [PathSegment] const_ident -# 42| getIdentifier(): [NameRef] const_ident -# 41| getArg(1): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::to_tokens -# 41| getPath(): [Path] ...::to_tokens -# 41| getQualifier(): [Path] ...::ToTokens -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] ToTokens -# 41| getIdentifier(): [NameRef] ToTokens -# 41| getSegment(): [PathSegment] to_tokens -# 41| getIdentifier(): [NameRef] to_tokens -# 42| getStatement(5): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(6): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getTailExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 41| getStatement(0): [ExprStmt] ExprStmt -# 41| getExpr(): [CallExpr] ...::push_colon(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::push_colon -# 41| getPath(): [Path] ...::push_colon -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_colon -# 41| getIdentifier(): [NameRef] push_colon -# 42| getStatement(7): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getTailExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(0): [ExprStmt] ExprStmt -# 42| getExpr(): [CallExpr] ...::push_ident(...) -# 42| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 42| getArg(1): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "u32" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 42| getStatement(8): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getTailExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 41| getStatement(0): [ExprStmt] ExprStmt -# 41| getExpr(): [CallExpr] ...::push_eq(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::push_eq -# 41| getPath(): [Path] ...::push_eq -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_eq -# 41| getIdentifier(): [NameRef] push_eq -# 42| getStatement(9): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getTailExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getStatement(0): [ExprStmt] ExprStmt -# 42| getExpr(): [CallExpr] ...::parse(...) -# 42| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 42| getArg(1): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "42" -# 41| getFunction(): [PathExpr] ...::parse -# 41| getPath(): [Path] ...::parse -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] parse -# 41| getIdentifier(): [NameRef] parse -# 42| getStatement(10): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 42| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 42| getTailExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 42| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 41| getStatement(0): [ExprStmt] ExprStmt -# 41| getExpr(): [CallExpr] ...::push_semi(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::push_semi -# 41| getPath(): [Path] ...::push_semi -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_semi -# 41| getIdentifier(): [NameRef] push_semi -# 42| getStatement(11): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getTailExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 44| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 41| getSegment(): [PathSegment] ToTokens +# 41| getIdentifier(): [NameRef] ToTokens +# 41| getSegment(): [PathSegment] to_tokens +# 41| getIdentifier(): [NameRef] to_tokens +# 42| getStatement(5): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(6): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getTailExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 41| getStatement(0): [ExprStmt] ExprStmt +# 41| getExpr(): [CallExpr] ...::push_colon(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getFunction(): [PathExpr] ...::push_colon +# 41| getPath(): [Path] ...::push_colon +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_colon +# 41| getIdentifier(): [NameRef] push_colon +# 42| getStatement(7): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getTailExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(0): [ExprStmt] ExprStmt +# 42| getExpr(): [CallExpr] ...::push_ident(...) +# 42| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 42| getArg(1): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "u32" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 42| getStatement(8): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getTailExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 41| getStatement(0): [ExprStmt] ExprStmt +# 41| getExpr(): [CallExpr] ...::push_eq(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getFunction(): [PathExpr] ...::push_eq +# 41| getPath(): [Path] ...::push_eq +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_eq +# 41| getIdentifier(): [NameRef] push_eq +# 42| getStatement(9): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getTailExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getStatement(0): [ExprStmt] ExprStmt +# 42| getExpr(): [CallExpr] ...::parse(...) +# 42| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 42| getArg(1): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "42" +# 41| getFunction(): [PathExpr] ...::parse +# 41| getPath(): [Path] ...::parse +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] parse +# 41| getIdentifier(): [NameRef] parse +# 42| getStatement(10): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 42| getTailExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 42| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 41| getStatement(0): [ExprStmt] ExprStmt +# 41| getExpr(): [CallExpr] ...::push_semi(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getFunction(): [PathExpr] ...::push_semi +# 41| getPath(): [Path] ...::push_semi +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_semi +# 41| getIdentifier(): [NameRef] push_semi +# 42| getStatement(11): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 44| getTailExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 44| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 44| getStatement(0): [ExprStmt] ExprStmt +# 44| getExpr(): [CallExpr] ...::push_ident(...) +# 44| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 44| getArg(1): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 44| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "impl" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 42| getStatement(12): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 44| getTailExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 44| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 44| getStatement(0): [ExprStmt] ExprStmt +# 44| getExpr(): [CallExpr] ...::push_ident(...) +# 44| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 44| getArg(1): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 44| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "MyTrait" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 42| getStatement(13): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 42| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| getStmtList(): [StmtList] StmtList +# 44| getTailExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 44| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 44| getStatement(0): [ExprStmt] ExprStmt +# 44| getExpr(): [CallExpr] ...::push_ident(...) +# 44| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 44| getArg(1): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 44| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "for" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 44| getStatement(14): [ExprStmt] ExprStmt +# 44| getExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 44| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList # 44| getStatement(0): [ExprStmt] ExprStmt -# 44| getExpr(): [CallExpr] ...::push_ident(...) +# 44| getExpr(): [CallExpr] ...::to_tokens(...) # 44| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s +# 44| getArg(0): [RefExpr] &name +# 44| getExpr(): [VariableAccess] name +# 44| getPath(): [Path] name +# 44| getSegment(): [PathSegment] name +# 44| getIdentifier(): [NameRef] name +# 41| getArg(1): [RefExpr] &mut _s # 41| getExpr(): [VariableAccess] _s # 41| getPath(): [Path] _s # 41| getSegment(): [PathSegment] _s # 41| getIdentifier(): [NameRef] _s -# 44| getArg(1): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 44| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "impl" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private +# 41| getFunction(): [PathExpr] ...::to_tokens +# 41| getPath(): [Path] ...::to_tokens +# 41| getQualifier(): [Path] ...::ToTokens # 41| getQualifier(): [Path] $crate # 41| getSegment(): [PathSegment] $crate # 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 42| getStatement(12): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getTailExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 44| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getStatement(0): [ExprStmt] ExprStmt -# 44| getExpr(): [CallExpr] ...::push_ident(...) -# 44| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 44| getArg(1): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 44| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "MyTrait" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 42| getStatement(13): [ExprStmt] ExprStmt -# 42| getExpr(): [MacroExpr] MacroExpr -# 42| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 42| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getTailExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 44| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getStatement(0): [ExprStmt] ExprStmt -# 44| getExpr(): [CallExpr] ...::push_ident(...) -# 44| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 44| getArg(1): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 44| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "for" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 44| getStatement(14): [ExprStmt] ExprStmt -# 44| getExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 44| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getStatement(0): [ExprStmt] ExprStmt -# 44| getExpr(): [CallExpr] ...::to_tokens(...) -# 44| getArgList(): [ArgList] ArgList -# 44| getArg(0): [RefExpr] &name -# 44| getExpr(): [VariableAccess] name -# 44| getPath(): [Path] name -# 44| getSegment(): [PathSegment] name -# 44| getIdentifier(): [NameRef] name -# 41| getArg(1): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::to_tokens -# 41| getPath(): [Path] ...::to_tokens -# 41| getQualifier(): [Path] ...::ToTokens -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] ToTokens -# 41| getIdentifier(): [NameRef] ToTokens -# 41| getSegment(): [PathSegment] to_tokens -# 41| getIdentifier(): [NameRef] to_tokens -# 44| getStatement(15): [ExprStmt] ExprStmt -# 44| getExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 44| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getStatement(16): [ExprStmt] ExprStmt -# 44| getExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 44| getTokenTree(): [TokenTree] TokenTree -# 44| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getTailExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 44| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(0): [ExprStmt] ExprStmt -# 45| getExpr(): [CallExpr] ...::push_group(...) -# 45| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getArg(1): [PathExpr] ...::Brace -# 41| getPath(): [Path] ...::Brace -# 41| getQualifier(): [Path] ...::Delimiter -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] Delimiter -# 41| getIdentifier(): [NameRef] Delimiter -# 41| getSegment(): [PathSegment] Brace -# 41| getIdentifier(): [NameRef] Brace -# 45| getArg(2): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote!... -# 41| getPath(): [Path] ...::quote -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote -# 41| getIdentifier(): [NameRef] quote -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [BlockExpr] { ... } -# 45| getStmtList(): [StmtList] StmtList -# 41| getStatement(0): [LetStmt] let ... = ... -# 41| getInitializer(): [CallExpr] ...::new(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getFunction(): [PathExpr] ...::new -# 41| getPath(): [Path] ...::new -# 41| getQualifier(): [Path] ...::TokenStream -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] TokenStream -# 41| getIdentifier(): [NameRef] TokenStream -# 41| getSegment(): [PathSegment] new -# 41| getIdentifier(): [NameRef] new -# 41| getPat(): [IdentPat] mut _s -# 41| getName(): [Name] _s -# 45| getStatement(1): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_each_token!... -# 41| getPath(): [Path] ...::quote_each_token +# 41| getSegment(): [PathSegment] ToTokens +# 41| getIdentifier(): [NameRef] ToTokens +# 41| getSegment(): [PathSegment] to_tokens +# 41| getIdentifier(): [NameRef] to_tokens +# 44| getStatement(15): [ExprStmt] ExprStmt +# 44| getExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 44| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 44| getStatement(16): [ExprStmt] ExprStmt +# 44| getExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 44| getTokenTree(): [TokenTree] TokenTree +# 44| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 44| getTailExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 44| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 45| getStatement(0): [ExprStmt] ExprStmt +# 45| getExpr(): [CallExpr] ...::push_group(...) +# 45| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getArg(1): [PathExpr] ...::Brace +# 41| getPath(): [Path] ...::Brace +# 41| getQualifier(): [Path] ...::Delimiter +# 41| getQualifier(): [Path] ...::__private # 41| getQualifier(): [Path] $crate # 41| getSegment(): [PathSegment] $crate # 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_each_token -# 41| getIdentifier(): [NameRef] quote_each_token -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... -# 41| getPath(): [Path] ...::quote_tokens_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_tokens_with_context -# 41| getIdentifier(): [NameRef] quote_tokens_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(0): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(1): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(2): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(3): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(0): [ExprStmt] ExprStmt -# 45| getExpr(): [CallExpr] ...::push_ident(...) -# 45| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 45| getArg(1): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "fn" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 45| getStatement(4): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(0): [ExprStmt] ExprStmt -# 45| getExpr(): [CallExpr] ...::push_ident(...) -# 45| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 45| getArg(1): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "my_method" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 45| getStatement(5): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 41| getStatement(0): [ExprStmt] ExprStmt -# 41| getExpr(): [CallExpr] ...::push_group(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getArg(1): [PathExpr] ...::Parenthesis -# 41| getPath(): [Path] ...::Parenthesis -# 41| getQualifier(): [Path] ...::Delimiter -# 41| getQualifier(): [Path] ...::__private +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] Delimiter +# 41| getIdentifier(): [NameRef] Delimiter +# 41| getSegment(): [PathSegment] Brace +# 41| getIdentifier(): [NameRef] Brace +# 45| getArg(2): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote!... +# 41| getPath(): [Path] ...::quote +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote +# 41| getIdentifier(): [NameRef] quote +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 41| getStatement(0): [LetStmt] let ... = ... +# 41| getInitializer(): [CallExpr] ...::new(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getFunction(): [PathExpr] ...::new +# 41| getPath(): [Path] ...::new +# 41| getQualifier(): [Path] ...::TokenStream +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] TokenStream +# 41| getIdentifier(): [NameRef] TokenStream +# 41| getSegment(): [PathSegment] new +# 41| getIdentifier(): [NameRef] new +# 41| getPat(): [IdentPat] mut _s +# 41| getName(): [Name] _s +# 45| getStatement(1): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_each_token!... +# 41| getPath(): [Path] ...::quote_each_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_each_token +# 41| getIdentifier(): [NameRef] quote_each_token +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_tokens_with_context!... +# 41| getPath(): [Path] ...::quote_tokens_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_tokens_with_context +# 41| getIdentifier(): [NameRef] quote_tokens_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(0): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(1): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(2): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(3): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token # 41| getQualifier(): [Path] $crate # 41| getSegment(): [PathSegment] $crate # 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] Delimiter -# 41| getIdentifier(): [NameRef] Delimiter -# 41| getSegment(): [PathSegment] Parenthesis -# 41| getIdentifier(): [NameRef] Parenthesis -# 41| getArg(2): [MacroExpr] MacroExpr -# 41| getMacroCall(): [MacroCall] ...::quote!... -# 41| getPath(): [Path] ...::quote -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote -# 41| getIdentifier(): [NameRef] quote -# 41| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [CallExpr] ...::new(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getFunction(): [PathExpr] ...::new -# 41| getPath(): [Path] ...::new -# 41| getQualifier(): [Path] ...::TokenStream -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] TokenStream -# 41| getIdentifier(): [NameRef] TokenStream -# 41| getSegment(): [PathSegment] new -# 41| getIdentifier(): [NameRef] new -# 41| getFunction(): [PathExpr] ...::push_group -# 41| getPath(): [Path] ...::push_group -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_group -# 41| getIdentifier(): [NameRef] push_group -# 45| getStatement(6): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 41| getStatement(0): [ExprStmt] ExprStmt -# 41| getExpr(): [CallExpr] ...::push_rarrow(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::push_rarrow -# 41| getPath(): [Path] ...::push_rarrow -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_rarrow -# 41| getIdentifier(): [NameRef] push_rarrow -# 45| getStatement(7): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(0): [ExprStmt] ExprStmt -# 45| getExpr(): [CallExpr] ...::push_ident(...) -# 45| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 45| getArg(1): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] stringify!... -# 41| getPath(): [Path] stringify -# 41| getSegment(): [PathSegment] stringify -# 41| getIdentifier(): [NameRef] stringify -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [StringLiteralExpr] "u32" -# 41| getFunction(): [PathExpr] ...::push_ident -# 41| getPath(): [Path] ...::push_ident -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_ident -# 41| getIdentifier(): [NameRef] push_ident -# 45| getStatement(8): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 45| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token!... -# 41| getPath(): [Path] ...::quote_token -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token -# 41| getIdentifier(): [NameRef] quote_token -# 45| getTokenTree(): [TokenTree] TokenTree -# 46| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 46| getStatement(0): [ExprStmt] ExprStmt -# 46| getExpr(): [CallExpr] ...::push_group(...) -# 46| getArgList(): [ArgList] ArgList -# 41| getArg(0): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getArg(1): [PathExpr] ...::Brace -# 41| getPath(): [Path] ...::Brace -# 41| getQualifier(): [Path] ...::Delimiter -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] Delimiter -# 41| getIdentifier(): [NameRef] Delimiter -# 41| getSegment(): [PathSegment] Brace -# 41| getIdentifier(): [NameRef] Brace -# 46| getArg(2): [MacroExpr] MacroExpr -# 46| getMacroCall(): [MacroCall] ...::quote!... -# 41| getPath(): [Path] ...::quote -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote -# 41| getIdentifier(): [NameRef] quote -# 46| getTokenTree(): [TokenTree] TokenTree -# 46| getMacroCallExpansion(): [BlockExpr] { ... } -# 46| getStmtList(): [StmtList] StmtList -# 41| getStatement(0): [LetStmt] let ... = ... -# 41| getInitializer(): [CallExpr] ...::new(...) -# 41| getArgList(): [ArgList] ArgList -# 41| getFunction(): [PathExpr] ...::new -# 41| getPath(): [Path] ...::new -# 41| getQualifier(): [Path] ...::TokenStream +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(0): [ExprStmt] ExprStmt +# 45| getExpr(): [CallExpr] ...::push_ident(...) +# 45| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 45| getArg(1): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "fn" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident # 41| getQualifier(): [Path] ...::__private # 41| getQualifier(): [Path] $crate # 41| getSegment(): [PathSegment] $crate # 41| getIdentifier(): [NameRef] $crate # 41| getSegment(): [PathSegment] __private # 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] TokenStream -# 41| getIdentifier(): [NameRef] TokenStream -# 41| getSegment(): [PathSegment] new -# 41| getIdentifier(): [NameRef] new -# 41| getPat(): [IdentPat] mut _s -# 41| getName(): [Name] _s -# 46| getStatement(1): [ExprStmt] ExprStmt -# 46| getExpr(): [CallExpr] ...::to_tokens(...) -# 46| getArgList(): [ArgList] ArgList -# 46| getArg(0): [RefExpr] &const_ident -# 46| getExpr(): [VariableAccess] const_ident -# 46| getPath(): [Path] const_ident -# 46| getSegment(): [PathSegment] const_ident -# 46| getIdentifier(): [NameRef] const_ident -# 41| getArg(1): [RefExpr] &mut _s -# 41| getExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::to_tokens -# 41| getPath(): [Path] ...::to_tokens -# 41| getQualifier(): [Path] ...::ToTokens -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] ToTokens -# 41| getIdentifier(): [NameRef] ToTokens -# 41| getSegment(): [PathSegment] to_tokens -# 41| getIdentifier(): [NameRef] to_tokens -# 41| getTailExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::push_group -# 41| getPath(): [Path] ...::push_group -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_group -# 41| getIdentifier(): [NameRef] push_group -# 45| getStatement(9): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getStatement(10): [ExprStmt] ExprStmt -# 45| getExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 45| getTailExpr(): [MacroExpr] MacroExpr -# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 45| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 41| getTailExpr(): [VariableAccess] _s -# 41| getPath(): [Path] _s -# 41| getSegment(): [PathSegment] _s -# 41| getIdentifier(): [NameRef] _s -# 41| getFunction(): [PathExpr] ...::push_group -# 41| getPath(): [Path] ...::push_group -# 41| getQualifier(): [Path] ...::__private -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] __private -# 41| getIdentifier(): [NameRef] __private -# 41| getSegment(): [PathSegment] push_group -# 41| getIdentifier(): [NameRef] push_group -# 44| getStatement(17): [ExprStmt] ExprStmt -# 44| getExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 44| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getStatement(18): [ExprStmt] ExprStmt -# 44| getExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 44| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 44| getTailExpr(): [MacroExpr] MacroExpr -# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... -# 41| getPath(): [Path] ...::quote_token_with_context -# 41| getQualifier(): [Path] $crate -# 41| getSegment(): [PathSegment] $crate -# 41| getIdentifier(): [NameRef] $crate -# 41| getSegment(): [PathSegment] quote_token_with_context -# 41| getIdentifier(): [NameRef] quote_token_with_context -# 44| getTokenTree(): [TokenTree] TokenTree -# 41| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 45| getStatement(4): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(0): [ExprStmt] ExprStmt +# 45| getExpr(): [CallExpr] ...::push_ident(...) +# 45| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 45| getArg(1): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "my_method" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 45| getStatement(5): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 41| getStatement(0): [ExprStmt] ExprStmt +# 41| getExpr(): [CallExpr] ...::push_group(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getArg(1): [PathExpr] ...::Parenthesis +# 41| getPath(): [Path] ...::Parenthesis +# 41| getQualifier(): [Path] ...::Delimiter +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] Delimiter +# 41| getIdentifier(): [NameRef] Delimiter +# 41| getSegment(): [PathSegment] Parenthesis +# 41| getIdentifier(): [NameRef] Parenthesis +# 41| getArg(2): [MacroExpr] MacroExpr +# 41| getMacroCall(): [MacroCall] ...::quote!... +# 41| getPath(): [Path] ...::quote +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote +# 41| getIdentifier(): [NameRef] quote +# 41| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [CallExpr] ...::new(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getFunction(): [PathExpr] ...::new +# 41| getPath(): [Path] ...::new +# 41| getQualifier(): [Path] ...::TokenStream +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] TokenStream +# 41| getIdentifier(): [NameRef] TokenStream +# 41| getSegment(): [PathSegment] new +# 41| getIdentifier(): [NameRef] new +# 41| getFunction(): [PathExpr] ...::push_group +# 41| getPath(): [Path] ...::push_group +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_group +# 41| getIdentifier(): [NameRef] push_group +# 45| getStatement(6): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 41| getStatement(0): [ExprStmt] ExprStmt +# 41| getExpr(): [CallExpr] ...::push_rarrow(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getFunction(): [PathExpr] ...::push_rarrow +# 41| getPath(): [Path] ...::push_rarrow +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_rarrow +# 41| getIdentifier(): [NameRef] push_rarrow +# 45| getStatement(7): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(0): [ExprStmt] ExprStmt +# 45| getExpr(): [CallExpr] ...::push_ident(...) +# 45| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 45| getArg(1): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] stringify!... +# 41| getPath(): [Path] stringify +# 41| getSegment(): [PathSegment] stringify +# 41| getIdentifier(): [NameRef] stringify +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [StringLiteralExpr] "u32" +# 41| getFunction(): [PathExpr] ...::push_ident +# 41| getPath(): [Path] ...::push_ident +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_ident +# 41| getIdentifier(): [NameRef] push_ident +# 45| getStatement(8): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 45| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token!... +# 41| getPath(): [Path] ...::quote_token +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token +# 41| getIdentifier(): [NameRef] quote_token +# 45| getTokenTree(): [TokenTree] TokenTree +# 46| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 46| getStatement(0): [ExprStmt] ExprStmt +# 46| getExpr(): [CallExpr] ...::push_group(...) +# 46| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getArg(1): [PathExpr] ...::Brace +# 41| getPath(): [Path] ...::Brace +# 41| getQualifier(): [Path] ...::Delimiter +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] Delimiter +# 41| getIdentifier(): [NameRef] Delimiter +# 41| getSegment(): [PathSegment] Brace +# 41| getIdentifier(): [NameRef] Brace +# 46| getArg(2): [MacroExpr] MacroExpr +# 46| getMacroCall(): [MacroCall] ...::quote!... +# 41| getPath(): [Path] ...::quote +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote +# 41| getIdentifier(): [NameRef] quote +# 46| getTokenTree(): [TokenTree] TokenTree +# 46| getMacroCallExpansion(): [BlockExpr] { ... } +# 46| getStmtList(): [StmtList] StmtList +# 41| getStatement(0): [LetStmt] let ... = ... +# 41| getInitializer(): [CallExpr] ...::new(...) +# 41| getArgList(): [ArgList] ArgList +# 41| getFunction(): [PathExpr] ...::new +# 41| getPath(): [Path] ...::new +# 41| getQualifier(): [Path] ...::TokenStream +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] TokenStream +# 41| getIdentifier(): [NameRef] TokenStream +# 41| getSegment(): [PathSegment] new +# 41| getIdentifier(): [NameRef] new +# 41| getPat(): [IdentPat] mut _s +# 41| getName(): [Name] _s +# 46| getStatement(1): [ExprStmt] ExprStmt +# 46| getExpr(): [CallExpr] ...::to_tokens(...) +# 46| getArgList(): [ArgList] ArgList +# 46| getArg(0): [RefExpr] &const_ident +# 46| getExpr(): [VariableAccess] const_ident +# 46| getPath(): [Path] const_ident +# 46| getSegment(): [PathSegment] const_ident +# 46| getIdentifier(): [NameRef] const_ident +# 41| getArg(1): [RefExpr] &mut _s +# 41| getExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getFunction(): [PathExpr] ...::to_tokens +# 41| getPath(): [Path] ...::to_tokens +# 41| getQualifier(): [Path] ...::ToTokens +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] ToTokens +# 41| getIdentifier(): [NameRef] ToTokens +# 41| getSegment(): [PathSegment] to_tokens +# 41| getIdentifier(): [NameRef] to_tokens +# 41| getTailExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getFunction(): [PathExpr] ...::push_group +# 41| getPath(): [Path] ...::push_group +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_group +# 41| getIdentifier(): [NameRef] push_group +# 45| getStatement(9): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getStatement(10): [ExprStmt] ExprStmt +# 45| getExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 45| getTailExpr(): [MacroExpr] MacroExpr +# 45| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 45| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 45| getStmtList(): [StmtList] StmtList +# 41| getTailExpr(): [VariableAccess] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 41| getFunction(): [PathExpr] ...::push_group +# 41| getPath(): [Path] ...::push_group +# 41| getQualifier(): [Path] ...::__private +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] __private +# 41| getIdentifier(): [NameRef] __private +# 41| getSegment(): [PathSegment] push_group +# 41| getIdentifier(): [NameRef] push_group +# 44| getStatement(17): [ExprStmt] ExprStmt +# 44| getExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 44| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 44| getStatement(18): [ExprStmt] ExprStmt +# 44| getExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 44| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList +# 44| getTailExpr(): [MacroExpr] MacroExpr +# 44| getMacroCall(): [MacroCall] ...::quote_token_with_context!... +# 41| getPath(): [Path] ...::quote_token_with_context +# 41| getQualifier(): [Path] $crate +# 41| getSegment(): [PathSegment] $crate +# 41| getIdentifier(): [NameRef] $crate +# 41| getSegment(): [PathSegment] quote_token_with_context +# 41| getIdentifier(): [NameRef] quote_token_with_context +# 44| getTokenTree(): [TokenTree] TokenTree +# 41| getMacroCallExpansion(): [BlockExpr] { ... } +# 44| getStmtList(): [StmtList] StmtList # 41| getTailExpr(): [VariableAccess] _s # 41| getPath(): [Path] _s # 41| getSegment(): [PathSegment] _s diff --git a/rust/ql/test/extractor-tests/macro-expansion/test.expected b/rust/ql/test/extractor-tests/macro-expansion/test.expected index 5abff30113b..f47a7455e91 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/test.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/test.expected @@ -26,12 +26,12 @@ macro_calls | macro_expansion.rs:31:5:31:16 | ...::format_args_nl!... | macro_expansion.rs:31:5:31:16 | FormatArgsExpr | | macro_expansion.rs:31:5:31:16 | ...::format_args_nl!... | macro_expansion.rs:31:5:31:16 | FormatArgsExpr | | macro_expansion.rs:31:5:31:16 | ...::format_args_nl!... | macro_expansion.rs:31:5:31:16 | FormatArgsExpr | -| macro_expansion.rs:31:5:31:16 | println!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | -| macro_expansion.rs:31:5:31:16 | println!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | -| macro_expansion.rs:31:5:31:16 | println!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | -| macro_expansion.rs:33:9:33:16 | hello!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | -| macro_expansion.rs:33:9:33:16 | hello!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | -| macro_expansion.rs:33:9:33:16 | hello!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | +| macro_expansion.rs:31:5:31:16 | println!... | macro_expansion.rs:31:5:31:16 | { ... } | +| macro_expansion.rs:31:5:31:16 | println!... | macro_expansion.rs:31:5:31:16 | { ... } | +| macro_expansion.rs:31:5:31:16 | println!... | macro_expansion.rs:31:5:31:16 | { ... } | +| macro_expansion.rs:33:9:33:16 | hello!... | macro_expansion.rs:31:5:31:16 | { ... } | +| macro_expansion.rs:33:9:33:16 | hello!... | macro_expansion.rs:31:5:31:16 | { ... } | +| macro_expansion.rs:33:9:33:16 | hello!... | macro_expansion.rs:31:5:31:16 | { ... } | | macro_expansion.rs:44:5:44:13 | def_x!... | macro_expansion.rs:44:5:44:10 | MacroItems | | macro_expansion.rs:53:9:53:25 | concat!... | macro_expansion.rs:53:17:53:24 | "xy" | | macro_expansion.rs:55:9:58:5 | my_macro!... | macro_expansion.rs:56:9:57:13 | MacroExpr | diff --git a/rust/ql/test/library-tests/controlflow/Cfg.expected b/rust/ql/test/library-tests/controlflow/Cfg.expected index d8b2972ca52..ef97a3b628f 100644 --- a/rust/ql/test/library-tests/controlflow/Cfg.expected +++ b/rust/ql/test/library-tests/controlflow/Cfg.expected @@ -400,9 +400,9 @@ edges | test.rs:171:26:171:28 | ...::format_args_nl!... | test.rs:171:26:171:28 | MacroExpr | | | test.rs:171:26:171:28 | ExprStmt | test.rs:171:17:171:24 | ...::_print | | | test.rs:171:26:171:28 | FormatArgsExpr | test.rs:171:26:171:28 | ...::format_args_nl!... | | -| test.rs:171:26:171:28 | MacroBlockExpr | test.rs:171:17:171:29 | println!... | | | test.rs:171:26:171:28 | MacroExpr | test.rs:171:26:171:28 | ...::_print(...) | | -| test.rs:171:26:171:28 | { ... } | test.rs:171:26:171:28 | MacroBlockExpr | | +| test.rs:171:26:171:28 | { ... } | test.rs:171:17:171:29 | println!... | | +| test.rs:171:26:171:28 | { ... } | test.rs:171:26:171:28 | { ... } | | | test.rs:172:20:174:13 | { ... } | test.rs:170:13:174:13 | if cond2 {...} else {...} | | | test.rs:173:17:173:24 | ...::_print | test.rs:173:26:173:28 | "2\\n" | | | test.rs:173:17:173:29 | MacroExpr | test.rs:172:20:174:13 | { ... } | | @@ -413,9 +413,9 @@ edges | test.rs:173:26:173:28 | ...::format_args_nl!... | test.rs:173:26:173:28 | MacroExpr | | | test.rs:173:26:173:28 | ExprStmt | test.rs:173:17:173:24 | ...::_print | | | test.rs:173:26:173:28 | FormatArgsExpr | test.rs:173:26:173:28 | ...::format_args_nl!... | | -| test.rs:173:26:173:28 | MacroBlockExpr | test.rs:173:17:173:29 | println!... | | | test.rs:173:26:173:28 | MacroExpr | test.rs:173:26:173:28 | ...::_print(...) | | -| test.rs:173:26:173:28 | { ... } | test.rs:173:26:173:28 | MacroBlockExpr | | +| test.rs:173:26:173:28 | { ... } | test.rs:173:17:173:29 | println!... | | +| test.rs:173:26:173:28 | { ... } | test.rs:173:26:173:28 | { ... } | | | test.rs:175:13:175:20 | ...::_print | test.rs:175:22:175:24 | "3\\n" | | | test.rs:175:13:175:25 | MacroExpr | test.rs:169:18:176:9 | { ... } | | | test.rs:175:13:175:25 | println!... | test.rs:175:13:175:25 | MacroExpr | | @@ -425,9 +425,9 @@ edges | test.rs:175:22:175:24 | ...::format_args_nl!... | test.rs:175:22:175:24 | MacroExpr | | | test.rs:175:22:175:24 | ExprStmt | test.rs:175:13:175:20 | ...::_print | | | test.rs:175:22:175:24 | FormatArgsExpr | test.rs:175:22:175:24 | ...::format_args_nl!... | | -| test.rs:175:22:175:24 | MacroBlockExpr | test.rs:175:13:175:25 | println!... | | | test.rs:175:22:175:24 | MacroExpr | test.rs:175:22:175:24 | ...::_print(...) | | -| test.rs:175:22:175:24 | { ... } | test.rs:175:22:175:24 | MacroBlockExpr | | +| test.rs:175:22:175:24 | { ... } | test.rs:175:13:175:25 | println!... | | +| test.rs:175:22:175:24 | { ... } | test.rs:175:22:175:24 | { ... } | | | test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:179:29:179:29 | a | | | test.rs:179:5:188:5 | exit fn test_nested_if_match (normal) | test.rs:179:5:188:5 | exit fn test_nested_if_match | | | test.rs:179:29:179:29 | a | test.rs:179:29:179:29 | a | | @@ -905,11 +905,11 @@ edges | test.rs:363:39:363:53 | ...::panic_fmt(...) | test.rs:363:39:363:53 | { ... } | | | test.rs:363:39:363:53 | ExprStmt | test.rs:363:32:363:37 | ...::panic_fmt | | | test.rs:363:39:363:53 | FormatArgsExpr | test.rs:363:39:363:53 | ...::const_format_args!... | | -| test.rs:363:39:363:53 | MacroBlockExpr | test.rs:363:32:363:54 | panic!... | | -| test.rs:363:39:363:53 | MacroBlockExpr | test.rs:363:39:363:53 | ...::panic_2021!... | | | test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | ...::panic_fmt(...) | | -| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | MacroBlockExpr | | -| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | MacroBlockExpr | | +| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | { ... } | | +| test.rs:363:39:363:53 | { ... } | test.rs:363:32:363:54 | panic!... | | +| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | ...::panic_2021!... | | +| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | { ... } | | | test.rs:364:9:364:9 | n | test.rs:362:46:365:5 | { ... } | | | test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:29:367:29 | m | | | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | exit fn test_let_with_return | | @@ -1190,9 +1190,9 @@ edges | test.rs:495:18:495:32 | ...::format_args_nl!... | test.rs:495:18:495:32 | MacroExpr | | | test.rs:495:18:495:32 | ExprStmt | test.rs:495:9:495:16 | ...::_print | | | test.rs:495:18:495:32 | FormatArgsExpr | test.rs:495:18:495:32 | ...::format_args_nl!... | | -| test.rs:495:18:495:32 | MacroBlockExpr | test.rs:495:9:495:33 | println!... | | | test.rs:495:18:495:32 | MacroExpr | test.rs:495:18:495:32 | ...::_print(...) | | -| test.rs:495:18:495:32 | { ... } | test.rs:495:18:495:32 | MacroBlockExpr | | +| test.rs:495:18:495:32 | { ... } | test.rs:495:9:495:33 | println!... | | +| test.rs:495:18:495:32 | { ... } | test.rs:495:18:495:32 | { ... } | | | test.rs:498:5:517:5 | enter fn async_block | test.rs:498:26:498:26 | b | | | test.rs:498:5:517:5 | exit fn async_block (normal) | test.rs:498:5:517:5 | exit fn async_block | | | test.rs:498:26:498:26 | b | test.rs:498:26:498:26 | b | | @@ -1214,9 +1214,9 @@ edges | test.rs:500:22:500:40 | ...::format_args_nl!... | test.rs:500:22:500:40 | MacroExpr | | | test.rs:500:22:500:40 | ExprStmt | test.rs:500:13:500:20 | ...::_print | | | test.rs:500:22:500:40 | FormatArgsExpr | test.rs:500:22:500:40 | ...::format_args_nl!... | | -| test.rs:500:22:500:40 | MacroBlockExpr | test.rs:500:13:500:41 | println!... | | | test.rs:500:22:500:40 | MacroExpr | test.rs:500:22:500:40 | ...::_print(...) | | -| test.rs:500:22:500:40 | { ... } | test.rs:500:22:500:40 | MacroBlockExpr | | +| test.rs:500:22:500:40 | { ... } | test.rs:500:13:500:41 | println!... | | +| test.rs:500:22:500:40 | { ... } | test.rs:500:22:500:40 | { ... } | | | test.rs:502:9:504:10 | let ... = ... | test.rs:502:31:504:9 | { ... } | | | test.rs:502:13:502:27 | say_how_are_you | test.rs:502:13:502:27 | say_how_are_you | | | test.rs:502:13:502:27 | say_how_are_you | test.rs:505:9:505:28 | let ... = ... | match | @@ -1232,9 +1232,9 @@ edges | test.rs:503:22:503:35 | ...::format_args_nl!... | test.rs:503:22:503:35 | MacroExpr | | | test.rs:503:22:503:35 | ExprStmt | test.rs:503:13:503:20 | ...::_print | | | test.rs:503:22:503:35 | FormatArgsExpr | test.rs:503:22:503:35 | ...::format_args_nl!... | | -| test.rs:503:22:503:35 | MacroBlockExpr | test.rs:503:13:503:36 | println!... | | | test.rs:503:22:503:35 | MacroExpr | test.rs:503:22:503:35 | ...::_print(...) | | -| test.rs:503:22:503:35 | { ... } | test.rs:503:22:503:35 | MacroBlockExpr | | +| test.rs:503:22:503:35 | { ... } | test.rs:503:13:503:36 | println!... | | +| test.rs:503:22:503:35 | { ... } | test.rs:503:22:503:35 | { ... } | | | test.rs:505:9:505:28 | let ... = ... | test.rs:505:20:505:27 | { ... } | | | test.rs:505:13:505:16 | noop | test.rs:505:13:505:16 | noop | | | test.rs:505:13:505:16 | noop | test.rs:506:9:506:26 | ExprStmt | match | @@ -1293,15 +1293,15 @@ edges | test.rs:533:13:533:19 | ...::panic_explicit(...) | test.rs:533:13:533:19 | { ... } | | | test.rs:533:13:533:19 | ExprStmt | test.rs:533:13:533:19 | fn panic_cold_explicit | | | test.rs:533:13:533:19 | ExprStmt | test.rs:533:13:533:19 | panic_cold_explicit | | -| test.rs:533:13:533:19 | MacroBlockExpr | test.rs:533:13:533:19 | ...::panic_2021!... | | | test.rs:533:13:533:19 | MacroExpr | test.rs:533:13:533:19 | { ... } | | | test.rs:533:13:533:19 | enter fn panic_cold_explicit | test.rs:533:13:533:19 | ...::panic_explicit | | | test.rs:533:13:533:19 | exit fn panic_cold_explicit (normal) | test.rs:533:13:533:19 | exit fn panic_cold_explicit | | | test.rs:533:13:533:19 | fn panic_cold_explicit | test.rs:533:13:533:19 | ExprStmt | | | test.rs:533:13:533:19 | panic_cold_explicit | test.rs:533:13:533:19 | panic_cold_explicit(...) | | | test.rs:533:13:533:19 | panic_cold_explicit(...) | test.rs:533:13:533:19 | { ... } | | -| test.rs:533:13:533:19 | { ... } | test.rs:533:13:533:19 | MacroBlockExpr | | +| test.rs:533:13:533:19 | { ... } | test.rs:533:13:533:19 | ...::panic_2021!... | | | test.rs:533:13:533:19 | { ... } | test.rs:533:13:533:19 | exit fn panic_cold_explicit (normal) | | +| test.rs:533:13:533:19 | { ... } | test.rs:533:13:533:19 | { ... } | | | test.rs:533:13:533:19 | { ... } | test.rs:533:21:533:48 | if ... {...} | | | test.rs:533:13:533:49 | MacroExpr | test.rs:532:9:534:9 | { ... } | | | test.rs:533:13:533:49 | assert!... | test.rs:533:13:533:49 | MacroExpr | | @@ -1310,11 +1310,11 @@ edges | test.rs:533:21:533:44 | ...::size_of::<...>(...) | test.rs:533:48:533:48 | 0 | | | test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(false)] ! ... | true | | test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(true)] ! ... | false | -| test.rs:533:21:533:48 | MacroBlockExpr | test.rs:533:13:533:49 | assert!... | | | test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:533:21:533:48 | if ... {...} | false | | test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:13:533:19 | ExprStmt | true | | test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | { ... } | | -| test.rs:533:21:533:48 | { ... } | test.rs:533:21:533:48 | MacroBlockExpr | | +| test.rs:533:21:533:48 | { ... } | test.rs:533:13:533:49 | assert!... | | +| test.rs:533:21:533:48 | { ... } | test.rs:533:21:533:48 | { ... } | | | test.rs:533:48:533:48 | 0 | test.rs:533:21:533:48 | ... > ... | | | test.rs:536:9:536:10 | 42 | test.rs:529:41:537:5 | { ... } | | | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:540:9:540:30 | Const | | diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 8c205afe569..b0c11770a8e 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -11,17 +11,17 @@ localStep | main.rs:7:9:7:9 | s | main.rs:7:9:7:9 | s | | main.rs:7:9:7:14 | ...: i64 | main.rs:7:9:7:9 | s | | main.rs:8:14:8:20 | FormatArgsExpr | main.rs:8:14:8:20 | MacroExpr | -| main.rs:8:14:8:20 | MacroBlockExpr | main.rs:8:5:8:21 | MacroExpr | | main.rs:8:14:8:20 | [post] MacroExpr | main.rs:8:14:8:20 | [post] FormatArgsExpr | -| main.rs:8:14:8:20 | { ... } | main.rs:8:14:8:20 | MacroBlockExpr | +| main.rs:8:14:8:20 | { ... } | main.rs:8:5:8:21 | MacroExpr | +| main.rs:8:14:8:20 | { ... } | main.rs:8:14:8:20 | { ... } | | main.rs:11:13:11:14 | [SSA] sr | main.rs:12:20:12:21 | sr | | main.rs:11:13:11:14 | sr | main.rs:11:13:11:14 | [SSA] sr | | main.rs:11:13:11:14 | sr | main.rs:11:13:11:14 | sr | | main.rs:11:13:11:20 | ...: ... | main.rs:11:13:11:14 | sr | | main.rs:12:14:12:21 | FormatArgsExpr | main.rs:12:14:12:21 | MacroExpr | -| main.rs:12:14:12:21 | MacroBlockExpr | main.rs:12:5:12:22 | MacroExpr | | main.rs:12:14:12:21 | [post] MacroExpr | main.rs:12:14:12:21 | [post] FormatArgsExpr | -| main.rs:12:14:12:21 | { ... } | main.rs:12:14:12:21 | MacroBlockExpr | +| main.rs:12:14:12:21 | { ... } | main.rs:12:5:12:22 | MacroExpr | +| main.rs:12:14:12:21 | { ... } | main.rs:12:14:12:21 | { ... } | | main.rs:23:9:23:9 | [SSA] s | main.rs:24:10:24:10 | s | | main.rs:23:9:23:9 | s | main.rs:23:9:23:9 | [SSA] s | | main.rs:23:9:23:9 | s | main.rs:23:9:23:9 | s | @@ -697,9 +697,9 @@ localStep | main.rs:500:16:500:16 | s | main.rs:500:16:500:16 | s | | main.rs:500:16:500:24 | ...: String | main.rs:500:16:500:16 | s | | main.rs:501:14:501:20 | FormatArgsExpr | main.rs:501:14:501:20 | MacroExpr | -| main.rs:501:14:501:20 | MacroBlockExpr | main.rs:501:5:501:21 | MacroExpr | | main.rs:501:14:501:20 | [post] MacroExpr | main.rs:501:14:501:20 | [post] FormatArgsExpr | -| main.rs:501:14:501:20 | { ... } | main.rs:501:14:501:20 | MacroBlockExpr | +| main.rs:501:14:501:20 | { ... } | main.rs:501:5:501:21 | MacroExpr | +| main.rs:501:14:501:20 | { ... } | main.rs:501:14:501:20 | { ... } | | main.rs:505:9:505:9 | [SSA] a | main.rs:506:13:506:13 | a | | main.rs:505:9:505:9 | a | main.rs:505:9:505:9 | [SSA] a | | main.rs:505:9:505:9 | a | main.rs:505:9:505:9 | a | diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 353b18ff840..a7b856a7517 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -4565,10 +4565,12 @@ inferType | blanket_impl.rs:46:13:46:14 | x1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:46:18:46:19 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:46:18:46:28 | S1.clone1() | | blanket_impl.rs:6:5:7:14 | S1 | +| blanket_impl.rs:47:9:47:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:18:47:25 | "{x1:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:47:18:47:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:20:47:21 | x1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:13:48:14 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:18:48:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4577,18 +4579,22 @@ inferType | blanket_impl.rs:48:19:48:21 | &S1 | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:48:19:48:21 | &S1 | TRef | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:20:48:21 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | +| blanket_impl.rs:49:9:49:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:18:49:25 | "{x2:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:49:18:49:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:49:18:49:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:20:49:21 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:13:50:14 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:18:50:19 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:18:50:31 | S1.duplicate() | | blanket_impl.rs:6:5:7:14 | S1 | +| blanket_impl.rs:51:9:51:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:18:51:25 | "{x3:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:51:18:51:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:51:18:51:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:20:51:21 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:13:52:14 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:18:52:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4597,28 +4603,34 @@ inferType | blanket_impl.rs:52:19:52:21 | &S1 | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:52:19:52:21 | &S1 | TRef | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:20:52:21 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | +| blanket_impl.rs:53:9:53:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:18:53:25 | "{x4:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:53:18:53:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:53:18:53:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:20:53:21 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:13:54:14 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:18:54:35 | ...::duplicate(...) | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:32:54:34 | &S1 | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:54:32:54:34 | &S1 | TRef | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:33:54:34 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | +| blanket_impl.rs:55:9:55:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:18:55:25 | "{x5:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:55:18:55:25 | "{x5:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:55:18:55:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:20:55:21 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:13:56:14 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:18:56:19 | S2 | | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:56:18:56:31 | S2.duplicate() | | blanket_impl.rs:6:5:7:14 | S1 | +| blanket_impl.rs:57:9:57:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:18:57:25 | "{x6:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:57:18:57:25 | "{x6:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:57:18:57:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:20:57:21 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:13:58:14 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:18:58:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4627,10 +4639,12 @@ inferType | blanket_impl.rs:58:19:58:21 | &S2 | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:58:19:58:21 | &S2 | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:58:20:58:21 | S2 | | blanket_impl.rs:9:5:10:14 | S2 | +| blanket_impl.rs:59:9:59:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:18:59:25 | "{x7:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:59:18:59:25 | "{x7:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:59:18:59:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:20:59:21 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:68:24:68:24 | x | | {EXTERNAL LOCATION} | i64 | | blanket_impl.rs:68:32:68:32 | y | | blanket_impl.rs:67:5:69:5 | Self [trait Trait1] | @@ -4651,37 +4665,45 @@ inferType | blanket_impl.rs:90:18:90:39 | ...::assoc_func1(...) | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:90:34:90:34 | 1 | | {EXTERNAL LOCATION} | i32 | | blanket_impl.rs:90:37:90:38 | S1 | | blanket_impl.rs:64:5:65:14 | S1 | +| blanket_impl.rs:91:9:91:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:18:91:25 | "{x1:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:91:18:91:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:91:18:91:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:20:91:21 | x1 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:13:92:14 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:18:92:43 | ...::assoc_func1(...) | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:38:92:38 | 1 | | {EXTERNAL LOCATION} | i32 | | blanket_impl.rs:92:41:92:42 | S1 | | blanket_impl.rs:64:5:65:14 | S1 | +| blanket_impl.rs:93:9:93:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:18:93:25 | "{x2:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:93:18:93:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:93:18:93:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:20:93:21 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:13:94:14 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:18:94:39 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:34:94:34 | 1 | | {EXTERNAL LOCATION} | i32 | | blanket_impl.rs:94:37:94:38 | S1 | | blanket_impl.rs:64:5:65:14 | S1 | +| blanket_impl.rs:95:9:95:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:18:95:25 | "{x3:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:95:18:95:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:95:18:95:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:20:95:21 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:13:96:14 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:18:96:43 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:38:96:38 | 1 | | {EXTERNAL LOCATION} | i32 | | blanket_impl.rs:96:41:96:42 | S1 | | blanket_impl.rs:64:5:65:14 | S1 | +| blanket_impl.rs:97:9:97:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:18:97:25 | "{x4:?}\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:97:18:97:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:97:18:97:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:20:97:21 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:108:22:108:26 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:108:22:108:26 | SelfParam | TRef | blanket_impl.rs:107:5:109:5 | Self [trait Flag] | @@ -4831,18 +4853,22 @@ inferType | blanket_impl.rs:277:21:277:25 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:277:21:277:25 | SelfParam | TRef | blanket_impl.rs:276:10:276:22 | T | | blanket_impl.rs:277:28:279:9 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:278:13:278:42 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:278:22:278:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:281:24:281:28 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:281:24:281:28 | SelfParam | TRef | blanket_impl.rs:276:10:276:22 | T | | blanket_impl.rs:281:31:281:36 | _query | | blanket_impl.rs:281:21:281:21 | E | | blanket_impl.rs:281:42:283:9 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:282:13:282:42 | MacroExpr | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:282:22:282:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:290:16:300:5 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:291:13:291:13 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | | blanket_impl.rs:291:17:291:34 | MySqlConnection {...} | | blanket_impl.rs:286:5:286:29 | MySqlConnection | @@ -5454,7 +5480,7 @@ inferType | dereference.rs:214:22:214:38 | "In struct impl!\\n" | | {EXTERNAL LOCATION} | & | | dereference.rs:214:22:214:38 | "In struct impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:214:22:214:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| dereference.rs:214:22:214:38 | MacroBlockExpr | | {EXTERNAL LOCATION} | () | +| dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:220:16:220:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:220:16:220:20 | SelfParam | TRef | dereference.rs:205:5:205:17 | Foo | @@ -5463,7 +5489,7 @@ inferType | dereference.rs:221:22:221:37 | "In trait impl!\\n" | | {EXTERNAL LOCATION} | & | | dereference.rs:221:22:221:37 | "In trait impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:221:22:221:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| dereference.rs:221:22:221:37 | MacroBlockExpr | | {EXTERNAL LOCATION} | () | +| dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:225:19:228:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:226:17:226:17 | f | | dereference.rs:205:5:205:17 | Foo | @@ -5493,7 +5519,7 @@ inferType | dyn_type.rs:29:17:29:30 | "MyTrait1: {}" | TRef | {EXTERNAL LOCATION} | str | | dyn_type.rs:29:17:29:42 | ...::format(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| dyn_type.rs:29:17:29:42 | MacroBlockExpr | | {EXTERNAL LOCATION} | String | +| dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:33:29:36 | self | | {EXTERNAL LOCATION} | & | | dyn_type.rs:29:33:29:36 | self | TRef | dyn_type.rs:21:1:24:1 | MyStruct | @@ -5747,10 +5773,12 @@ inferType | main.rs:26:13:26:13 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:26:17:26:32 | MyThing {...} | | main.rs:5:5:8:5 | MyThing | | main.rs:26:30:26:30 | S | | main.rs:3:5:4:13 | S | +| main.rs:27:9:27:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:27:18:27:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:27:18:27:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:27:18:27:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:27:26:27:26 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:27:26:27:28 | x.a | | main.rs:3:5:4:13 | S | | main.rs:30:29:30:29 | x | | main.rs:16:5:19:5 | GenericThing | @@ -5760,10 +5788,12 @@ inferType | main.rs:31:17:31:17 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:31:17:31:17 | x | A | {EXTERNAL LOCATION} | bool | | main.rs:31:17:31:19 | x.a | | {EXTERNAL LOCATION} | bool | +| main.rs:32:9:32:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:32:18:32:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:32:18:32:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:32:18:32:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:32:26:32:26 | a | | {EXTERNAL LOCATION} | bool | | main.rs:35:31:63:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:37:13:37:13 | x | | main.rs:16:5:19:5 | GenericThing | @@ -5771,10 +5801,12 @@ inferType | main.rs:37:17:37:42 | GenericThing::<...> {...} | | main.rs:16:5:19:5 | GenericThing | | main.rs:37:17:37:42 | GenericThing::<...> {...} | A | main.rs:3:5:4:13 | S | | main.rs:37:40:37:40 | S | | main.rs:3:5:4:13 | S | +| main.rs:38:9:38:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:38:18:38:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:38:18:38:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:38:18:38:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:38:26:38:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:38:26:38:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:38:26:38:28 | x.a | | main.rs:3:5:4:13 | S | @@ -5783,10 +5815,12 @@ inferType | main.rs:41:17:41:37 | GenericThing {...} | | main.rs:16:5:19:5 | GenericThing | | main.rs:41:17:41:37 | GenericThing {...} | A | main.rs:3:5:4:13 | S | | main.rs:41:35:41:35 | S | | main.rs:3:5:4:13 | S | +| main.rs:42:9:42:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:42:18:42:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:42:18:42:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:42:18:42:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:42:26:42:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:42:26:42:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:42:26:42:28 | x.a | | main.rs:3:5:4:13 | S | @@ -5794,10 +5828,12 @@ inferType | main.rs:46:17:48:9 | OptionS {...} | | main.rs:21:5:23:5 | OptionS | | main.rs:47:16:47:33 | ...::MyNone(...) | | main.rs:10:5:14:5 | MyOption | | main.rs:47:16:47:33 | ...::MyNone(...) | T | main.rs:3:5:4:13 | S | +| main.rs:49:9:49:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:49:18:49:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:49:18:49:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:49:18:49:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:49:26:49:26 | x | | main.rs:21:5:23:5 | OptionS | | main.rs:49:26:49:28 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:49:26:49:28 | x.a | T | main.rs:3:5:4:13 | S | @@ -5809,10 +5845,12 @@ inferType | main.rs:52:17:54:9 | GenericThing::<...> {...} | A.T | main.rs:3:5:4:13 | S | | main.rs:53:16:53:33 | ...::MyNone(...) | | main.rs:10:5:14:5 | MyOption | | main.rs:53:16:53:33 | ...::MyNone(...) | T | main.rs:3:5:4:13 | S | +| main.rs:55:9:55:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:55:18:55:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:55:18:55:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:55:18:55:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:55:26:55:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:55:26:55:26 | x | A | main.rs:10:5:14:5 | MyOption | | main.rs:55:26:55:26 | x | A.T | main.rs:3:5:4:13 | S | @@ -5833,10 +5871,12 @@ inferType | main.rs:61:30:61:30 | x | A.T | main.rs:3:5:4:13 | S | | main.rs:61:30:61:32 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:61:30:61:32 | x.a | T | main.rs:3:5:4:13 | S | +| main.rs:62:9:62:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:62:18:62:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:62:18:62:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:62:18:62:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:62:26:62:26 | a | | main.rs:10:5:14:5 | MyOption | | main.rs:62:26:62:26 | a | T | main.rs:3:5:4:13 | S | | main.rs:65:16:68:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5849,10 +5889,12 @@ inferType | main.rs:79:32:81:9 | { ... } | | main.rs:72:5:72:21 | Foo | | main.rs:80:13:80:16 | self | | main.rs:72:5:72:21 | Foo | | main.rs:84:23:89:5 | { ... } | | main.rs:72:5:72:21 | Foo | +| main.rs:85:9:85:34 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:85:18:85:33 | "main.rs::m1::f\\n" | | {EXTERNAL LOCATION} | & | | main.rs:85:18:85:33 | "main.rs::m1::f\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:85:18:85:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:86:13:86:13 | x | | main.rs:72:5:72:21 | Foo | | main.rs:86:17:86:22 | Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:87:13:87:13 | y | | main.rs:72:5:72:21 | Foo | @@ -5861,10 +5903,12 @@ inferType | main.rs:91:14:91:14 | x | | main.rs:72:5:72:21 | Foo | | main.rs:91:22:91:22 | y | | main.rs:72:5:72:21 | Foo | | main.rs:91:37:95:5 | { ... } | | main.rs:72:5:72:21 | Foo | +| main.rs:92:9:92:34 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:92:18:92:33 | "main.rs::m1::g\\n" | | {EXTERNAL LOCATION} | & | | main.rs:92:18:92:33 | "main.rs::m1::g\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:92:18:92:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:93:9:93:9 | x | | main.rs:72:5:72:21 | Foo | | main.rs:93:9:93:14 | x.m1() | | main.rs:72:5:72:21 | Foo | | main.rs:94:9:94:9 | y | | main.rs:72:5:72:21 | Foo | @@ -5890,17 +5934,21 @@ inferType | main.rs:130:25:130:29 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:130:25:130:29 | SelfParam | TRef | main.rs:128:9:133:9 | Self [trait Foo] | | main.rs:130:32:132:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:131:17:131:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:131:26:131:31 | "foo!\\n" | | {EXTERNAL LOCATION} | & | | main.rs:131:26:131:31 | "foo!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:131:26:131:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:137:25:137:29 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:137:25:137:29 | SelfParam | TRef | main.rs:135:9:140:9 | Self [trait Bar] | | main.rs:137:32:139:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:138:17:138:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:138:26:138:31 | "bar!\\n" | | {EXTERNAL LOCATION} | & | | main.rs:138:26:138:31 | "bar!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:138:26:138:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:149:15:170:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:150:13:150:13 | x | | main.rs:142:9:142:21 | X | | main.rs:150:17:150:17 | X | | main.rs:142:9:142:21 | X | @@ -5954,31 +6002,39 @@ inferType | main.rs:206:17:206:33 | MyThing {...} | | main.rs:174:5:177:5 | MyThing | | main.rs:206:17:206:33 | MyThing {...} | A | main.rs:181:5:182:14 | S2 | | main.rs:206:30:206:31 | S2 | | main.rs:181:5:182:14 | S2 | +| main.rs:209:9:209:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:209:18:209:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:209:18:209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:209:18:209:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:209:26:209:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:209:26:209:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:209:26:209:28 | x.a | | main.rs:179:5:180:14 | S1 | +| main.rs:210:9:210:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:210:18:210:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:210:18:210:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:210:18:210:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:210:26:210:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:210:26:210:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:210:26:210:28 | y.a | | main.rs:181:5:182:14 | S2 | +| main.rs:212:9:212:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:212:18:212:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:212:18:212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:212:18:212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:212:26:212:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:212:26:212:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:212:26:212:31 | x.m1() | | main.rs:179:5:180:14 | S1 | +| main.rs:213:9:213:34 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:213:18:213:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:213:18:213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:213:18:213:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:213:26:213:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:213:26:213:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:213:26:213:31 | y.m1() | | main.rs:174:5:177:5 | MyThing | @@ -5994,17 +6050,21 @@ inferType | main.rs:216:17:216:33 | MyThing {...} | | main.rs:174:5:177:5 | MyThing | | main.rs:216:17:216:33 | MyThing {...} | A | main.rs:181:5:182:14 | S2 | | main.rs:216:30:216:31 | S2 | | main.rs:181:5:182:14 | S2 | +| main.rs:218:9:218:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:218:18:218:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:218:18:218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:218:18:218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:218:26:218:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:218:26:218:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:218:26:218:31 | x.m2() | | main.rs:179:5:180:14 | S1 | +| main.rs:219:9:219:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:219:18:219:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:219:18:219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:219:18:219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:219:26:219:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:219:26:219:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:219:26:219:31 | y.m2() | | main.rs:181:5:182:14 | S2 | @@ -6144,17 +6204,21 @@ inferType | main.rs:374:24:374:40 | MyThing {...} | | main.rs:224:5:227:5 | MyThing | | main.rs:374:24:374:40 | MyThing {...} | A | main.rs:239:5:240:14 | S3 | | main.rs:374:37:374:38 | S3 | | main.rs:239:5:240:14 | S3 | +| main.rs:378:9:378:39 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:378:18:378:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:378:18:378:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:378:18:378:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:378:26:378:33 | thing_s1 | | main.rs:224:5:227:5 | MyThing | | main.rs:378:26:378:33 | thing_s1 | A | main.rs:235:5:236:14 | S1 | | main.rs:378:26:378:38 | thing_s1.m1() | | main.rs:235:5:236:14 | S1 | +| main.rs:379:9:379:41 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:379:18:379:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:379:18:379:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:379:18:379:40 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:379:26:379:33 | thing_s2 | | main.rs:224:5:227:5 | MyThing | | main.rs:379:26:379:33 | thing_s2 | A | main.rs:237:5:238:14 | S2 | | main.rs:379:26:379:38 | thing_s2.m1() | | main.rs:224:5:227:5 | MyThing | @@ -6164,10 +6228,12 @@ inferType | main.rs:380:22:380:29 | thing_s3 | | main.rs:224:5:227:5 | MyThing | | main.rs:380:22:380:29 | thing_s3 | A | main.rs:239:5:240:14 | S3 | | main.rs:380:22:380:34 | thing_s3.m1() | | main.rs:239:5:240:14 | S3 | +| main.rs:381:9:381:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:381:18:381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:381:18:381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:381:18:381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:381:26:381:27 | s3 | | main.rs:239:5:240:14 | S3 | | main.rs:383:13:383:14 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:383:13:383:14 | p1 | P1 | main.rs:235:5:236:14 | S1 | @@ -6177,10 +6243,12 @@ inferType | main.rs:383:18:383:42 | MyPair {...} | P2 | main.rs:235:5:236:14 | S1 | | main.rs:383:31:383:32 | S1 | | main.rs:235:5:236:14 | S1 | | main.rs:383:39:383:40 | S1 | | main.rs:235:5:236:14 | S1 | +| main.rs:384:9:384:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:384:18:384:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:384:18:384:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:384:18:384:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:384:26:384:27 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:384:26:384:27 | p1 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:384:26:384:27 | p1 | P2 | main.rs:235:5:236:14 | S1 | @@ -6193,10 +6261,12 @@ inferType | main.rs:386:18:386:42 | MyPair {...} | P2 | main.rs:237:5:238:14 | S2 | | main.rs:386:31:386:32 | S1 | | main.rs:235:5:236:14 | S1 | | main.rs:386:39:386:40 | S2 | | main.rs:237:5:238:14 | S2 | +| main.rs:387:9:387:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:387:18:387:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:387:18:387:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:387:18:387:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:387:26:387:27 | p2 | | main.rs:229:5:233:5 | MyPair | | main.rs:387:26:387:27 | p2 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:387:26:387:27 | p2 | P2 | main.rs:237:5:238:14 | S2 | @@ -6213,10 +6283,12 @@ inferType | main.rs:390:17:390:33 | MyThing {...} | A | main.rs:235:5:236:14 | S1 | | main.rs:390:30:390:31 | S1 | | main.rs:235:5:236:14 | S1 | | main.rs:391:17:391:18 | S3 | | main.rs:239:5:240:14 | S3 | +| main.rs:393:9:393:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:393:18:393:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:393:18:393:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:393:18:393:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:393:26:393:27 | p3 | | main.rs:229:5:233:5 | MyPair | | main.rs:393:26:393:27 | p3 | P1 | main.rs:224:5:227:5 | MyThing | | main.rs:393:26:393:27 | p3 | P1.A | main.rs:235:5:236:14 | S1 | @@ -6235,20 +6307,24 @@ inferType | main.rs:397:17:397:17 | a | P1 | main.rs:235:5:236:14 | S1 | | main.rs:397:17:397:17 | a | P2 | main.rs:235:5:236:14 | S1 | | main.rs:397:17:397:23 | a.fst() | | main.rs:235:5:236:14 | S1 | +| main.rs:398:9:398:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:398:18:398:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:398:18:398:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:398:18:398:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:398:26:398:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:399:13:399:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:399:17:399:17 | a | | main.rs:229:5:233:5 | MyPair | | main.rs:399:17:399:17 | a | P1 | main.rs:235:5:236:14 | S1 | | main.rs:399:17:399:17 | a | P2 | main.rs:235:5:236:14 | S1 | | main.rs:399:17:399:23 | a.snd() | | main.rs:235:5:236:14 | S1 | +| main.rs:400:9:400:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:400:18:400:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:400:18:400:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:400:18:400:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:400:26:400:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:406:13:406:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:406:13:406:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6263,29 +6339,35 @@ inferType | main.rs:407:17:407:17 | b | P1 | main.rs:237:5:238:14 | S2 | | main.rs:407:17:407:17 | b | P2 | main.rs:235:5:236:14 | S1 | | main.rs:407:17:407:23 | b.fst() | | main.rs:235:5:236:14 | S1 | +| main.rs:408:9:408:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:408:18:408:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:408:18:408:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:408:18:408:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:408:26:408:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:409:13:409:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:409:17:409:17 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:409:17:409:17 | b | P1 | main.rs:237:5:238:14 | S2 | | main.rs:409:17:409:17 | b | P2 | main.rs:235:5:236:14 | S1 | | main.rs:409:17:409:23 | b.snd() | | main.rs:237:5:238:14 | S2 | +| main.rs:410:9:410:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:410:18:410:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:410:18:410:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:410:18:410:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:410:26:410:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:414:13:414:13 | x | | main.rs:235:5:236:14 | S1 | | main.rs:414:17:414:39 | call_trait_m1(...) | | main.rs:235:5:236:14 | S1 | | main.rs:414:31:414:38 | thing_s1 | | main.rs:224:5:227:5 | MyThing | | main.rs:414:31:414:38 | thing_s1 | A | main.rs:235:5:236:14 | S1 | +| main.rs:415:9:415:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:415:18:415:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:415:18:415:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:415:18:415:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:415:26:415:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:416:13:416:13 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:416:13:416:13 | y | A | main.rs:237:5:238:14 | S2 | @@ -6293,10 +6375,12 @@ inferType | main.rs:416:17:416:39 | call_trait_m1(...) | A | main.rs:237:5:238:14 | S2 | | main.rs:416:31:416:38 | thing_s2 | | main.rs:224:5:227:5 | MyThing | | main.rs:416:31:416:38 | thing_s2 | A | main.rs:237:5:238:14 | S2 | +| main.rs:417:9:417:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:417:18:417:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:417:18:417:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:417:18:417:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:417:26:417:26 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:417:26:417:26 | y | A | main.rs:237:5:238:14 | S2 | | main.rs:417:26:417:28 | y.a | | main.rs:237:5:238:14 | S2 | @@ -6313,20 +6397,24 @@ inferType | main.rs:421:25:421:25 | a | | main.rs:229:5:233:5 | MyPair | | main.rs:421:25:421:25 | a | P1 | main.rs:235:5:236:14 | S1 | | main.rs:421:25:421:25 | a | P2 | main.rs:235:5:236:14 | S1 | +| main.rs:422:9:422:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:422:18:422:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:422:18:422:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:422:18:422:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:422:26:422:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:423:13:423:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:423:17:423:26 | get_snd(...) | | main.rs:235:5:236:14 | S1 | | main.rs:423:25:423:25 | a | | main.rs:229:5:233:5 | MyPair | | main.rs:423:25:423:25 | a | P1 | main.rs:235:5:236:14 | S1 | | main.rs:423:25:423:25 | a | P2 | main.rs:235:5:236:14 | S1 | +| main.rs:424:9:424:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:424:18:424:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:424:18:424:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:424:18:424:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:424:26:424:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:427:13:427:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:427:13:427:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6341,20 +6429,24 @@ inferType | main.rs:428:25:428:25 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:428:25:428:25 | b | P1 | main.rs:237:5:238:14 | S2 | | main.rs:428:25:428:25 | b | P2 | main.rs:235:5:236:14 | S1 | +| main.rs:429:9:429:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:429:18:429:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:429:18:429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:429:18:429:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:429:26:429:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:430:13:430:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:430:17:430:26 | get_snd(...) | | main.rs:237:5:238:14 | S2 | | main.rs:430:25:430:25 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:430:25:430:25 | b | P1 | main.rs:237:5:238:14 | S2 | | main.rs:430:25:430:25 | b | P2 | main.rs:235:5:236:14 | S1 | +| main.rs:431:9:431:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:431:18:431:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:431:18:431:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:431:18:431:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:431:26:431:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:433:13:433:13 | c | | main.rs:229:5:233:5 | MyPair | | main.rs:433:13:433:13 | c | P1 | main.rs:239:5:240:14 | S3 | @@ -6472,28 +6564,36 @@ inferType | main.rs:569:16:595:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:570:13:570:13 | x | | main.rs:446:5:447:14 | S1 | | main.rs:570:17:570:18 | S1 | | main.rs:446:5:447:14 | S1 | +| main.rs:571:9:571:43 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:571:18:571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:571:18:571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:571:18:571:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:571:26:571:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:571:26:571:42 | x.common_method() | | main.rs:446:5:447:14 | S1 | +| main.rs:572:9:572:46 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:572:18:572:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:572:18:572:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:572:18:572:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:572:26:572:45 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:572:44:572:44 | x | | main.rs:446:5:447:14 | S1 | +| main.rs:573:9:573:45 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:573:18:573:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:573:18:573:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:573:18:573:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:573:26:573:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:26:573:44 | x.common_method_2() | | main.rs:446:5:447:14 | S1 | +| main.rs:574:9:574:48 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:574:18:574:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:574:18:574:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:574:18:574:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:574:26:574:47 | ...::common_method_2(...) | | main.rs:446:5:447:14 | S1 | | main.rs:574:46:574:46 | x | | main.rs:446:5:447:14 | S1 | | main.rs:576:13:576:13 | y | | main.rs:479:5:479:22 | S2 | @@ -6501,17 +6601,21 @@ inferType | main.rs:576:17:576:22 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:576:17:576:22 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | | main.rs:576:20:576:21 | S1 | | main.rs:446:5:447:14 | S1 | +| main.rs:577:9:577:43 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:577:18:577:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:577:18:577:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:577:18:577:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:577:26:577:26 | y | | main.rs:479:5:479:22 | S2 | | main.rs:577:26:577:26 | y | T2 | main.rs:446:5:447:14 | S1 | | main.rs:577:26:577:42 | y.common_method() | | main.rs:446:5:447:14 | S1 | +| main.rs:578:9:578:57 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:578:18:578:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:578:18:578:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:578:18:578:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:578:26:578:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:578:50:578:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:578:50:578:55 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | @@ -6521,25 +6625,31 @@ inferType | main.rs:580:17:580:21 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:580:17:580:21 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | | main.rs:580:20:580:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:581:9:581:43 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:581:18:581:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:581:18:581:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:581:18:581:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:581:26:581:26 | z | | main.rs:479:5:479:22 | S2 | | main.rs:581:26:581:26 | z | T2 | {EXTERNAL LOCATION} | i32 | | main.rs:581:26:581:42 | z.common_method() | | main.rs:446:5:447:14 | S1 | +| main.rs:582:9:582:50 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:582:18:582:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:582:18:582:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:582:18:582:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:582:26:582:49 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:582:44:582:48 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:582:44:582:48 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | | main.rs:582:47:582:47 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:583:9:583:57 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:583:18:583:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:583:18:583:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:583:18:583:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:583:26:583:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:583:51:583:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:583:51:583:55 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -6549,20 +6659,24 @@ inferType | main.rs:585:17:585:22 | S3(...) | | main.rs:517:5:518:22 | S3 | | main.rs:585:17:585:22 | S3(...) | T3 | main.rs:446:5:447:14 | S1 | | main.rs:585:20:585:21 | S1 | | main.rs:446:5:447:14 | S1 | +| main.rs:586:9:586:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:586:18:586:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:586:18:586:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:586:18:586:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:586:26:586:26 | w | | main.rs:517:5:518:22 | S3 | | main.rs:586:26:586:26 | w | T3 | main.rs:446:5:447:14 | S1 | | main.rs:586:26:586:31 | w.m(...) | | {EXTERNAL LOCATION} | & | | main.rs:586:26:586:31 | w.m(...) | TRef | main.rs:517:5:518:22 | S3 | | main.rs:586:26:586:31 | w.m(...) | TRef.T3 | main.rs:446:5:447:14 | S1 | | main.rs:586:30:586:30 | x | | main.rs:446:5:447:14 | S1 | +| main.rs:587:9:587:38 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:587:18:587:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:587:18:587:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:587:18:587:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:587:26:587:37 | ...::m(...) | | {EXTERNAL LOCATION} | & | | main.rs:587:26:587:37 | ...::m(...) | TRef | main.rs:517:5:518:22 | S3 | | main.rs:587:26:587:37 | ...::m(...) | TRef.T3 | main.rs:446:5:447:14 | S1 | @@ -6607,50 +6721,60 @@ inferType | main.rs:621:13:621:14 | s1 | | main.rs:619:35:619:42 | I | | main.rs:621:18:621:18 | x | | main.rs:619:45:619:61 | T | | main.rs:621:18:621:27 | x.method() | | main.rs:619:35:619:42 | I | +| main.rs:622:9:622:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:622:18:622:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:622:18:622:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:622:18:622:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:622:26:622:27 | s1 | | main.rs:619:35:619:42 | I | | main.rs:625:65:625:65 | x | | main.rs:625:46:625:62 | T | | main.rs:625:71:629:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:627:13:627:14 | s2 | | main.rs:625:36:625:43 | I | | main.rs:627:18:627:18 | x | | main.rs:625:46:625:62 | T | | main.rs:627:18:627:27 | x.method() | | main.rs:625:36:625:43 | I | +| main.rs:628:9:628:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:628:18:628:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:628:18:628:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:628:18:628:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:628:26:628:27 | s2 | | main.rs:625:36:625:43 | I | | main.rs:631:49:631:49 | x | | main.rs:631:30:631:46 | T | | main.rs:631:55:634:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:632:13:632:13 | s | | main.rs:601:5:602:14 | S1 | | main.rs:632:17:632:17 | x | | main.rs:631:30:631:46 | T | | main.rs:632:17:632:26 | x.method() | | main.rs:601:5:602:14 | S1 | +| main.rs:633:9:633:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:633:18:633:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:633:18:633:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:633:18:633:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:633:26:633:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:636:53:636:53 | x | | main.rs:636:34:636:50 | T | | main.rs:636:59:639:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:637:13:637:13 | s | | main.rs:601:5:602:14 | S1 | | main.rs:637:17:637:17 | x | | main.rs:636:34:636:50 | T | | main.rs:637:17:637:26 | x.method() | | main.rs:601:5:602:14 | S1 | +| main.rs:638:9:638:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:638:18:638:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:638:18:638:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:638:18:638:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:638:26:638:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:641:43:641:43 | x | | main.rs:641:40:641:40 | T | | main.rs:644:5:647:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:645:13:645:13 | s | | main.rs:601:5:602:14 | S1 | | main.rs:645:17:645:17 | x | | main.rs:641:40:641:40 | T | | main.rs:645:17:645:26 | x.method() | | main.rs:601:5:602:14 | S1 | +| main.rs:646:9:646:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:646:18:646:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:646:18:646:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:646:18:646:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:646:26:646:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:650:16:650:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | | main.rs:652:16:652:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | @@ -6672,10 +6796,12 @@ inferType | main.rs:667:13:667:14 | s2 | | main.rs:604:5:605:14 | S2 | | main.rs:667:18:667:18 | y | | main.rs:664:41:664:55 | T | | main.rs:667:18:667:24 | y.snd() | | main.rs:604:5:605:14 | S2 | +| main.rs:668:9:668:38 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:668:18:668:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:668:18:668:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:668:18:668:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:668:32:668:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:668:36:668:37 | s2 | | main.rs:604:5:605:14 | S2 | | main.rs:671:69:671:69 | x | | main.rs:671:52:671:66 | T | @@ -6687,10 +6813,12 @@ inferType | main.rs:674:13:674:14 | s2 | | main.rs:671:41:671:49 | T2 | | main.rs:674:18:674:18 | y | | main.rs:671:52:671:66 | T | | main.rs:674:18:674:24 | y.snd() | | main.rs:671:41:671:49 | T2 | +| main.rs:675:9:675:38 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:675:18:675:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:675:18:675:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:675:18:675:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:675:32:675:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:675:36:675:37 | s2 | | main.rs:671:41:671:49 | T2 | | main.rs:678:50:678:50 | x | | main.rs:678:41:678:47 | T | @@ -6702,10 +6830,12 @@ inferType | main.rs:681:13:681:14 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:681:18:681:18 | y | | main.rs:678:41:678:47 | T | | main.rs:681:18:681:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | +| main.rs:682:9:682:38 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:682:18:682:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:682:18:682:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:682:18:682:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:682:32:682:33 | s1 | | {EXTERNAL LOCATION} | bool | | main.rs:682:36:682:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:685:54:685:54 | x | | main.rs:685:41:685:51 | T | @@ -6717,10 +6847,12 @@ inferType | main.rs:688:13:688:14 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:688:18:688:18 | y | | main.rs:685:41:685:51 | T | | main.rs:688:18:688:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | +| main.rs:689:9:689:38 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:689:18:689:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:689:18:689:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:689:18:689:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:689:32:689:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:689:36:689:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:697:18:697:22 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -6882,17 +7014,21 @@ inferType | main.rs:847:17:847:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | | main.rs:847:17:847:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | | main.rs:847:30:847:31 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:849:9:849:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:849:18:849:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:849:26:849:26 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:849:26:849:26 | x | T | main.rs:743:5:744:14 | S1 | | main.rs:849:26:849:31 | x.m1() | | main.rs:743:5:744:14 | S1 | +| main.rs:850:9:850:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:850:18:850:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:850:18:850:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:850:18:850:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:850:26:850:26 | y | | main.rs:738:5:741:5 | MyThing | | main.rs:850:26:850:26 | y | T | main.rs:745:5:746:14 | S2 | | main.rs:850:26:850:31 | y.m1() | | main.rs:745:5:746:14 | S2 | @@ -6906,17 +7042,21 @@ inferType | main.rs:853:17:853:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | | main.rs:853:17:853:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | | main.rs:853:30:853:31 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:855:9:855:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:855:18:855:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:855:26:855:26 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:855:26:855:26 | x | T | main.rs:743:5:744:14 | S1 | | main.rs:855:26:855:31 | x.m2() | | main.rs:743:5:744:14 | S1 | +| main.rs:856:9:856:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:856:18:856:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:856:18:856:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:856:18:856:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:856:26:856:26 | y | | main.rs:738:5:741:5 | MyThing | | main.rs:856:26:856:26 | y | T | main.rs:745:5:746:14 | S2 | | main.rs:856:26:856:31 | y.m2() | | main.rs:745:5:746:14 | S2 | @@ -6934,91 +7074,111 @@ inferType | main.rs:861:17:861:33 | call_trait_m1(...) | | main.rs:743:5:744:14 | S1 | | main.rs:861:31:861:32 | x2 | | main.rs:738:5:741:5 | MyThing | | main.rs:861:31:861:32 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:862:9:862:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:862:18:862:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:862:18:862:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:862:18:862:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:862:26:862:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:863:13:863:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:863:17:863:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | | main.rs:863:33:863:34 | x2 | | main.rs:738:5:741:5 | MyThing | | main.rs:863:33:863:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:864:9:864:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:864:18:864:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:864:18:864:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:864:18:864:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:864:26:864:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:865:13:865:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:865:17:865:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | | main.rs:865:33:865:34 | x2 | | main.rs:738:5:741:5 | MyThing | | main.rs:865:33:865:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:866:9:866:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:866:18:866:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:866:18:866:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:866:18:866:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:866:26:866:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:867:13:867:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:867:17:867:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | | main.rs:867:31:867:32 | y2 | | main.rs:738:5:741:5 | MyThing | | main.rs:867:31:867:32 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:868:9:868:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:868:18:868:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:868:18:868:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:868:18:868:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:868:26:868:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:869:13:869:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:869:17:869:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | | main.rs:869:33:869:34 | y2 | | main.rs:738:5:741:5 | MyThing | | main.rs:869:33:869:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:870:9:870:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:870:18:870:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:870:18:870:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:870:18:870:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:870:26:870:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:871:13:871:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:871:17:871:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | | main.rs:871:33:871:34 | y2 | | main.rs:738:5:741:5 | MyThing | | main.rs:871:33:871:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:872:9:872:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:872:18:872:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:872:18:872:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:872:18:872:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:872:26:872:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:873:13:873:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:873:17:873:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | | main.rs:873:36:873:37 | x2 | | main.rs:738:5:741:5 | MyThing | | main.rs:873:36:873:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:874:9:874:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:874:18:874:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:874:18:874:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:874:18:874:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:874:26:874:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:875:13:875:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:875:17:875:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | | main.rs:875:36:875:37 | x2 | | main.rs:738:5:741:5 | MyThing | | main.rs:875:36:875:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:876:9:876:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:876:18:876:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:876:18:876:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:876:18:876:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:876:26:876:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:877:13:877:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:877:17:877:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | | main.rs:877:36:877:37 | y2 | | main.rs:738:5:741:5 | MyThing | | main.rs:877:36:877:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:878:9:878:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:878:18:878:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:878:18:878:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:878:18:878:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:878:26:878:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:879:13:879:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:879:17:879:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | | main.rs:879:36:879:37 | y2 | | main.rs:738:5:741:5 | MyThing | | main.rs:879:36:879:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:880:9:880:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:880:18:880:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:880:18:880:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:880:18:880:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:880:26:880:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:882:13:882:14 | x3 | | main.rs:738:5:741:5 | MyThing | | main.rs:882:13:882:14 | x3 | T | main.rs:738:5:741:5 | MyThing | @@ -7043,60 +7203,72 @@ inferType | main.rs:889:37:889:38 | x3 | | main.rs:738:5:741:5 | MyThing | | main.rs:889:37:889:38 | x3 | T | main.rs:738:5:741:5 | MyThing | | main.rs:889:37:889:38 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:890:9:890:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:890:18:890:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:890:18:890:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:890:18:890:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:890:26:890:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:891:13:891:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:891:17:891:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | | main.rs:891:39:891:40 | x3 | | main.rs:738:5:741:5 | MyThing | | main.rs:891:39:891:40 | x3 | T | main.rs:738:5:741:5 | MyThing | | main.rs:891:39:891:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:892:9:892:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:892:18:892:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:892:18:892:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:892:18:892:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:892:26:892:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:893:13:893:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:893:17:893:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | | main.rs:893:39:893:40 | x3 | | main.rs:738:5:741:5 | MyThing | | main.rs:893:39:893:40 | x3 | T | main.rs:738:5:741:5 | MyThing | | main.rs:893:39:893:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:894:9:894:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:894:18:894:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:894:18:894:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:894:18:894:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:894:26:894:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:895:13:895:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:895:17:895:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | | main.rs:895:37:895:38 | y3 | | main.rs:738:5:741:5 | MyThing | | main.rs:895:37:895:38 | y3 | T | main.rs:738:5:741:5 | MyThing | | main.rs:895:37:895:38 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:896:9:896:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:896:18:896:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:896:18:896:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:896:18:896:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:896:26:896:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:897:13:897:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:897:17:897:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | | main.rs:897:39:897:40 | y3 | | main.rs:738:5:741:5 | MyThing | | main.rs:897:39:897:40 | y3 | T | main.rs:738:5:741:5 | MyThing | | main.rs:897:39:897:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:898:9:898:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:898:18:898:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:898:18:898:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:898:18:898:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:898:26:898:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:899:13:899:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:899:17:899:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | | main.rs:899:39:899:40 | y3 | | main.rs:738:5:741:5 | MyThing | | main.rs:899:39:899:40 | y3 | T | main.rs:738:5:741:5 | MyThing | | main.rs:899:39:899:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:900:9:900:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:900:18:900:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:900:18:900:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:900:26:900:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:901:13:901:13 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:901:17:901:26 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | @@ -7177,10 +7349,12 @@ inferType | main.rs:1025:16:1053:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1026:13:1026:14 | x1 | | main.rs:958:5:959:13 | S | | main.rs:1026:18:1026:18 | S | | main.rs:958:5:959:13 | S | +| main.rs:1028:9:1028:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1028:18:1028:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1028:18:1028:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1028:26:1028:27 | x1 | | main.rs:958:5:959:13 | S | | main.rs:1028:26:1028:32 | x1.m1() | | main.rs:964:5:965:14 | AT | | main.rs:1030:13:1030:14 | x2 | | main.rs:958:5:959:13 | S | @@ -7188,50 +7362,62 @@ inferType | main.rs:1032:13:1032:13 | y | | main.rs:964:5:965:14 | AT | | main.rs:1032:17:1032:18 | x2 | | main.rs:958:5:959:13 | S | | main.rs:1032:17:1032:23 | x2.m2() | | main.rs:964:5:965:14 | AT | +| main.rs:1033:9:1033:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1033:18:1033:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1033:18:1033:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1033:18:1033:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1033:26:1033:26 | y | | main.rs:964:5:965:14 | AT | | main.rs:1035:13:1035:14 | x3 | | main.rs:958:5:959:13 | S | | main.rs:1035:18:1035:18 | S | | main.rs:958:5:959:13 | S | +| main.rs:1037:9:1037:44 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1037:18:1037:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1037:18:1037:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1037:18:1037:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1037:26:1037:27 | x3 | | main.rs:958:5:959:13 | S | | main.rs:1037:26:1037:34 | x3.put(...) | | main.rs:907:5:910:5 | Wrapper | | main.rs:1037:26:1037:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | | main.rs:1037:26:1037:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | | main.rs:1037:33:1037:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1040:9:1040:50 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1040:18:1040:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1040:18:1040:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1040:26:1040:27 | x3 | | main.rs:958:5:959:13 | S | | main.rs:1040:26:1040:40 | x3.putTwo(...) | | main.rs:907:5:910:5 | Wrapper | | main.rs:1040:36:1040:36 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1040:39:1040:39 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1042:20:1042:20 | S | | main.rs:958:5:959:13 | S | +| main.rs:1043:9:1043:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1043:18:1043:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1043:18:1043:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1045:13:1045:14 | x5 | | main.rs:961:5:962:14 | S2 | | main.rs:1045:18:1045:19 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1046:9:1046:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1046:18:1046:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1046:18:1046:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1046:26:1046:27 | x5 | | main.rs:961:5:962:14 | S2 | | main.rs:1046:26:1046:32 | x5.m1() | | main.rs:907:5:910:5 | Wrapper | | main.rs:1046:26:1046:32 | x5.m1() | A | main.rs:961:5:962:14 | S2 | | main.rs:1047:13:1047:14 | x6 | | main.rs:961:5:962:14 | S2 | | main.rs:1047:18:1047:19 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1048:9:1048:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1048:18:1048:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1048:18:1048:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1048:18:1048:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1048:26:1048:27 | x6 | | main.rs:961:5:962:14 | S2 | | main.rs:1048:26:1048:32 | x6.m2() | | main.rs:907:5:910:5 | Wrapper | | main.rs:1048:26:1048:32 | x6.m2() | A | main.rs:961:5:962:14 | S2 | @@ -7263,10 +7449,12 @@ inferType | main.rs:1084:19:1084:23 | SelfParam | TRef.T | main.rs:1082:10:1082:10 | T | | main.rs:1084:26:1084:33 | _content | | main.rs:1082:10:1082:10 | T | | main.rs:1084:51:1086:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1085:13:1085:43 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1085:22:1085:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | | main.rs:1085:22:1085:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1085:22:1085:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1091:24:1091:28 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:1091:24:1091:28 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | | main.rs:1091:24:1091:28 | SelfParam | TRef.T | main.rs:1089:10:1089:17 | T | @@ -7336,17 +7524,21 @@ inferType | main.rs:1137:17:1137:36 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | | main.rs:1137:17:1137:36 | ...::C2 {...} | A | main.rs:1123:5:1124:14 | S2 | | main.rs:1137:33:1137:34 | S2 | | main.rs:1123:5:1124:14 | S2 | +| main.rs:1139:9:1139:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1139:18:1139:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1139:18:1139:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1139:18:1139:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1139:26:1139:26 | x | | main.rs:1115:5:1119:5 | MyEnum | | main.rs:1139:26:1139:26 | x | A | main.rs:1121:5:1122:14 | S1 | | main.rs:1139:26:1139:31 | x.m1() | | main.rs:1121:5:1122:14 | S1 | +| main.rs:1140:9:1140:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1140:18:1140:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1140:18:1140:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1140:26:1140:26 | y | | main.rs:1115:5:1119:5 | MyEnum | | main.rs:1140:26:1140:26 | y | A | main.rs:1123:5:1124:14 | S2 | | main.rs:1140:26:1140:31 | y.m1() | | main.rs:1123:5:1124:14 | S2 | @@ -7411,10 +7603,12 @@ inferType | main.rs:1219:17:1219:17 | x | | main.rs:1217:39:1217:53 | T | | main.rs:1219:17:1219:22 | x.m1() | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1219:17:1219:22 | x.m1() | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1220:9:1220:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1220:18:1220:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1220:18:1220:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1220:18:1220:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1220:26:1220:26 | a | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1220:26:1220:26 | a | A | main.rs:1155:5:1156:14 | S1 | | main.rs:1223:16:1247:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7428,17 +7622,21 @@ inferType | main.rs:1225:17:1225:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1225:17:1225:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | | main.rs:1225:30:1225:31 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1227:9:1227:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1227:18:1227:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1227:18:1227:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1227:26:1227:26 | x | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1227:26:1227:26 | x | A | main.rs:1155:5:1156:14 | S1 | | main.rs:1227:26:1227:31 | x.m1() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1228:9:1228:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1228:18:1228:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1228:18:1228:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1228:18:1228:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1228:26:1228:26 | y | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1228:26:1228:26 | y | A | main.rs:1157:5:1158:14 | S2 | | main.rs:1228:26:1228:31 | y.m1() | | main.rs:1157:5:1158:14 | S2 | @@ -7452,17 +7650,21 @@ inferType | main.rs:1231:17:1231:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1231:17:1231:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | | main.rs:1231:30:1231:31 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1233:9:1233:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1233:18:1233:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1233:18:1233:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1233:18:1233:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1233:26:1233:26 | x | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1233:26:1233:26 | x | A | main.rs:1155:5:1156:14 | S1 | | main.rs:1233:26:1233:31 | x.m2() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1234:9:1234:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1234:18:1234:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1234:18:1234:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1234:18:1234:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1234:26:1234:26 | y | | main.rs:1145:5:1148:5 | MyThing | | main.rs:1234:26:1234:26 | y | A | main.rs:1157:5:1158:14 | S2 | | main.rs:1234:26:1234:31 | y.m2() | | main.rs:1157:5:1158:14 | S2 | @@ -7476,17 +7678,21 @@ inferType | main.rs:1237:17:1237:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | | main.rs:1237:17:1237:34 | MyThing2 {...} | A | main.rs:1157:5:1158:14 | S2 | | main.rs:1237:31:1237:32 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1239:9:1239:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1239:18:1239:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1239:18:1239:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1239:18:1239:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1239:26:1239:26 | x | | main.rs:1150:5:1153:5 | MyThing2 | | main.rs:1239:26:1239:26 | x | A | main.rs:1155:5:1156:14 | S1 | | main.rs:1239:26:1239:31 | x.m3() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1240:9:1240:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1240:18:1240:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1240:18:1240:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1240:18:1240:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1240:26:1240:26 | y | | main.rs:1150:5:1153:5 | MyThing2 | | main.rs:1240:26:1240:26 | y | A | main.rs:1157:5:1158:14 | S2 | | main.rs:1240:26:1240:31 | y.m3() | | main.rs:1157:5:1158:14 | S2 | @@ -7526,10 +7732,12 @@ inferType | main.rs:1280:16:1296:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1281:13:1281:13 | x | | main.rs:1253:5:1254:14 | S1 | | main.rs:1281:17:1281:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1282:9:1282:32 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1282:18:1282:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1282:18:1282:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1282:18:1282:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1282:26:1282:31 | id(...) | | {EXTERNAL LOCATION} | & | | main.rs:1282:26:1282:31 | id(...) | TRef | main.rs:1253:5:1254:14 | S1 | | main.rs:1282:29:1282:30 | &x | | {EXTERNAL LOCATION} | & | @@ -7537,10 +7745,12 @@ inferType | main.rs:1282:30:1282:30 | x | | main.rs:1253:5:1254:14 | S1 | | main.rs:1284:13:1284:13 | x | | main.rs:1253:5:1254:14 | S1 | | main.rs:1284:17:1284:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:9:1285:38 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1285:18:1285:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1285:18:1285:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1285:18:1285:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1285:26:1285:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | | main.rs:1285:26:1285:37 | id::<...>(...) | TRef | main.rs:1253:5:1254:14 | S1 | | main.rs:1285:35:1285:36 | &x | | {EXTERNAL LOCATION} | & | @@ -7548,10 +7758,12 @@ inferType | main.rs:1285:36:1285:36 | x | | main.rs:1253:5:1254:14 | S1 | | main.rs:1287:13:1287:13 | x | | main.rs:1253:5:1254:14 | S1 | | main.rs:1287:17:1287:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1289:9:1289:45 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1289:18:1289:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1289:18:1289:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1289:18:1289:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1289:26:1289:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | | main.rs:1289:26:1289:44 | id::<...>(...) | TRef | main.rs:1259:5:1259:25 | dyn Trait | | main.rs:1289:42:1289:43 | &x | | {EXTERNAL LOCATION} | & | @@ -7621,10 +7833,12 @@ inferType | main.rs:1341:17:1341:29 | t.unwrapSnd() | Fst | main.rs:1322:5:1323:14 | S2 | | main.rs:1341:17:1341:29 | t.unwrapSnd() | Snd | main.rs:1325:5:1326:14 | S3 | | main.rs:1341:17:1341:41 | ... .unwrapSnd() | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1342:9:1342:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1342:18:1342:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1342:18:1342:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1342:18:1342:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1342:26:1342:26 | x | | main.rs:1325:5:1326:14 | S3 | | main.rs:1357:22:1357:25 | SelfParam | | main.rs:1355:5:1358:5 | Self [trait TraitWithAssocType] | | main.rs:1365:22:1365:25 | SelfParam | | main.rs:1353:5:1353:28 | GenS | @@ -7647,10 +7861,12 @@ inferType | main.rs:1372:26:1372:53 | ...::PairBoth(...) | Snd | main.rs:1322:5:1323:14 | S2 | | main.rs:1372:47:1372:48 | S1 | | main.rs:1319:5:1320:14 | S1 | | main.rs:1372:51:1372:52 | S2 | | main.rs:1322:5:1323:14 | S2 | +| main.rs:1373:9:1373:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1373:18:1373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1373:18:1373:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1373:18:1373:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1373:26:1373:27 | p1 | | main.rs:1300:5:1306:5 | PairOption | | main.rs:1373:26:1373:27 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | | main.rs:1373:26:1373:27 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | @@ -7660,10 +7876,12 @@ inferType | main.rs:1376:26:1376:47 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | | main.rs:1376:26:1376:47 | ...::PairNone(...) | Fst | main.rs:1319:5:1320:14 | S1 | | main.rs:1376:26:1376:47 | ...::PairNone(...) | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1377:9:1377:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1377:18:1377:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1377:18:1377:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1377:18:1377:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1377:26:1377:27 | p2 | | main.rs:1300:5:1306:5 | PairOption | | main.rs:1377:26:1377:27 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | | main.rs:1377:26:1377:27 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | @@ -7674,10 +7892,12 @@ inferType | main.rs:1380:34:1380:56 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | | main.rs:1380:34:1380:56 | ...::PairSnd(...) | Snd | main.rs:1325:5:1326:14 | S3 | | main.rs:1380:54:1380:55 | S3 | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1381:9:1381:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1381:18:1381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1381:18:1381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1381:18:1381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1381:26:1381:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | | main.rs:1381:26:1381:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | | main.rs:1381:26:1381:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | @@ -7687,10 +7907,12 @@ inferType | main.rs:1384:35:1384:56 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | | main.rs:1384:35:1384:56 | ...::PairNone(...) | Fst | main.rs:1322:5:1323:14 | S2 | | main.rs:1384:35:1384:56 | ...::PairNone(...) | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1385:9:1385:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1385:18:1385:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1385:18:1385:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1385:18:1385:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1385:26:1385:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | | main.rs:1385:26:1385:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | | main.rs:1385:26:1385:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | @@ -7766,10 +7988,12 @@ inferType | main.rs:1435:13:1435:14 | x1 | T | main.rs:1431:5:1432:13 | S | | main.rs:1435:18:1435:37 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1435:18:1435:37 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1436:9:1436:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1436:18:1436:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1436:26:1436:27 | x1 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1436:26:1436:27 | x1 | T | main.rs:1431:5:1432:13 | S | | main.rs:1438:17:1438:18 | x2 | | main.rs:1396:5:1400:5 | MyOption | @@ -7780,10 +8004,12 @@ inferType | main.rs:1439:9:1439:10 | x2 | T | main.rs:1431:5:1432:13 | S | | main.rs:1439:9:1439:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | | main.rs:1439:16:1439:16 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1440:9:1440:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1440:18:1440:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1440:26:1440:27 | x2 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1440:26:1440:27 | x2 | T | main.rs:1431:5:1432:13 | S | | main.rs:1442:17:1442:18 | x3 | | main.rs:1396:5:1400:5 | MyOption | @@ -7794,10 +8020,12 @@ inferType | main.rs:1443:9:1443:10 | x3 | T | main.rs:1431:5:1432:13 | S | | main.rs:1443:9:1443:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | | main.rs:1443:21:1443:21 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1444:9:1444:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1444:18:1444:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1444:18:1444:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1444:18:1444:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1444:26:1444:27 | x3 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1444:26:1444:27 | x3 | T | main.rs:1431:5:1432:13 | S | | main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | @@ -7811,10 +8039,12 @@ inferType | main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1447:28:1447:29 | x4 | T | main.rs:1431:5:1432:13 | S | | main.rs:1447:32:1447:32 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1448:9:1448:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1448:18:1448:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1448:26:1448:27 | x4 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1448:26:1448:27 | x4 | T | main.rs:1431:5:1432:13 | S | | main.rs:1450:13:1450:14 | x5 | | main.rs:1396:5:1400:5 | MyOption | @@ -7825,10 +8055,12 @@ inferType | main.rs:1450:18:1450:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | | main.rs:1450:35:1450:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1450:35:1450:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1451:9:1451:38 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1451:18:1451:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1451:18:1451:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1451:18:1451:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1451:26:1451:27 | x5 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1451:26:1451:27 | x5 | T | main.rs:1396:5:1400:5 | MyOption | | main.rs:1451:26:1451:27 | x5 | T.T | main.rs:1431:5:1432:13 | S | @@ -7842,10 +8074,12 @@ inferType | main.rs:1453:18:1453:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | | main.rs:1453:35:1453:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1453:35:1453:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1454:9:1454:62 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1454:18:1454:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1454:26:1454:61 | ...::flatten(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1454:26:1454:61 | ...::flatten(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1454:59:1454:60 | x6 | | main.rs:1396:5:1400:5 | MyOption | @@ -7867,10 +8101,12 @@ inferType | main.rs:1460:13:1460:31 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1460:13:1460:31 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1460:30:1460:30 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1462:9:1462:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1462:18:1462:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1462:18:1462:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1462:18:1462:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1462:26:1462:32 | from_if | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1462:26:1462:32 | from_if | T | main.rs:1431:5:1432:13 | S | | main.rs:1465:13:1465:22 | from_match | | main.rs:1396:5:1400:5 | MyOption | @@ -7887,10 +8123,12 @@ inferType | main.rs:1467:22:1467:40 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1467:22:1467:40 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1467:39:1467:39 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1469:9:1469:36 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1469:18:1469:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1469:18:1469:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1469:18:1469:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1469:26:1469:35 | from_match | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1469:26:1469:35 | from_match | T | main.rs:1431:5:1432:13 | S | | main.rs:1472:13:1472:21 | from_loop | | main.rs:1396:5:1400:5 | MyOption | @@ -7908,10 +8146,12 @@ inferType | main.rs:1476:19:1476:37 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1476:19:1476:37 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | | main.rs:1476:36:1476:36 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1478:9:1478:35 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1478:18:1478:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1478:18:1478:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1478:18:1478:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1478:26:1478:34 | from_loop | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1478:26:1478:34 | from_loop | T | main.rs:1431:5:1432:13 | S | | main.rs:1496:15:1496:18 | SelfParam | | main.rs:1484:5:1485:19 | S | @@ -7973,10 +8213,12 @@ inferType | main.rs:1528:18:1528:22 | S(...) | | main.rs:1484:5:1485:19 | S | | main.rs:1528:18:1528:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1528:20:1528:21 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1529:9:1529:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1529:26:1529:27 | x1 | | main.rs:1484:5:1485:19 | S | | main.rs:1529:26:1529:27 | x1 | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1529:26:1529:32 | x1.m1() | | main.rs:1487:5:1488:14 | S2 | @@ -7985,18 +8227,22 @@ inferType | main.rs:1531:18:1531:22 | S(...) | | main.rs:1484:5:1485:19 | S | | main.rs:1531:18:1531:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1531:20:1531:21 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1533:9:1533:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1533:26:1533:27 | x2 | | main.rs:1484:5:1485:19 | S | | main.rs:1533:26:1533:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1533:26:1533:32 | x2.m2() | | {EXTERNAL LOCATION} | & | | main.rs:1533:26:1533:32 | x2.m2() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1534:9:1534:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1534:26:1534:27 | x2 | | main.rs:1484:5:1485:19 | S | | main.rs:1534:26:1534:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1534:26:1534:32 | x2.m3() | | {EXTERNAL LOCATION} | & | @@ -8006,10 +8252,12 @@ inferType | main.rs:1536:18:1536:22 | S(...) | | main.rs:1484:5:1485:19 | S | | main.rs:1536:18:1536:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1536:20:1536:21 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:9:1538:42 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1538:18:1538:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1538:18:1538:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1538:18:1538:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1538:26:1538:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | | main.rs:1538:26:1538:41 | ...::m2(...) | TRef | main.rs:1487:5:1488:14 | S2 | | main.rs:1538:38:1538:40 | &x3 | | {EXTERNAL LOCATION} | & | @@ -8017,10 +8265,12 @@ inferType | main.rs:1538:38:1538:40 | &x3 | TRef.T | main.rs:1487:5:1488:14 | S2 | | main.rs:1538:39:1538:40 | x3 | | main.rs:1484:5:1485:19 | S | | main.rs:1538:39:1538:40 | x3 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:9:1539:42 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1539:18:1539:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1539:26:1539:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | | main.rs:1539:26:1539:41 | ...::m3(...) | TRef | main.rs:1487:5:1488:14 | S2 | | main.rs:1539:38:1539:40 | &x3 | | {EXTERNAL LOCATION} | & | @@ -8037,19 +8287,23 @@ inferType | main.rs:1541:19:1541:23 | S(...) | | main.rs:1484:5:1485:19 | S | | main.rs:1541:19:1541:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1541:21:1541:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1543:9:1543:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1543:18:1543:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1543:18:1543:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1543:18:1543:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1543:26:1543:27 | x4 | | {EXTERNAL LOCATION} | & | | main.rs:1543:26:1543:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | | main.rs:1543:26:1543:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | | main.rs:1543:26:1543:32 | x4.m2() | | {EXTERNAL LOCATION} | & | | main.rs:1543:26:1543:32 | x4.m2() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1544:9:1544:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1544:18:1544:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1544:18:1544:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1544:18:1544:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1544:26:1544:27 | x4 | | {EXTERNAL LOCATION} | & | | main.rs:1544:26:1544:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | | main.rs:1544:26:1544:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | @@ -8064,18 +8318,22 @@ inferType | main.rs:1546:19:1546:23 | S(...) | | main.rs:1484:5:1485:19 | S | | main.rs:1546:19:1546:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1546:21:1546:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1548:9:1548:33 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1548:18:1548:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1548:18:1548:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1548:18:1548:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1548:26:1548:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1548:26:1548:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | | main.rs:1548:26:1548:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | | main.rs:1548:26:1548:32 | x5.m1() | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1549:9:1549:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1549:18:1549:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1549:18:1549:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1549:18:1549:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1549:26:1549:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1549:26:1549:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | | main.rs:1549:26:1549:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | @@ -8089,10 +8347,12 @@ inferType | main.rs:1551:19:1551:23 | S(...) | | main.rs:1484:5:1485:19 | S | | main.rs:1551:19:1551:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1551:21:1551:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:9:1554:36 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1554:18:1554:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1554:18:1554:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1554:18:1554:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1554:26:1554:30 | (...) | | main.rs:1484:5:1485:19 | S | | main.rs:1554:26:1554:30 | (...) | T | main.rs:1487:5:1488:14 | S2 | | main.rs:1554:26:1554:35 | ... .m1() | | main.rs:1487:5:1488:14 | S2 | @@ -8117,10 +8377,12 @@ inferType | main.rs:1559:17:1559:18 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | | main.rs:1559:17:1559:23 | x7.m1() | | {EXTERNAL LOCATION} | & | | main.rs:1559:17:1559:23 | x7.m1() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1560:9:1560:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1560:18:1560:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1560:18:1560:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1560:18:1560:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1560:26:1560:27 | x7 | | main.rs:1484:5:1485:19 | S | | main.rs:1560:26:1560:27 | x7 | T | {EXTERNAL LOCATION} | & | | main.rs:1560:26:1560:27 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | @@ -8143,10 +8405,12 @@ inferType | main.rs:1570:17:1570:24 | my_thing | | {EXTERNAL LOCATION} | & | | main.rs:1570:17:1570:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | | main.rs:1570:17:1570:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1571:9:1571:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1571:18:1571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1571:18:1571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1571:18:1571:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1571:26:1571:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1574:13:1574:20 | my_thing | | {EXTERNAL LOCATION} | & | | main.rs:1574:13:1574:20 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | @@ -8158,10 +8422,12 @@ inferType | main.rs:1575:17:1575:24 | my_thing | | {EXTERNAL LOCATION} | & | | main.rs:1575:17:1575:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | | main.rs:1575:17:1575:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1576:9:1576:27 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1576:18:1576:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1576:18:1576:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1576:18:1576:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1576:26:1576:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1583:16:1583:20 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:1583:16:1583:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | @@ -8340,10 +8606,12 @@ inferType | main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | | main.rs:1673:22:1673:30 | &mut flag | TRefMut | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1673:27:1673:30 | flag | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1674:9:1674:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1674:26:1674:29 | flag | | main.rs:1631:5:1634:5 | MyFlag | | main.rs:1689:43:1692:5 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1689:43:1692:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | @@ -8420,10 +8688,12 @@ inferType | main.rs:1715:49:1718:9 | \|...\| ... | dyn(Output).E | main.rs:1681:5:1682:14 | S1 | | main.rs:1715:53:1718:9 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1715:53:1718:9 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1716:13:1716:31 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1716:22:1716:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1716:22:1716:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1716:22:1716:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | E | main.rs:1681:5:1682:14 | S1 | | main.rs:1719:9:1719:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | @@ -8440,10 +8710,12 @@ inferType | main.rs:1724:37:1724:52 | try_same_error(...) | E | main.rs:1681:5:1682:14 | S1 | | main.rs:1724:37:1724:52 | try_same_error(...) | T | main.rs:1681:5:1682:14 | S1 | | main.rs:1724:54:1726:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:13:1725:36 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1725:22:1725:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1725:22:1725:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1725:22:1725:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1725:30:1725:35 | result | | main.rs:1681:5:1682:14 | S1 | | main.rs:1728:9:1730:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1728:16:1728:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8454,10 +8726,12 @@ inferType | main.rs:1728:37:1728:55 | try_convert_error(...) | E | main.rs:1684:5:1685:14 | S2 | | main.rs:1728:37:1728:55 | try_convert_error(...) | T | main.rs:1681:5:1682:14 | S1 | | main.rs:1728:57:1730:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:13:1729:36 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1729:22:1729:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1729:22:1729:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1729:22:1729:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1729:30:1729:35 | result | | main.rs:1681:5:1682:14 | S1 | | main.rs:1732:9:1734:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1732:16:1732:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8468,10 +8742,12 @@ inferType | main.rs:1732:37:1732:49 | try_chained(...) | E | main.rs:1684:5:1685:14 | S2 | | main.rs:1732:37:1732:49 | try_chained(...) | T | main.rs:1681:5:1682:14 | S1 | | main.rs:1732:51:1734:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:13:1733:36 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1733:22:1733:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1733:22:1733:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1733:22:1733:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1733:30:1733:35 | result | | main.rs:1681:5:1682:14 | S1 | | main.rs:1736:9:1738:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1736:16:1736:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8486,10 +8762,12 @@ inferType | main.rs:1736:49:1736:62 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | | main.rs:1736:60:1736:61 | S1 | | main.rs:1681:5:1682:14 | S1 | | main.rs:1736:65:1738:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:13:1737:36 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1737:22:1737:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1737:22:1737:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1737:22:1737:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1737:30:1737:35 | result | | main.rs:1681:5:1682:14 | S1 | | main.rs:1743:16:1834:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1744:13:1744:13 | x | | {EXTERNAL LOCATION} | i32 | @@ -10732,18 +11010,22 @@ inferType | main.rs:2844:13:2844:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | | main.rs:2844:17:2844:19 | 100 | | {EXTERNAL LOCATION} | i32 | | main.rs:2844:24:2846:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2845:17:2845:37 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:2845:26:2845:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | | main.rs:2845:26:2845:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2845:26:2845:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2847:13:2847:17 | box ... | | {EXTERNAL LOCATION} | Box | | main.rs:2847:13:2847:17 | box ... | A | {EXTERNAL LOCATION} | Global | | main.rs:2847:13:2847:17 | box ... | T | {EXTERNAL LOCATION} | i32 | | main.rs:2847:22:2850:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2849:17:2849:52 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2849:26:2849:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2854:13:2854:22 | nested_box | | {EXTERNAL LOCATION} | Box | | main.rs:2854:13:2854:22 | nested_box | A | {EXTERNAL LOCATION} | Global | | main.rs:2854:13:2854:22 | nested_box | T | {EXTERNAL LOCATION} | Box | @@ -10770,10 +11052,12 @@ inferType | main.rs:2856:13:2856:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | | main.rs:2856:13:2856:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | | main.rs:2856:26:2859:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2858:17:2858:60 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2858:26:2858:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2870:36:2872:9 | { ... } | | main.rs:2867:5:2867:22 | Path | | main.rs:2871:13:2871:19 | Path {...} | | main.rs:2867:5:2867:22 | Path | | main.rs:2874:29:2874:33 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -10954,10 +11238,12 @@ inferType | main.rs:2973:9:2973:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:2977:20:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | | main.rs:2980:26:2980:27 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2982:9:2982:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:2982:18:2982:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:2982:18:2982:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2983:9:2983:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:2986:20:2988:5 | { ... } | | {EXTERNAL LOCATION} | i32 | | main.rs:2987:16:2987:16 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -10969,10 +11255,12 @@ inferType | main.rs:2993:16:2993:19 | cond | | {EXTERNAL LOCATION} | bool | | main.rs:2993:21:2995:13 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2994:24:2994:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2997:9:2997:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:2997:18:2997:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:2997:18:2997:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2997:18:2997:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2997:29:2997:29 | a | | {EXTERNAL LOCATION} | () | | main.rs:2998:9:2998:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:3003:16:3050:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11230,10 +11518,12 @@ inferType | pattern_matching.rs:15:31:18:5 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:16:13:16:16 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:16:20:16:23 | mesg | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:17:9:17:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:18:17:25 | "{mesg}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:17:18:17:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:17:18:17:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:20:17:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:19:5:25:5 | match value { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:19:11:19:15 | value | | {EXTERNAL LOCATION} | Option | @@ -11244,10 +11534,12 @@ inferType | pattern_matching.rs:20:23:23:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:21:17:21:20 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:21:24:21:27 | mesg | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:22:13:22:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:22:22:29 | "{mesg}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:22:22:22:29 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:22:22:22:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:24:22:27 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:24:9:24:12 | None | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:24:9:24:12 | None | T | {EXTERNAL LOCATION} | i32 | @@ -11258,19 +11550,23 @@ inferType | pattern_matching.rs:26:16:26:29 | value.unwrap() | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:27:9:27:12 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:27:16:27:19 | mesg | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:28:5:28:22 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:14:28:21 | "{mesg}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:28:14:28:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:28:14:28:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:16:28:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:9:29:12 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:16:29:20 | value | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:29:16:29:20 | value | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:16:29:21 | TryExpr | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:30:5:30:22 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:14:30:21 | "{mesg}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:30:14:30:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:30:14:30:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:16:30:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:32:9:32:14 | value2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:32:9:32:14 | value2 | TRef | {EXTERNAL LOCATION} | Option | @@ -11294,10 +11590,12 @@ inferType | pattern_matching.rs:33:33:36:5 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:34:13:34:16 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:34:20:34:23 | mesg | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:35:9:35:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:18:35:25 | "{mesg}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:35:18:35:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:35:18:35:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:20:35:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:9:38:14 | value3 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:18:38:19 | 42 | | {EXTERNAL LOCATION} | i32 | @@ -11310,10 +11608,12 @@ inferType | pattern_matching.rs:40:13:40:16 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:40:20:40:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:40:20:40:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:41:9:41:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:18:41:25 | "{mesg}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:41:18:41:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:41:18:41:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:20:41:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:41:20:41:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:44:9:44:14 | value4 | | {EXTERNAL LOCATION} | Option | @@ -11333,10 +11633,12 @@ inferType | pattern_matching.rs:46:13:46:16 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:46:20:46:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:46:20:46:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:47:9:47:26 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:18:47:25 | "{mesg}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:47:18:47:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:20:47:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:47:20:47:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:50:13:50:18 | value5 | | {EXTERNAL LOCATION} | & | @@ -11537,28 +11839,34 @@ inferType | pattern_matching.rs:173:15:176:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:174:17:174:29 | literal_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:174:33:174:37 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:175:13:175:58 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:22:175:42 | "Literal pattern: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:175:22:175:42 | "Literal pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:175:22:175:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:45:175:57 | literal_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:10:177:10 | 1 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:15:180:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:178:17:178:32 | negative_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:178:36:178:40 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:179:13:179:62 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:22:179:43 | "Negative literal: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:179:22:179:43 | "Negative literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:179:22:179:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:46:179:61 | negative_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:9:181:9 | 0 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:14:184:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:182:17:182:28 | zero_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:182:32:182:36 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:183:13:183:54 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:22:183:39 | "Zero literal: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:183:22:183:39 | "Zero literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:183:22:183:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:42:183:53 | zero_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:9:185:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:14:185:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11570,10 +11878,12 @@ inferType | pattern_matching.rs:190:17:193:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:191:17:191:24 | pi_match | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:191:28:191:36 | float_val | | {EXTERNAL LOCATION} | f64 | +| pattern_matching.rs:192:13:192:48 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:22:192:37 | "Pi matched: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:192:22:192:37 | "Pi matched: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:192:22:192:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:40:192:47 | pi_match | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:9:194:9 | _ | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:14:194:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11591,10 +11901,12 @@ inferType | pattern_matching.rs:200:17:200:27 | hello_match | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:200:31:200:40 | string_val | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:200:31:200:40 | string_val | TRef | {EXTERNAL LOCATION} | str | +| pattern_matching.rs:201:13:201:55 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:22:201:41 | "String literal: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:201:22:201:41 | "String literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:201:22:201:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:44:201:54 | hello_match | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:201:44:201:54 | hello_match | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:203:9:203:9 | _ | | {EXTERNAL LOCATION} | & | @@ -11608,19 +11920,23 @@ inferType | pattern_matching.rs:208:17:211:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:209:17:209:26 | true_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:209:30:209:37 | bool_val | | {EXTERNAL LOCATION} | bool | +| pattern_matching.rs:210:13:210:52 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:22:210:39 | "True literal: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:210:22:210:39 | "True literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:210:22:210:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:42:210:51 | true_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:9:212:13 | false | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:18:215:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:213:17:213:27 | false_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:213:31:213:38 | bool_val | | {EXTERNAL LOCATION} | bool | +| pattern_matching.rs:214:13:214:54 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:22:214:40 | "False literal: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:214:22:214:40 | "False literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:214:22:214:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:43:214:53 | false_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:219:30:277:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:220:9:220:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -11631,10 +11947,12 @@ inferType | pattern_matching.rs:224:14:227:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:225:17:225:27 | bound_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:225:31:225:31 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:226:13:226:59 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:22:226:45 | "Identifier pattern: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:226:22:226:45 | "Identifier pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:226:22:226:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:48:226:58 | bound_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:231:5:236:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:231:11:231:16 | &value | | {EXTERNAL LOCATION} | & | @@ -11650,10 +11968,12 @@ inferType | pattern_matching.rs:233:29:233:29 | x | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:233:29:233:29 | x | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:233:29:233:29 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:234:13:234:61 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:22:234:49 | "Reference identifier: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:22:234:49 | "Reference identifier: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:234:22:234:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:52:234:60 | ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -11668,10 +11988,12 @@ inferType | pattern_matching.rs:243:13:243:13 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:243:13:243:18 | ... += ... | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:243:18:243:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:244:13:244:57 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:22:244:45 | "Mutable identifier: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:244:22:244:45 | "Mutable identifier: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:244:22:244:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:48:244:56 | mut_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:249:9:249:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:249:9:249:20 | option_value | T | {EXTERNAL LOCATION} | i32 | @@ -11688,10 +12010,12 @@ inferType | pattern_matching.rs:251:35:254:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:252:17:252:24 | at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:252:28:252:28 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:253:13:253:60 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:22:253:49 | "@ pattern with literal: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:253:22:253:49 | "@ pattern with literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:253:22:253:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:52:253:59 | at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -11701,10 +12025,12 @@ inferType | pattern_matching.rs:255:40:258:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:256:17:256:30 | range_at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:256:34:256:34 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:257:13:257:64 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:22:257:47 | "@ pattern with range: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:257:22:257:47 | "@ pattern with range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:257:22:257:63 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:50:257:63 | range_at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -11712,18 +12038,22 @@ inferType | pattern_matching.rs:259:30:262:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:260:17:260:26 | some_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:260:30:260:30 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:261:13:261:50 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:22:261:37 | "Some value: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:261:22:261:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:261:22:261:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:40:261:49 | some_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:263:9:263:22 | ...::None | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:263:9:263:22 | ...::None | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:263:27:265:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:264:13:264:34 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:264:22:264:33 | "None value\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:264:22:264:33 | "None value\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:264:22:264:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:269:13:269:23 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:269:27:269:30 | 5i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:270:5:276:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -11748,10 +12078,12 @@ inferType | pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRefMut | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:273:32:273:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:274:13:274:39 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:274:22:274:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:279:28:290:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:280:9:280:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:280:17:280:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -11767,10 +12099,12 @@ inferType | pattern_matching.rs:285:14:288:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:286:17:286:32 | wildcard_context | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:286:36:286:40 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:287:13:287:66 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:22:287:47 | "Wildcard pattern for: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:287:22:287:47 | "Wildcard pattern for: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:287:22:287:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:50:287:65 | wildcard_context | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:292:25:324:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:293:9:293:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -11783,30 +12117,36 @@ inferType | pattern_matching.rs:297:19:300:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:298:17:298:31 | range_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:298:35:298:39 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:299:13:299:60 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:22:299:42 | "Range inclusive: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:299:22:299:42 | "Range inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:299:22:299:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:45:299:59 | range_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:10 | 11 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:12 | RangePat | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:17:304:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:302:17:302:26 | range_from | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:302:30:302:34 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:303:13:303:53 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:22:303:40 | "Range from 11: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:303:22:303:40 | "Range from 11: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:303:22:303:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:43:303:52 | range_from | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:9:305:12 | RangePat | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:12:305:12 | 0 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:17:308:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:306:17:306:34 | range_to_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:306:38:306:42 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:307:13:307:68 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:22:307:47 | "Range to 0 inclusive: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:307:22:307:47 | "Range to 0 inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:307:22:307:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:50:307:67 | range_to_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:9:309:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:14:309:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11820,10 +12160,12 @@ inferType | pattern_matching.rs:314:22:317:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:315:17:315:30 | lowercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:315:34:315:41 | char_val | | {EXTERNAL LOCATION} | char | +| pattern_matching.rs:316:13:316:58 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:22:316:41 | "Lowercase char: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:316:22:316:41 | "Lowercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:316:22:316:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:44:316:57 | lowercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:11 | 'A' | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:17 | RangePat | | {EXTERNAL LOCATION} | char | @@ -11831,10 +12173,12 @@ inferType | pattern_matching.rs:318:22:321:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:319:17:319:30 | uppercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:319:34:319:41 | char_val | | {EXTERNAL LOCATION} | char | +| pattern_matching.rs:320:13:320:58 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:22:320:41 | "Uppercase char: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:320:22:320:41 | "Uppercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:320:22:320:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:44:320:57 | uppercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:9:322:9 | _ | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:14:322:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11853,10 +12197,12 @@ inferType | pattern_matching.rs:332:16:335:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:333:17:333:27 | deref_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:333:31:333:35 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:334:13:334:59 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:22:334:45 | "Dereferenced match: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:334:22:334:45 | "Dereferenced match: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:334:22:334:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:48:334:58 | deref_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:336:9:336:10 | &... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:336:9:336:10 | &... | TRef | {EXTERNAL LOCATION} | i32 | @@ -11864,10 +12210,12 @@ inferType | pattern_matching.rs:336:15:339:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:337:17:337:27 | deref_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:337:31:337:31 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:338:13:338:61 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:22:338:47 | "Dereferenced binding: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:338:22:338:47 | "Dereferenced binding: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:338:22:338:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:50:338:60 | deref_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:342:5:347:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | &mut | @@ -11882,10 +12230,12 @@ inferType | pattern_matching.rs:344:17:344:29 | mut_ref_bound | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:344:33:344:33 | x | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:344:33:344:33 | x | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:345:13:345:62 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:22:345:46 | "Mutable ref pattern: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:345:22:345:46 | "Mutable ref pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:345:22:345:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:349:5:354:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -11902,10 +12252,12 @@ inferType | pattern_matching.rs:351:31:351:31 | x | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:351:31:351:31 | x | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:351:31:351:31 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:352:13:352:58 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:22:352:44 | "Reference pattern: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:22:352:44 | "Reference pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:352:22:352:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:47:352:57 | ref_pattern | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -11922,10 +12274,12 @@ inferType | pattern_matching.rs:362:33:365:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:363:17:363:22 | origin | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:363:26:363:30 | point | | pattern_matching.rs:135:1:140:1 | Point | +| pattern_matching.rs:364:13:364:50 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:22:364:41 | "Origin point: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:364:22:364:41 | "Origin point: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:364:22:364:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:44:364:49 | origin | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:9:366:25 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:17:366:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -11935,10 +12289,12 @@ inferType | pattern_matching.rs:367:28:367:28 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:368:17:368:28 | x_axis_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:368:32:368:36 | point | | pattern_matching.rs:135:1:140:1 | Point | +| pattern_matching.rs:369:13:369:81 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:22:369:56 | "Point on x-axis: x={}, point=... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:369:22:369:56 | "Point on x-axis: x={}, point=... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:369:22:369:80 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:59:369:66 | x_axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:369:69:369:80 | x_axis_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:371:9:371:27 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | @@ -11946,10 +12302,12 @@ inferType | pattern_matching.rs:371:32:374:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:372:17:372:27 | ten_x_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:372:31:372:35 | point | | pattern_matching.rs:135:1:140:1 | Point | +| pattern_matching.rs:373:13:373:58 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:22:373:44 | "Point with x=10: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:373:22:373:44 | "Point with x=10: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:373:22:373:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:47:373:57 | ten_x_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:9:375:22 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:17:375:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -11959,10 +12317,12 @@ inferType | pattern_matching.rs:376:29:376:29 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:377:17:377:25 | general_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:377:29:377:29 | y | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:378:13:378:69 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:22:378:46 | "General point: ({}, {})\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:378:22:378:46 | "General point: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:378:22:378:68 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:49:378:57 | general_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:378:60:378:68 | general_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:383:9:383:13 | shape | | pattern_matching.rs:145:1:150:1 | Shape | @@ -11979,10 +12339,12 @@ inferType | pattern_matching.rs:392:30:392:30 | w | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:393:17:393:27 | rect_height | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:393:31:393:31 | h | | {EXTERNAL LOCATION} | f64 | +| pattern_matching.rs:394:13:394:65 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:22:394:39 | "Rectangle: {}x{}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:394:22:394:39 | "Rectangle: {}x{}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:394:22:394:64 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:42:394:51 | rect_width | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:394:54:394:64 | rect_height | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:396:9:396:9 | _ | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12005,10 +12367,12 @@ inferType | pattern_matching.rs:405:29:408:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:406:17:406:25 | red_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:406:29:406:33 | color | | pattern_matching.rs:142:1:143:25 | Color | +| pattern_matching.rs:407:13:407:49 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:22:407:37 | "Pure red: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:407:22:407:37 | "Pure red: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:407:22:407:48 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:40:407:48 | red_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:9:409:22 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:15:409:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12021,10 +12385,12 @@ inferType | pattern_matching.rs:411:35:411:35 | g | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:412:17:412:30 | blue_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:412:34:412:34 | b | | {EXTERNAL LOCATION} | u8 | +| pattern_matching.rs:413:13:416:13 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:414:17:414:37 | "Color: ({}, {}, {})\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:414:17:414:37 | "Color: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:414:17:415:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:415:17:415:29 | red_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:32:415:46 | green_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:49:415:62 | blue_component | | {EXTERNAL LOCATION} | u8 | @@ -12037,10 +12403,12 @@ inferType | pattern_matching.rs:422:27:425:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:423:17:423:29 | reddish_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:423:33:423:37 | color | | pattern_matching.rs:142:1:143:25 | Color | +| pattern_matching.rs:424:13:424:58 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:22:424:42 | "Reddish color: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:424:22:424:42 | "Reddish color: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:424:22:424:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:45:424:57 | reddish_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:9:426:20 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:15:426:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12048,10 +12416,12 @@ inferType | pattern_matching.rs:426:25:429:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:427:17:427:23 | any_red | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:427:27:427:27 | r | | {EXTERNAL LOCATION} | u8 | +| pattern_matching.rs:428:13:428:55 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:22:428:45 | "Any color with red: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:428:22:428:45 | "Any color with red: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:428:22:428:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:48:428:54 | any_red | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:434:9:434:15 | wrapper | | pattern_matching.rs:432:5:433:24 | Wrapper | | pattern_matching.rs:434:19:434:29 | Wrapper(...) | | pattern_matching.rs:432:5:433:24 | Wrapper | @@ -12063,10 +12433,12 @@ inferType | pattern_matching.rs:436:23:439:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:437:17:437:29 | wrapped_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:437:33:437:33 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:438:13:438:50 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:22:438:34 | "Wrapped: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:438:22:438:34 | "Wrapped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:438:22:438:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:37:438:49 | wrapped_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:443:25:498:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:444:9:444:13 | tuple | | {EXTERNAL LOCATION} | (T_3) | @@ -12115,10 +12487,12 @@ inferType | pattern_matching.rs:449:31:449:35 | tuple | T1 | {EXTERNAL LOCATION} | i64 | | pattern_matching.rs:449:31:449:35 | tuple | T2 | {EXTERNAL LOCATION} | f32 | | pattern_matching.rs:449:31:449:35 | tuple | T2 | {EXTERNAL LOCATION} | f64 | +| pattern_matching.rs:450:13:450:54 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:22:450:40 | "Exact tuple: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:450:22:450:40 | "Exact tuple: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:450:22:450:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:43:450:53 | exact_tuple | | {EXTERNAL LOCATION} | (T_3) | | pattern_matching.rs:450:43:450:53 | exact_tuple | T0 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:450:43:450:53 | exact_tuple | T1 | {EXTERNAL LOCATION} | i32 | @@ -12147,10 +12521,12 @@ inferType | pattern_matching.rs:455:17:455:26 | third_elem | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:455:30:455:30 | c | | {EXTERNAL LOCATION} | f32 | | pattern_matching.rs:455:30:455:30 | c | | {EXTERNAL LOCATION} | f64 | +| pattern_matching.rs:456:13:456:80 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:22:456:42 | "Tuple: ({}, {}, {})\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:456:22:456:42 | "Tuple: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:456:22:456:79 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:45:456:54 | first_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i64 | @@ -12170,10 +12546,12 @@ inferType | pattern_matching.rs:462:9:462:19 | TuplePat | T2 | {EXTERNAL LOCATION} | f32 | | pattern_matching.rs:462:9:462:19 | TuplePat | T2 | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:462:24:465:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:464:13:464:54 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:464:22:464:40 | "First element: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:464:22:464:40 | "First element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:464:22:464:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:9:469:12 | unit | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:16:469:17 | TupleExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:470:5:475:5 | match unit { ... } | | {EXTERNAL LOCATION} | () | @@ -12182,10 +12560,12 @@ inferType | pattern_matching.rs:471:15:474:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:472:17:472:26 | unit_value | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:472:30:472:33 | unit | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:473:13:473:52 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:22:473:39 | "Unit value: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:473:22:473:39 | "Unit value: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:473:22:473:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:42:473:51 | unit_value | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:478:9:478:14 | single | | {EXTERNAL LOCATION} | (T_1) | | pattern_matching.rs:478:9:478:14 | single | T0 | {EXTERNAL LOCATION} | i32 | @@ -12201,10 +12581,12 @@ inferType | pattern_matching.rs:480:17:483:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:481:17:481:27 | single_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:481:31:481:31 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:482:13:482:61 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:22:482:47 | "Single element tuple: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:482:22:482:47 | "Single element tuple: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:482:22:482:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:50:482:60 | single_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | TRef | {EXTERNAL LOCATION} | (T_2) | @@ -12226,14 +12608,18 @@ inferType | pattern_matching.rs:488:21:488:30 | ref_tuple1 | TRef.T0 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:488:21:488:30 | ref_tuple1 | TRef.T1 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:488:32:491:5 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:489:9:489:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:489:18:489:24 | "n: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:489:18:489:24 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:489:18:489:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:490:9:490:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:490:18:490:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef.T0 | {EXTERNAL LOCATION} | i32 | @@ -12252,14 +12638,18 @@ inferType | pattern_matching.rs:495:18:495:27 | ref_tuple2 | TRef | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:495:18:495:27 | ref_tuple2 | TRef.T0 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:495:18:495:27 | ref_tuple2 | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:496:5:496:24 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:496:14:496:20 | "n: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:496:14:496:20 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:496:14:496:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:497:5:497:24 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:497:14:497:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:500:33:520:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:501:9:501:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:501:17:501:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12270,10 +12660,12 @@ inferType | pattern_matching.rs:505:16:508:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:506:17:506:27 | paren_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:506:31:506:31 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:507:13:507:62 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:22:507:48 | "Parenthesized pattern: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:507:22:507:48 | "Parenthesized pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:507:22:507:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:51:507:61 | paren_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:512:9:512:13 | tuple | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:512:9:512:13 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -12298,10 +12690,12 @@ inferType | pattern_matching.rs:515:27:515:27 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:516:17:516:23 | paren_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:516:27:516:27 | y | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:517:13:517:72 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:22:517:53 | "Parenthesized in tuple: {}, {... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:517:22:517:53 | "Parenthesized in tuple: {}, {... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:517:22:517:71 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:56:517:62 | paren_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:517:65:517:71 | paren_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:522:25:563:1 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12334,10 +12728,12 @@ inferType | pattern_matching.rs:528:31:528:35 | slice | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:528:31:528:35 | slice | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:528:31:528:35 | slice | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:529:13:529:54 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:22:529:40 | "Empty slice: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:529:22:529:40 | "Empty slice: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:529:22:529:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:43:529:53 | empty_slice | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12345,26 +12741,32 @@ inferType | pattern_matching.rs:531:9:531:11 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:531:9:531:11 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:531:16:534:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:533:13:533:55 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:533:22:533:41 | "Single element: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:533:22:533:41 | "Single element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:533:22:533:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:535:9:535:23 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:535:28:539:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:538:13:538:71 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:538:22:538:43 | "Two elements: {}, {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:538:22:538:43 | "Two elements: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:538:22:538:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:540:9:540:34 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:540:39:550:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:544:13:549:13 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:545:17:545:53 | "First: {}, last: {}, middle l... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:545:17:545:53 | "First: {}, last: {}, middle l... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:545:17:548:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:554:9:554:13 | array | | {EXTERNAL LOCATION} | [;] | | pattern_matching.rs:554:9:554:13 | array | TArray | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:554:17:554:28 | [...] | | {EXTERNAL LOCATION} | [;] | @@ -12378,10 +12780,12 @@ inferType | pattern_matching.rs:556:9:556:17 | SlicePat | | {EXTERNAL LOCATION} | [;] | | pattern_matching.rs:556:9:556:17 | SlicePat | TArray | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:556:22:561:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:560:13:560:71 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:560:22:560:49 | "Array elements: {}, {}, {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:560:22:560:49 | "Array elements: {}, {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:560:22:560:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:565:24:601:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:567:27:567:28 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:568:9:568:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12392,10 +12796,12 @@ inferType | pattern_matching.rs:571:21:574:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:572:17:572:27 | const_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:572:31:572:35 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:573:13:573:57 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:22:573:43 | "Matches constant: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:573:22:573:43 | "Matches constant: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:573:22:573:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:46:573:56 | const_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:9:575:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:14:575:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12410,20 +12816,24 @@ inferType | pattern_matching.rs:581:9:581:22 | ...::None | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:581:9:581:22 | ...::None | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:581:27:583:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:582:13:582:36 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:582:22:582:35 | "None variant\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:582:22:582:35 | "None variant\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:582:22:582:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:584:24:584:24 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:584:30:587:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:585:17:585:26 | some_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:585:30:585:30 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:586:13:586:50 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:22:586:37 | "Some value: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:586:22:586:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:586:22:586:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:40:586:49 | some_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:591:5:600:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:591:11:591:51 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | @@ -12437,10 +12847,12 @@ inferType | pattern_matching.rs:592:39:595:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:593:17:593:24 | ok_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:593:28:593:28 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:594:13:594:46 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:22:594:35 | "Ok value: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:594:22:594:35 | "Ok value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:594:22:594:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:38:594:45 | ok_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | E | {EXTERNAL LOCATION} | usize | @@ -12449,10 +12861,12 @@ inferType | pattern_matching.rs:596:40:599:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:597:17:597:25 | err_value | | {EXTERNAL LOCATION} | usize | | pattern_matching.rs:597:29:597:29 | e | | {EXTERNAL LOCATION} | usize | +| pattern_matching.rs:598:13:598:44 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:22:598:32 | "Error: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:598:22:598:32 | "Error: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:598:22:598:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:35:598:43 | err_value | | {EXTERNAL LOCATION} | usize | | pattern_matching.rs:603:22:638:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:604:9:604:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12466,10 +12880,12 @@ inferType | pattern_matching.rs:608:22:611:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:609:17:609:25 | small_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:609:29:609:33 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:610:13:610:51 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:22:610:39 | "Small number: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:610:22:610:39 | "Small number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:610:22:610:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:42:610:50 | small_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:10 | 10 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:15 | 10 \| 20 | | {EXTERNAL LOCATION} | i32 | @@ -12477,10 +12893,12 @@ inferType | pattern_matching.rs:612:20:615:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:613:17:613:25 | round_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:613:29:613:33 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:614:13:614:51 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:22:614:39 | "Round number: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:614:22:614:39 | "Round number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:614:22:614:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:42:614:50 | round_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:9:616:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:14:616:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12504,10 +12922,12 @@ inferType | pattern_matching.rs:623:26:623:26 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:624:17:624:22 | axis_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:624:26:624:26 | y | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:625:13:625:63 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:22:625:46 | "Point on axis: ({}, {})\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:625:22:625:46 | "Point on axis: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:625:22:625:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:49:625:54 | axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:625:57:625:62 | axis_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:627:9:627:9 | _ | | pattern_matching.rs:135:1:140:1 | Point | @@ -12524,10 +12944,12 @@ inferType | pattern_matching.rs:632:30:635:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:633:17:633:30 | range_or_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:633:34:633:38 | value | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:634:13:634:52 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:22:634:35 | "In range: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:634:22:634:35 | "In range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:634:22:634:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:38:634:51 | range_or_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:9:636:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:14:636:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12558,10 +12980,12 @@ inferType | pattern_matching.rs:645:9:645:19 | TuplePat | T2 | {EXTERNAL LOCATION} | f32 | | pattern_matching.rs:645:9:645:19 | TuplePat | T3 | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:645:24:648:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:647:13:647:55 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:647:22:647:42 | "First with rest: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:647:22:647:42 | "First with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:647:22:647:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:5:656:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:11:651:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:651:11:651:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -12574,10 +12998,12 @@ inferType | pattern_matching.rs:652:9:652:18 | TuplePat | T2 | {EXTERNAL LOCATION} | f32 | | pattern_matching.rs:652:9:652:18 | TuplePat | T3 | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:652:23:655:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:654:13:654:53 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:654:22:654:41 | "Last with rest: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:654:22:654:41 | "Last with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:654:22:654:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:5:664:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:11:658:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:658:11:658:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -12590,10 +13016,12 @@ inferType | pattern_matching.rs:659:9:659:25 | TuplePat | T2 | {EXTERNAL LOCATION} | f32 | | pattern_matching.rs:659:9:659:25 | TuplePat | T3 | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:659:30:663:9 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:662:13:662:68 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:662:22:662:45 | "First and last: {}, {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:662:22:662:45 | "First and last: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:662:22:662:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:667:9:667:13 | point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:17:667:38 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:28:667:29 | 10 | | {EXTERNAL LOCATION} | i32 | @@ -12605,25 +13033,35 @@ inferType | pattern_matching.rs:669:28:672:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:670:17:670:22 | rest_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:670:26:670:26 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:671:13:671:48 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:22:671:39 | "X coordinate: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:671:22:671:39 | "X coordinate: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:671:22:671:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:42:671:47 | rest_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:676:25:696:1 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:678:5:678:19 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:17:678:18 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:678:17:678:18 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:678:17:678:18 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:679:5:679:18 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:679:17:679:17 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:694:5:694:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:29 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:694:21:694:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:28:694:29 | 42 | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:695:5:695:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:28 | match 10i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:695:21:695:28 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:28:695:28 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:698:34:724:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:700:9:700:20 | complex_data | | {EXTERNAL LOCATION} | (T_2) | @@ -12669,10 +13107,12 @@ inferType | pattern_matching.rs:706:28:706:28 | g | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:707:17:707:24 | nested_b | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:707:28:707:28 | b | | {EXTERNAL LOCATION} | u8 | +| pattern_matching.rs:708:13:711:13 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:709:17:709:57 | "Complex nested: y={}, green={... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:709:17:709:57 | "Complex nested: y={}, green={... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:709:17:710:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:710:17:710:24 | nested_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:710:27:710:34 | nested_g | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:710:37:710:44 | nested_b | | {EXTERNAL LOCATION} | u8 | @@ -12700,10 +13140,12 @@ inferType | pattern_matching.rs:714:76:717:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:715:17:715:29 | alt_complex_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:715:33:715:33 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:716:13:716:66 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:22:716:50 | "Alternative complex: x={:?}\\n... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:716:22:716:50 | "Alternative complex: x={:?}\\n... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:716:22:716:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:53:716:65 | alt_complex_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:719:9:719:13 | other | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:719:9:719:13 | other | T0 | pattern_matching.rs:135:1:140:1 | Point | @@ -12718,10 +13160,12 @@ inferType | pattern_matching.rs:720:33:720:37 | other | T0 | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:720:33:720:37 | other | T1 | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:720:33:720:37 | other | T1.T | pattern_matching.rs:142:1:143:25 | Color | +| pattern_matching.rs:721:13:721:63 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:22:721:47 | "Other complex data: {:?}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:721:22:721:47 | "Other complex data: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:721:22:721:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:50:721:62 | other_complex | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:721:50:721:62 | other_complex | T0 | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:721:50:721:62 | other_complex | T1 | pattern_matching.rs:152:1:156:1 | MyOption | @@ -12913,10 +13357,12 @@ inferType | pattern_matching.rs:796:22:796:22 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:797:13:797:18 | loop_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:797:22:797:22 | y | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:798:9:798:59 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:18:798:42 | "Point in loop: ({}, {})\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:798:18:798:42 | "Point in loop: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:798:18:798:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:45:798:50 | loop_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:798:53:798:58 | loop_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:802:9:802:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | @@ -12934,10 +13380,12 @@ inferType | pattern_matching.rs:803:50:806:5 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:804:13:804:20 | if_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:804:24:804:24 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:805:9:805:55 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:18:805:44 | "If let with @ pattern: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:805:18:805:44 | "If let with @ pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:805:18:805:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:47:805:54 | if_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:809:13:809:17 | stack | | {EXTERNAL LOCATION} | Vec | | pattern_matching.rs:809:13:809:17 | stack | A | {EXTERNAL LOCATION} | Global | @@ -12960,10 +13408,12 @@ inferType | pattern_matching.rs:810:37:813:5 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:811:13:811:23 | while_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:811:27:811:27 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:812:9:812:43 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:18:812:29 | "Popped: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:812:18:812:29 | "Popped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:812:18:812:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:32:812:42 | while_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:9:816:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:17:816:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12976,10 +13426,12 @@ inferType | pattern_matching.rs:818:23:821:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:819:17:819:23 | guard_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:819:27:819:27 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:820:13:820:45 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:22:820:35 | "Positive: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:820:22:820:35 | "Positive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:820:22:820:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:38:820:44 | guard_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:9:822:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:14:822:15 | { ... } | | {EXTERNAL LOCATION} | () | diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index f93586d373b..d3297eb8c30 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -14,9 +14,9 @@ edges | main.rs:7:14:7:20 | ...::format_args_nl!... | main.rs:7:14:7:20 | MacroExpr | | | main.rs:7:14:7:20 | ExprStmt | main.rs:7:5:7:12 | ...::_print | | | main.rs:7:14:7:20 | FormatArgsExpr | main.rs:7:14:7:20 | ...::format_args_nl!... | | -| main.rs:7:14:7:20 | MacroBlockExpr | main.rs:7:5:7:21 | println!... | | | main.rs:7:14:7:20 | MacroExpr | main.rs:7:14:7:20 | ...::_print(...) | | -| main.rs:7:14:7:20 | { ... } | main.rs:7:14:7:20 | MacroBlockExpr | | +| main.rs:7:14:7:20 | { ... } | main.rs:7:5:7:21 | println!... | | +| main.rs:7:14:7:20 | { ... } | main.rs:7:14:7:20 | { ... } | | | main.rs:7:20:7:20 | s | main.rs:7:14:7:20 | FormatArgsExpr | | | main.rs:10:1:13:1 | enter fn print_i64 | main.rs:10:14:10:14 | i | | | main.rs:10:1:13:1 | exit fn print_i64 (normal) | main.rs:10:1:13:1 | exit fn print_i64 | | @@ -33,9 +33,9 @@ edges | main.rs:12:14:12:20 | ...::format_args_nl!... | main.rs:12:14:12:20 | MacroExpr | | | main.rs:12:14:12:20 | ExprStmt | main.rs:12:5:12:12 | ...::_print | | | main.rs:12:14:12:20 | FormatArgsExpr | main.rs:12:14:12:20 | ...::format_args_nl!... | | -| main.rs:12:14:12:20 | MacroBlockExpr | main.rs:12:5:12:21 | println!... | | | main.rs:12:14:12:20 | MacroExpr | main.rs:12:14:12:20 | ...::_print(...) | | -| main.rs:12:14:12:20 | { ... } | main.rs:12:14:12:20 | MacroBlockExpr | | +| main.rs:12:14:12:20 | { ... } | main.rs:12:5:12:21 | println!... | | +| main.rs:12:14:12:20 | { ... } | main.rs:12:14:12:20 | { ... } | | | main.rs:12:20:12:20 | i | main.rs:12:14:12:20 | FormatArgsExpr | | | main.rs:15:1:17:1 | enter fn print_i64_ref | main.rs:15:18:15:18 | i | | | main.rs:15:1:17:1 | exit fn print_i64_ref (normal) | main.rs:15:1:17:1 | exit fn print_i64_ref | | @@ -264,8 +264,8 @@ edges | main.rs:106:19:106:28 | x.unwrap() | main.rs:106:9:106:29 | print_str(...) | | | main.rs:107:9:107:13 | "not yet implemented" | main.rs:107:9:107:13 | ...::panic(...) | | | main.rs:107:9:107:13 | ...::panic | main.rs:107:9:107:13 | "not yet implemented" | | -| main.rs:107:9:107:13 | ...::panic(...) | main.rs:107:9:107:13 | MacroBlockExpr | | -| main.rs:107:9:107:13 | MacroBlockExpr | main.rs:107:9:107:15 | todo!... | | +| main.rs:107:9:107:13 | ...::panic(...) | main.rs:107:9:107:13 | { ... } | | +| main.rs:107:9:107:13 | { ... } | main.rs:107:9:107:15 | todo!... | | | main.rs:107:9:107:15 | MacroExpr | main.rs:103:10:108:5 | { ... } | | | main.rs:107:9:107:15 | todo!... | main.rs:107:9:107:15 | MacroExpr | | | main.rs:109:5:109:13 | print_str | main.rs:109:15:109:15 | x | | @@ -451,9 +451,9 @@ edges | main.rs:192:22:192:51 | ...::format_args_nl!... | main.rs:192:22:192:51 | MacroExpr | | | main.rs:192:22:192:51 | ExprStmt | main.rs:192:13:192:20 | ...::_print | | | main.rs:192:22:192:51 | FormatArgsExpr | main.rs:192:22:192:51 | ...::format_args_nl!... | | -| main.rs:192:22:192:51 | MacroBlockExpr | main.rs:192:13:192:52 | println!... | | | main.rs:192:22:192:51 | MacroExpr | main.rs:192:22:192:51 | ...::_print(...) | | -| main.rs:192:22:192:51 | { ... } | main.rs:192:22:192:51 | MacroBlockExpr | | +| main.rs:192:22:192:51 | { ... } | main.rs:192:13:192:52 | println!... | | +| main.rs:192:22:192:51 | { ... } | main.rs:192:22:192:51 | { ... } | | | main.rs:194:9:194:29 | ...::Hello {...} | main.rs:194:26:194:27 | id | match | | main.rs:194:26:194:27 | id | main.rs:194:26:194:27 | id | | | main.rs:194:26:194:27 | id | main.rs:197:13:197:21 | print_i64 | match | From 4cc4717381d64018bf4f2fdad4a4580520f84622 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 09:35:07 +0100 Subject: [PATCH 119/263] Rust: Add DB upgrade script --- .../old.dbscheme | 3562 +++++++++++++++++ .../rust.dbscheme | 3544 ++++++++++++++++ .../upgrade.properties | 13 + .../upgrade.ql | 62 + 4 files changed, 7181 insertions(+) create mode 100644 rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme create mode 100644 rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties create mode 100644 rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.ql diff --git a/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme new file mode 100644 index 00000000000..c467bf63916 --- /dev/null +++ b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme @@ -0,0 +1,3562 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme new file mode 100644 index 00000000000..90861289dd4 --- /dev/null +++ b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme @@ -0,0 +1,3544 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties new file mode 100644 index 00000000000..10aa9fe16a0 --- /dev/null +++ b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties @@ -0,0 +1,13 @@ +description: Merge the relations `macro_block_exprs` and `block_exprs` +compatibility: full + +macro_block_exprs.rel: delete +macro_block_expr_statements.rel: delete +macro_block_expr_tail_exprs.rel: delete + +block_exprs.rel: run upgrade.ql new_block_exprs +stmt_lists.rel: run upgrade.ql new_stmt_lists +block_expr_stmt_lists.rel: run upgrade.ql new_block_expr_stmt_lists +stmt_list_statements.rel: run upgrade.ql new_stmt_list_statements +stmt_list_tail_exprs.rel: run upgrade.ql new_stmt_list_tail_exprs +macro_call_macro_call_expansions.rel: run upgrade.ql new_macro_call_macro_call_expansions \ No newline at end of file diff --git a/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.ql b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.ql new file mode 100644 index 00000000000..adf5e25c81f --- /dev/null +++ b/rust/ql/lib/upgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.ql @@ -0,0 +1,62 @@ +class Element extends @element { + string toString() { none() } +} + +newtype TAddedElement = + TBlockExpr(Element macroBlock) { macro_block_exprs(macroBlock) } or + TStmtList(Element macroBlock) { macro_block_exprs(macroBlock) } + +module Fresh = QlBuiltins::NewEntity; + +class TNewElement = @element or Fresh::EntityId; + +class NewElement extends TNewElement { + string toString() { none() } +} + +query predicate new_block_exprs(NewElement id) { + block_exprs(id) or + id = Fresh::map(TBlockExpr(_)) +} + +query predicate new_stmt_lists(NewElement id) { + stmt_lists(id) or + id = Fresh::map(TStmtList(_)) +} + +query predicate new_block_expr_stmt_lists(NewElement id, NewElement list) { + block_expr_stmt_lists(id, list) + or + exists(Element macroBlock | + id = Fresh::map(TBlockExpr(macroBlock)) and + list = Fresh::map(TStmtList(macroBlock)) + ) +} + +query predicate new_stmt_list_statements(NewElement id, int index, Element stmt) { + stmt_list_statements(id, index, stmt) + or + exists(Element macroBlock | + id = Fresh::map(TStmtList(macroBlock)) and + macro_block_expr_statements(macroBlock, index, stmt) + ) +} + +query predicate new_stmt_list_tail_exprs(NewElement id, Element expr) { + stmt_list_tail_exprs(id, expr) + or + exists(Element macroBlock | + id = Fresh::map(TStmtList(macroBlock)) and + macro_block_expr_tail_exprs(macroBlock, expr) + ) +} + +query predicate new_macro_call_macro_call_expansions(NewElement id, NewElement expansion) { + macro_call_macro_call_expansions(id, expansion) and + not macro_block_exprs(expansion) + or + exists(Element macroBlock | + expansion = Fresh::map(TBlockExpr(macroBlock)) and + macro_call_macro_call_expansions(id, macroBlock) + ) +} From 31b4f88824678369b3f0bff8b68a2f627ccec8a7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 09:51:49 +0100 Subject: [PATCH 120/263] Rust: Add DB downgrade script --- .../downgrade.ql | 78 + .../old.dbscheme | 3544 ++++++++++++++++ .../rust.dbscheme | 3562 +++++++++++++++++ .../upgrade.properties | 13 + 4 files changed, 7197 insertions(+) create mode 100644 rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/downgrade.ql create mode 100644 rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme create mode 100644 rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme create mode 100644 rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties diff --git a/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/downgrade.ql b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/downgrade.ql new file mode 100644 index 00000000000..c3223e21b8a --- /dev/null +++ b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/downgrade.ql @@ -0,0 +1,78 @@ +class Element extends @element { + string toString() { none() } +} + +newtype TAddedElement = + TMacroBlockExpr(Element block) { + block_exprs(block) and macro_call_macro_call_expansions(_, block) + } + +module Fresh = QlBuiltins::NewEntity; + +class TNewElement = @element or Fresh::EntityId; + +class NewElement extends TNewElement { + string toString() { none() } +} + +query predicate new_macro_block_exprs(NewElement id) { id = Fresh::map(TMacroBlockExpr(_)) } + +query predicate new_macro_block_expr_statements(NewElement id, int index, Element stmt) { + exists(Element block, Element list | + id = Fresh::map(TMacroBlockExpr(block)) and + block_expr_stmt_lists(block, list) and + stmt_list_statements(list, index, stmt) + ) +} + +query predicate new_macro_block_expr_tail_exprs(NewElement id, Element expr) { + exists(Element block, Element list | + id = Fresh::map(TMacroBlockExpr(block)) and + block_expr_stmt_lists(block, list) and + stmt_list_tail_exprs(list, expr) + ) +} + +query predicate new_block_exprs(Element id) { + block_exprs(id) and + not macro_call_macro_call_expansions(_, id) +} + +query predicate new_stmt_lists(Element id) { + stmt_lists(id) and + not exists(Element block | + macro_call_macro_call_expansions(_, block) and + block_expr_stmt_lists(block, id) + ) +} + +query predicate new_block_expr_stmt_lists(Element id, Element list) { + block_expr_stmt_lists(id, list) and + not macro_call_macro_call_expansions(_, id) +} + +query predicate new_stmt_list_statements(Element id, int index, Element stmt) { + stmt_list_statements(id, index, stmt) and + not exists(Element block | + macro_call_macro_call_expansions(_, block) and + block_expr_stmt_lists(block, id) + ) +} + +query predicate new_stmt_list_tail_exprs(Element id, Element expr) { + stmt_list_tail_exprs(id, expr) and + not exists(Element block | + macro_call_macro_call_expansions(_, block) and + block_expr_stmt_lists(block, id) + ) +} + +query predicate new_macro_call_macro_call_expansions(NewElement id, NewElement expansion) { + macro_call_macro_call_expansions(id, expansion) and + not block_exprs(expansion) + or + exists(Element block | + expansion = Fresh::map(TMacroBlockExpr(block)) and + macro_call_macro_call_expansions(id, block) + ) +} diff --git a/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme new file mode 100644 index 00000000000..90861289dd4 --- /dev/null +++ b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme @@ -0,0 +1,3544 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme new file mode 100644 index 00000000000..c467bf63916 --- /dev/null +++ b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme @@ -0,0 +1,3562 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties new file mode 100644 index 00000000000..f66d2958d77 --- /dev/null +++ b/rust/downgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties @@ -0,0 +1,13 @@ +description: Unmerge the relations `macro_block_exprs` and `block_exprs` +compatibility: full + +macro_block_exprs.rel: run downgrade.ql new_macro_block_exprs +macro_block_expr_statements.rel: run downgrade.ql new_macro_block_expr_statements +macro_block_expr_tail_exprs.rel: run downgrade.ql new_macro_block_expr_tail_exprs + +block_exprs.rel: run downgrade.ql new_block_exprs +stmt_lists.rel: run downgrade.ql new_stmt_lists +block_expr_stmt_lists.rel: run downgrade.ql new_block_expr_stmt_lists +stmt_list_statements.rel: run downgrade.ql new_stmt_list_statements +stmt_list_tail_exprs.rel: run downgrade.ql new_stmt_list_tail_exprs +macro_call_macro_call_expansions.rel: run downgrade.ql new_macro_call_macro_call_expansions \ No newline at end of file From d2e6ae5e1438c6a23189be132a20f94f94db70b3 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 13 Jan 2026 10:34:25 +0100 Subject: [PATCH 121/263] Update javascript/ql/lib/semmle/javascript/frameworks/Next.qll Co-authored-by: Napalys Klicius --- javascript/ql/lib/semmle/javascript/frameworks/Next.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll index bd45d8c048f..254675b9e9e 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Next.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Next.qll @@ -42,7 +42,7 @@ module NextJS { deprecated predicate getAPagesFolder = pagesFolder/0; /** - * Gets a module corrosponding to a `Next.js` page. + * Gets a module corresponding to a `Next.js` page. */ Module getAPagesModule() { result.getFile() = [pagesFolder().getAFile(), appFolder().getJavaScriptFile("page")] From da9aafc3b0f3033687fad22a035c0f6fdd73bfc7 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 13 Jan 2026 10:53:59 +0100 Subject: [PATCH 122/263] JS: Also track additional use-steps crossing the overlay boundary --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 3fcb2840fa0..c891804eaa7 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1650,10 +1650,17 @@ module API { isInOverlayChangedFile(node) } + pragma[nomagic] + private predicate step(DataFlow::SourceNode node1, DataFlow::SourceNode node2) { + StepSummary::step(node1, node2, _) + or + AdditionalUseStep::step(node1, node2) + } + /** Holds if there is a step `node1 -> node2` from an unchanged file into a changed file. */ pragma[nomagic] private predicate stepIntoOverlay(DataFlow::Node node1, DataFlow::Node node2) { - StepSummary::step(node1, node2, _) and + step(node1, node2) and isInOverlayChangedFile(node2) and not isInOverlayChangedFileLate(node1) and hasSemanticsLate(node1) @@ -1680,7 +1687,7 @@ module API { /** Holds if there is a step `node1 -> node2` from a changed file into an unchanged file. */ pragma[nomagic] private predicate stepOutOfOverlay(DataFlow::Node node1, DataFlow::Node node2) { - StepSummary::step(node1, node2, _) and + step(node1, node2) and isInOverlayChangedFile(node1) and not isInOverlayChangedFileLate(node2) and hasSemanticsLate(node2) From 8b555ca514bf79363ed81123f46dc260b881e75b Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 13 Jan 2026 11:20:13 +0100 Subject: [PATCH 123/263] Java: Add test. --- java/ql/test/library-tests/typeflow/A.java | 8 ++++++++ java/ql/test/library-tests/typeflow/typeflow.expected | 1 + 2 files changed, 9 insertions(+) diff --git a/java/ql/test/library-tests/typeflow/A.java b/java/ql/test/library-tests/typeflow/A.java index ad19901f151..751ad525d15 100644 --- a/java/ql/test/library-tests/typeflow/A.java +++ b/java/ql/test/library-tests/typeflow/A.java @@ -118,4 +118,12 @@ public class A extends ArrayList { default -> { } } } + + private static T lookupFoo(Map m) { + return m.get("foo"); + } + + public void m11(Map m) { + lookupFoo(m); + } } diff --git a/java/ql/test/library-tests/typeflow/typeflow.expected b/java/ql/test/library-tests/typeflow/typeflow.expected index f0cb2356cb8..03dcb0e0766 100644 --- a/java/ql/test/library-tests/typeflow/typeflow.expected +++ b/java/ql/test/library-tests/typeflow/typeflow.expected @@ -18,5 +18,6 @@ | A.java:112:23:112:24 | cs | String | false | | A.java:116:13:116:14 | o2 | String | false | | A.java:117:49:117:50 | cs | String | false | +| A.java:123:12:123:12 | m | Map | false | | UnionTypes.java:45:7:45:7 | x | Inter | false | | UnionTypes.java:48:23:48:23 | x | Inter | false | From 004d40ee9318adfca4427f24ada2203885b04b3a Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 9 Jan 2026 11:19:00 +0000 Subject: [PATCH 124/263] Allow MaD barriers using sink kinds --- .../code/csharp/security/dataflow/CodeInjectionQuery.qll | 7 ++++++- .../csharp/security/dataflow/CommandInjectionQuery.qll | 7 ++++++- .../code/csharp/security/dataflow/LDAPInjectionQuery.qll | 7 ++++++- .../code/csharp/security/dataflow/LogForgingQuery.qll | 7 ++++++- .../code/csharp/security/dataflow/SqlInjectionQuery.qll | 7 ++++++- .../code/csharp/security/dataflow/UrlRedirectQuery.qll | 7 ++++++- .../lib/semmle/code/csharp/security/dataflow/XSSQuery.qll | 6 ++++++ 7 files changed, 42 insertions(+), 6 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/CodeInjectionQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/CodeInjectionQuery.qll index 20d5bbe10ca..f567e3cbc02 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/CodeInjectionQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/CodeInjectionQuery.qll @@ -95,7 +95,12 @@ class RoslynCSharpScriptSink extends Sink { } } -/** Code injection sinks defined through CSV models. */ +/** A code injection sink defined through Models as Data. */ private class ExternalCodeInjectionExprSink extends Sink { ExternalCodeInjectionExprSink() { sinkNode(this, "code-injection") } } + +/** A sanitizer for code injection defined through Models as Data. */ +private class ExternalCodeInjectionSanitizer extends Sanitizer { + ExternalCodeInjectionSanitizer() { barrierNode(this, "code-injection") } +} diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/CommandInjectionQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/CommandInjectionQuery.qll index 9528676af8e..b8c37d602b9 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/CommandInjectionQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/CommandInjectionQuery.qll @@ -61,11 +61,16 @@ deprecated class RemoteSource extends DataFlow::Node instanceof RemoteFlowSource /** A source supported by the current threat model. */ class ThreatModelSource extends Source instanceof ActiveThreatModelSource { } -/** Command Injection sinks defined through Models as Data. */ +/** A Command Injection sink defined through Models as Data. */ private class ExternalCommandInjectionExprSink extends Sink { ExternalCommandInjectionExprSink() { sinkNode(this, "command-injection") } } +/** A sanitizer for command injection defined through Models as Data. */ +private class ExternalCommandInjectionSanitizer extends Sanitizer { + ExternalCommandInjectionSanitizer() { barrierNode(this, "command-injection") } +} + /** * A sink in `System.Diagnostic.Process` or its related classes. */ diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/LDAPInjectionQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/LDAPInjectionQuery.qll index c2e25f0e522..06bfac6c545 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/LDAPInjectionQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/LDAPInjectionQuery.qll @@ -64,11 +64,16 @@ deprecated class RemoteSource extends DataFlow::Node instanceof RemoteFlowSource /** A source supported by the current threat model. */ class ThreatModelSource extends Source instanceof ActiveThreatModelSource { } -/** LDAP sinks defined through Models as Data. */ +/** An LDAP sink defined through Models as Data. */ private class ExternalLdapExprSink extends Sink { ExternalLdapExprSink() { sinkNode(this, "ldap-injection") } } +/** A sanitizer for LDAP injection defined through Models as Data. */ +private class ExternalLdapInjectionSanitizer extends Sanitizer { + ExternalLdapInjectionSanitizer() { barrierNode(this, "ldap-injection") } +} + /** * An argument that sets the `Path` property of a `DirectoryEntry` object that is a sink for LDAP * injection. diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/LogForgingQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/LogForgingQuery.qll index e06e728514d..22023ebc409 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/LogForgingQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/LogForgingQuery.qll @@ -61,11 +61,16 @@ private class LogForgingLogMessageSink extends Sink, LogMessageSink { } */ private class LogForgingTraceMessageSink extends Sink, TraceMessageSink { } -/** Log Forging sinks defined through Models as Data. */ +/** A Log Forging sink defined through Models as Data. */ private class ExternalLoggingExprSink extends Sink { ExternalLoggingExprSink() { sinkNode(this, "log-injection") } } +/** A sanitizer for log forging defined through Models as Data. */ +private class ExternalLogForgingSanitizer extends Sanitizer { + ExternalLogForgingSanitizer() { barrierNode(this, "log-injection") } +} + /** * A call to String replace or remove that is considered to sanitize replaced string. */ diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/SqlInjectionQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/SqlInjectionQuery.qll index 510b0381143..addc1932177 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/SqlInjectionQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/SqlInjectionQuery.qll @@ -74,11 +74,16 @@ class SqlInjectionExprSink extends Sink { SqlInjectionExprSink() { exists(SqlExpr s | this.getExpr() = s.getSql()) } } -/** SQL sinks defined through CSV models. */ +/** An SQL sink defined through CSV models. */ private class ExternalSqlInjectionExprSink extends Sink { ExternalSqlInjectionExprSink() { sinkNode(this, "sql-injection") } } +/** A sanitizer for SQL injection defined through Models as Data. */ +private class ExternalSqlInjectionSanitizer extends Sanitizer { + ExternalSqlInjectionSanitizer() { barrierNode(this, "sql-injection") } +} + private class SimpleTypeSanitizer extends Sanitizer, SimpleTypeSanitizedExpr { } private class GuidSanitizer extends Sanitizer, GuidSanitizedExpr { } diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll index 15ba99aedf0..20a64e61d81 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll @@ -56,11 +56,16 @@ deprecated class RemoteSource extends DataFlow::Node instanceof RemoteFlowSource /** A source supported by the current threat model. */ class ThreatModelSource extends Source instanceof ActiveThreatModelSource { } -/** URL Redirection sinks defined through Models as Data. */ +/** A URL Redirection sink defined through Models as Data. */ private class ExternalUrlRedirectExprSink extends Sink { ExternalUrlRedirectExprSink() { sinkNode(this, "url-redirection") } } +/** A sanitizer for URL redirection defined through Models as Data. */ +private class ExternalUrlRedirectSanitizer extends Sanitizer { + ExternalUrlRedirectSanitizer() { barrierNode(this, "url-redirection") } +} + /** * A URL argument to a call to `HttpResponse.Redirect()` or `Controller.Redirect()`, that is a * sink for URL redirects. diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll index 2d687b51d67..b084905ddad 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll @@ -7,6 +7,7 @@ import csharp private import XSSSinks private import semmle.code.csharp.security.Sanitizers private import semmle.code.csharp.security.dataflow.flowsources.FlowSources +private import semmle.code.csharp.dataflow.internal.ExternalFlow /** * Holds if there is tainted flow from `source` to `sink` that may lead to a @@ -169,6 +170,11 @@ private class SimpleTypeSanitizer extends Sanitizer, SimpleTypeSanitizedExpr { } private class GuidSanitizer extends Sanitizer, GuidSanitizedExpr { } +/** A sanitizer for XSS defined through Models as Data. */ +private class ExternalXssSanitizer extends Sanitizer { + ExternalXssSanitizer() { barrierNode(this, ["html-injection", "js-injection"]) } +} + /** A call to an HTML encoder. */ private class HtmlEncodeSanitizer extends Sanitizer { HtmlEncodeSanitizer() { this.getExpr() instanceof HtmlSanitizedExpr } From b30bc5ea445893b4947aefabedc4bea42336149a Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 9 Jan 2026 11:24:55 +0000 Subject: [PATCH 125/263] Allow MaD barriers relating to ExternalLocationSink --- .../csharp/security/dataflow/CleartextStorageQuery.qll | 3 +++ .../dataflow/ExposureOfPrivateInformationQuery.qll | 2 ++ .../security/dataflow/flowsinks/ExternalLocationSink.qll | 8 ++++++++ 3 files changed, 13 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/CleartextStorageQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/CleartextStorageQuery.qll index 3e4642411f0..bf79523f50f 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/CleartextStorageQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/CleartextStorageQuery.qll @@ -4,6 +4,7 @@ import csharp private import semmle.code.csharp.security.dataflow.flowsources.Remote +private import semmle.code.csharp.dataflow.internal.ExternalFlow private import semmle.code.csharp.frameworks.system.Web private import semmle.code.csharp.security.SensitiveActions private import semmle.code.csharp.security.dataflow.flowsinks.ExternalLocationSink @@ -62,3 +63,5 @@ class ProtectSanitizer extends Sanitizer { * An external location sink. */ class ExternalSink extends Sink instanceof ExternalLocationSink { } + +private class ExternalSanitizer extends Sanitizer instanceof ExternalLocationSanitizer { } diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ExposureOfPrivateInformationQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ExposureOfPrivateInformationQuery.qll index 85782fe4936..b5b95902d8a 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ExposureOfPrivateInformationQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ExposureOfPrivateInformationQuery.qll @@ -46,3 +46,5 @@ private class PrivateDataSource extends Source { } private class ExternalLocation extends Sink instanceof ExternalLocationSink { } + +private class ExternalSanitizer extends Sanitizer instanceof ExternalLocationSanitizer { } diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsinks/ExternalLocationSink.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsinks/ExternalLocationSink.qll index 3bcfdde669a..4ee02416961 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsinks/ExternalLocationSink.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/flowsinks/ExternalLocationSink.qll @@ -126,3 +126,11 @@ class LocalFileOutputSink extends ExternalLocationSink { ) } } + +/** + * A sanitizer for writing data to locations that are external to the + * application, defined through Models as Data. + */ +class ExternalLocationSanitizer extends DataFlow::Node { + ExternalLocationSanitizer() { barrierNode(this, "file-content-store") } +} From 68b618176e3dfa5aec76ea86b788ca7036bf0bb5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 9 Jan 2026 15:15:53 +0000 Subject: [PATCH 126/263] Convert barrier guard to MaD I checked that without the model a test fails. --- csharp/ql/lib/ext/System.model.yml | 5 +++++ .../security/dataflow/UrlRedirectQuery.qll | 21 ------------------- 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/csharp/ql/lib/ext/System.model.yml b/csharp/ql/lib/ext/System.model.yml index 870413e7569..963b37887ee 100644 --- a/csharp/ql/lib/ext/System.model.yml +++ b/csharp/ql/lib/ext/System.model.yml @@ -11,6 +11,11 @@ extensions: - ["System", "Environment", False, "get_CommandLine", "()", "", "ReturnValue", "commandargs", "manual"] - ["System", "Environment", False, "GetEnvironmentVariable", "", "", "ReturnValue", "environment", "manual"] - ["System", "Environment", False, "GetEnvironmentVariables", "", "", "ReturnValue", "environment", "manual"] + - addsTo: + pack: codeql/csharp-all + extensible: barrierGuardModel + data: + - ["System", "Uri", False, "get_IsAbsoluteUri", "()", "", "Argument[this]", "false", "url-redirection", "manual"] - addsTo: pack: codeql/csharp-all extensible: summaryModel diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll index 20a64e61d81..e7cbf237762 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll @@ -165,27 +165,6 @@ class ContainsUrlSanitizer extends Sanitizer { } } -/** - * A check that the URL is relative, and therefore safe for URL redirects. - */ -private predicate isRelativeUrlSanitizer(Guard guard, Expr e, GuardValue v) { - guard = - any(PropertyAccess access | - access.getProperty().hasFullyQualifiedName("System", "Uri", "IsAbsoluteUri") and - e = access.getQualifier() and - v.asBooleanValue() = false - ) -} - -/** - * A check that the URL is relative, and therefore safe for URL redirects. - */ -class RelativeUrlSanitizer extends Sanitizer { - RelativeUrlSanitizer() { - this = DataFlow::BarrierGuard::getABarrierNode() - } -} - /** * A comparison on the `Host` property of a url, that is a sanitizer for URL redirects. * E.g. `url.Host == "example.org"` From 130f8f148b2bc221dbfe41023f17645c492a0ab2 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 9 Jan 2026 15:24:47 +0000 Subject: [PATCH 127/263] Convert barrier to MaD I confirmed that without the model a test fails. --- csharp/ql/lib/ext/System.Web.model.yml | 6 ++++++ .../code/csharp/security/dataflow/UrlRedirectQuery.qll | 10 ---------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/csharp/ql/lib/ext/System.Web.model.yml b/csharp/ql/lib/ext/System.Web.model.yml index ba644e1cc70..6d05cdae75b 100644 --- a/csharp/ql/lib/ext/System.Web.model.yml +++ b/csharp/ql/lib/ext/System.Web.model.yml @@ -1,4 +1,10 @@ extensions: + - addsTo: + pack: codeql/csharp-all + extensible: barrierModel + data: + # The RawUrl property is considered to be safe for URL redirects + - ["System.Web", "HttpRequest", False, "get_RawUrl", "()", "", "ReturnValue", "url-redirection", "manual"] - addsTo: pack: codeql/csharp-all extensible: sinkModel diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll index e7cbf237762..bad6c990fa7 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UrlRedirectQuery.qll @@ -189,16 +189,6 @@ class HostComparisonSanitizer extends Sanitizer { } } -/** - * A call to the getter of the RawUrl property, whose value is considered to be safe for URL - * redirects. - */ -class RawUrlSanitizer extends Sanitizer { - RawUrlSanitizer() { - this.getExpr() = any(SystemWebHttpRequestClass r).getRawUrlProperty().getGetter().getACall() - } -} - /** * A string concatenation expression, where the left hand side contains the character "?". * From 40c35341d1712d9b6f163a360c5822c5674a4988 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 13 Jan 2026 11:44:07 +0100 Subject: [PATCH 128/263] JS: Add props to Vue router test case --- .../library-tests/frameworks/Vue/router.js | 14 ++++++++--- .../frameworks/Vue/tests.expected | 24 +++++++++---------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/javascript/ql/test/library-tests/frameworks/Vue/router.js b/javascript/ql/test/library-tests/frameworks/Vue/router.js index acbbefecc01..65dc4d13e99 100644 --- a/javascript/ql/test/library-tests/frameworks/Vue/router.js +++ b/javascript/ql/test/library-tests/frameworks/Vue/router.js @@ -16,8 +16,17 @@ export const router = new Router({ from.query.x; } } - ] - } + ], + props: route => ({ + x: route.query.x + }), + }, + { + props: { + x: route => route.query.x, + y: route => route.query.y + }, + }, ], scrollBehavior(to, from, savedPosition) { to.query.x; @@ -34,4 +43,3 @@ router.afterEach((to, from) => { to.query.x; from.query.x; }); - diff --git a/javascript/ql/test/library-tests/frameworks/Vue/tests.expected b/javascript/ql/test/library-tests/frameworks/Vue/tests.expected index 4fe66404c78..2b1cbebc431 100644 --- a/javascript/ql/test/library-tests/frameworks/Vue/tests.expected +++ b/javascript/ql/test/library-tests/frameworks/Vue/tests.expected @@ -182,12 +182,12 @@ remoteFlowSource | router.js:9:17:9:26 | from.query | | router.js:15:25:15:32 | to.query | | router.js:16:25:16:34 | from.query | -| router.js:23:9:23:16 | to.query | -| router.js:24:9:24:18 | from.query | -| router.js:29:5:29:12 | to.query | -| router.js:30:5:30:14 | from.query | -| router.js:34:5:34:12 | to.query | -| router.js:35:5:35:14 | from.query | +| router.js:32:9:32:16 | to.query | +| router.js:33:9:33:18 | from.query | +| router.js:38:5:38:12 | to.query | +| router.js:39:5:39:14 | from.query | +| router.js:43:5:43:12 | to.query | +| router.js:44:5:44:14 | from.query | parseErrors attribute | compont-with-route.vue:2:8:2:21 | v-html=dataA | v-html | @@ -227,12 +227,12 @@ threatModelSource | router.js:9:17:9:26 | from.query | remote | | router.js:15:25:15:32 | to.query | remote | | router.js:16:25:16:34 | from.query | remote | -| router.js:23:9:23:16 | to.query | remote | -| router.js:24:9:24:18 | from.query | remote | -| router.js:29:5:29:12 | to.query | remote | -| router.js:30:5:30:14 | from.query | remote | -| router.js:34:5:34:12 | to.query | remote | -| router.js:35:5:35:14 | from.query | remote | +| router.js:32:9:32:16 | to.query | remote | +| router.js:33:9:33:18 | from.query | remote | +| router.js:38:5:38:12 | to.query | remote | +| router.js:39:5:39:14 | from.query | remote | +| router.js:43:5:43:12 | to.query | remote | +| router.js:44:5:44:14 | from.query | remote | | single-component-file-1.vue:7:45:7:54 | this.input | view-component-input | | single-file-component-3-script.js:5:42:5:51 | this.input | view-component-input | | single-file-component-4.vue:21:14:21:23 | this.input | view-component-input | From 7cd820ea868545d2dd8df5dfb2d4c07f39698cfc Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 13 Jan 2026 11:46:12 +0100 Subject: [PATCH 129/263] JS: Add support for props callbacks in router configs --- javascript/ql/lib/semmle/javascript/frameworks/Vue.qll | 4 ++++ .../ql/test/library-tests/frameworks/Vue/tests.expected | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll index f571648294c..ca1eb24f3b5 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll @@ -664,6 +664,10 @@ module Vue { or result = routeConfig().getMember("beforeEnter").getParameter([0, 1]).asSource() or + result = routeConfig().getMember("props").getParameter(0).asSource() + or + result = routeConfig().getMember("props").getAMember().getParameter(0).asSource() + or exists(Component c | result = c.getABoundFunction().getAFunctionValue().getReceiver().getAPropertyRead("$route") or diff --git a/javascript/ql/test/library-tests/frameworks/Vue/tests.expected b/javascript/ql/test/library-tests/frameworks/Vue/tests.expected index 2b1cbebc431..633a8f9924d 100644 --- a/javascript/ql/test/library-tests/frameworks/Vue/tests.expected +++ b/javascript/ql/test/library-tests/frameworks/Vue/tests.expected @@ -182,6 +182,9 @@ remoteFlowSource | router.js:9:17:9:26 | from.query | | router.js:15:25:15:32 | to.query | | router.js:16:25:16:34 | from.query | +| router.js:21:20:21:30 | route.query | +| router.js:26:29:26:39 | route.query | +| router.js:27:29:27:39 | route.query | | router.js:32:9:32:16 | to.query | | router.js:33:9:33:18 | from.query | | router.js:38:5:38:12 | to.query | @@ -227,6 +230,9 @@ threatModelSource | router.js:9:17:9:26 | from.query | remote | | router.js:15:25:15:32 | to.query | remote | | router.js:16:25:16:34 | from.query | remote | +| router.js:21:20:21:30 | route.query | remote | +| router.js:26:29:26:39 | route.query | remote | +| router.js:27:29:27:39 | route.query | remote | | router.js:32:9:32:16 | to.query | remote | | router.js:33:9:33:18 | from.query | remote | | router.js:38:5:38:12 | to.query | remote | From 9fa856f974a5c0ca480bd2d17ab6388bd18a9358 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 13 Jan 2026 11:49:33 +0100 Subject: [PATCH 130/263] JS: Change note --- .../ql/src/change-notes/2026-01-13-vue-props-callbacks.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md diff --git a/javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md b/javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md new file mode 100644 index 00000000000..f84e193782d --- /dev/null +++ b/javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* The model of `vue-router` now properly detects taint sources in cases where + the `props` property is a callback. From dda042f7dfa6e1708cf3b1622e26cdd845bb2f87 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 24 Dec 2025 20:39:16 +0100 Subject: [PATCH 131/263] rename change notes --- .../com.couchbase.client.core.env.model.yml | 24 +++++-- .../ext/com.couchbase.client.java.model.yml | 38 +++-------- .../tests/HardcodedCouchBaseCredentials.java | 68 ++++++++++++------- .../core/env/PasswordAuthenticator.java | 13 +++- .../client/core/env/UsernameAndPassword.java | 4 +- 5 files changed, 87 insertions(+), 60 deletions(-) diff --git a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml index 8222b8e88cd..09179f7589b 100644 --- a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml @@ -3,10 +3,26 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[0]", "credentials-key", "manual"] + # 'credentials-password' sinks - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKey", "(PrivateKey,String,List)", "", "Argument[1]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(Path,String,Optional)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(Path,String,Optional)", "", "Argument[1]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "CertificateAuthenticator", true, "fromKeyStore", "(KeyStore,String)", "", "Argument[1]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(String)", "", "Argument[0]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] + # 'credentials-username' sinks + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["com.couchbase.client.core.env", "UsernameAndPassword", true, "UsernameAndPassword", "(String,String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 1c64294dc55..2a821e9f11a 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -3,42 +3,26 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + # 'credentials-username' sinks - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[1]", "credentials-username", "manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] + # 'credentials-password' sinks - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[2]", "credentials-password", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] + # 'sql-injection' sinks - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery)", "", "Argument[1]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery,SearchOptions)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "upsert", "(String,Object,UpsertOptions)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Collection", true, "replace", "(String,Object,ReplaceOptions)", "", "Argument[1]", "sql-injection", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel data: - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,String)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,long)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,number)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,double)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonObject)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,Map)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,JsonArray)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "(String,List)", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[0]", "ReturnValue.MapKey", "taint", "manual"] + - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[1]", "ReturnValue.MapValue", "taint", "manual"] - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index f46ff80ba52..decbd174783 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -1,35 +1,53 @@ import static com.couchbase.client.java.ClusterOptions.clusterOptions; -import com.couchbase.client.core.env.Authenticator; import com.couchbase.client.core.env.CertificateAuthenticator; import com.couchbase.client.core.env.PasswordAuthenticator; +import com.couchbase.client.core.env.UsernameAndPassword; import com.couchbase.client.java.Cluster; +import java.util.function.Supplier; public class HardcodedCouchBaseCredentials { public static void test() { - Cluster cluster1 = - Cluster.connect( - "127.0.0.1", - "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - "password"); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - Cluster cluster2 = - Cluster.connect( - "127.0.0.1", - clusterOptions( - "Administrator", // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - "password")); // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - PasswordAuthenticator authenticator1 = - PasswordAuthenticator.builder() - .username( - "Administrator") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - .password("password") // $ HardcodedCredentialsApiCall $ HardcodedCredentialsSourceCall - .onlyEnablePlainSaslMechanism() - .build(); + // com.couchbase.client.core.env.CertificateAuthenticator sinks + CertificateAuthenticator.fromKey(null, "keyPassword", null); // $ HardcodedCredentialsApiCall + CertificateAuthenticator.fromKeyStore( + null, "keyStorePassword", null); // $ HardcodedCredentialsApiCall + CertificateAuthenticator.fromKeyStore( + null, "keyStorePassword"); // $ HardcodedCredentialsApiCall - Authenticator authenticator2 = - CertificateAuthenticator.fromKeyStore( - null, - "keyStorePassword"); // $ HardcodedCredentialsApiCall - Cluster cluster = Cluster.connect("127.0.0.1", clusterOptions(authenticator2)); + // com.couchbase.client.core.env.PasswordAuthenticator sinks + PasswordAuthenticator.create( + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + PasswordAuthenticator.ldapCompatible( + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + + // com.couchbase.client.core.env.PasswordAuthenticator$Builder sinks + PasswordAuthenticator.builder( + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + PasswordAuthenticator.builder() + .username("Administrator") // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + .password("password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + PasswordAuthenticator.builder((Supplier) new UsernameAndPassword( + "Administrator", // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall + PasswordAuthenticator.builder() + .username((Supplier) () -> {return "Administrator";}) // $ MISSING: HardcodedCredentialsApiCall + .password((Supplier) () -> {return "password";}); // $ MISSING: HardcodedCredentialsApiCall + + // com.couchbase.client.java.Cluster sinks + Cluster.connect( + "127.0.0.1", + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + + // com.couchbase.client.java.ClusterOptions sinks + Cluster.connect( + "127.0.0.1", + clusterOptions( + "Administrator", // $ HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsApiCall } -} \ No newline at end of file +} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java index ec37e812463..f5faca54ad3 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/PasswordAuthenticator.java @@ -23,6 +23,14 @@ public class PasswordAuthenticator implements Authenticator { return null; } + public static PasswordAuthenticator.Builder builder(String username, String password) { + return null; + } + + public static PasswordAuthenticator.Builder builder(Supplier supplier) { + return null; + } + public static PasswordAuthenticator create(final String username, final String password) { return null; } @@ -46,7 +54,6 @@ public class PasswordAuthenticator implements Authenticator { } public Builder password(final String password) { - return null; } @@ -54,11 +61,11 @@ public class PasswordAuthenticator implements Authenticator { return null; } - public Builder onlyEnablePlainSaslMechanism() { + public static PasswordAuthenticator builder(String username, String password) { return null; } - public PasswordAuthenticator build() { + public static PasswordAuthenticator builder(Supplier supplier) { return null; } } diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java index 72d3ba0647b..5853a667331 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/core/env/UsernameAndPassword.java @@ -16,4 +16,6 @@ package com.couchbase.client.core.env; -public class UsernameAndPassword {} \ No newline at end of file +public class UsernameAndPassword { + public UsernameAndPassword(String username, String password) {} +} \ No newline at end of file From 89f0e79ea17a36ec44f71a33dd0587f1195e71e8 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 13:55:14 +0100 Subject: [PATCH 132/263] Fix `SqlTainted` test --- .../semmle/examples/SqlTainted.expected | 108 ++++++++---------- 1 file changed, 47 insertions(+), 61 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected index 4885e812e28..6f869c4b887 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected @@ -30,8 +30,6 @@ | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | -| CouchBase.java:15:36:15:94 | putNull(...) | CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | This query depends on a $@. | CouchBase.java:15:64:15:93 | getenv(...) | user-provided value | -| CouchBase.java:16:35:16:77 | put(...) | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:35:16:77 | put(...) | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | | Mongo.java:17:45:17:67 | parse(...) | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:45:17:67 | parse(...) | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Mongo.java:21:49:21:52 | json | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Test.java:36:47:36:52 | query1 | Test.java:227:26:227:38 | args : String[] | Test.java:36:47:36:52 | query1 | This query depends on a $@. | Test.java:227:26:227:38 | args | user-provided value | @@ -51,21 +49,21 @@ edges | AllowListSanitizerWithJavaUtilList.java:51:13:51:16 | args : String[] | AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:54:23:54:26 | args : String[] | AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:55:14:55:17 | args : String[] | AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:5 | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:49:20:49:23 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | provenance | | @@ -74,40 +72,37 @@ edges | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:54:14:54:17 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:7 | -| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:7 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:5 | | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:1 | -| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:16:70:16:76 | ...[...] : String | provenance | | -| CouchBase.java:15:64:15:93 | getenv(...) : String | CouchBase.java:15:36:15:94 | putNull(...) | provenance | Src:MaD:9 MaD:11 Sink:MaD:2 | -| CouchBase.java:16:70:16:76 | ...[...] : String | CouchBase.java:16:35:16:77 | put(...) | provenance | MaD:10 Sink:MaD:3 | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | provenance | | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | provenance | | | Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | provenance | Config | -| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:7 | -| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:4 | -| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:5 | +| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:5 | +| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:2 | +| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:3 | | Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | provenance | | -| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:8 | -| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:6 | +| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:6 | +| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:4 | | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | provenance | | -| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:12 | -| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:13 | -| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:7 | -| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:7 | -| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:7 | +| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:7 | +| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:8 | +| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:5 | +| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:5 | +| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:5 | | Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | provenance | | @@ -116,18 +111,13 @@ edges | Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | provenance | | models | 1 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | -| 2 | Sink: com.couchbase.client.java; Collection; true; replace; (String,Object); ; Argument[1]; sql-injection; manual | -| 3 | Sink: com.couchbase.client.java; Collection; true; upsert; (String,Object); ; Argument[1]; sql-injection; manual | -| 4 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | -| 5 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | -| 6 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | -| 7 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | -| 8 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | -| 9 | Source: java.lang; System; false; getenv; ; ; ReturnValue; environment; manual | -| 10 | Summary: com.couchbase.client.java.json; JsonObject; true; put; (String,Object); ; Argument[1]; ReturnValue; taint; manual | -| 11 | Summary: com.couchbase.client.java.json; JsonObject; true; putNull; (String); ; Argument[0]; ReturnValue; taint; manual | -| 12 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | -| 13 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 2 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | +| 3 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | +| 4 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | +| 5 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | +| 6 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | +| 7 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 8 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | nodes | AllowListSanitizerWithJavaUtilList.java:48:26:48:38 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilList.java:50:20:50:23 | args : String[] | semmle.label | args : String[] | @@ -179,10 +169,6 @@ nodes | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | semmle.label | query | | CouchBase.java:9:27:9:39 | args : String[] | semmle.label | args : String[] | | CouchBase.java:12:19:12:25 | ...[...] | semmle.label | ...[...] | -| CouchBase.java:15:36:15:94 | putNull(...) | semmle.label | putNull(...) | -| CouchBase.java:15:64:15:93 | getenv(...) : String | semmle.label | getenv(...) : String | -| CouchBase.java:16:35:16:77 | put(...) | semmle.label | put(...) | -| CouchBase.java:16:70:16:76 | ...[...] : String | semmle.label | ...[...] : String | | Mongo.java:10:29:10:41 | args : String[] | semmle.label | args : String[] | | Mongo.java:17:45:17:67 | parse(...) | semmle.label | parse(...) | | Mongo.java:17:56:17:66 | stringQuery : String | semmle.label | stringQuery : String | From 9cdf63e17547398d84a76cd6a8357bb70206848e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 12 Dec 2025 10:42:49 +0100 Subject: [PATCH 133/263] Rust: Skip model generation for functions with a ; in their canonical path --- rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 9826f56795f..02cd1d70d46 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -13,6 +13,10 @@ private import codeql.rust.dataflow.internal.FlowSummaryImpl as FlowSummary private newtype TCallable = TFunction(R::Function api, string path) { path = api.getCanonicalPath() and + // A canonical path can contain `;` as the syntax for array types use `;`. + // This does not work with the shared model generator, so for now we just + // exclude canonical paths with `;`s. + not exists(api.getCanonicalPath().indexOf(";")) and ( // This excludes closures (these are not exported API endpoints) and // functions without a `pub` visibility. A function can be `pub` without From 8bfce6b28475e178bad4914636d9a1a4e25c3028 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 Jan 2026 10:21:27 +0100 Subject: [PATCH 134/263] Shared, rust: Add option to disable reads steps as taint steps in model generator --- rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll | 2 ++ .../codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 02cd1d70d46..95cde0a8637 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -113,6 +113,8 @@ module ModelGeneratorCommonInput implements c.(SingletonContentSet).getContent() instanceof ElementContent } + predicate applyReadStepsAsTaintSteps() { none() } + string partialModelRow(Callable api, int i) { i = 0 and result = api.getCanonicalPath() } string partialNeutralModelRow(Callable api, int i) { result = partialModelRow(api, i) } diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 8abe4563580..ca60fb637c9 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -115,6 +115,9 @@ signature module ModelGeneratorCommonInputSig Date: Wed, 7 Jan 2026 10:14:37 +0100 Subject: [PATCH 135/263] Rust: Skip model generation for Rocket due to performance issue --- rust/bulk_generation_targets.yml | 3 +- rust/ql/lib/ext/generated/rocket.model.yml | 930 --------------------- 2 files changed, 2 insertions(+), 931 deletions(-) delete mode 100644 rust/ql/lib/ext/generated/rocket.model.yml diff --git a/rust/bulk_generation_targets.yml b/rust/bulk_generation_targets.yml index baccc89da38..cd0d86a7673 100644 --- a/rust/bulk_generation_targets.yml +++ b/rust/bulk_generation_targets.yml @@ -19,7 +19,8 @@ targets: - name: serde - name: tokio - name: reqwest -- name: rocket +# Disabled due to performance issue +# - name: rocket - name: actix-web - name: hyper - name: clap diff --git a/rust/ql/lib/ext/generated/rocket.model.yml b/rust/ql/lib/ext/generated/rocket.model.yml deleted file mode 100644 index d1729726763..00000000000 --- a/rust/ql/lib/ext/generated/rocket.model.yml +++ /dev/null @@ -1,930 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModel - data: - - ["::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::finalize", "Argument[0].Field[rocket::form::from_form::MapContext::errors]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::init", "Argument[0]", "ReturnValue.Field[rocket::form::from_form::MapContext::opts]", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] - - ["::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_shutdown", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_shutdown", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::finalize", "Argument[0].Field[rocket::form::from_form::VecContext::errors]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::finalize", "Argument[0].Field[rocket::form::from_form::VecContext::items]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::init", "Argument[0]", "ReturnValue.Field[rocket::form::from_form::VecContext::opts]", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::into_collection", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::or_error", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["::or_error", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::or_forward", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["::or_forward", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::fs::File::inner]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::or_error", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Field[0]", "value", "dfc-generated"] - - ["::or_error", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Field[1]", "value", "dfc-generated"] - - ["::or_error", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::or_forward", "Argument[0].Field[0]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Field[0]", "value", "dfc-generated"] - - ["::or_forward", "Argument[0].Field[1]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Field[1]", "value", "dfc-generated"] - - ["::or_forward", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["::or_forward", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::fs::File::inner]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[databases::diesel_mysql::Db(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[databases::diesel_mysql::Db(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[databases::sqlx::Db(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[databases::sqlx::Db(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::close", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::init", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::close", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::get", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::init", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::file_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::with_span", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[rocket::catcher::catcher::StaticInfo::handler]", "ReturnValue.Field[rocket::catcher::catcher::Catcher::handler].Reference", "value", "dfc-generated"] - - ["::map_base", "Argument[self].Field[rocket::catcher::catcher::Catcher::base]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::map_base", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::catcher::catcher::Catcher::handler].Reference", "value", "dfc-generated"] - - ["::profile", "Argument[self].Field[rocket::config::config::Config::profile].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::profile", "Argument[self].Field[rocket::config::config::Config::profile]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::ca_certs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mandatory", "Argument[0]", "Argument[self].Field[rocket::config::tls::MutualTls::mandatory]", "value", "dfc-generated"] - - ["::mandatory", "Argument[0]", "ReturnValue.Field[rocket::config::tls::MutualTls::mandatory]", "value", "dfc-generated"] - - ["::mandatory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::certs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::key", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mutual", "Argument[self].Field[rocket::config::tls::TlsConfig::mutual].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::prefer_server_cipher_order", "Argument[self].Field[rocket::config::tls::TlsConfig::prefer_server_cipher_order]", "ReturnValue", "value", "dfc-generated"] - - ["::to_native_config", "Argument[self].Field[rocket::config::tls::TlsConfig::prefer_server_cipher_order]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket_http::tls::listener::Config::prefer_server_order]", "value", "dfc-generated"] - - ["::with_ciphers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_mutual", "Argument[0]", "Argument[self].Field[rocket::config::tls::TlsConfig::mutual].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_mutual", "Argument[0]", "ReturnValue.Field[rocket::config::tls::TlsConfig::mutual].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_mutual", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_preferred_server_cipher_order", "Argument[0]", "Argument[self].Field[rocket::config::tls::TlsConfig::prefer_server_cipher_order]", "value", "dfc-generated"] - - ["::with_preferred_server_cipher_order", "Argument[0]", "ReturnValue.Field[rocket::config::tls::TlsConfig::prefer_server_cipher_order]", "value", "dfc-generated"] - - ["::with_preferred_server_cipher_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[rocket::cookies::CookieJar::config]", "ReturnValue.Field[rocket::cookies::CookieJar::config]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::cookies::CookieJar::jar]", "value", "dfc-generated"] - - ["::from", "Argument[1]", "ReturnValue.Field[rocket::cookies::CookieJar::config]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::cookies::CookieJar::config]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::data::capped::Capped::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::data::capped::Capped::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_value", "Argument[0].Field[rocket::form::field::ValueField::value]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::complete", "Argument[0]", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[rocket::data::capped::Capped::value]", "ReturnValue", "value", "dfc-generated"] - - ["::is_complete", "Argument[self].Field[rocket::data::capped::Capped::n].Field[rocket::data::capped::N::complete]", "ReturnValue", "value", "dfc-generated"] - - ["::map", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[rocket::data::capped::Capped::n]", "ReturnValue.Field[rocket::data::capped::Capped::n]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[rocket::data::capped::Capped::value]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::data::capped::Capped::n]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::data::capped::N::written]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::local", "Argument[0]", "ReturnValue.Field[rocket::data::data::Data::buffer]", "value", "dfc-generated"] - - ["::peek", "Argument[self].Field[rocket::data::data::Data::buffer].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::peek_complete", "Argument[self].Field[rocket::data::data::Data::is_complete]", "ReturnValue", "value", "dfc-generated"] - - ["::hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::data::data_stream::StreamReader::inner].Field[rocket::data::data_stream::StreamKind::Body(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::data::data_stream::StreamReader::inner].Field[rocket::data::data_stream::StreamKind::Multipart(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::data::io_stream::IoStream::kind].Field[rocket::data::io_stream::IoStreamKind::Upgraded(0)]", "value", "dfc-generated"] - - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::error::Error::kind]", "value", "dfc-generated"] - - ["::kind", "Argument[self].Field[rocket::error::Error::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::error::Error::kind]", "value", "dfc-generated"] - - ["::shutdown", "Argument[0]", "ReturnValue.Field[rocket::error::Error::kind].Field[rocket::error::ErrorKind::Shutdown(0)]", "value", "dfc-generated"] - - ["::io", "Argument[self].Field[rocket::ext::CancellableIo::io].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::ext::CancellableIo::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::new", "Argument[2]", "ReturnValue.Field[rocket::ext::CancellableIo::grace]", "value", "dfc-generated"] - - ["::new", "Argument[3]", "ReturnValue.Field[rocket::ext::CancellableIo::mercy]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::ext::CancellableListener::trigger]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::ext::CancellableListener::listener]", "value", "dfc-generated"] - - ["::new", "Argument[2]", "ReturnValue.Field[rocket::ext::CancellableListener::grace].Field[core::time::Duration::secs]", "value", "dfc-generated"] - - ["::new", "Argument[3]", "ReturnValue.Field[rocket::ext::CancellableListener::mercy].Field[core::time::Duration::secs]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_ref", "Argument[self].Field[rocket::ext::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[rocket::ext::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::ext::Chain::first]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::ext::Chain::second]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::first]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::second]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::first]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::second]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::ext::Join::a]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::ext::Join::b]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::cap]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::cap]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::info", "Argument[self].Field[rocket::fairing::ad_hoc::AdHoc::name]", "ReturnValue.Field[rocket::fairing::info_kind::Info::name]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_shutdown", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_shutdown", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["::on_request", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["::on_response", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["::on_shutdown", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["::try_on_ignite", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["::audit", "Argument[self].Field[rocket::fairing::fairings::Fairings::failures]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["::handle_ignite", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::push_error", "Argument[0].Field[rocket::form::error::Error::kind].Field[rocket::form::error::ErrorKind::Custom(0)]", "Argument[self].Field[rocket::form::context::Context::status]", "value", "dfc-generated"] - - ["::status", "Argument[self].Field[rocket::form::context::Context::status]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::form::error::Error::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::set_entity", "Argument[0]", "Argument[self].Field[rocket::form::error::Error::entity]", "value", "dfc-generated"] - - ["::status", "Argument[self].Field[rocket::form::error::Error::kind].Field[rocket::form::error::ErrorKind::Custom(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::with_entity", "Argument[0]", "Argument[self].Field[rocket::form::error::Error::entity]", "value", "dfc-generated"] - - ["::with_entity", "Argument[0]", "ReturnValue.Field[rocket::form::error::Error::entity]", "value", "dfc-generated"] - - ["::with_entity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::Custom(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::InvalidLength::min]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::OutOfRange::start]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::error::ErrorKind::Custom(1)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::error::ErrorKind::InvalidLength::max]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::error::ErrorKind::OutOfRange::end]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::Custom(1)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::form::error::Errors(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::form::error::Errors(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::form::error::Errors(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::with_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::shift", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::field::ValueField::value]", "value", "dfc-generated"] - - ["::from_value", "Argument[0]", "ReturnValue.Field[rocket::form::field::ValueField::value]", "value", "dfc-generated"] - - ["::shift", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::form::form::Form(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::form::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::form::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[rocket::form::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::form::lenient::Lenient(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::form::lenient::Lenient(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::form::lenient::Lenient(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[rocket::form::lenient::Lenient(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left].Field[0]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::right]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left].Reference", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket::form::name::buf::NameBuf::right].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::right].Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::form::name::key::Key(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[0]", "ReturnValue.Reference.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[rocket::form::name::key::Key(0)]", "ReturnValue.Reference.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::form::name::name::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[rocket::form::name::name::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_name", "Argument[self].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::parent", "Argument[self].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::shift", "Argument[self].Field[rocket::form::name::view::NameView::end]", "Argument[self].Reference.Field[rocket::form::name::view::NameView::start]", "value", "dfc-generated"] - - ["::shift", "Argument[self].Field[rocket::form::name::view::NameView::name]", "Argument[self].Reference.Field[rocket::form::name::view::NameView::name]", "value", "dfc-generated"] - - ["::source", "Argument[self].Field[rocket::form::name::view::NameView::name]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[rocket::form::parser::RawStrParser::source].Element", "Argument[self].Field[rocket::form::parser::RawStrParser::source].Reference", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::form::parser::RawStrParser::buffer]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::form::parser::RawStrParser::source]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::form::strict::Strict(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::form::strict::Strict(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::form::strict::Strict(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[rocket::form::strict::Strict(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::file", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::file", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::file_mut", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::file_mut", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::take_file", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["::take_file", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue", "value", "dfc-generated"] - - ["::handle", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle", "Argument[1]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Field[0]", "value", "dfc-generated"] - - ["::handle", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket::fs::server::FileServer::options]", "value", "dfc-generated"] - - ["::rank", "Argument[0]", "Argument[self].Field[rocket::fs::server::FileServer::rank]", "value", "dfc-generated"] - - ["::rank", "Argument[0]", "ReturnValue.Field[rocket::fs::server::FileServer::rank]", "value", "dfc-generated"] - - ["::rank", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[rocket::fs::temp_file::TempFile::File::len].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::len", "Argument[self].Field[rocket::fs::temp_file::TempFile::File::len].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::open", "Argument[self].Field[rocket::fs::temp_file::TempFile::Buffered::content].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio_util::either::Either::Right(0)]", "value", "dfc-generated"] - - ["::raw_name", "Argument[self].Reference.Field[rocket::fs::temp_file::TempFile::File::file_name]", "ReturnValue", "value", "dfc-generated"] - - ["::_new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket::local::asynchronous::client::Client::tracked]", "value", "dfc-generated"] - - ["::_rocket", "Argument[self].Field[rocket::local::asynchronous::client::Client::rocket]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::_with_raw_cookies", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::_with_raw_cookies_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::_body_mut", "Argument[self].Field[rocket::local::asynchronous::request::LocalRequest::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::_request", "Argument[self].Field[rocket::local::asynchronous::request::LocalRequest::request]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::_request_mut", "Argument[self].Field[rocket::local::asynchronous::request::LocalRequest::request]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::cookies", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::local::asynchronous::request::LocalRequest::client]", "value", "dfc-generated"] - - ["::private_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::remote", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::_cookies", "Argument[self].Field[rocket::local::asynchronous::response::LocalResponse::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::_response", "Argument[self].Field[rocket::local::asynchronous::response::LocalResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["::_test", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::_with_raw_cookies", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::inner", "Argument[self].Field[rocket::local::blocking::client::Client::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::cookies", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::local::blocking::request::LocalRequest::client]", "value", "dfc-generated"] - - ["::private_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::remote", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::_cookies", "Argument[self].Field[rocket::local::blocking::response::LocalResponse::inner].Field[rocket::local::asynchronous::response::LocalResponse::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::and_then", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["::and_then", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["::and_then", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)].Reference", "value", "dfc-generated"] - - ["::error_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::error_then", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::error_then", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["::error_then", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::expect", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::failed", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::forward_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::forward_then", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["::forward_then", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::forward_then", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::forwarded", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::map", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::map_error", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["::map_error", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::map_error", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["::map_error", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::map_forward", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["::map_forward", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["::map_forward", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::map_forward", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["::ok_map_error", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::ok_map_error", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::ok_map_error", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::ok_map_error", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::ok_map_forward", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::ok_map_forward", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::ok_map_forward", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::ok_map_forward", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::pin", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::succeeded", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::success_or", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::success_or", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::success_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::success_or_else", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::unwrap", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::as_state_ref", "Argument[self]", "ReturnValue.Field[rocket::phase::StateRef::Build(0)]", "value", "dfc-generated"] - - ["::into_state", "Argument[self]", "ReturnValue.Field[rocket::phase::State::Build(0)]", "value", "dfc-generated"] - - ["::as_state_ref", "Argument[self]", "ReturnValue.Field[rocket::phase::StateRef::Ignite(0)]", "value", "dfc-generated"] - - ["::into_state", "Argument[self]", "ReturnValue.Field[rocket::phase::State::Ignite(0)]", "value", "dfc-generated"] - - ["::as_state_ref", "Argument[self]", "ReturnValue.Field[rocket::phase::StateRef::Orbit(0)]", "value", "dfc-generated"] - - ["::into_state", "Argument[self]", "ReturnValue.Field[rocket::phase::State::Orbit(0)]", "value", "dfc-generated"] - - ["::client_ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::cookies", "Argument[self].Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::cookies_mut", "Argument[self].Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[rocket::request::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::rocket]", "value", "dfc-generated"] - - ["::new", "Argument[2]", "ReturnValue.Field[rocket::request::request::Request::uri]", "value", "dfc-generated"] - - ["::remote", "Argument[self].Field[rocket::request::request::Request::connection].Field[rocket::request::request::ConnectionMeta::remote]", "ReturnValue", "value", "dfc-generated"] - - ["::rocket", "Argument[self].Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::rocket]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::routed_segments", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::set_uri", "Argument[0]", "Argument[self].Field[rocket::request::request::Request::uri]", "value", "dfc-generated"] - - ["::uri", "Argument[self].Field[rocket::request::request::Request::uri]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::max_chunk_size", "Argument[self].Field[rocket::response::body::Body::max_chunk]", "ReturnValue", "value", "dfc-generated"] - - ["::preset_size", "Argument[self].Field[rocket::response::body::Body::size]", "ReturnValue", "value", "dfc-generated"] - - ["::set_max_chunk_size", "Argument[0]", "Argument[self].Field[rocket::response::body::Body::max_chunk]", "value", "dfc-generated"] - - ["::with_sized", "Argument[1]", "ReturnValue.Field[rocket::response::body::Body::size]", "value", "dfc-generated"] - - ["::with_unsized", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::response::debug::Debug(0)]", "value", "dfc-generated"] - - ["::error", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["::success", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["::warning", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::header_adjoin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::join", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_chunk_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::merge", "Argument[0].Field[rocket::response::response::Response::body]", "Argument[self].Field[rocket::response::response::Builder::response].Field[rocket::response::response::Response::body]", "value", "dfc-generated"] - - ["::merge", "Argument[0].Field[rocket::response::response::Response::body]", "ReturnValue.Field[rocket::response::response::Builder::response].Field[rocket::response::response::Response::body]", "value", "dfc-generated"] - - ["::merge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::response::response::Builder::response]", "value", "dfc-generated"] - - ["::raw_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::raw_header_adjoin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::sized_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::streamed_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::body", "Argument[self].Field[rocket::response::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::body_mut", "Argument[self].Field[rocket::response::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::build_from", "Argument[0]", "ReturnValue.Field[rocket::response::response::Builder::response]", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[rocket::response::response::Response::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::join", "Argument[0].Field[rocket::response::response::Response::body]", "Argument[self].Field[rocket::response::response::Response::body]", "value", "dfc-generated"] - - ["::join", "Argument[0].Field[rocket::response::response::Response::status]", "Argument[self].Field[rocket::response::response::Response::status]", "value", "dfc-generated"] - - ["::merge", "Argument[0].Field[rocket::response::response::Response::body]", "Argument[self].Field[rocket::response::response::Response::body]", "value", "dfc-generated"] - - ["::set_status", "Argument[0]", "Argument[self].Field[rocket::response::response::Response::status].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::status", "Argument[self].Field[rocket::response::response::Response::status].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::tagged_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::bytes::ByteStream(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::one::One(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::reader::ReaderStream::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::response::stream::reader::ReaderStream::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::response::stream::reader::ReaderStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::response::stream::reader::ReaderStream::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::response::stream::reader::ReaderStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::event", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::retry", "Argument[0]", "ReturnValue.Field[rocket::response::stream::sse::Event::retry].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_comment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_retry", "Argument[0]", "Argument[self].Field[rocket::response::stream::sse::Event::retry].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_retry", "Argument[0]", "ReturnValue.Field[rocket::response::stream::sse::Event::retry].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_retry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::sse::EventStream::stream]", "value", "dfc-generated"] - - ["::heartbeat", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::text::TextStream(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::rkt::Rocket(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::rkt::Rocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::rkt::Rocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::attach", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::default_tcp_http_server", "Argument[self]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["::manage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::mount", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::register", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::map_base", "Argument[self].Field[rocket::route::route::Route::uri].Field[rocket::route::uri::RouteUri::base]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::map_base", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket::route::route::Route::method]", "value", "dfc-generated"] - - ["::new", "Argument[2]", "ReturnValue.Field[rocket::route::route::Route::handler].Reference", "value", "dfc-generated"] - - ["::ranked", "Argument[1]", "ReturnValue.Field[rocket::route::route::Route::method]", "value", "dfc-generated"] - - ["::ranked", "Argument[3]", "ReturnValue.Field[rocket::route::route::Route::handler].Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::route::uri::RouteUri::origin]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[rocket::route::uri::RouteUri::source]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::default_rank", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::serde::json::Json(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::serde::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::serde::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue.Field[rocket::serde::json::Json(0)]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[rocket::serde::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket::serde::msgpack::MsgPack(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::serde::msgpack::MsgPack(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket::serde::msgpack::MsgPack(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[rocket::serde::msgpack::MsgPack(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::allow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::block", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_response", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::disable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::enable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::state::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::inner", "Argument[self].Field[rocket::state::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[rocket::trip_wire::TripWire::state].Reference", "ReturnValue.Field[rocket::trip_wire::TripWire::state]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[rocket::trip_wire::TripWire::state]", "ReturnValue.Field[rocket::trip_wire::TripWire::state]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket::trip_wire::TripWire::state]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::attribute::param::Dynamic::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::segment]", "value", "dfc-generated"] - - ["::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::span]", "value", "dfc-generated"] - - ["::parse", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::Parameter::Static(0)].Field[rocket_codegen::name::Name::span]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::attribute::param::Guard::source]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::Guard::source]", "value", "dfc-generated"] - - ["::from", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::Guard::fn_ident]", "value", "dfc-generated"] - - ["::from", "Argument[2]", "ReturnValue.Field[rocket_codegen::attribute::param::Guard::ty]", "value", "dfc-generated"] - - ["::dynamic", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::dynamic_mut", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::guard", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Guard(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::ignored", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Ignored(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::segment]", "value", "dfc-generated"] - - ["::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::span]", "value", "dfc-generated"] - - ["::r#static", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Static(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::take_dynamic", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::segment]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::span]", "value", "dfc-generated"] - - ["::new", "Argument[2]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::kind]", "value", "dfc-generated"] - - ["::source", "Argument[0]", "Argument[self].Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["::source", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["::source", "Argument[1]", "Argument[self].Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["::source", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["::source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket_codegen::attribute::route::parse::Route::attr]", "value", "dfc-generated"] - - ["::from", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket_codegen::attribute::route::parse::Route::handler]", "value", "dfc-generated"] - - ["::upgrade_dynamic", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket_codegen::attribute::param::Guard::source]", "value", "dfc-generated"] - - ["::upgrade_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::attribute::route::parse::RouteUri::origin]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_expr", "Argument[self].Field[rocket_codegen::bang::uri_parsing::ArgExpr::Expr(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::unwrap_expr", "Argument[self].Field[rocket_codegen::bang::uri_parsing::ArgExpr::Expr(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::bang::uri_parsing::UriLit(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::derive::form_field::FieldName::Cased(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::derive::form_field::FieldName::Uncased(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::respanned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[rocket_codegen::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[rocket_codegen::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket_codegen::name::Name::span]", "value", "dfc-generated"] - - ["::span", "Argument[self].Field[rocket_codegen::name::Name::span]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_codegen::proc_macro_ext::Diagnostics(0)]", "value", "dfc-generated"] - - ["::head_err_or", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::proc_macro_ext::StringLit(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_codegen::syn_ext::Child::ty]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_codegen::syn_ext::Child::ty].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[rocket_codegen::syn_ext::Child::ty].Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_db_pools::database::Connection(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[rocket_db_pools::database::Connection(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[rocket_db_pools::database::Connection(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::info", "Argument[self].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::fairing::info_kind::Info::name]", "value", "dfc-generated"] - - ["::info", "Argument[self].Field[rocket_db_pools::database::Initializer(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::fairing::info_kind::Info::name]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_shutdown", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_shutdown", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::context", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::context", "Argument[self].Field[rocket_dyn_templates::context::manager::ContextManager(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_dyn_templates::context::manager::ContextManager(0)]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::custom", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::try_custom", "Argument[0]", "ReturnValue.Field[rocket_dyn_templates::fairing::TemplateFairing::callback].Reference", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::header::accept::QMediaType(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_http::header::accept::QMediaType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::media_type", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::media_type", "Argument[self].Field[rocket_http::header::accept::QMediaType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::weight", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["::weight", "Argument[self].Field[rocket_http::header::accept::QMediaType(1)]", "ReturnValue", "value", "dfc-generated"] - - ["::weight_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::weight_or", "Argument[self].Field[1].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::weight_or", "Argument[self].Field[rocket_http::header::accept::QMediaType(1)].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::header::content_type::ContentType(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_http::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::media_type", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::media_type", "Argument[self].Field[rocket_http::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::with_params", "Argument[self].Field[0]", "ReturnValue.Field[rocket_http::header::content_type::ContentType(0)]", "value", "dfc-generated"] - - ["::with_params", "Argument[self].Field[rocket_http::header::content_type::ContentType(0)]", "ReturnValue.Field[rocket_http::header::content_type::ContentType(0)]", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[rocket_http::header::header::Header::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::value", "Argument[self].Field[rocket_http::header::header::Header::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::const_new", "Argument[2]", "ReturnValue.Field[rocket_http::header::media_type::MediaType::params].Field[rocket_http::header::media_type::MediaParams::Static(0)]", "value", "dfc-generated"] - - ["::known_source", "Argument[self].Field[rocket_http::header::media_type::MediaType::source].Field[rocket_http::header::media_type::Source::Known(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::new_known", "Argument[0]", "ReturnValue.Field[rocket_http::header::media_type::MediaType::source].Field[rocket_http::header::media_type::Source::Known(0)]", "value", "dfc-generated"] - - ["::new_known", "Argument[3]", "ReturnValue.Field[rocket_http::header::media_type::MediaType::params].Field[rocket_http::header::media_type::MediaParams::Static(0)]", "value", "dfc-generated"] - - ["::with_params", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::header::media_type::Source::Custom(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_http::listener::Incoming::listener]", "value", "dfc-generated"] - - ["::nodelay", "Argument[0]", "Argument[self].Field[rocket_http::listener::Incoming::nodelay]", "value", "dfc-generated"] - - ["::nodelay", "Argument[0]", "ReturnValue.Field[rocket_http::listener::Incoming::nodelay]", "value", "dfc-generated"] - - ["::nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sleep_on_errors", "Argument[0]", "Argument[self].Field[rocket_http::listener::Incoming::sleep_on_errors]", "value", "dfc-generated"] - - ["::sleep_on_errors", "Argument[0]", "ReturnValue.Field[rocket_http::listener::Incoming::sleep_on_errors]", "value", "dfc-generated"] - - ["::sleep_on_errors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[pear::input::cursor::Extent::end]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[pear::input::cursor::Extent::start]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "value", "dfc-generated"] - - ["::add", "Argument[0].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::add", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::coerce", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::coerce", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::coerce_lifetime", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::coerce_lifetime", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::from_cow_source", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_source", "Argument[0].Field[core::option::Option::Some(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_source", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::indices", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::indices", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::into_concrete", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::parse::uri::error::Error::index]", "ReturnValue.Field[rocket_http::parse::uri::error::Error::index]", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[rocket_http::parse::uri::error::Error::index]", "ReturnValue", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::html_escape", "Argument[self].Field[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["::html_escape", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["::split_at_byte", "Argument[self].Element", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["::split_at_byte", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::url_decode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::url_decode_lossy", "Argument[self].Field[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["::url_decode_lossy", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::raw_str::RawStrBuf(0)]", "value", "dfc-generated"] - - ["::into_string", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_string", "Argument[self].Field[rocket_http::raw_str::RawStrBuf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::respond_to", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_http::status::Status::code]", "value", "dfc-generated"] - - ["::visit_i64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::visit_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::peer_address", "Argument[self].Field[rocket_http::tls::listener::TlsStream::remote]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::peer_certificates", "Argument[self].Field[rocket_http::tls::listener::TlsStream::certs].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::peer_certificates", "Argument[self].Field[rocket_http::tls::listener::TlsStream::certs]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_http::tls::mtls::Certificate::x509].Field[x509_parser::certificate::X509Certificate::tbs_certificate]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[rocket_http::tls::mtls::Certificate::data].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::has_serial", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0].Field[nom::internal::Err::Error(0)]", "ReturnValue.Field[rocket_http::tls::mtls::Error::Parse(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[nom::internal::Err::Failure(0)]", "ReturnValue.Field[rocket_http::tls::mtls::Error::Parse(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[nom::internal::Err::Incomplete(0)].Field[nom::internal::Needed::Size(0)]", "ReturnValue.Field[rocket_http::tls::mtls::Error::Incomplete(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_http::tls::mtls::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Absolute(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::uri::absolute::Absolute::scheme].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::scheme].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::uri::absolute::Absolute::scheme].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::scheme].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::prepend", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::authority", "Argument[self].Field[rocket_http::uri::absolute::Absolute::authority].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::const_new", "Argument[1]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::authority]", "value", "dfc-generated"] - - ["::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[rocket_http::uri::absolute::Absolute::path]", "ReturnValue.Field[rocket_http::uri::path_query::Path::data].Reference", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[rocket_http::uri::absolute::Absolute::source]", "ReturnValue.Field[rocket_http::uri::path_query::Path::source].Reference", "value", "dfc-generated"] - - ["::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::raw", "Argument[2]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::authority]", "value", "dfc-generated"] - - ["::scheme", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::set_authority", "Argument[0]", "Argument[self].Field[rocket_http::uri::absolute::Absolute::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_authority", "Argument[0]", "Argument[self].Field[rocket_http::uri::absolute::Absolute::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_authority", "Argument[0]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::with_authority", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Authority(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::uri::authority::Authority::host].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::uri::authority::Authority::host].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::uri::authority::Authority::host].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::uri::authority::Authority::host].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::const_new", "Argument[2]", "ReturnValue.Field[rocket_http::uri::authority::Authority::port]", "value", "dfc-generated"] - - ["::host", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::port", "Argument[self].Field[rocket_http::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] - - ["::raw", "Argument[3]", "ReturnValue.Field[rocket_http::uri::authority::Authority::port]", "value", "dfc-generated"] - - ["::user_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_http::uri::fmt::formatter::Formatter::inner]", "value", "dfc-generated"] - - ["::render", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::render", "Argument[self].Field[rocket_http::uri::fmt::formatter::PrefixedRouteUri(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::render", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::render", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::render", "Argument[self].Field[rocket_http::uri::fmt::formatter::SuffixedRouteUri(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::host::Host(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_http::uri::host::Host(0)]", "value", "dfc-generated"] - - ["::port", "Argument[self].Field[0].Field[rocket_http::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] - - ["::port", "Argument[self].Field[rocket_http::uri::host::Host(0)].Field[rocket_http::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] - - ["::to_absolute", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Origin(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::map_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::path", "Argument[self].Field[rocket_http::uri::origin::Origin::path]", "ReturnValue.Field[rocket_http::uri::path_query::Path::data].Reference", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[rocket_http::uri::origin::Origin::source]", "ReturnValue.Field[rocket_http::uri::path_query::Path::source].Reference", "value", "dfc-generated"] - - ["::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::raw", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::uri::path_query::Data::value].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::uri::path_query::Data::value].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::uri::path_query::Data::value].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::uri::path_query::Data::value].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[rocket_http::uri::origin::Origin::path]", "ReturnValue.Field[rocket_http::uri::reference::Reference::path]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[rocket_http::uri::origin::Origin::query]", "ReturnValue.Field[rocket_http::uri::reference::Reference::query]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[rocket_http::uri::origin::Origin::source]", "ReturnValue.Field[rocket_http::uri::reference::Reference::source]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::reference::Reference::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Reference(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::prepend", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::authority", "Argument[self].Field[rocket_http::uri::reference::Reference::authority].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::const_new", "Argument[1]", "ReturnValue.Field[rocket_http::uri::reference::Reference::authority]", "value", "dfc-generated"] - - ["::fragment", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[rocket_http::uri::reference::Reference::path]", "ReturnValue.Field[rocket_http::uri::path_query::Path::data].Reference", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[rocket_http::uri::reference::Reference::source]", "ReturnValue.Field[rocket_http::uri::path_query::Path::source].Reference", "value", "dfc-generated"] - - ["::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::raw", "Argument[2]", "ReturnValue.Field[rocket_http::uri::reference::Reference::authority]", "value", "dfc-generated"] - - ["::scheme", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::with_query_fragment_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from_segments", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[rocket_http::uri::segments::Segments::source]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[rocket_http::uri::segments::Segments::segments]", "value", "dfc-generated"] - - ["::skip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Absolute(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Authority(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Origin(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Reference(0)]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "value", "dfc-generated"] - - ["::absolute", "Argument[self].Field[rocket_http::uri::uri::Uri::Absolute(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::authority", "Argument[self].Field[rocket_http::uri::uri::Uri::Authority(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::origin", "Argument[self].Field[rocket_http::uri::uri::Uri::Origin(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::reference", "Argument[self].Field[rocket_http::uri::uri::Uri::Reference(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fairing", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_sync_db_pools::error::Error::Config(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[rocket_sync_db_pools::error::Error::Pool(0)]", "value", "dfc-generated"] - - ["::io", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::io", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::io", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::io", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::accept_key", "Argument[self].Field[rocket_ws::websocket::WebSocket::key]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::channel", "Argument[0]", "ReturnValue.Field[rocket_ws::websocket::Channel::handler].Reference", "value", "dfc-generated"] - - ["::channel", "Argument[self]", "ReturnValue.Field[rocket_ws::websocket::Channel::ws]", "value", "dfc-generated"] - - ["::config", "Argument[0]", "Argument[self].Field[rocket_ws::websocket::WebSocket::config]", "value", "dfc-generated"] - - ["::config", "Argument[0]", "ReturnValue.Field[rocket_ws::websocket::WebSocket::config]", "value", "dfc-generated"] - - ["::config", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::stream", "Argument[0]", "ReturnValue.Field[rocket_ws::websocket::MessageStream::handler].Reference", "value", "dfc-generated"] - - ["::stream", "Argument[self]", "ReturnValue.Field[rocket_ws::websocket::MessageStream::ws]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[rocket_http::tls::mtls::Certificate::x509].Field[x509_parser::certificate::X509Certificate::tbs_certificate]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[rocket_http::tls::mtls::Certificate::data].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::has_serial", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::finalize", "Argument[0].Field[rocket::form::from_form::MapContext::errors]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::init", "Argument[0]", "ReturnValue.Field[rocket::form::from_form::MapContext::opts]", "value", "dfc-generated"] - - ["::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::ty", "Argument[self].Field[syn::ty::ReturnType::Type(1)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_launch", "Argument[self].Field[tls::redirector::Redirector::port]", "Argument[0].Field[rocket::config::config::Config::port]", "value", "dfc-generated"] - - ["::raw", "Argument[1]", "ReturnValue.Field[todo::Context::flash]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["rocket::form::validate::try_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["rocket::form::validate::with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["rocket_codegen::derive::form_field::first_duplicate", "Argument[0].Element", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["rocket_http::parse::uri::parser::complete::complete", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["rocket_http::parse::uri::parser::complete", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["rocket_http::parse::uri::scheme_from_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["rocket_http::uri::uri::as_utf8_unchecked", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModel - data: - - ["::from_request", "Argument[0]", "pointer-access", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::from_uri_param", "Argument[0]", "pointer-access", "df-generated"] - - ["::from_uri_param", "Argument[0]", "pointer-access", "df-generated"] - - ["::render", "Argument[0]", "log-injection", "df-generated"] - - ["::signal_stream", "Argument[self]", "log-injection", "df-generated"] - - ["::limit", "Argument[self]", "log-injection", "df-generated"] - - ["::add", "Argument[self]", "log-injection", "df-generated"] - - ["::append", "Argument[self]", "log-injection", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::handle", "Argument[0]", "pointer-access", "df-generated"] - - ["::log", "Argument[0]", "pointer-access", "df-generated"] - - ["::expect", "Argument[0]", "log-injection", "df-generated"] - - ["::client_ip", "Argument[self]", "pointer-access", "df-generated"] - - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["::respond_to", "Argument[self]", "pointer-access", "df-generated"] - - ["::dispatch", "Argument[1]", "log-injection", "df-generated"] - - ["::handle_error", "Argument[0]", "log-injection", "df-generated"] - - ["::matches", "Argument[0]", "log-injection", "df-generated"] - - ["::from", "Argument[0]", "pointer-access", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::render", "Argument[self]", "log-injection", "df-generated"] - - ["::finalize", "Argument[0]", "log-injection", "df-generated"] - - ["::respond_to", "Argument[self]", "log-injection", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::raw", "Argument[4]", "pointer-access", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::raw", "Argument[1]", "pointer-access", "df-generated"] - - ["::render", "Argument[self]", "pointer-access", "df-generated"] - - ["::with_suffix", "Argument[self]", "pointer-access", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::append", "Argument[1]", "pointer-access", "df-generated"] - - ["::new", "Argument[1]", "pointer-access", "df-generated"] - - ["::raw", "Argument[2]", "pointer-access", "df-generated"] - - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["::raw", "Argument[1]", "pointer-access", "df-generated"] - - ["::raw", "Argument[4]", "pointer-access", "df-generated"] - - ["::raw", "Argument[5]", "pointer-access", "df-generated"] - - ["::render", "Argument[0]", "log-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModel - data: - - ["::open", "ReturnValue", "file", "df-generated"] - - ["::open", "ReturnValue", "file", "df-generated"] From 862adec081f33ecdc47d040ab4126115d43ff10e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 7 Jan 2026 13:51:42 +0100 Subject: [PATCH 136/263] Rust: Disable dynamic dispatch when generating models --- .../rust/dataflow/internal/DataFlowImpl.qll | 22 ++++++++++++-- .../dataflow/internal/TaintTrackingImpl.qll | 23 +++++++++----- .../modelgenerator/internal/CaptureModels.qll | 30 ++++++++++--------- 3 files changed, 51 insertions(+), 24 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index f0da3cd38f7..12fe49ac97b 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -306,7 +306,11 @@ predicate indexAssignment( not index.getResolvedTarget().fromSource() } -module RustDataFlow implements InputSig { +signature module RustDataFlowInputSig { + predicate includeDynamicTargets(); +} + +module RustDataFlowGen implements InputSig { private import Aliases private import codeql.rust.dataflow.DataFlow private import Node as Node @@ -462,7 +466,11 @@ module RustDataFlow implements InputSig { /** Gets a viable implementation of the target of the given `Call`. */ DataFlowCallable viableCallable(DataFlowCall call) { exists(Call c | c = call.asCall() | - result.asCfgScope() = c.getARuntimeTarget() + ( + if Input::includeDynamicTargets() + then result.asCfgScope() = c.getARuntimeTarget() + else result.asCfgScope() = c.getStaticTarget() + ) or result.asSummarizedCallable() = getStaticTargetExt(c) ) @@ -935,6 +943,12 @@ module RustDataFlow implements InputSig { class DataFlowSecondLevelScope = Void; } +module RustDataFlowInput implements RustDataFlowInputSig { + predicate includeDynamicTargets() { any() } +} + +module RustDataFlow = RustDataFlowGen; + /** Provides logic related to captured variables. */ module VariableCapture { private import codeql.rust.internal.CachedStages @@ -1110,7 +1124,7 @@ private module Cached { } cached - newtype TParameterPosition = + newtype TParameterPositionImpl = TPositionalParameterPosition(int i) { i in [0 .. max([any(ParamList l).getNumberOfParams(), any(ArgList l).getNumberOfArgs()]) - 1] or @@ -1121,6 +1135,8 @@ private module Cached { TClosureSelfParameterPosition() or TSelfParameterPosition() + final class TParameterPosition = TParameterPositionImpl; + cached newtype TReturnKind = TNormalReturnKind() diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index a7c58c53dd1..f75c0166762 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -1,8 +1,9 @@ private import rust +private import codeql.dataflow.DataFlow as DF private import codeql.dataflow.TaintTracking -private import codeql.rust.dataflow.DataFlow +private import codeql.rust.dataflow.DataFlow as RustDataFlow private import codeql.rust.dataflow.FlowSummary -private import DataFlowImpl +private import DataFlowImpl as DataFlowImpl private import Node as Node private import Content private import FlowSummaryImpl as FlowSummaryImpl @@ -29,7 +30,11 @@ private predicate excludedTaintStepContent(Content c) { ) } -module RustTaintTracking implements InputSig { +module RustTaintTrackingGen implements + InputSig> +{ + private module DataFlow = DataFlowImpl::RustDataFlowGen; + predicate defaultTaintSanitizer(DataFlow::Node node) { none() } /** @@ -53,7 +58,7 @@ module RustTaintTracking implements InputSig { // is tainted and an operation reads from `foo` (e.g., `foo.bar`) then // taint is propagated. exists(ContentSet cs | - RustDataFlow::readStep(pred, cs, succ) and + DataFlow::readStep(pred, cs, succ) and not excludedTaintStepContent(cs.getAReadContent()) ) or @@ -70,9 +75,11 @@ module RustTaintTracking implements InputSig { ) or succ.(Node::PostUpdateNode).getPreUpdateNode().asExpr() = - getPostUpdateReverseStep(pred.(Node::PostUpdateNode).getPreUpdateNode().asExpr(), false) + DataFlowImpl::getPostUpdateReverseStep(pred.(Node::PostUpdateNode) + .getPreUpdateNode() + .asExpr(), false) or - indexAssignment(any(CompoundAssignmentExpr cae), + DataFlowImpl::indexAssignment(any(CompoundAssignmentExpr cae), pred.(Node::PostUpdateNode).getPreUpdateNode().asExpr(), _, succ, _) ) or @@ -92,7 +99,7 @@ module RustTaintTracking implements InputSig { c instanceof ReferenceContent ) and // Optional steps are added through isAdditionalFlowStep but we don't want the implicit reads - not optionalStep(node, _, _) + not DataFlowImpl::optionalStep(node, _, _) } /** @@ -101,3 +108,5 @@ module RustTaintTracking implements InputSig { */ predicate speculativeTaintStep(DataFlow::Node src, DataFlow::Node sink) { none() } } + +module RustTaintTracking = RustTaintTrackingGen; diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 95cde0a8637..fb71423503d 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -7,6 +7,7 @@ private import codeql.rust.dataflow.internal.Content private import codeql.rust.dataflow.FlowSource as FlowSource private import codeql.rust.dataflow.FlowSink as FlowSink private import codeql.rust.dataflow.internal.TaintTrackingImpl +private import codeql.rust.dataflow.internal.TaintTrackingImpl as TaintTrackingImpl private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl private import codeql.rust.dataflow.internal.FlowSummaryImpl as FlowSummary @@ -42,9 +43,15 @@ class QualifiedCallable extends TCallable { string getCanonicalPath() { result = path } } -module ModelGeneratorCommonInput implements - ModelGeneratorCommonInputSig -{ +private module RustDataFlowInput implements DataFlowImpl::RustDataFlowInputSig { + predicate includeDynamicTargets() { none() } +} + +module RustDataFlow = DataFlowImpl::RustDataFlowGen; + +module RustTaintTracking = TaintTrackingImpl::RustTaintTrackingGen; + +module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig { // NOTE: We are not using type information for now. class Type = Unit; @@ -71,9 +78,8 @@ module ModelGeneratorCommonInput implements string parameterExactAccess(R::ParamBase p) { result = - "Argument[" + - any(DataFlowImpl::RustDataFlow::ParameterPosition pos | p = pos.getParameterIn(_)) - .toString() + "]" + "Argument[" + any(RustDataFlow::ParameterPosition pos | p = pos.getParameterIn(_)).toString() + + "]" } string parameterApproximateAccess(R::ParamBase p) { result = parameterExactAccess(p) } @@ -83,16 +89,12 @@ module ModelGeneratorCommonInput implements } bindingset[c] - string paramReturnNodeAsApproximateOutput( - QualifiedCallable c, DataFlowImpl::RustDataFlow::ParameterPosition pos - ) { + string paramReturnNodeAsApproximateOutput(QualifiedCallable c, RustDataFlow::ParameterPosition pos) { result = paramReturnNodeAsExactOutput(c, pos) } bindingset[c] - string paramReturnNodeAsExactOutput( - QualifiedCallable c, DataFlowImpl::RustDataFlow::ParameterPosition pos - ) { + string paramReturnNodeAsExactOutput(QualifiedCallable c, RustDataFlow::ParameterPosition pos) { result = parameterExactAccess(c.getFunction().getParam(pos.getPosition())) or pos.isSelf() and result = qualifierString() @@ -102,7 +104,7 @@ module ModelGeneratorCommonInput implements result.getFunction() = ret.(Node::Node).getEnclosingCallable().asCfgScope() } - predicate isOwnInstanceAccessNode(DataFlowImpl::RustDataFlow::ReturnNode node) { + predicate isOwnInstanceAccessNode(RustDataFlow::ReturnNode node) { // This is probably not relevant to implement for Rust, as we only use // `captureMixedFlow` which doesn't explicitly distinguish between // functions that return `self` and those that don't. @@ -121,7 +123,7 @@ module ModelGeneratorCommonInput implements } private import ModelGeneratorCommonInput -private import MakeModelGeneratorFactory +private import MakeModelGeneratorFactory private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { class SummaryTargetApi extends QualifiedCallable { From d78491294ad734775a706fc2a2fcc67a1eaabbd9 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 Jan 2026 10:39:26 +0100 Subject: [PATCH 137/263] Rust: Exclude reqwest response timeout field as a taint step --- rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml b/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml index 4b728a9a6ad..6c46e835c4f 100644 --- a/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml @@ -29,3 +29,8 @@ extensions: - ["::text", "Argument[self]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::bytes", "Argument[self]", "ReturnValue.Future.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::chunk", "Argument[self].Reference", "ReturnValue.Future.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "taint", "manual"] + - addsTo: + pack: codeql/rust-all + extensible: excludeFieldTaintStep + data: + - ["reqwest::blocking::response::Response::timeout"] From da43e8cad82bcfdcebf2c36734261c4d3fb5e9cf Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 7 Jan 2026 10:14:59 +0100 Subject: [PATCH 138/263] Rust: Regenerate models --- rust/ql/lib/ext/generated/actix-web.model.yml | 1276 ++- rust/ql/lib/ext/generated/clap.model.yml | 740 +- rust/ql/lib/ext/generated/hyper.model.yml | 512 +- rust/ql/lib/ext/generated/libc.model.yml | 66 +- rust/ql/lib/ext/generated/log.model.yml | 119 +- rust/ql/lib/ext/generated/memchr.model.yml | 374 +- rust/ql/lib/ext/generated/once_cell.model.yml | 44 +- rust/ql/lib/ext/generated/rand.model.yml | 181 +- rust/ql/lib/ext/generated/reqwest.model.yml | 351 +- rust/ql/lib/ext/generated/rust.model.yml | 7885 +++++++++++------ rust/ql/lib/ext/generated/serde.model.yml | 226 +- rust/ql/lib/ext/generated/smallvec.model.yml | 38 +- rust/ql/lib/ext/generated/tokio.model.yml | 2656 ++++-- .../dataflow/modeled/inline-flow.expected | 76 +- .../sources/database/InlineFlow.expected | 35 +- .../dataflow/sources/file/InlineFlow.expected | 20 +- .../strings/inline-taint-flow.expected | 32 +- .../dataflow/taint/inline-taint-flow.expected | 2 - .../security/CWE-022/TaintedPath.expected | 6 +- .../UncontrolledAllocationSize.expected | 71 +- .../test/query-tests/security/CWE-770/main.rs | 4 +- .../HardcodedCryptographicValue.expected | 30 +- .../CWE-825/AccessAfterLifetime.expected | 17 +- 23 files changed, 9723 insertions(+), 5038 deletions(-) diff --git a/rust/ql/lib/ext/generated/actix-web.model.yml b/rust/ql/lib/ext/generated/actix-web.model.yml index e925255eb83..eb476d0ea58 100644 --- a/rust/ql/lib/ext/generated/actix-web.model.yml +++ b/rust/ql/lib/ext/generated/actix-web.model.yml @@ -4,11 +4,18 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as actix_http::header::as_name::Sealed>::try_as_name", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] + - ["<& as actix_http::header::into_value::TryIntoHeaderValue>::try_into_value", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["<& as actix_http::header::into_value::TryIntoHeaderValue>::try_into_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as actix_router::pattern::IntoPatterns>::patterns", "Argument[self].Reference.Reference", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)]", "value", "dfc-generated"] + - ["<& as actix_router::resource_path::ResourcePath>::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<() as awc::middleware::Transform>::new_transform", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<(,,) as actix_http::header::into_pair::TryIntoHeaderPair>::try_into_pair", "Argument[self].Field[0].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] + - ["<(,,) as actix_http::header::into_pair::TryIntoHeaderPair>::try_into_pair", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_files::directory::Directory::base]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_files::directory::Directory::path]", "value", "dfc-generated"] - - ["::new_service", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::default_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::disable_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -17,6 +24,7 @@ extensions: - ["::index_file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::method_guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mime_override", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::path_filter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::prefer_utf8", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::redirect_to_slash_directory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -25,21 +33,21 @@ extensions: - ["::use_guards", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::use_hidden_files", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::use_last_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::new_service", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Field[actix_files::named::NamedFile::file]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_files::named::NamedFile::file]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::content_disposition", "Argument[self].Field[actix_files::named::NamedFile::content_disposition]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::content_encoding", "Argument[self].Field[actix_files::named::NamedFile::encoding]", "ReturnValue", "value", "dfc-generated"] - - ["::content_type", "Argument[self].Field[actix_files::named::NamedFile::content_type]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_truncate", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::content_disposition", "Argument[self].Reference.Field[actix_files::named::NamedFile::content_disposition]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::content_encoding", "Argument[self].Reference.Field[actix_files::named::NamedFile::encoding]", "ReturnValue", "value", "dfc-generated"] + - ["::content_type", "Argument[self].Reference.Field[actix_files::named::NamedFile::content_type]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::disable_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::etag", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::file", "Argument[self].Field[actix_files::named::NamedFile::file]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::file", "Argument[self].Reference.Field[actix_files::named::NamedFile::file]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_file", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_files::named::NamedFile::file]", "value", "dfc-generated"] - - ["::last_modified", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::metadata", "Argument[self].Field[actix_files::named::NamedFile::md]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::modified", "Argument[self].Field[actix_files::named::NamedFile::modified]", "ReturnValue", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[actix_files::named::NamedFile::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[actix_files::named::NamedFile::path]", "ReturnValue", "value", "dfc-generated"] + - ["::metadata", "Argument[self].Reference.Field[actix_files::named::NamedFile::md]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::modified", "Argument[self].Reference.Field[actix_files::named::NamedFile::modified]", "ReturnValue", "value", "dfc-generated"] + - ["::path", "Argument[self].Reference.Field[actix_files::named::NamedFile::path]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::prefer_utf8", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_content_disposition", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::content_disposition]", "value", "dfc-generated"] - ["::set_content_disposition", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::content_disposition]", "value", "dfc-generated"] @@ -55,35 +63,36 @@ extensions: - ["::set_status_code", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::use_etag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::use_last_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[actix_files::named::NamedFileService::path].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[actix_files::named::NamedFileService::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::call", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_files::service::FilesService(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_io", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[actix_files::path_buf::PathBufWrap(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_files::service::FilesService(0)].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[actix_files::service::FilesService(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_files::service::FilesService(0)].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[actix_files::service::FilesService(0)].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_files::service::FilesService(0)]", "ReturnValue.Field[actix_files::service::FilesService(0)]", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_files::service::FilesService(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::body::body_stream::BodyStream::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::body_stream::BodyStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::body_stream::BodyStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::boxed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::try_into_bytes", "Argument[self].Field[actix_http::body::boxed::BoxBody(0)].Field[actix_http::body::boxed::BoxBodyInner::Bytes(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_pin_mut", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::as_pin_mut", "Argument[self]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::as_pin_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::as_pin_mut", "Argument[self]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::left", "Argument[0]", "ReturnValue.Field[actix_http::body::either::EitherBody::Left::body]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::body::either::EitherBody::Left::body]", "value", "dfc-generated"] + - ["::right", "Argument[0]", "ReturnValue.Field[actix_http::body::either::EitherBody::Right::body]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::body::message_body::MessageBodyMapErr::body]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_http::body::message_body::MessageBodyMapErr::mapper].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::message_body::MessageBodyMapErr::body]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::message_body::MessageBodyMapErr::mapper]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::message_body::MessageBodyMapErr::body]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::message_body::MessageBodyMapErr::mapper]", "ReturnValue", "value", "dfc-generated"] - - ["::size", "Argument[self].Field[actix_http::body::sized_stream::SizedStream::size]", "ReturnValue.Field[actix_http::body::size::BodySize::Sized(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::body::size::BodySize::Sized(0)]", "ReturnValue.Field[actix_http::body::size::BodySize::Sized(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::body::size::BodySize::Sized(0)]", "ReturnValue.Field[actix_http::body::size::BodySize::Sized(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size", "Argument[self].Reference.Field[actix_http::body::sized_stream::SizedStream::size]", "ReturnValue.Field[actix_http::body::size::BodySize::Sized(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::body::sized_stream::SizedStream::size]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_http::body::sized_stream::SizedStream::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::sized_stream::SizedStream::size]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::sized_stream::SizedStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::sized_stream::SizedStream::size]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::sized_stream::SizedStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::client_disconnect", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] - ["::client_disconnect", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] - ["::client_disconnect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -111,17 +120,31 @@ extensions: - ["::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::secure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::config::ServiceConfig(0)].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[actix_http::config::ServiceConfig(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::config::ServiceConfig(0)].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[actix_http::config::ServiceConfig(0)].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::config::ServiceConfig(0)]", "ReturnValue.Field[actix_http::config::ServiceConfig(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::keep_alive", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::keep_alive_deadline", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::now", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::secure", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_date_header_value", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::date::Date::bytes]", "ReturnValue.Field[actix_http::date::Date::bytes]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::date::Date::pos]", "ReturnValue.Field[actix_http::date::Date::pos].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::date::Date::pos]", "ReturnValue.Field[actix_http::date::Date::pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::now", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::with_date", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::from_headers", "Argument[0]", "ReturnValue.Field[actix_http::encoding::decoder::Decoder::stream]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::encoding::decoder::Decoder::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::try_into_bytes", "Argument[self].Field[actix_http::encoding::encoder::Encoder::body]", "ReturnValue.Field[core::result::Result::Err(0)].Field[actix_http::encoding::encoder::Encoder::body]", "value", "dfc-generated"] - - ["::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_into_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::response", "Argument[2]", "ReturnValue.Field[actix_http::encoding::encoder::Encoder::body].Field[actix_http::encoding::encoder::EncoderBody::Stream::body]", "value", "dfc-generated"] + - ["::try_into_bytes", "Argument[self].Field[actix_http::encoding::encoder::EncoderBody::Full::body]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::source", "Argument[self].Field[actix_http::encoding::encoder::EncoderError::Io(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::error::DispatchError::Body(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::error::DispatchError::H2(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::error::DispatchError::Io(0)]", "value", "dfc-generated"] @@ -130,99 +153,160 @@ extensions: - ["::source", "Argument[self].Field[actix_http::error::DispatchError::H2(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::source", "Argument[self].Field[actix_http::error::DispatchError::Io(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::source", "Argument[self].Field[actix_http::error::DispatchError::Parse(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::with_cause", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::source", "Argument[self].Field[actix_http::error::PayloadError::Http2Payload(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::source", "Argument[self].Field[actix_http::error::PayloadError::Incomplete(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::source", "Argument[self].Field[actix_http::error::PayloadError::Io(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[actix_http::extensions::NoOpHasher(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::write_u64", "Argument[0]", "Argument[self].Field[0]", "value", "dfc-generated"] - - ["::write_u64", "Argument[0]", "Argument[self].Field[actix_http::extensions::NoOpHasher(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::finish", "Argument[self].Reference.Field[actix_http::extensions::NoOpHasher(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::write_u64", "Argument[0]", "Argument[self].Reference.Field[actix_http::extensions::NoOpHasher(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::h1::Message::Item(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::chunk", "Argument[self].Field[actix_http::h1::Message::Chunk(0)].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::message", "Argument[self].Field[actix_http::h1::Message::Item(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::encode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_payload_codec", "Argument[self].Field[actix_http::h1::client::ClientCodec::inner]", "ReturnValue.Field[actix_http::h1::client::ClientPayloadCodec::inner]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::h1::client::ClientCodec::inner].Field[actix_http::h1::client::ClientCodecInner::config]", "value", "dfc-generated"] - ["::into_message_codec", "Argument[self].Field[actix_http::h1::client::ClientPayloadCodec::inner]", "ReturnValue.Field[actix_http::h1::client::ClientCodec::inner]", "value", "dfc-generated"] - - ["::config", "Argument[self].Field[actix_http::h1::codec::Codec::config]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_truncate", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::encode", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::config", "Argument[self].Reference.Field[actix_http::h1::codec::Codec::config]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::h1::codec::Codec::config]", "value", "dfc-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_truncate", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::length", "Argument[0]", "ReturnValue.Field[actix_http::h1::decoder::PayloadDecoder::kind].Field[actix_http::h1::decoder::Kind::Length(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::h1::decoder::PayloadItem::Chunk(0)]", "ReturnValue.Field[actix_http::h1::decoder::PayloadItem::Chunk(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::chunk", "Argument[self].Field[actix_http::h1::decoder::PayloadItem::Chunk(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::unwrap", "Argument[self].Field[actix_http::h1::decoder::PayloadType::Payload(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::dispatcher::Dispatcher::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::dispatcher::Dispatcher::poll_count]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::dispatcher::Dispatcher::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::dispatcher::Dispatcher::poll_count]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::encode", "Argument[self].Field[actix_http::h1::encoder::TransferEncoding::kind].Field[actix_http::h1::encoder::TransferEncodingKind::Chunked(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_truncate", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::encode_chunk", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::encode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::length", "Argument[0]", "ReturnValue.Field[actix_http::h1::encoder::TransferEncoding::kind].Field[actix_http::h1::encoder::TransferEncodingKind::Length(0)]", "value", "dfc-generated"] - - ["::new_service", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::expect", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::expect]", "value", "dfc-generated"] - ["::on_connect_ext", "Argument[0]", "Argument[self].Field[actix_http::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] - ["::on_connect_ext", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] - ["::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::upgrade", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::upgrade]", "value", "dfc-generated"] - ["::with_config", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::cfg]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::h1::utils::SendResponse::framed].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[1].Field[actix_http::responses::response::Response::body]", "ReturnValue.Field[actix_http::h1::utils::SendResponse::body].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::body]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::framed]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::res]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::body]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::framed]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::res]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::h2::Payload::stream]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::connection]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::flow]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::config]", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::peer_addr]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new_service", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::on_connect_ext", "Argument[0]", "Argument[self].Field[actix_http::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] - ["::on_connect_ext", "Argument[0]", "ReturnValue.Field[actix_http::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] - ["::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::with_config", "Argument[0]", "ReturnValue.Field[actix_http::h2::service::H2Service::cfg]", "value", "dfc-generated"] - ["::call", "Argument[0].Field[1]", "ReturnValue.Field[actix_http::h2::service::H2ServiceHandlerResponse::state].Field[actix_http::h2::service::State::Handshake(2)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[actix_http::header::map::Removed::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_http::header::map::Value::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::map::HeaderMap::inner].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[actix_http::header::map::HeaderMap::inner].Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::map::HeaderMap::inner]", "ReturnValue.Field[actix_http::header::map::HeaderMap::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::map::Value::inner]", "ReturnValue.Field[actix_http::header::map::Value::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_http::header::map::Value::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::shared::charset::Charset::Ext(0)]", "ReturnValue.Field[actix_http::header::shared::charset::Charset::Ext(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::shared::extended::ExtendedValue::language_tag]", "ReturnValue.Field[actix_http::header::shared::extended::ExtendedValue::language_tag]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::shared::extended::ExtendedValue::value]", "ReturnValue.Field[actix_http::header::shared::extended::ExtendedValue::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::shared::http_date::HttpDate(0)]", "ReturnValue.Field[actix_http::header::shared::http_date::HttpDate(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::http_date::HttpDate(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::shared::quality::Quality(0)]", "ReturnValue.Field[actix_http::header::shared::quality::Quality(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::shared::quality::Quality(0)]", "ReturnValue.Field[actix_http::header::shared::quality::Quality(0)]", "value", "dfc-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::max", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - ["::min", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::quality]", "value", "dfc-generated"] - ["::zero", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[core::option::Option::Some(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[actix_http::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::header::shared::quality_item::tests::Encoding::EncodingExt(0)]", "ReturnValue.Field[actix_http::header::shared::quality_item::tests::Encoding::EncodingExt(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::keep_alive::KeepAlive::Timeout(0)]", "ReturnValue.Field[actix_http::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[actix_http::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] - - ["::duration", "Argument[self].Field[actix_http::keep_alive::KeepAlive::Timeout(0)].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::duration", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::normalize", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_http::message::Message::head].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_http::message::Message::head]", "ReturnValue.Reference.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_http::message::Message::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_truncate", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::H1::payload]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::H2::payload].Field[actix_http::h2::Payload::stream]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::H2::payload]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::Stream::payload]", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers_mut", "Argument[self].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[actix_http::requests::head::RequestHeadType::Owned(0)].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self].Reference.Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::headers_mut", "Argument[self].Reference.Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::extra_headers", "Argument[self].Field[actix_http::requests::head::RequestHeadType::Rc(1)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ref", "Argument[self].Field[actix_http::requests::head::RequestHeadType::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::requests::head::RequestHeadType::Owned(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::extra_headers", "Argument[self].Field[actix_http::requests::head::RequestHeadType::Rc(1)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::headers_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::requests::request::Request::head]", "value", "dfc-generated"] - - ["::head", "Argument[self].Field[actix_http::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::head_mut", "Argument[self].Field[actix_http::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::head", "Argument[self].Reference.Field[actix_http::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::head_mut", "Argument[self].Reference.Field[actix_http::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_http::requests::request::Request::head]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_http::requests::request::Request::payload]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::method", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::payload", "Argument[self].Field[actix_http::requests::request::Request::payload]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::payload", "Argument[self].Reference.Field[actix_http::requests::request::Request::payload]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::replace_payload", "Argument[0]", "ReturnValue.Field[0].Field[actix_http::requests::request::Request::payload]", "value", "dfc-generated"] - ["::uri", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -230,6 +314,7 @@ extensions: - ["::with_payload", "Argument[0]", "ReturnValue.Field[actix_http::requests::request::Request::payload]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_http::responses::builder::ResponseBuilder::head].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::body", "Argument[0]", "ReturnValue.Field[actix_http::responses::response::Response::body].Field[actix_http::body::either::EitherBody::Left::body]", "value", "dfc-generated"] - ["::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -239,36 +324,36 @@ extensions: - ["::reason", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_http::responses::head::BoxedResponseHead::head].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_http::responses::head::BoxedResponseHead::head].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers_mut", "Argument[self].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers_mut", "Argument[self].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers_mut", "Argument[self].Reference.Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::responses::head::ResponseHead::reason]", "ReturnValue.Field[actix_http::responses::head::ResponseHead::reason]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::responses::head::ResponseHead::status]", "ReturnValue.Field[actix_http::responses::head::ResponseHead::status]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::responses::head::ResponseHead::version]", "ReturnValue.Field[actix_http::responses::head::ResponseHead::version]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self].Reference.Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::headers_mut", "Argument[self].Reference.Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::responses::head::ResponseHead::status]", "value", "dfc-generated"] - - ["::reason", "Argument[self].Field[actix_http::responses::head::ResponseHead::reason].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::reason", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::status", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::respond_to", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue", "value", "dfc-generated"] - ["::respond_to", "Argument[self]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[actix_web::response::response::HttpResponse::res]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[alloc::string::String::vec].Reference", "ReturnValue.Field[actix_http::responses::response::Response::body].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[actix_http::responses::response::Response::body].Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["::from", "Argument[0].Reference", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["::body", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::body", "Argument[self].Reference.Field[actix_http::responses::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::drop_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - ["::drop_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - ["::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::head", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::head_mut", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::head", "Argument[self].Reference.Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::head_mut", "Argument[self].Reference.Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_body", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - - ["::map_body", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::map_body", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::map_body", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map_body", "Argument[0].ReturnValue", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - ["::map_into_boxed_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - ["::map_into_boxed_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - ["::replace_body", "Argument[0]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] @@ -279,7 +364,6 @@ extensions: - ["::set_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - ["::set_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - ["::with_body", "Argument[1]", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["::new_service", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::expect", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::expect]", "value", "dfc-generated"] - ["::on_connect_ext", "Argument[0]", "Argument[self].Field[actix_http::service::HttpService::on_connect_ext]", "value", "dfc-generated"] - ["::on_connect_ext", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::on_connect_ext]", "value", "dfc-generated"] @@ -288,18 +372,25 @@ extensions: - ["::with_config", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::cfg]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpServiceHandler::cfg]", "value", "dfc-generated"] - ["::new", "Argument[4]", "ReturnValue.Field[actix_http::service::HttpServiceHandler::on_connect_ext]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::service::HttpServiceHandlerResponse::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::service::HttpServiceHandlerResponse::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::handshake_timeout", "Argument[0]", "ReturnValue.Field[actix_http::service::TlsAcceptorConfig::handshake_timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[actix_http::test::TestBuffer::err]", "ReturnValue.Field[actix_http::test::TestBuffer::err]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[actix_http::test::TestBuffer::read_buf]", "ReturnValue.Field[actix_http::test::TestBuffer::read_buf]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[actix_http::test::TestBuffer::write_buf]", "ReturnValue.Field[actix_http::test::TestBuffer::write_buf]", "value", "dfc-generated"] - ["::read_buf_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_buf_slice_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::write_buf_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_buf_slice_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::test::TestSeqBuffer(0)].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[actix_http::test::TestSeqBuffer(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::test::TestSeqBuffer(0)].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[actix_http::test::TestSeqBuffer(0)].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::test::TestSeqBuffer(0)]", "ReturnValue.Field[actix_http::test::TestSeqBuffer(0)]", "value", "dfc-generated"] - ["::err", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::write_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -307,72 +398,68 @@ extensions: - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::ProtocolError::InvalidLength(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::ProtocolError::InvalidOpcode(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::ProtocolError::Io(0)]", "value", "dfc-generated"] - - ["::decode", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::ws::codec::Codec::max_size]", "ReturnValue.Field[actix_http::ws::codec::Codec::max_size].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::ws::codec::Codec::max_size]", "ReturnValue.Field[actix_http::ws::codec::Codec::max_size]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::client_mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_size", "Argument[0]", "Argument[self].Field[actix_http::ws::codec::Codec::max_size]", "value", "dfc-generated"] - ["::max_size", "Argument[0]", "ReturnValue.Field[actix_http::ws::codec::Codec::max_size]", "value", "dfc-generated"] - ["::max_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::ws::dispatcher::Dispatcher::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::ws::dispatcher::Dispatcher::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_retain", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits_truncate", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::with", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::Dispatcher::inner].Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] - - ["::framed", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::framed_mut", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::framed", "Argument[self].Reference.Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::framed_mut", "Argument[self].Reference.Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::service", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::service_mut", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::tx", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::tx].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::tx", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::tx]", "ReturnValue", "value", "dfc-generated"] + - ["::service", "Argument[self].Reference.Field[actix_http::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::service_mut", "Argument[self].Reference.Field[actix_http::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::tx", "Argument[self].Reference.Field[actix_http::ws::dispatcher::inner::Dispatcher::tx]", "ReturnValue", "value", "dfc-generated"] - ["::with_rx", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] - ["::with_rx", "Argument[2]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::Dispatcher::rx]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::DispatcherError::Service(0)]", "value", "dfc-generated"] - - ["::parse", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::ws::proto::CloseCode::Other(0)]", "ReturnValue.Field[actix_http::ws::proto::CloseCode::Other(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_http::ws::proto::CloseCode::Other(0)]", "ReturnValue.Field[actix_http::ws::proto::CloseCode::Other(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::proto::CloseCode::Other(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_http::ws::proto::CloseReason::description]", "ReturnValue.Field[actix_http::ws::proto::CloseReason::description]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[actix_http::ws::proto::CloseReason::code]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::proto::CloseReason::code]", "value", "dfc-generated"] - - ["::addr", "Argument[self].Field[actix_http_test::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] - - ["::delete", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::delete", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::head", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::head", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::options", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::options", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::patch", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::patch", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::post", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::post", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::put", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::put", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self].Reference.Field[actix_http_test::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] + - ["::delete", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::options", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::patch", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::post", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::put", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["::request", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::request", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::sdelete", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::sdelete", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::sget", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::sget", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::shead", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::shead", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::soptions", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::soptions", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::spatch", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::spatch", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::spost", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::spost", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::sput", "Argument[self].Field[actix_http_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::sput", "Argument[self].Field[actix_http_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] + - ["::sdelete", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::sget", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::shead", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::soptions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::spatch", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::spost", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::sput", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::surl", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::surl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::url", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::url", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[actix_multipart::error::Error::Field::name]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[actix_multipart::error::Error::Field::source]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_multipart::error::Error::Parse(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_multipart::error::Error::Payload(0)]", "value", "dfc-generated"] - - ["::content_disposition", "Argument[self].Field[actix_multipart::field::Field::content_disposition].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::content_type", "Argument[self].Field[actix_multipart::field::Field::content_type].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[actix_multipart::field::Field::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[actix_multipart::field::Field::content_disposition].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::content_disposition", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::content_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self].Reference.Field[actix_multipart::field::Field::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_multipart::field::Field::content_type]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_multipart::field::Field::content_disposition]", "value", "dfc-generated"] - ["::new", "Argument[2].Field[core::option::Option::Some(0)]", "ReturnValue.Field[actix_multipart::field::Field::form_field_name]", "value", "dfc-generated"] @@ -382,12 +469,8 @@ extensions: - ["::new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_multipart::field::InnerField::boundary]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_multipart::form::Limits::total_limit_remaining]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_multipart::form::Limits::memory_limit_remaining]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_multipart::form::MultipartForm(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_multipart::form::MultipartForm(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_multipart::form::MultipartForm(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::memory_limit", "Argument[0]", "Argument[self].Field[actix_multipart::form::MultipartFormConfig::memory_limit]", "value", "dfc-generated"] - ["::memory_limit", "Argument[0]", "ReturnValue.Field[actix_multipart::form::MultipartFormConfig::memory_limit]", "value", "dfc-generated"] @@ -395,90 +478,114 @@ extensions: - ["::total_limit", "Argument[0]", "Argument[self].Field[actix_multipart::form::MultipartFormConfig::total_limit]", "value", "dfc-generated"] - ["::total_limit", "Argument[0]", "ReturnValue.Field[actix_multipart::form::MultipartFormConfig::total_limit]", "value", "dfc-generated"] - ["::total_limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_multipart::form::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_multipart::form::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_multipart::form::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_multipart::form::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[actix_multipart::form::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::json::JsonConfig::err_handler]", "ReturnValue.Field[actix_multipart::form::json::JsonConfig::err_handler]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::json::JsonConfig::validate_content_type]", "ReturnValue.Field[actix_multipart::form::json::JsonConfig::validate_content_type].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::json::JsonConfig::validate_content_type]", "ReturnValue.Field[actix_multipart::form::json::JsonConfig::validate_content_type]", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::validate_content_type", "Argument[0]", "Argument[self].Field[actix_multipart::form::json::JsonConfig::validate_content_type]", "value", "dfc-generated"] - ["::validate_content_type", "Argument[0]", "ReturnValue.Field[actix_multipart::form::json::JsonConfig::validate_content_type]", "value", "dfc-generated"] - ["::validate_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::read_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::tempfile::TempFileConfig::directory]", "ReturnValue.Field[actix_multipart::form::tempfile::TempFileConfig::directory]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::tempfile::TempFileConfig::err_handler]", "ReturnValue.Field[actix_multipart::form::tempfile::TempFileConfig::err_handler]", "value", "dfc-generated"] - ["::directory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::read_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_multipart::form::text::Text(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_multipart::form::text::Text(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[actix_multipart::form::text::Text(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::text::TextConfig::err_handler]", "ReturnValue.Field[actix_multipart::form::text::TextConfig::err_handler]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::text::TextConfig::validate_content_type]", "ReturnValue.Field[actix_multipart::form::text::TextConfig::validate_content_type].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_multipart::form::text::TextConfig::validate_content_type]", "ReturnValue.Field[actix_multipart::form::text::TextConfig::validate_content_type]", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::validate_content_type", "Argument[0]", "Argument[self].Field[actix_multipart::form::text::TextConfig::validate_content_type]", "value", "dfc-generated"] - ["::validate_content_type", "Argument[0]", "ReturnValue.Field[actix_multipart::form::text::TextConfig::validate_content_type]", "value", "dfc-generated"] - ["::validate_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[actix_multipart::payload::PayloadBuffer::stream].Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[actix_multipart::payload::PayloadRef::payload]", "ReturnValue.Field[actix_multipart::payload::PayloadRef::payload]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[actix_multipart::safety::Safety::clean].Reference", "ReturnValue.Field[actix_multipart::safety::Safety::clean]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[actix_multipart::safety::Safety::clean]", "ReturnValue.Field[actix_multipart::safety::Safety::clean]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[actix_multipart::safety::Safety::payload]", "ReturnValue.Field[actix_multipart::safety::Safety::payload]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::content_type_or_bail", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[actix_multipart::payload::PayloadRef::payload]", "ReturnValue.Field[actix_multipart::payload::PayloadRef::payload]", "value", "dfc-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[actix_multipart::safety::Safety::clean]", "ReturnValue.Field[actix_multipart::safety::Safety::clean]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[actix_multipart::safety::Safety::payload]", "ReturnValue.Field[actix_multipart::safety::Safety::payload]", "value", "dfc-generated"] + - ["::is_clean", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_router::de::PathDeserializer::path]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[actix_router::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[actix_router::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::resource_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::path::Path::segments]", "ReturnValue.Field[actix_router::path::Path::segments]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::path::Path::skip]", "ReturnValue.Field[actix_router::path::Path::skip].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::path::Path::skip]", "ReturnValue.Field[actix_router::path::Path::skip]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[actix_router::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[actix_router::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[actix_router::path::PathIter::params]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_router::path::Path::path]", "value", "dfc-generated"] - - ["::segment_count", "Argument[self].Field[actix_router::path::Path::segments].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::set", "Argument[0]", "Argument[self].Field[actix_router::path::Path::path]", "value", "dfc-generated"] - - ["::patterns", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::segment_count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set", "Argument[0]", "Argument[self].Reference.Field[actix_router::path::Path::path]", "value", "dfc-generated"] + - ["::skip", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::patterns", "Argument[self].Field[actix_router::pattern::Patterns::List(0)]", "ReturnValue.Field[actix_router::pattern::Patterns::List(0)]", "value", "dfc-generated"] + - ["::patterns", "Argument[self].Field[actix_router::pattern::Patterns::Single(0)]", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::pattern::Patterns::List(0)]", "ReturnValue.Field[actix_router::pattern::Patterns::List(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::pattern::Patterns::Single(0)]", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_router::quoter::AsciiBitmap::array]", "ReturnValue.Field[actix_router::quoter::AsciiBitmap::array]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_router::regex_set::RegexSet(0)]", "ReturnValue.Field[actix_router::regex_set::RegexSet(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_router::resource::PatternSegment::Const(0)]", "ReturnValue.Field[actix_router::resource::PatternSegment::Const(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::resource::PatternSegment::Var(0)]", "ReturnValue.Field[actix_router::resource::PatternSegment::Var(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::capture_match_info_fn", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["::id", "Argument[self].Field[actix_router::resource::ResourceDef::id]", "ReturnValue", "value", "dfc-generated"] - - ["::is_prefix", "Argument[self].Field[actix_router::resource::ResourceDef::is_prefix]", "ReturnValue", "value", "dfc-generated"] - - ["::join", "Argument[0].Field[actix_router::resource::ResourceDef::is_prefix]", "ReturnValue.Field[actix_router::resource::ResourceDef::is_prefix]", "value", "dfc-generated"] - - ["::pattern_iter", "Argument[self].Field[actix_router::resource::ResourceDef::patterns]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::set_id", "Argument[0]", "Argument[self].Field[actix_router::resource::ResourceDef::id]", "value", "dfc-generated"] + - ["::id", "Argument[self].Reference.Field[actix_router::resource::ResourceDef::id]", "ReturnValue", "value", "dfc-generated"] + - ["::is_prefix", "Argument[self].Reference.Field[actix_router::resource::ResourceDef::is_prefix]", "ReturnValue", "value", "dfc-generated"] + - ["::join", "Argument[0].Reference.Field[actix_router::resource::ResourceDef::is_prefix]", "ReturnValue.Field[actix_router::resource::ResourceDef::is_prefix]", "value", "dfc-generated"] + - ["::pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::pattern_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::resource_path_from_map", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::set_id", "Argument[0]", "Argument[self].Reference.Field[actix_router::resource::ResourceDef::id]", "value", "dfc-generated"] + - ["::set_name", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_router::router::ResourceId(0)]", "ReturnValue.Field[actix_router::router::ResourceId(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::router::ResourceId(0)]", "ReturnValue.Field[actix_router::router::ResourceId(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::finish", "Argument[self].Field[actix_router::router::RouterBuilder::routes]", "ReturnValue.Field[actix_router::router::Router::routes]", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[actix_router::url::Url::path].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_router::url::Url::path]", "ReturnValue.Field[actix_router::url::Url::path]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_router::url::Url::uri]", "ReturnValue.Field[actix_router::url::Url::uri]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - ["::new_with_quoter", "Argument[0]", "ReturnValue.Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - - ["::path", "Argument[self].Field[actix_router::url::Url::path].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::update", "Argument[0].Reference", "Argument[self].Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - - ["::update_with_quoter", "Argument[0].Reference", "Argument[self].Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - - ["::uri", "Argument[self].Field[actix_router::url::Url::uri]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::addr", "Argument[self].Field[actix_test::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] - - ["::delete", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::delete", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::head", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::head", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::options", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::options", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::patch", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::patch", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::post", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::post", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::put", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::put", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] + - ["::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::update", "Argument[0].Reference", "Argument[self].Reference.Field[actix_router::url::Url::uri]", "value", "dfc-generated"] + - ["::update_with_quoter", "Argument[0].Reference", "Argument[self].Reference.Field[actix_router::url::Url::uri]", "value", "dfc-generated"] + - ["::uri", "Argument[self].Reference.Field[actix_router::url::Url::uri]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self].Reference.Field[actix_test::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] + - ["::delete", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::options", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::patch", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::post", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::put", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["::request", "Argument[self].Field[actix_test::TestServer::client].Field[0]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["::request", "Argument[self].Field[actix_test::TestServer::client].Field[awc::client::Client(0)]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - ["::url", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::url", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::client_request_timeout", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::client_request_timeout]", "value", "dfc-generated"] - ["::client_request_timeout", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::client_request_timeout]", "value", "dfc-generated"] - ["::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -527,26 +634,26 @@ extensions: - ["::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::app_service::AppEntry::factory]", "value", "dfc-generated"] - - ["::config", "Argument[self].Field[actix_web::app_service::AppInitServiceState::config]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::pool", "Argument[self].Field[actix_web::app_service::AppInitServiceState::pool]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::rmap", "Argument[self].Field[actix_web::app_service::AppInitServiceState::rmap]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::config", "Argument[self].Reference.Field[actix_web::app_service::AppInitServiceState::config]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::pool", "Argument[self].Reference.Field[actix_web::app_service::AppInitServiceState::pool]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rmap", "Argument[self].Reference.Field[actix_web::app_service::AppInitServiceState::rmap]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::__priv_test_new", "Argument[0]", "ReturnValue.Field[actix_web::config::AppConfig::secure]", "value", "dfc-generated"] - ["::__priv_test_new", "Argument[1]", "ReturnValue.Field[actix_web::config::AppConfig::host]", "value", "dfc-generated"] - ["::__priv_test_new", "Argument[2]", "ReturnValue.Field[actix_web::config::AppConfig::addr]", "value", "dfc-generated"] - - ["::host", "Argument[self].Field[actix_web::config::AppConfig::host]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::local_addr", "Argument[self].Field[actix_web::config::AppConfig::addr]", "ReturnValue", "value", "dfc-generated"] + - ["::host", "Argument[self].Reference.Field[actix_web::config::AppConfig::host]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::local_addr", "Argument[self].Reference.Field[actix_web::config::AppConfig::addr]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::config::AppConfig::secure]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_web::config::AppConfig::host]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[actix_web::config::AppConfig::addr]", "value", "dfc-generated"] - - ["::secure", "Argument[self].Field[actix_web::config::AppConfig::secure]", "ReturnValue", "value", "dfc-generated"] - - ["::clone_config", "Argument[self].Field[actix_web::config::AppService::config].Reference", "ReturnValue.Field[actix_web::config::AppService::config]", "value", "dfc-generated"] - - ["::clone_config", "Argument[self].Field[actix_web::config::AppService::config]", "ReturnValue.Field[actix_web::config::AppService::config]", "value", "dfc-generated"] - - ["::clone_config", "Argument[self].Field[actix_web::config::AppService::default]", "ReturnValue.Field[actix_web::config::AppService::default]", "value", "dfc-generated"] - - ["::config", "Argument[self].Field[actix_web::config::AppService::config]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::default_service", "Argument[self].Field[actix_web::config::AppService::default]", "ReturnValue", "value", "dfc-generated"] + - ["::secure", "Argument[self].Reference.Field[actix_web::config::AppConfig::secure]", "ReturnValue", "value", "dfc-generated"] + - ["::clone_config", "Argument[self].Reference.Field[actix_web::config::AppService::default]", "ReturnValue.Field[actix_web::config::AppService::default]", "value", "dfc-generated"] + - ["::config", "Argument[self].Reference.Field[actix_web::config::AppService::config]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::default_service", "Argument[self].Reference.Field[actix_web::config::AppService::default]", "ReturnValue", "value", "dfc-generated"] - ["::into_services", "Argument[self].Field[actix_web::config::AppService::config]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_services", "Argument[self].Field[actix_web::config::AppService::services]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::is_root", "Argument[self].Field[actix_web::config::AppService::root]", "ReturnValue", "value", "dfc-generated"] + - ["::is_root", "Argument[self].Reference.Field[actix_web::config::AppService::root]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::config::AppService::config]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_web::config::AppService::default]", "value", "dfc-generated"] - ["::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -557,191 +664,246 @@ extensions: - ["::external_resource", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[0]", "ReturnValue.Field[actix_web::data::Data(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue.Field[actix_web::data::Data(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[actix_web::data::Data(0)]", "ReturnValue.Field[actix_web::data::Data(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::data::Data(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_web::data::Data(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::QueryPayloadError::Deserialize(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::ReadlinesError::ContentTypeError(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::ReadlinesError::Payload(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::UrlGenerationError::ParseError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[actix_web::error::UrlencodedError::Overflow::size]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[actix_web::error::UrlencodedError::Overflow::limit]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::UrlencodedError::Parse(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::UrlencodedError::Payload(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::UrlencodedError::Serialize(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[actix_web::types::either::EitherExtractError::Bytes(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::error::Error::cause].Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::error::Error::cause].Field[alloc::boxed::Box(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::error::Error::cause]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::as_response_error", "Argument[self].Field[actix_web::error::error::Error::cause].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::status_code", "Argument[self].Field[actix_web::error::internal::InternalError::status].Field[actix_web::error::internal::InternalErrorType::Status(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::as_response_error", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::status_code", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::respond_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_response", "Argument[0]", "ReturnValue.Field[actix_web::error::internal::InternalError::cause]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::error::internal::InternalError::cause]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_web::error::internal::InternalError::status].Field[actix_web::error::internal::InternalErrorType::Status(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestOptFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestOptFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestResFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestResFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::and", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::check", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::check", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::req_data", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::req_data_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::guard::RegisteredMethods(0)]", "ReturnValue.Field[actix_web::guard::RegisteredMethods(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::guard::acceptable::Acceptable::match_star_star]", "ReturnValue.Field[actix_web::guard::acceptable::Acceptable::match_star_star].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::guard::acceptable::Acceptable::match_star_star]", "ReturnValue.Field[actix_web::guard::acceptable::Acceptable::match_star_star]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::guard::acceptable::Acceptable::mime]", "ReturnValue.Field[actix_web::guard::acceptable::Acceptable::mime]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::match_star_star", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::guard::acceptable::Acceptable::mime]", "value", "dfc-generated"] - ["::scheme", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::accept::Accept(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::accept::Accept(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::accept_charset::AcceptCharset(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::accept_charset::AcceptCharset(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::accept_encoding::AcceptEncoding(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::accept_encoding::AcceptEncoding(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::accept::Accept(0)]", "ReturnValue.Field[actix_web::http::header::accept::Accept(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::preference", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::accept_charset::AcceptCharset(0)]", "ReturnValue.Field[actix_web::http::header::accept_charset::AcceptCharset(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::accept_encoding::AcceptEncoding(0)]", "ReturnValue.Field[actix_web::http::header::accept_encoding::AcceptEncoding(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::preference", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::accept_language::AcceptLanguage(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::accept_language::AcceptLanguage(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::allow::Allow(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::allow::Allow(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::cache_control::CacheControl(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::cache_control::CacheControl(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::accept_language::AcceptLanguage(0)]", "ReturnValue.Field[actix_web::http::header::accept_language::AcceptLanguage(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::allow::Allow(0)]", "ReturnValue.Field[actix_web::http::header::allow::Allow(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::cache_control::CacheControl(0)]", "ReturnValue.Field[actix_web::http::header::cache_control::CacheControl(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::content_disposition::ContentDisposition::parameters]", "ReturnValue.Field[actix_web::http::header::content_disposition::ContentDisposition::parameters]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_filename", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionParam::Filename(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::as_filename_ext", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionParam::FilenameExt(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::as_name", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionParam::Name(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::as_unknown", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionParam::Unknown(1)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::as_unknown_ext", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionParam::UnknownExt(1)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::content_language::ContentLanguage(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::content_language::ContentLanguage(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionType::Ext(0)]", "ReturnValue.Field[actix_web::http::header::content_disposition::DispositionType::Ext(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::content_language::ContentLanguage(0)]", "ReturnValue.Field[actix_web::http::header::content_language::ContentLanguage(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_into_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue.Field[actix_web::http::header::content_length::ContentLength(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue.Field[actix_web::http::header::content_length::ContentLength(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::http::header::content_length::ContentLength(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::content_range::ContentRange(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::content_range::ContentRange(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::date::Date(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::date::Date(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[self].Reference.Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::content_type::ContentType(0)]", "ReturnValue.Field[actix_web::http::header::content_type::ContentType(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::encoding::Encoding::Unknown(0)]", "ReturnValue.Field[actix_web::http::header::encoding::Encoding::Unknown(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::entity::EntityTag::tag]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::entity::EntityTag::weak]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::weak].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::entity::EntityTag::weak]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::weak]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::weak]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - ["::new_strong", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - ["::new_weak", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] + - ["::set_tag", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::strong", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - - ["::tag", "Argument[self].Field[actix_web::http::header::entity::EntityTag::tag]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::tag", "Argument[self].Field[actix_web::http::header::entity::EntityTag::tag]", "ReturnValue", "value", "dfc-generated"] + - ["::tag", "Argument[self].Reference.Field[actix_web::http::header::entity::EntityTag::tag]", "ReturnValue.Reference.Reference", "value", "dfc-generated"] + - ["::tag", "Argument[self].Reference.Field[actix_web::http::header::entity::EntityTag::tag]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::weak", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::etag::ETag(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::etag::ETag(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::expires::Expires(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::expires::Expires(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::if_modified_since::IfModifiedSince(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::if_modified_since::IfModifiedSince(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::if_unmodified_since::IfUnmodifiedSince(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::if_unmodified_since::IfUnmodifiedSince(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::http::header::last_modified::LastModified(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::http::header::last_modified::LastModified(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::if_match::IfMatch::Items(0)]", "ReturnValue.Field[actix_web::http::header::if_match::IfMatch::Items(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::if_none_match::IfNoneMatch::Items(0)]", "ReturnValue.Field[actix_web::http::header::if_none_match::IfNoneMatch::Items(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_item", "Argument[self].Field[actix_web::http::header::preference::Preference::Specific(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::item", "Argument[self].Field[actix_web::http::header::preference::Preference::Specific(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_satisfiable_range", "Argument[self].Reference.Field[actix_web::http::header::range::ByteRangeSpec::From(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - ["::to_satisfiable_range", "Argument[self].Reference.Field[actix_web::http::header::range::ByteRangeSpec::FromTo(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - ["::to_satisfiable_range", "Argument[self].Reference.Field[actix_web::http::header::range::ByteRangeSpec::FromTo(1)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["::host", "Argument[self].Field[actix_web::info::ConnectionInfo::host]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::scheme", "Argument[self].Field[actix_web::info::ConnectionInfo::scheme]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::range::Range::Bytes(0)]", "ReturnValue.Field[actix_web::http::header::range::Range::Bytes(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::range::Range::Unregistered(0)]", "ReturnValue.Field[actix_web::http::header::range::Range::Unregistered(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::http::header::range::Range::Unregistered(1)]", "ReturnValue.Field[actix_web::http::header::range::Range::Unregistered(1)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::host", "Argument[self].Reference.Field[actix_web::info::ConnectionInfo::host]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::scheme", "Argument[self].Reference.Field[actix_web::info::ConnectionInfo::scheme]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::info::PeerAddr(0)]", "ReturnValue.Field[actix_web::info::PeerAddr(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[actix_web::info::PeerAddr(0)]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::middleware::compat::Compat::transform]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compat::CompatMiddlewareFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compat::CompatMiddlewareFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compress::CompressResponse::encoding]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compress::CompressResponse::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compress::CompressResponse::encoding]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compress::CompressResponse::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::middleware::condition::Condition::enable]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_web::middleware::condition::Condition::transformer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::default_headers::DefaultHeaderFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::default_headers::DefaultHeaderFuture::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::default_headers::DefaultHeaderFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::default_headers::DefaultHeaderFuture::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::default_headers::DefaultHeaders::inner].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[actix_web::middleware::default_headers::DefaultHeaders::inner].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::default_headers::DefaultHeaders::inner].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[actix_web::middleware::default_headers::DefaultHeaders::inner].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::default_headers::DefaultHeaders::inner]", "ReturnValue.Field[actix_web::middleware::default_headers::DefaultHeaders::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[actix_web::middleware::default_headers::DefaultHeadersMiddleware::inner]", "ReturnValue.Field[actix_web::middleware::default_headers::DefaultHeaderFuture::inner]", "value", "dfc-generated"] + - ["::call", "Argument[self].Reference.Field[actix_web::middleware::default_headers::DefaultHeadersMiddleware::inner]", "ReturnValue.Field[actix_web::middleware::default_headers::DefaultHeaderFuture::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self].Reference.Field[actix_web::middleware::err_handlers::ErrorHandlersMiddleware::default_client]", "ReturnValue.Field[actix_web::middleware::err_handlers::ErrorHandlersFuture::ServiceFuture::default_client]", "value", "dfc-generated"] + - ["::call", "Argument[self].Reference.Field[actix_web::middleware::err_handlers::ErrorHandlersMiddleware::default_server]", "ReturnValue.Field[actix_web::middleware::err_handlers::ErrorHandlersFuture::ServiceFuture::default_server]", "value", "dfc-generated"] + - ["::call", "Argument[self].Reference.Field[actix_web::middleware::err_handlers::ErrorHandlersMiddleware::handlers]", "ReturnValue.Field[actix_web::middleware::err_handlers::ErrorHandlersFuture::ServiceFuture::handlers]", "value", "dfc-generated"] - ["::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[actix_web::middleware::from_fn::MiddlewareFnService::mw_fn]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[actix_web::middleware::from_fn::MiddlewareFnService::service]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::logger::CustomRequestFn::inner_fn].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[actix_web::middleware::logger::CustomRequestFn::inner_fn].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::logger::CustomRequestFn::inner_fn].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[actix_web::middleware::logger::CustomRequestFn::inner_fn].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::logger::CustomRequestFn::inner_fn]", "ReturnValue.Field[actix_web::middleware::logger::CustomRequestFn::inner_fn]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::logger::CustomResponseFn::inner_fn].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[actix_web::middleware::logger::CustomResponseFn::inner_fn].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::logger::CustomResponseFn::inner_fn].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[actix_web::middleware::logger::CustomResponseFn::inner_fn].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::logger::CustomResponseFn::inner_fn]", "ReturnValue.Field[actix_web::middleware::logger::CustomResponseFn::inner_fn]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::middleware::logger::Format(0)]", "ReturnValue.Field[actix_web::middleware::logger::Format(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::custom_request_replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::custom_response_replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::exclude", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::exclude_regex", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::log_level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::log_target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::middleware::normalize::NormalizePath(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::permanent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::see_other", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::temporary", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::to", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::using_status_code", "Argument[0]", "Argument[self].Field[actix_web::redirect::Redirect::status_code]", "value", "dfc-generated"] - ["::using_status_code", "Argument[0]", "ReturnValue.Field[actix_web::redirect::Redirect::status_code]", "value", "dfc-generated"] - ["::using_status_code", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::request::HttpRequest::inner].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[actix_web::request::HttpRequest::inner].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::request::HttpRequest::inner].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[actix_web::request::HttpRequest::inner].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::request::HttpRequest::inner]", "ReturnValue.Field[actix_web::request::HttpRequest::inner]", "value", "dfc-generated"] + - ["::app_config", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::connection_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::match_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::match_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::match_pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::method", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::resource_map", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::uri", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_capacity", "Argument[0]", "ReturnValue.Field[actix_web::request::HttpRequestPool::cap]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::request_data::ReqData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_web::request_data::ReqData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::request_data::ReqData(0)]", "ReturnValue", "value", "dfc-generated"] - ["::add_guards", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::delete", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::get", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::head", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::patch", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::post", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::put", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::trace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -751,6 +913,7 @@ extensions: - ["::set_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::respond_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::add_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -760,15 +923,18 @@ extensions: - ["::respond_to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[actix_web::service::ServiceResponse::response]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res]", "value", "dfc-generated"] - - ["::body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::body", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::drop_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - ["::drop_body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - ["::drop_body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - - ["::error", "Argument[self].Field[actix_web::response::response::HttpResponse::error].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::error", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::head", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::head_mut", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_error", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::head_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "ReturnValue", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[0].Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] @@ -787,20 +953,24 @@ extensions: - ["::set_body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - ["::set_body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - ["::with_body", "Argument[1]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::add", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::match_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::match_pattern", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::rmap::ResourceMap::pattern]", "value", "dfc-generated"] - - ["::new_service", "Argument[self].Field[actix_web::route::Route::guards]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::wrap", "Argument[self].Field[actix_web::route::Route::guards]", "ReturnValue.Field[actix_web::route::Route::guards]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -809,12 +979,19 @@ extensions: - ["::backlog", "Argument[0]", "ReturnValue.Field[actix_web::server::HttpServer::backlog]", "value", "dfc-generated"] - ["::backlog", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind_auto_h2c", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_auto_h2c", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind_openssl", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_openssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind_rustls", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind_rustls_021", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls_021", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind_rustls_0_22", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls_0_22", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind_rustls_0_23", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls_0_23", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bind_uds", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::client_disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -842,26 +1019,42 @@ extensions: - ["::worker_max_blocking_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::workers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceFactoryWrapper::factory].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::app_config", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::connection_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::error_response", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - ["::from_parts", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceRequest::req]", "value", "dfc-generated"] - ["::from_parts", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceRequest::payload]", "value", "dfc-generated"] - ["::from_request", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceRequest::req]", "value", "dfc-generated"] - ["::guard_ctx", "Argument[self]", "ReturnValue.Field[actix_web::guard::GuardContext::req]", "value", "dfc-generated"] + - ["::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_parts", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_response", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["::match_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::match_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::match_pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::method", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceRequest::req]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceRequest::payload]", "value", "dfc-generated"] - - ["::parts", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["::parts", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["::parts_mut", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["::parts_mut", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["::request", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::set_payload", "Argument[0]", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "value", "dfc-generated"] + - ["::parts", "Argument[self].Reference.Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["::parts", "Argument[self].Reference.Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["::parts_mut", "Argument[self].Reference.Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["::parts_mut", "Argument[self].Reference.Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::request", "Argument[self].Reference.Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::resource_map", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_payload", "Argument[0]", "Argument[self].Reference.Field[actix_web::service::ServiceRequest::payload]", "value", "dfc-generated"] + - ["::uri", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::map_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - ["::map_body", "Argument[self].Field[actix_web::service::ServiceResponse::response].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::service::ServiceResponse::response].Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - ["::error_response", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - ["::from_err", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["::into_body", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_parts", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::into_response", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceResponse::response]", "value", "dfc-generated"] @@ -876,9 +1069,9 @@ extensions: - ["::map_into_right_body", "Argument[self].Field[actix_web::service::ServiceResponse::response].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::service::ServiceResponse::response].Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceResponse::response]", "value", "dfc-generated"] - - ["::request", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::response", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::response_mut", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::request", "Argument[self].Reference.Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::response", "Argument[self].Reference.Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::response_mut", "Argument[self].Reference.Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::finish", "Argument[self].Field[actix_web::service::WebService::guards]", "ReturnValue.Field[actix_web::service::WebServiceImpl::guards]", "value", "dfc-generated"] - ["::finish", "Argument[self].Field[actix_web::service::WebService::name]", "ReturnValue.Field[actix_web::service::WebServiceImpl::name]", "value", "dfc-generated"] - ["::finish", "Argument[self].Field[actix_web::service::WebService::rdef]", "ReturnValue.Field[actix_web::service::WebServiceImpl::rdef]", "value", "dfc-generated"] @@ -900,30 +1093,34 @@ extensions: - ["::set_form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::to_srv_response", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_request", "Argument[0].Reference", "ReturnValue.Field[actix_web::types::either::EitherExtractFut::req]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut", "Argument[self].Reference.Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_request", "Argument[0].Field[actix_web::request::HttpRequest::inner]", "ReturnValue.Field[actix_web::types::either::EitherExtractFut::req].Field[actix_web::request::HttpRequest::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[self].Field[actix_web::types::either::Either::Left(0)].Field[actix_web::types::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_web::types::either::Either::Left(0)].Field[actix_web::types::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_web::types::either::Either::Right(0)].Field[actix_web::types::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_web::types::either::Either::Right(0)].Field[actix_web::types::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] - ["::unwrap_left", "Argument[self].Field[actix_web::types::either::Either::Left(0)]", "ReturnValue", "value", "dfc-generated"] - ["::unwrap_right", "Argument[self].Field[actix_web::types::either::Either::Right(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::types::either::EitherExtractFut::req]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::types::either::EitherExtractFut::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::types::either::EitherExtractFut::req]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::types::either::EitherExtractFut::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::from_request", "Argument[0].Reference", "ReturnValue.Field[actix_web::types::form::FormExtractFut::req]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::either::tests::TestForm::hello]", "ReturnValue.Field[actix_web::types::either::tests::TestForm::hello]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_request", "Argument[0].Field[actix_web::request::HttpRequest::inner]", "ReturnValue.Field[actix_web::types::form::FormExtractFut::req].Field[actix_web::request::HttpRequest::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_web::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[actix_web::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::types::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::form::FormConfig::err_handler]", "ReturnValue.Field[actix_web::types::form::FormConfig::err_handler]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::form::FormConfig::limit]", "ReturnValue.Field[actix_web::types::form::FormConfig::limit].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::form::FormConfig::limit]", "ReturnValue.Field[actix_web::types::form::FormConfig::limit]", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::limit", "Argument[0]", "Argument[self].Field[actix_web::types::form::FormConfig::limit]", "value", "dfc-generated"] - ["::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::form::FormConfig::limit]", "value", "dfc-generated"] @@ -931,22 +1128,22 @@ extensions: - ["::limit", "Argument[0]", "Argument[self].Field[actix_web::types::form::UrlEncoded::limit]", "value", "dfc-generated"] - ["::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::form::UrlEncoded::limit]", "value", "dfc-generated"] - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_web::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[actix_web::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::types::header::Header(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::respond_to", "Argument[self].Field[0]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - ["::respond_to", "Argument[self].Field[actix_web::types::html::Html(0)]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["::from_request", "Argument[0].Reference", "ReturnValue.Field[actix_web::types::json::JsonExtractFut::req].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::html::Html(0)]", "ReturnValue.Field[actix_web::types::html::Html(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_request", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_web::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[actix_web::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::types::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] - ["::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::json::JsonBody::Body::limit]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::content_type_required", "Argument[0]", "Argument[self].Field[actix_web::types::json::JsonConfig::content_type_required]", "value", "dfc-generated"] - ["::content_type_required", "Argument[0]", "ReturnValue.Field[actix_web::types::json::JsonConfig::content_type_required]", "value", "dfc-generated"] @@ -955,21 +1152,21 @@ extensions: - ["::limit", "Argument[0]", "Argument[self].Field[actix_web::types::json::JsonConfig::limit]", "value", "dfc-generated"] - ["::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::json::JsonConfig::limit]", "value", "dfc-generated"] - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[actix_web::types::path::Path(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[actix_web::types::path::Path(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::types::path::Path(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::types::path::Path(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::types::path::Path(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[actix_web::types::path::Path(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::path::PathConfig::err_handler]", "ReturnValue.Field[actix_web::types::path::PathConfig::err_handler]", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::limit", "Argument[0]", "Argument[self].Field[actix_web::types::payload::HttpMessageBody::limit]", "value", "dfc-generated"] - ["::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::HttpMessageBody::limit]", "value", "dfc-generated"] - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::types::payload::Payload(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::payload::PayloadConfig::limit]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::limit].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::payload::PayloadConfig::limit]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::payload::PayloadConfig::mimetype]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::mimetype]", "value", "dfc-generated"] - ["::limit", "Argument[0]", "Argument[self].Field[actix_web::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] - ["::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -977,18 +1174,19 @@ extensions: - ["::mimetype", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::mimetype].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::mimetype", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[actix_web::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[actix_web::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::from_request", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[actix_web::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[actix_web::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::types::query::Query(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[actix_web::types::query::QueryConfig::err_handler]", "ReturnValue.Field[actix_web::types::query::QueryConfig::err_handler]", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::limit", "Argument[0]", "Argument[self].Field[actix_web::types::readlines::Readlines::limit]", "value", "dfc-generated"] - ["::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::readlines::Readlines::limit]", "value", "dfc-generated"] - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::parts", "Argument[self].Field[actix_web_actors::context::HttpContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::parts", "Argument[self].Field[actix_web_actors::ws::WebsocketContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::parts", "Argument[self].Reference.Field[actix_web_actors::context::HttpContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::parts", "Argument[self].Reference.Field[actix_web_actors::ws::WebsocketContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::with_codec", "Argument[2]", "ReturnValue.Field[actix_web_actors::ws::WebsocketContextFut::encoder]", "value", "dfc-generated"] - ["::codec", "Argument[0]", "Argument[self].Field[actix_web_actors::ws::WsResponseBuilder::codec].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::codec", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::codec].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] @@ -1002,20 +1200,24 @@ extensions: - ["::protocols", "Argument[0]", "Argument[self].Field[actix_web_actors::ws::WsResponseBuilder::protocols].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::protocols", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::protocols].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::protocols", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[actix_web_codegen::route::MethodTypeExt::Custom(0)]", "ReturnValue.Field[actix_web_codegen::route::MethodTypeExt::Custom(0)]", "value", "dfc-generated"] - ["::try_from", "Argument[0].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web_codegen::route::MethodTypeExt::Custom(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0].Field[actix_web_codegen::route::RouteArgs::path]", "ReturnValue.Field[actix_web_codegen::route::Args::path]", "value", "dfc-generated"] - ["::new", "Argument[1].Field[syn::item::ItemFn::sig].Field[syn::item::Signature::ident]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web_codegen::route::Route::name]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web_codegen::route::Route::ast]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::patterns", "Argument[self].Field[alloc::string::String::vec].Reference", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::patterns", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] + - ["::try_into_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::patterns", "Argument[self].Reference", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)]", "value", "dfc-generated"] - ["::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::handle_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle_field", "Argument[3]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_into_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_message_body", "Argument[0]", "ReturnValue.Field[awc::any_body::AnyBody::Body::body]", "value", "dfc-generated"] + - ["::into_boxed", "Argument[self].Field[awc::any_body::AnyBody::Bytes::body]", "ReturnValue.Field[awc::any_body::AnyBody::Bytes::body]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[awc::any_body::AnyBody::Body::body]", "value", "dfc-generated"] - ["::add_default_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -1044,6 +1246,7 @@ extensions: - ["::timeout", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::wrap", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::middleware].Field[awc::middleware::NestTransform::parent]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::delete", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -1052,15 +1255,23 @@ extensions: - ["::post", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::put", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["::request_from", "Argument[1].Field[actix_http::requests::head::RequestHead::method].Reference", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["::request_from", "Argument[1].Field[actix_http::requests::head::RequestHead::method]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["::request_from", "Argument[1].Reference.Field[actix_http::requests::head::RequestHead::method]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - ["::ws", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::no_disconnect_timeout", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::open_tunnel", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::open_tunnel", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::send_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::send_request", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::send_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[awc::client::Connect::addr]", "ReturnValue.Field[awc::client::Connect::addr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[awc::client::Connect::uri]", "ReturnValue.Field[awc::client::Connect::uri]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::no_disconnect_timeout", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_h1", "Argument[1]", "ReturnValue.Field[awc::client::connection::ConnectionType::H1(0)].Field[awc::client::connection::H1Connection::created]", "value", "dfc-generated"] + - ["::from_h1", "Argument[2]", "ReturnValue.Field[awc::client::connection::ConnectionType::H1(0)].Field[awc::client::connection::H1Connection::acquired]", "value", "dfc-generated"] + - ["::from_h2", "Argument[1]", "ReturnValue.Field[awc::client::connection::ConnectionType::H2(0)].Field[awc::client::connection::H2Connection::created]", "value", "dfc-generated"] + - ["::from_h2", "Argument[2]", "ReturnValue.Field[awc::client::connection::ConnectionType::H2(0)].Field[awc::client::connection::H2Connection::acquired]", "value", "dfc-generated"] + - ["::from_pool", "Argument[1]", "ReturnValue.Field[awc::client::connection::ConnectionType::H1(0)].Field[awc::client::connection::H1Connection::created]", "value", "dfc-generated"] + - ["::from_pool", "Argument[1]", "ReturnValue.Field[awc::client::connection::ConnectionType::H2(0)].Field[awc::client::connection::H2Connection::created]", "value", "dfc-generated"] + - ["::from_pool", "Argument[2]", "ReturnValue.Field[awc::client::connection::ConnectionType::H1(0)].Field[awc::client::connection::H1Connection::acquired]", "value", "dfc-generated"] + - ["::from_pool", "Argument[2]", "ReturnValue.Field[awc::client::connection::ConnectionType::H2(0)].Field[awc::client::connection::H2Connection::acquired]", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[awc::client::connection::H2ConnectionInner::sender]", "value", "dfc-generated"] - ["::conn_keep_alive", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_keep_alive]", "value", "dfc-generated"] - ["::conn_keep_alive", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_keep_alive]", "value", "dfc-generated"] @@ -1072,7 +1283,6 @@ extensions: - ["::connector", "Argument[self].Field[awc::client::connector::Connector::config]", "ReturnValue.Field[awc::client::connector::Connector::config]", "value", "dfc-generated"] - ["::connector", "Argument[self].Field[awc::client::connector::Connector::tls]", "ReturnValue.Field[awc::client::connector::Connector::tls]", "value", "dfc-generated"] - ["::disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::handshake_timeout", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::handshake_timeout]", "value", "dfc-generated"] - ["::handshake_timeout", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::handshake_timeout]", "value", "dfc-generated"] - ["::handshake_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -1108,26 +1318,22 @@ extensions: - ["::timeout", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::timeout]", "value", "dfc-generated"] - ["::timeout", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::timeout]", "value", "dfc-generated"] - ["::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorFuture::fut]", "ReturnValue.Field[awc::client::connector::TcpConnectorFutureProj::fut].Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorInnerFuture::fut]", "ReturnValue.Field[awc::client::connector::TcpConnectorInnerFutureProj::fut].Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorInnerFuture::timeout]", "ReturnValue.Field[awc::client::connector::TcpConnectorInnerFutureProj::timeout].Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorInnerFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorInnerFuture::timeout]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[awc::client::connector::TlsConnectorService::timeout]", "ReturnValue.Field[awc::client::connector::TlsConnectorFuture::TcpConnect::timeout]", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[awc::client::connector::TlsConnectorService::tls_service].Reference", "ReturnValue.Field[awc::client::connector::TlsConnectorFuture::TcpConnect::tls_service].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[awc::client::connector::TlsConnectorService::tls_service]", "ReturnValue.Field[awc::client::connector::TlsConnectorFuture::TcpConnect::tls_service].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[awc::client::connector::TcpConnectorInnerService::local_address]", "ReturnValue.Field[awc::client::connector::TcpConnectorInnerService::local_address]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[awc::client::connector::TcpConnectorInnerService::timeout]", "ReturnValue.Field[awc::client::connector::TcpConnectorInnerService::timeout]", "value", "dfc-generated"] + - ["::call", "Argument[self].Reference.Field[awc::client::connector::TlsConnectorService::timeout]", "ReturnValue.Field[awc::client::connector::TlsConnectorFuture::TcpConnect::timeout]", "value", "dfc-generated"] + - ["::call", "Argument[self].Reference.Field[awc::client::connector::TlsConnectorService::tls_service]", "ReturnValue.Field[awc::client::connector::TlsConnectorFuture::TcpConnect::tls_service].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::ConnectError::H2(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::ConnectError::Io(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::ConnectError::Resolver(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::ConnectError::SslError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[awc::client::error::FreezeRequestError::Custom(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[awc::client::error::FreezeRequestError::Custom(1)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::FreezeRequestError::Http(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::FreezeRequestError::Url(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::InvalidUrl::HttpError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[awc::client::error::SendRequestError::Custom(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[awc::client::error::SendRequestError::Custom(1)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::SendRequestError::Body(0)]", "value", "dfc-generated"] @@ -1137,15 +1343,16 @@ extensions: - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::SendRequestError::Response(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::SendRequestError::Send(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::SendRequestError::Url(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::h1proto::PlStream::framed]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::h1proto::PlStream::framed]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[awc::client::pool::ConnectionPool::connector]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[awc::client::pool::ConnectionPoolInner(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[awc::client::pool::ConnectionPoolInner(0)]", "ReturnValue.Field[awc::client::pool::ConnectionPoolInner(0)]", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[awc::client::pool::ConnectionPoolInner(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[awc::client::pool::Key::authority]", "ReturnValue.Field[awc::client::pool::Key::authority]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::pool::Key::authority]", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[awc::client::pool::test::TestPoolConnector::generated].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[awc::client::pool::test::TestPoolConnector::generated]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[awc::client::pool::test::TestPoolConnector::generated].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[awc::client::pool::test::TestPoolConnector::generated].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[awc::client::pool::test::TestPoolConnector::generated].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[awc::client::pool::test::TestPoolConnector::generated].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[awc::client::pool::test::TestPoolConnector::generated]", "ReturnValue.Field[awc::client::pool::test::TestPoolConnector::generated]", "value", "dfc-generated"] - ["::into_client_response", "Argument[self].Field[awc::connect::ConnectResponse::Client(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_tunnel_response", "Argument[self].Field[awc::connect::ConnectResponse::Tunnel(0)]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_tunnel_response", "Argument[self].Field[awc::connect::ConnectResponse::Tunnel(1)]", "ReturnValue.Field[1]", "value", "dfc-generated"] @@ -1153,20 +1360,25 @@ extensions: - ["::new", "Argument[0]", "ReturnValue.Field[awc::connect::DefaultConnector::connector]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::error::JsonPayloadError::Deserialize(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::error::JsonPayloadError::Payload(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[awc::error::WsClientError::InvalidChallengeResponse(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[awc::error::WsClientError::InvalidChallengeResponse(1)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::error::WsClientError::InvalidConnectionHeader(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::error::WsClientError::InvalidResponseStatus(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::error::WsClientError::Protocol(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::error::WsClientError::SendRequest(0)]", "value", "dfc-generated"] - - ["::extra_header", "Argument[self].Reference", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::extra_header", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extra_headers", "Argument[0]", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::extra_headers]", "value", "dfc-generated"] - - ["::extra_headers", "Argument[self].Reference", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] - - ["::send", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["::send_body", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["::send_form", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["::send_json", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["::send_stream", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::get_method", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_uri", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[self].Reference.Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_body", "Argument[self].Reference.Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_form", "Argument[self].Reference.Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_json", "Argument[self].Reference.Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_stream", "Argument[self].Reference.Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - ["::extra_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::extra_headers]", "value", "dfc-generated"] @@ -1177,12 +1389,13 @@ extensions: - ["::send_stream", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[awc::middleware::NestTransform::child]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[awc::middleware::NestTransform::parent]", "value", "dfc-generated"] + - ["::new_transform", "Argument[self].Field[awc::middleware::redirect::Redirect::max_redirect_times]", "ReturnValue.Field[awc::middleware::redirect::RedirectService::max_redirect_times]", "value", "dfc-generated"] - ["::max_redirect_times", "Argument[0]", "Argument[self].Field[awc::middleware::redirect::Redirect::max_redirect_times]", "value", "dfc-generated"] - ["::max_redirect_times", "Argument[0]", "ReturnValue.Field[awc::middleware::redirect::Redirect::max_redirect_times]", "value", "dfc-generated"] - ["::max_redirect_times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::call", "Argument[0].Field[awc::connect::ConnectRequest::Client(2)]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::addr]", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[awc::middleware::redirect::RedirectService::connector]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::connector].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[awc::middleware::redirect::RedirectService::max_redirect_times]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::max_redirect_times]", "value", "dfc-generated"] + - ["::call", "Argument[self].Reference.Field[awc::middleware::redirect::RedirectService::connector]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::connector].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::call", "Argument[self].Reference.Field[awc::middleware::redirect::RedirectService::max_redirect_times]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::max_redirect_times]", "value", "dfc-generated"] - ["::address", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::address", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -1194,12 +1407,13 @@ extensions: - ["::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_method", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_peer_addr", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::peer_addr]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_uri", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::uri]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_version", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::version]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers_mut", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::freeze", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_method", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_uri", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::insert_header_if_none", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::method", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] @@ -1209,6 +1423,11 @@ extensions: - ["::new", "Argument[2]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - ["::no_decompress", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::query", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::send", "Argument[self].Field[awc::request::ClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_body", "Argument[self].Field[awc::request::ClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_form", "Argument[self].Field[awc::request::ClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_json", "Argument[self].Field[awc::request::ClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_stream", "Argument[self].Field[awc::request::ClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - ["::timeout", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::timeout", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -1217,40 +1436,30 @@ extensions: - ["::version", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::version]", "value", "dfc-generated"] - ["::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[awc::responses::read_body::ReadBody::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[awc::responses::read_body::ReadBody::limit]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::limit]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::limit]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::headers", "Argument[self].Field[awc::responses::response::ClientResponse::head].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::_timeout", "Argument[0]", "Argument[self].Field[awc::responses::response::ClientResponse::timeout].Field[awc::responses::ResponseTimeout::Disabled(0)]", "value", "dfc-generated"] - ["::_timeout", "Argument[0]", "ReturnValue.Field[awc::responses::response::ClientResponse::timeout].Field[awc::responses::ResponseTimeout::Disabled(0)]", "value", "dfc-generated"] - ["::_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::cookies", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::head", "Argument[self].Field[awc::responses::response::ClientResponse::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::head", "Argument[self].Reference.Field[awc::responses::response::ClientResponse::head]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::map_body", "Argument[0].ReturnValue", "ReturnValue.Field[awc::responses::response::ClientResponse::payload]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[awc::responses::response::ClientResponse::head]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[awc::responses::response::ClientResponse::payload]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::status", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::timeout", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::sender::PrepForSendingError::Form(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::sender::PrepForSendingError::Http(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::sender::PrepForSendingError::Json(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[awc::sender::PrepForSendingError::Url(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::send", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - ["::send_body", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - ["::send_form", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] @@ -1261,6 +1470,7 @@ extensions: - ["::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::finish", "Argument[self].Field[awc::test::TestResponse::head]", "ReturnValue.Field[awc::responses::response::ClientResponse::head]", "value", "dfc-generated"] + - ["::finish", "Argument[self].Field[awc::test::TestResponse::payload].Field[core::option::Option::Some(0)]", "ReturnValue.Field[awc::responses::response::ClientResponse::payload]", "value", "dfc-generated"] - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::version", "Argument[0]", "Argument[self].Field[awc::test::TestResponse::head].Field[actix_http::responses::head::ResponseHead::version]", "value", "dfc-generated"] @@ -1283,26 +1493,29 @@ extensions: - ["::set_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_header_if_none", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::patterns", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::handle_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::handle_field", "Argument[3]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::respond_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[actix_http::ws::proto::CloseCode::Other(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[actix_web::types::either::EitherExtractError::Bytes(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_as_name", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["::try_into_value", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[on-connect::ConnectionInfo::bind]", "ReturnValue.Field[on-connect::ConnectionInfo::bind]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[on-connect::ConnectionInfo::peer]", "ReturnValue.Field[on-connect::ConnectionInfo::peer]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[on-connect::ConnectionInfo::ttl]", "ReturnValue.Field[on-connect::ConnectionInfo::ttl]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[actix_http::header::shared::http_date::HttpDate(0)]", "ReturnValue", "value", "dfc-generated"] - ["actix_files::chunked::new_chunked_read", "Argument[0]", "ReturnValue.Field[actix_files::chunked::ChunkedReadFile::size]", "value", "dfc-generated"] - ["actix_files::chunked::new_chunked_read", "Argument[1]", "ReturnValue.Field[actix_files::chunked::ChunkedReadFile::offset]", "value", "dfc-generated"] - - ["actix_files::directory::directory_listing", "Argument[1].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - ["actix_files::encoding::equiv_utf8_text", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["actix_router::resource::insert_slash", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["actix_web::guard::Method", "Argument[0]", "ReturnValue.Field[actix_web::guard::MethodGuard(0)]", "value", "dfc-generated"] - ["actix_web::guard::fn_guard", "Argument[0]", "ReturnValue.Field[actix_web::guard::FnGuard(0)]", "value", "dfc-generated"] + - ["actix_web::web::redirect", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["actix_web::web::redirect", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["actix_web::web::scope", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["actix_web_codegen::connect", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["actix_web_codegen::delete", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["actix_web_codegen::get", "Argument[1]", "ReturnValue", "value", "dfc-generated"] @@ -1322,26 +1535,68 @@ extensions: pack: codeql/rust-all extensible: sinkModel data: - - ["::respond_to", "Argument[self]", "pointer-access", "df-generated"] - - ["::into_response", "Argument[self]", "pointer-access", "df-generated"] - - ["::last_modified", "Argument[self]", "pointer-access", "df-generated"] - - ["::from_io", "Argument[1]", "pointer-access", "df-generated"] - - ["::new", "Argument[4]", "pointer-access", "df-generated"] - - ["::new", "Argument[4]", "pointer-access", "df-generated"] + - ["::new", "Argument[1]", "log-injection", "df-generated"] + - ["::respond_to", "Argument[self]", "alloc-layout", "df-generated"] + - ["::respond_to", "Argument[self]", "log-injection", "df-generated"] + - ["::etag", "Argument[self]", "log-injection", "df-generated"] + - ["::into_response", "Argument[self]", "alloc-layout", "df-generated"] + - ["::into_response", "Argument[self]", "log-injection", "df-generated"] + - ["::last_modified", "Argument[self]", "alloc-layout", "df-generated"] + - ["::last_modified", "Argument[self]", "log-injection", "df-generated"] + - ["::from_io", "Argument[1]", "alloc-layout", "df-generated"] + - ["::from_io", "Argument[1]", "log-injection", "df-generated"] + - ["::new", "Argument[4]", "alloc-layout", "df-generated"] + - ["::new", "Argument[4]", "log-injection", "df-generated"] + - ["::new", "Argument[4]", "alloc-layout", "df-generated"] + - ["::new", "Argument[4]", "log-injection", "df-generated"] + - ["::new", "Argument[5]", "alloc-layout", "df-generated"] + - ["::new", "Argument[5]", "log-injection", "df-generated"] - ["::call", "Argument[0]", "log-injection", "df-generated"] + - ["::read_stream", "Argument[0]", "pointer-access", "df-generated"] + - ["::read_until", "Argument[0]", "pointer-access", "df-generated"] + - ["::read_until", "Argument[self]", "pointer-access", "df-generated"] + - ["::readline", "Argument[self]", "pointer-access", "df-generated"] + - ["::readline_or_eof", "Argument[self]", "pointer-access", "df-generated"] + - ["::ranked", "Argument[self]", "pointer-access", "df-generated"] + - ["::negotiate", "Argument[self]", "pointer-access", "df-generated"] + - ["::ranked", "Argument[self]", "pointer-access", "df-generated"] + - ["::ranked", "Argument[self]", "pointer-access", "df-generated"] - ["::new", "Argument[1]", "log-injection", "df-generated"] - ["::new_strong", "Argument[0]", "log-injection", "df-generated"] - ["::new_weak", "Argument[0]", "log-injection", "df-generated"] + - ["::set_tag", "Argument[0]", "log-injection", "df-generated"] - ["::strong", "Argument[0]", "log-injection", "df-generated"] - ["::weak", "Argument[0]", "log-injection", "df-generated"] - - ["::new", "Argument[0]", "pointer-access", "df-generated"] + - ["::bytes_multi", "Argument[0]", "pointer-access", "df-generated"] + - ["::from_request", "Argument[0]", "alloc-layout", "df-generated"] + - ["::from_request", "Argument[0]", "log-injection", "df-generated"] + - ["::new", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new", "Argument[0]", "log-injection", "df-generated"] - ["::new", "Argument[0]", "log-injection", "df-generated"] - ["::custom_request_replace", "Argument[0]", "log-injection", "df-generated"] - ["::custom_response_replace", "Argument[0]", "log-injection", "df-generated"] - ["::new", "Argument[0]", "log-injection", "df-generated"] + - ["::call", "Argument[0]", "alloc-layout", "df-generated"] + - ["::call", "Argument[0]", "log-injection", "df-generated"] - ["::respond_to", "Argument[self]", "log-injection", "df-generated"] - - ["::register", "Argument[self]", "pointer-access", "df-generated"] + - ["::connection_info", "Argument[self]", "alloc-layout", "df-generated"] + - ["::connection_info", "Argument[self]", "log-injection", "df-generated"] + - ["::full_url", "Argument[self]", "alloc-layout", "df-generated"] + - ["::full_url", "Argument[self]", "log-injection", "df-generated"] + - ["::url_for", "Argument[self]", "alloc-layout", "df-generated"] + - ["::url_for", "Argument[self]", "log-injection", "df-generated"] + - ["::url_for_static", "Argument[self]", "alloc-layout", "df-generated"] + - ["::url_for_static", "Argument[self]", "log-injection", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::register", "Argument[self]", "alloc-layout", "df-generated"] + - ["::register", "Argument[self]", "log-injection", "df-generated"] + - ["::url_for", "Argument[0]", "alloc-layout", "df-generated"] + - ["::url_for", "Argument[0]", "log-injection", "df-generated"] + - ["::register", "Argument[self]", "alloc-layout", "df-generated"] + - ["::register", "Argument[self]", "log-injection", "df-generated"] - ["::register", "Argument[self]", "pointer-access", "df-generated"] + - ["::connection_info", "Argument[self]", "alloc-layout", "df-generated"] + - ["::connection_info", "Argument[self]", "log-injection", "df-generated"] - ["::write", "Argument[self]", "log-injection", "df-generated"] - ["::write_eof", "Argument[self]", "log-injection", "df-generated"] - ["::binary", "Argument[self]", "log-injection", "df-generated"] @@ -1350,26 +1605,65 @@ extensions: - ["::pong", "Argument[self]", "log-injection", "df-generated"] - ["::text", "Argument[self]", "log-injection", "df-generated"] - ["::write_raw", "Argument[self]", "log-injection", "df-generated"] - - ["::send", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_body", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_form", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_json", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_stream", "Argument[self]", "pointer-access", "df-generated"] - - ["::send", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_body", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_form", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_json", "Argument[self]", "pointer-access", "df-generated"] - - ["::send_stream", "Argument[self]", "pointer-access", "df-generated"] - - ["::send", "Argument[2]", "pointer-access", "df-generated"] - - ["::send", "Argument[3]", "pointer-access", "df-generated"] - - ["::send_body", "Argument[2]", "pointer-access", "df-generated"] - - ["::send_body", "Argument[3]", "pointer-access", "df-generated"] - - ["::send_form", "Argument[2]", "pointer-access", "df-generated"] - - ["::send_form", "Argument[3]", "pointer-access", "df-generated"] - - ["::send_json", "Argument[2]", "pointer-access", "df-generated"] - - ["::send_json", "Argument[3]", "pointer-access", "df-generated"] - - ["::send_stream", "Argument[2]", "pointer-access", "df-generated"] - - ["::send_stream", "Argument[3]", "pointer-access", "df-generated"] - - ["::new", "Argument[2]", "pointer-access", "df-generated"] - - ["actix_http::ws::proto::hash_key", "Argument[0]", "hasher-input", "df-generated"] + - ["::register", "Argument[self]", "pointer-access", "df-generated"] + - ["::send", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send", "Argument[self]", "log-injection", "df-generated"] + - ["::send_body", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_body", "Argument[self]", "log-injection", "df-generated"] + - ["::send_form", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_form", "Argument[self]", "log-injection", "df-generated"] + - ["::send_json", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_json", "Argument[self]", "log-injection", "df-generated"] + - ["::send_stream", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_stream", "Argument[self]", "log-injection", "df-generated"] + - ["::send", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send", "Argument[self]", "log-injection", "df-generated"] + - ["::send_body", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_body", "Argument[self]", "log-injection", "df-generated"] + - ["::send_form", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_form", "Argument[self]", "log-injection", "df-generated"] + - ["::send_json", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_json", "Argument[self]", "log-injection", "df-generated"] + - ["::send_stream", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_stream", "Argument[self]", "log-injection", "df-generated"] + - ["::send", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send", "Argument[self]", "log-injection", "df-generated"] + - ["::send_body", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_body", "Argument[self]", "log-injection", "df-generated"] + - ["::send_form", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_form", "Argument[self]", "log-injection", "df-generated"] + - ["::send_json", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_json", "Argument[self]", "log-injection", "df-generated"] + - ["::send_stream", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send_stream", "Argument[self]", "log-injection", "df-generated"] + - ["::send", "Argument[2]", "alloc-layout", "df-generated"] + - ["::send", "Argument[2]", "log-injection", "df-generated"] + - ["::send", "Argument[3]", "alloc-layout", "df-generated"] + - ["::send", "Argument[3]", "log-injection", "df-generated"] + - ["::send_body", "Argument[2]", "alloc-layout", "df-generated"] + - ["::send_body", "Argument[2]", "log-injection", "df-generated"] + - ["::send_body", "Argument[3]", "alloc-layout", "df-generated"] + - ["::send_body", "Argument[3]", "log-injection", "df-generated"] + - ["::send_form", "Argument[2]", "alloc-layout", "df-generated"] + - ["::send_form", "Argument[2]", "log-injection", "df-generated"] + - ["::send_form", "Argument[3]", "alloc-layout", "df-generated"] + - ["::send_form", "Argument[3]", "log-injection", "df-generated"] + - ["::send_json", "Argument[2]", "alloc-layout", "df-generated"] + - ["::send_json", "Argument[2]", "log-injection", "df-generated"] + - ["::send_json", "Argument[3]", "alloc-layout", "df-generated"] + - ["::send_json", "Argument[3]", "log-injection", "df-generated"] + - ["::send_stream", "Argument[2]", "alloc-layout", "df-generated"] + - ["::send_stream", "Argument[2]", "log-injection", "df-generated"] + - ["::send_stream", "Argument[3]", "alloc-layout", "df-generated"] + - ["::send_stream", "Argument[3]", "log-injection", "df-generated"] + - ["::new", "Argument[2]", "alloc-layout", "df-generated"] + - ["::new", "Argument[2]", "log-injection", "df-generated"] + - ["actix_files::directory::directory_listing", "Argument[0]", "path-injection", "df-generated"] + - ["actix_web_codegen::route::with_methods", "Argument[0]", "pointer-access", "df-generated"] + - ["actix_web_codegen::routes", "Argument[1]", "pointer-access", "df-generated"] - ["awc::client::h2proto::send_request", "Argument[1]", "log-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["actix_files::directory::directory_listing", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap.model.yml b/rust/ql/lib/ext/generated/clap.model.yml index 376b4ca530b..a3003f88fac 100644 --- a/rust/ql/lib/ext/generated/clap.model.yml +++ b/rust/ql/lib/ext/generated/clap.model.yml @@ -4,11 +4,18 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["<04_01_enum::Mode as core::fmt::Display>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["<04_01_enum::Mode as core::str::traits::FromStr>::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::app_settings::AppFlags(0)]", "ReturnValue.Field[clap_builder::builder::app_settings::AppFlags(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::app_settings::AppFlags(0)]", "ReturnValue.Field[clap_builder::builder::app_settings::AppFlags(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::insert", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::unset", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::action", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -33,19 +40,21 @@ extensions: - ["::env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::env_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::exclusive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_action", "Argument[self].Field[clap_builder::builder::arg::Arg::action].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_default_values", "Argument[self].Field[clap_builder::builder::arg::Arg::default_vals]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_display_order", "Argument[self].Field[clap_builder::builder::arg::Arg::disp_ord].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::get_env", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_help", "Argument[self].Field[clap_builder::builder::arg::Arg::help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_id", "Argument[self].Field[clap_builder::builder::arg::Arg::id]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_index", "Argument[self].Field[clap_builder::builder::arg::Arg::index]", "ReturnValue", "value", "dfc-generated"] - - ["::get_long_help", "Argument[self].Field[clap_builder::builder::arg::Arg::long_help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_num_args", "Argument[self].Field[clap_builder::builder::arg::Arg::num_vals]", "ReturnValue", "value", "dfc-generated"] - - ["::get_short", "Argument[self].Field[clap_builder::builder::arg::Arg::short]", "ReturnValue", "value", "dfc-generated"] - - ["::get_value_delimiter", "Argument[self].Field[clap_builder::builder::arg::Arg::val_delim]", "ReturnValue", "value", "dfc-generated"] - - ["::get_value_names", "Argument[self].Field[clap_builder::builder::arg::Arg::val_names]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_value_terminator", "Argument[self].Field[clap_builder::builder::arg::Arg::terminator].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::get_action", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_default_values", "Argument[self].Reference.Field[clap_builder::builder::arg::Arg::default_vals]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_display_order", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_id", "Argument[self].Reference.Field[clap_builder::builder::arg::Arg::id]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_index", "Argument[self].Reference.Field[clap_builder::builder::arg::Arg::index]", "ReturnValue", "value", "dfc-generated"] + - ["::get_long_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_min_vals", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_num_args", "Argument[self].Reference.Field[clap_builder::builder::arg::Arg::num_vals]", "ReturnValue", "value", "dfc-generated"] + - ["::get_short", "Argument[self].Reference.Field[clap_builder::builder::arg::Arg::short]", "ReturnValue", "value", "dfc-generated"] + - ["::get_value_delimiter", "Argument[self].Reference.Field[clap_builder::builder::arg::Arg::val_delim]", "ReturnValue", "value", "dfc-generated"] + - ["::get_value_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_value_names", "Argument[self].Reference.Field[clap_builder::builder::arg::Arg::val_names]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::get_value_parser", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_value_terminator", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::global", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -64,6 +73,7 @@ extensions: - ["::last", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::long", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_line_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::num_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::number_of_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -99,25 +109,39 @@ extensions: - ["::visible_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::visible_short_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::visible_short_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::conflicts_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::conflicts_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_id", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::id]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_id", "Argument[self].Reference.Field[clap_builder::builder::arg_group::ArgGroup::id]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::is_multiple", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::multiple]", "ReturnValue", "value", "dfc-generated"] - - ["::is_required_set", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::required]", "ReturnValue", "value", "dfc-generated"] + - ["::is_multiple", "Argument[self].Reference.Field[clap_builder::builder::arg_group::ArgGroup::multiple]", "ReturnValue", "value", "dfc-generated"] + - ["::is_required_set", "Argument[self].Reference.Field[clap_builder::builder::arg_group::ArgGroup::required]", "ReturnValue", "value", "dfc-generated"] - ["::multiple", "Argument[0]", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::multiple]", "value", "dfc-generated"] - ["::multiple", "Argument[0]", "ReturnValue.Field[clap_builder::builder::arg_group::ArgGroup::multiple]", "value", "dfc-generated"] - ["::multiple", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::required", "Argument[0]", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::required]", "value", "dfc-generated"] - ["::required", "Argument[0]", "ReturnValue.Field[clap_builder::builder::arg_group::ArgGroup::required]", "value", "dfc-generated"] - ["::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::requires", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::requires_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::arg_settings::ArgFlags(0)]", "ReturnValue.Field[clap_builder::builder::arg_settings::ArgFlags(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::arg_settings::ArgFlags(0)]", "ReturnValue.Field[clap_builder::builder::arg_settings::ArgFlags(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::insert", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::unset", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::_render_version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::after_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -151,19 +175,24 @@ extensions: - ["::dont_delimit_trailing_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::external_subcommand_value_parser", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::flatten_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_about", "Argument[self].Field[clap_builder::builder::command::Command::about].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_after_help", "Argument[self].Field[clap_builder::builder::command::Command::after_help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_after_long_help", "Argument[self].Field[clap_builder::builder::command::Command::after_long_help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_before_help", "Argument[self].Field[clap_builder::builder::command::Command::before_help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_before_long_help", "Argument[self].Field[clap_builder::builder::command::Command::before_long_help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_display_order", "Argument[self].Field[clap_builder::builder::command::Command::disp_ord].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::get_external_subcommand_value_parser", "Argument[self].Field[clap_builder::builder::command::Command::external_value_parser].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_help_template", "Argument[self].Field[clap_builder::builder::command::Command::template].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_keymap", "Argument[self].Field[clap_builder::builder::command::Command::args]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_long_about", "Argument[self].Field[clap_builder::builder::command::Command::long_about].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_override_help", "Argument[self].Field[clap_builder::builder::command::Command::help_str].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_override_usage", "Argument[self].Field[clap_builder::builder::command::Command::usage_str].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_short_flag", "Argument[self].Field[clap_builder::builder::command::Command::short_flag]", "ReturnValue", "value", "dfc-generated"] + - ["::get_about", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_after_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_after_long_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_before_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_before_long_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_bin_name_fallback", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_display_order", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_external_subcommand_value_parser", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_help_template", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_keymap", "Argument[self].Reference.Field[clap_builder::builder::command::Command::args]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_long_about", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_matches", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_matches_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_override_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_override_usage", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_short_flag", "Argument[self].Reference.Field[clap_builder::builder::command::Command::short_flag]", "ReturnValue", "value", "dfc-generated"] + - ["::get_usage_name_fallback", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::global_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -178,7 +207,7 @@ extensions: - ["::long_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::long_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::long_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::long_help_exists", "Argument[self].Field[clap_builder::builder::command::Command::long_help_exists]", "ReturnValue", "value", "dfc-generated"] + - ["::long_help_exists", "Argument[self].Reference.Field[clap_builder::builder::command::Command::long_help_exists]", "ReturnValue", "value", "dfc-generated"] - ["::long_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_term_width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::multicall", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -187,6 +216,7 @@ extensions: - ["::mut_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mut_subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::next_help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::next_line_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -194,6 +224,10 @@ extensions: - ["::override_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::override_usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::propagate_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::render_long_version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::render_version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_bin_name", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::short_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::short_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -217,43 +251,103 @@ extensions: - ["::visible_long_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::visible_short_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::visible_short_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::write_version_err", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::command::MaxTermWidth(0)]", "ReturnValue.Field[clap_builder::builder::command::MaxTermWidth(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::command::MaxTermWidth(0)]", "ReturnValue.Field[clap_builder::builder::command::MaxTermWidth(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::command::TermWidth(0)]", "ReturnValue.Field[clap_builder::builder::command::TermWidth(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::command::TermWidth(0)]", "ReturnValue.Field[clap_builder::builder::command::TermWidth(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::os_str::OsStr::name].Field[clap_builder::builder::os_str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::os_str::OsStr::name].Field[clap_builder::builder::os_str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0].Reference", "ReturnValue.Field[clap_builder::builder::os_str::OsStr::name].Field[clap_builder::builder::os_str::inner::Inner::Static(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[clap_builder::builder::os_str::OsStr::name].Field[clap_builder::builder::os_str::inner::Inner::Static(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_os_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ref", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::os_str::OsStr::name].Field[clap_builder::builder::os_str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::from_ref", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::os_str::OsStr::name].Field[clap_builder::builder::os_str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::from_static_ref", "Argument[0]", "ReturnValue.Field[clap_builder::builder::os_str::OsStr::name].Field[clap_builder::builder::os_str::inner::Inner::Static(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::os_str::inner::Inner::Owned(0)]", "ReturnValue.Field[clap_builder::builder::os_str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::as_os_str", "Argument[self].Field[clap_builder::builder::os_str::inner::Inner::Owned(0)].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_os_str", "Argument[self].Field[clap_builder::builder::os_str::inner::Inner::Static(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_static_ref", "Argument[0]", "ReturnValue.Field[clap_builder::builder::os_str::inner::Inner::Static(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_help", "Argument[self].Field[clap_builder::builder::possible_value::PossibleValue::help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::get_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::hide", "Argument[0]", "Argument[self].Field[clap_builder::builder::possible_value::PossibleValue::hide]", "value", "dfc-generated"] - ["::hide", "Argument[0]", "ReturnValue.Field[clap_builder::builder::possible_value::PossibleValue::hide]", "value", "dfc-generated"] - ["::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::is_hide_set", "Argument[self].Field[clap_builder::builder::possible_value::PossibleValue::hide]", "ReturnValue", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[clap_builder::builder::range::ValueRange::end_inclusive]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::max_values", "Argument[self].Field[clap_builder::builder::range::ValueRange::end_inclusive]", "ReturnValue", "value", "dfc-generated"] - - ["::min_values", "Argument[self].Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue", "value", "dfc-generated"] - - ["::num_values", "Argument[self].Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::is_hide_set", "Argument[self].Reference.Field[clap_builder::builder::possible_value::PossibleValue::hide]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0].Field[core::ops::range::Range::start]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::end_inclusive]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::end_inclusive]", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[clap_builder::builder::range::ValueRange::end_inclusive]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::max_values", "Argument[self].Reference.Field[clap_builder::builder::range::ValueRange::end_inclusive]", "ReturnValue", "value", "dfc-generated"] + - ["::min_values", "Argument[self].Reference.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::num_values", "Argument[self].Reference.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::raw", "Argument[0]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "value", "dfc-generated"] - ["::raw", "Argument[1]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::end_inclusive]", "value", "dfc-generated"] - ["::into_resettable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_option", "Argument[self].Field[clap_builder::builder::resettable::Resettable::Value(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::str::Str::name].Field[clap_builder::builder::str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::str::Str::name].Field[clap_builder::builder::str::inner::Inner::Owned(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[clap_builder::util::id::Id(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[clap_builder::builder::str::Str::name].Field[clap_builder::builder::str::inner::Inner::Static(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ref", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::str::Str::name].Field[clap_builder::builder::str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::from_ref", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[clap_builder::builder::str::Str::name].Field[clap_builder::builder::str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::from_static_ref", "Argument[0]", "ReturnValue.Field[clap_builder::builder::str::Str::name].Field[clap_builder::builder::str::inner::Inner::Static(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[clap_builder::builder::str::Str::name]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::str::inner::Inner::Owned(0)]", "ReturnValue.Field[clap_builder::builder::str::inner::Inner::Owned(0)]", "value", "dfc-generated"] + - ["::as_str", "Argument[self].Field[clap_builder::builder::str::inner::Inner::Owned(0)].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_str", "Argument[self].Field[clap_builder::builder::str::inner::Inner::Static(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_static_ref", "Argument[0]", "ReturnValue.Field[clap_builder::builder::str::inner::Inner::Static(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::styled_str::StyledStr(0)]", "ReturnValue.Field[clap_builder::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::ansi", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_styled_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_styled_str", "Argument[self].Field[clap_builder::builder::styled_str::StyledStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ansi", "Argument[self].Reference.Field[clap_builder::builder::styled_str::StyledStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_styled_str", "Argument[self].Reference.Field[clap_builder::builder::styled_str::StyledStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::error", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::error]", "value", "dfc-generated"] - ["::error", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::error]", "value", "dfc-generated"] - ["::error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_error", "Argument[self].Field[clap_builder::builder::styling::Styles::error]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_header", "Argument[self].Field[clap_builder::builder::styling::Styles::header]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_invalid", "Argument[self].Field[clap_builder::builder::styling::Styles::invalid]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_literal", "Argument[self].Field[clap_builder::builder::styling::Styles::literal]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_placeholder", "Argument[self].Field[clap_builder::builder::styling::Styles::placeholder]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_usage", "Argument[self].Field[clap_builder::builder::styling::Styles::usage]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_valid", "Argument[self].Field[clap_builder::builder::styling::Styles::valid]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_error", "Argument[self].Reference.Field[clap_builder::builder::styling::Styles::error]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_header", "Argument[self].Reference.Field[clap_builder::builder::styling::Styles::header]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_invalid", "Argument[self].Reference.Field[clap_builder::builder::styling::Styles::invalid]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_literal", "Argument[self].Reference.Field[clap_builder::builder::styling::Styles::literal]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_placeholder", "Argument[self].Reference.Field[clap_builder::builder::styling::Styles::placeholder]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_usage", "Argument[self].Reference.Field[clap_builder::builder::styling::Styles::usage]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_valid", "Argument[self].Reference.Field[clap_builder::builder::styling::Styles::valid]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::header", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::header]", "value", "dfc-generated"] - ["::header", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::header]", "value", "dfc-generated"] - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -274,20 +368,67 @@ extensions: - ["::valid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::value_parser::EnumValueParser(0)]", "ReturnValue.Field[clap_builder::builder::value_parser::EnumValueParser(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::parse", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::parse_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::parse", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse", "Argument[2].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::parse", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::path::PathBuf::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::value_parser::PossibleValuesParser(0)]", "ReturnValue.Field[clap_builder::builder::value_parser::PossibleValuesParser(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::value_parser::RangedI64ValueParser::target]", "ReturnValue.Field[clap_builder::builder::value_parser::RangedI64ValueParser::target]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::value_parser::RangedU64ValueParser::target]", "ReturnValue.Field[clap_builder::builder::value_parser::RangedU64ValueParser::target]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::parse", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::value_parser::UnknownArgumentValueParser::arg]", "ReturnValue.Field[clap_builder::builder::value_parser::UnknownArgumentValueParser::arg]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::builder::value_parser::UnknownArgumentValueParser::suggestions]", "ReturnValue.Field[clap_builder::builder::value_parser::UnknownArgumentValueParser::suggestions]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::and_suggest", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::suggest_arg", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[clap_builder::builder::value_parser::_AnonymousValueParser(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::apply", "Argument[self].Field[clap_builder::error::Error::inner]", "ReturnValue.Field[clap_builder::error::Error::inner]", "value", "dfc-generated"] - ["::extend_context_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::format", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::insert", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::insert_context_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::kind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::render", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::set_color", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_colored_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_help_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -295,10 +436,26 @@ extensions: - ["::set_source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_styles", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::with_cmd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::error::Message::Raw(0)]", "ReturnValue.Field[clap_builder::error::Message::Raw(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[clap_builder::error::Message::Formatted(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[clap_builder::error::Message::Raw(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::mkeymap::Key::index]", "ReturnValue.Field[clap_builder::mkeymap::Key::index].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::mkeymap::Key::index]", "ReturnValue.Field[clap_builder::mkeymap::Key::index]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::mkeymap::MKeyMap::args]", "ReturnValue.Field[clap_builder::mkeymap::MKeyMap::args]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::mkeymap::MKeyMap::keys]", "ReturnValue.Field[clap_builder::mkeymap::MKeyMap::keys]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remove_by_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::fmt::Colorizer::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[clap_builder::output::fmt::Colorizer::color_when]", "value", "dfc-generated"] - ["::with_content", "Argument[0]", "Argument[self].Field[clap_builder::output::fmt::Colorizer::content]", "value", "dfc-generated"] @@ -312,87 +469,183 @@ extensions: - ["::new", "Argument[1]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::cmd]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::usage]", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::use_long]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::textwrap::wrap_algorithms::LineWrapper::hard_width]", "value", "dfc-generated"] - ["::wrap", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::usage::Usage::cmd]", "value", "dfc-generated"] - ["::required", "Argument[0]", "Argument[self].Field[clap_builder::output::usage::Usage::required].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::required", "Argument[0]", "ReturnValue.Field[clap_builder::output::usage::Usage::required].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[clap_builder::parser::arg_matcher::ArgMatcher::matches]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[clap_builder::parser::arg_matcher::ArgMatcher::matches]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::check_explicit", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::entry", "Argument[0]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Vacant(0)].Field[clap_builder::util::flat_map::VacantEntry::key]", "value", "dfc-generated"] - - ["::entry", "Argument[self].Field[clap_builder::parser::arg_matcher::ArgMatcher::matches].Field[clap_builder::parser::matches::arg_matches::ArgMatches::args]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Occupied(0)].Field[clap_builder::util::flat_map::OccupiedEntry::v]", "value", "dfc-generated"] - - ["::entry", "Argument[self].Field[clap_builder::parser::arg_matcher::ArgMatcher::matches].Field[clap_builder::parser::matches::arg_matches::ArgMatches::args]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Vacant(0)].Field[clap_builder::util::flat_map::VacantEntry::v]", "value", "dfc-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[clap_builder::parser::arg_matcher::ArgMatcher::matches]", "ReturnValue", "value", "dfc-generated"] - - ["::pending_arg_id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::pending_values_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::unwrap", "Argument[1].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::subcommand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::subcommand_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[clap_builder::parser::matches::arg_matches::IdsRef::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::ArgMatches::subcommand]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::ArgMatches::subcommand]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_count", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_flag", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_flag", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_occurrences", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_get_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_get_occurrences", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_get_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::GroupedValues::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::GroupedValues::iter]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::GroupedValues::len].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Indices::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::Indices::iter]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::Indices::len].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::Indices::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::OccurrenceValues::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::OccurrenceValues::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::OccurrenceValuesRef::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::OccurrenceValuesRef::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Occurrences::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::Occurrences::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::OccurrencesRef::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::OccurrencesRef::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawOccurrenceValues::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::RawOccurrenceValues::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawOccurrences::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::RawOccurrences::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawValues::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::RawValues::iter]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::RawValues::len].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::SubCommand::name]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::SubCommand::name]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Values::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::Values::iter]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::Values::len].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::Values::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::ValuesRef::iter]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::ValuesRef::iter]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::ValuesRef::len].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::infer_type_id", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::infer_type_id", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::type_id].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_vals", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::vals]", "ReturnValue", "value", "dfc-generated"] - - ["::set_source", "Argument[0]", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::source].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::source", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::source]", "ReturnValue", "value", "dfc-generated"] - - ["::type_id", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::type_id]", "ReturnValue", "value", "dfc-generated"] - - ["::get_matches_with", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::set_source", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::source", "Argument[self].Reference.Field[clap_builder::parser::matches::matched_arg::MatchedArg::source]", "ReturnValue", "value", "dfc-generated"] + - ["::type_id", "Argument[self].Reference.Field[clap_builder::parser::matches::matched_arg::MatchedArg::type_id]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_matches_with", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_matches_with", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["::get_matches_with", "Argument[1]", "Argument[self]", "taint", "df-generated"] + - ["::get_matches_with", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::get_matches_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::parser::parser::Parser::cmd]", "value", "dfc-generated"] - - ["::parse", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::parse", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["::parse", "Argument[1]", "Argument[self]", "taint", "df-generated"] + - ["::parse", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::parser::PendingArg::ident]", "ReturnValue.Field[clap_builder::parser::parser::PendingArg::ident]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::parser::PendingArg::raw_vals]", "ReturnValue.Field[clap_builder::parser::parser::PendingArg::raw_vals]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::parser::parser::PendingArg::trailing_idx]", "ReturnValue.Field[clap_builder::parser::parser::PendingArg::trailing_idx]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::parser::validator::Validator::cmd]", "value", "dfc-generated"] - - ["::type_id", "Argument[self].Field[clap_builder::util::any_value::AnyValue::id]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::util::any_value::AnyValue::inner].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[clap_builder::util::any_value::AnyValue::inner].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::util::any_value::AnyValue::inner].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[clap_builder::util::any_value::AnyValue::inner].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::util::any_value::AnyValue::inner]", "ReturnValue.Field[clap_builder::util::any_value::AnyValue::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downcast_into", "Argument[self].Field[clap_builder::util::any_value::AnyValue::id]", "ReturnValue.Field[core::result::Result::Err(0)].Field[clap_builder::util::any_value::AnyValue::id]", "value", "dfc-generated"] + - ["::type_id", "Argument[self].Reference.Field[clap_builder::util::any_value::AnyValue::id]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::util::any_value::AnyValueId::type_id]", "ReturnValue.Field[clap_builder::util::any_value::AnyValueId::type_id]", "value", "dfc-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::or_insert", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::or_insert_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::util::flat_map::FlatMap::keys]", "ReturnValue.Field[clap_builder::util::flat_map::FlatMap::keys]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_builder::util::flat_map::FlatMap::values]", "ReturnValue.Field[clap_builder::util::flat_map::FlatMap::values]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::entry", "Argument[0]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Vacant(0)].Field[clap_builder::util::flat_map::VacantEntry::key]", "value", "dfc-generated"] - ["::entry", "Argument[self]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Occupied(0)].Field[clap_builder::util::flat_map::OccupiedEntry::v]", "value", "dfc-generated"] - ["::entry", "Argument[self]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Vacant(0)].Field[clap_builder::util::flat_map::VacantEntry::v]", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[clap_builder::util::flat_map::FlatMap::values].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[clap_builder::util::flat_map::FlatMap::values].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::insert", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[clap_builder::util::flat_map::Iter::keys].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[clap_builder::util::flat_map::Iter::values].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["::insert_child", "Argument[self].Field[0].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::insert_child", "Argument[self].Field[clap_builder::util::graph::ChildGraph(0)].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::as_internal_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_internal_str", "Argument[self].Field[clap_builder::util::id::Id(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_builder::util::flat_set::FlatSet::inner]", "ReturnValue.Field[clap_builder::util::flat_set::FlatSet::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::sort_by_key", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::insert", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::insert", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::insert_child", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[clap_builder::util::id::Id(0)]", "value", "dfc-generated"] + - ["::as_internal_str", "Argument[self].Reference.Field[clap_builder::util::id::Id(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::add_prefix", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::display_order", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::display_order]", "value", "dfc-generated"] - ["::display_order", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::display_order]", "value", "dfc-generated"] - ["::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_display_order", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::display_order]", "ReturnValue", "value", "dfc-generated"] - - ["::get_help", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::help].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_id", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::id].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_tag", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::tag].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::get_value", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_display_order", "Argument[self].Reference.Field[clap_complete::engine::candidate::CompletionCandidate::display_order]", "ReturnValue", "value", "dfc-generated"] + - ["::get_help", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_tag", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_value", "Argument[self].Reference.Field[clap_complete::engine::candidate::CompletionCandidate::value]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::help", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::help]", "value", "dfc-generated"] - ["::help", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::help]", "value", "dfc-generated"] - ["::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -402,32 +655,54 @@ extensions: - ["::id", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::id]", "value", "dfc-generated"] - ["::id", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::id]", "value", "dfc-generated"] - ["::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::is_hide_set", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::hidden]", "ReturnValue", "value", "dfc-generated"] + - ["::is_hide_set", "Argument[self].Reference.Field[clap_complete::engine::candidate::CompletionCandidate::hidden]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::tag", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::tag]", "value", "dfc-generated"] - ["::tag", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::tag]", "value", "dfc-generated"] - ["::tag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::ArgValueCandidates(0)].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[clap_complete::engine::custom::ArgValueCandidates(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::ArgValueCandidates(0)].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[clap_complete::engine::custom::ArgValueCandidates(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::ArgValueCandidates(0)]", "ReturnValue.Field[clap_complete::engine::custom::ArgValueCandidates(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::ArgValueCompleter(0)].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[clap_complete::engine::custom::ArgValueCompleter(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::ArgValueCompleter(0)].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[clap_complete::engine::custom::ArgValueCompleter(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::ArgValueCompleter(0)]", "ReturnValue.Field[clap_complete::engine::custom::ArgValueCompleter(0)]", "value", "dfc-generated"] - ["::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::filter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::stdio", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::SubcommandCandidates(0)].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[clap_complete::engine::custom::SubcommandCandidates(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::SubcommandCandidates(0)].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[clap_complete::engine::custom::SubcommandCandidates(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_complete::engine::custom::SubcommandCandidates(0)]", "ReturnValue.Field[clap_complete::engine::custom::SubcommandCandidates(0)]", "value", "dfc-generated"] - ["::bin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::completer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::shells", "Argument[0]", "Argument[self].Field[clap_complete::env::CompleteEnv::shells]", "value", "dfc-generated"] - ["::shells", "Argument[0]", "ReturnValue.Field[clap_complete::env::CompleteEnv::shells]", "value", "dfc-generated"] - ["::shells", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::try_complete", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::var", "Argument[0]", "Argument[self].Field[clap_complete::env::CompleteEnv::var]", "value", "dfc-generated"] - ["::var", "Argument[0]", "ReturnValue.Field[clap_complete::env::CompleteEnv::var]", "value", "dfc-generated"] - ["::var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::with_factory", "Argument[0]", "ReturnValue.Field[clap_complete::env::CompleteEnv::factory]", "value", "dfc-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::lit_str_or_abort", "Argument[self].Field[clap_derive::attr::ClapAttr::value].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::value_or_abort", "Argument[self].Field[clap_derive::attr::ClapAttr::value].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["::value_or_abort", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::action", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_derive::attr::AttrValue::Call(0)]", "ReturnValue.Field[clap_derive::attr::AttrValue::Call(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::attr::AttrValue::Expr(0)]", "ReturnValue.Field[clap_derive::attr::AttrValue::Expr(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::attr::AttrValue::LitStr(0)]", "ReturnValue.Field[clap_derive::attr::AttrValue::LitStr(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::attr::ClapAttr::magic]", "ReturnValue.Field[clap_derive::attr::ClapAttr::magic]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::attr::ClapAttr::name]", "ReturnValue.Field[clap_derive::attr::ClapAttr::name]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::attr::ClapAttr::value]", "ReturnValue.Field[clap_derive::attr::ClapAttr::value]", "value", "dfc-generated"] + - ["::lit_str_or_abort", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::value_or_abort", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Action::Implicit(0)]", "ReturnValue.Field[clap_derive::item::Action::Implicit(0)]", "value", "dfc-generated"] + - ["::resolve", "Argument[self].Field[clap_derive::item::Action::Explicit(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Deprecation::description]", "ReturnValue.Field[clap_derive::item::Deprecation::description]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Deprecation::span]", "ReturnValue.Field[clap_derive::item::Deprecation::span]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::action", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::action", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::cased_name", "Argument[self].Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Assigned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::casing", "Argument[self].Field[clap_derive::item::Item::casing]", "ReturnValue", "value", "dfc-generated"] - - ["::env_casing", "Argument[self].Field[clap_derive::item::Item::env_casing]", "ReturnValue", "value", "dfc-generated"] + - ["::cased_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::casing", "Argument[self].Reference.Field[clap_derive::item::Item::casing]", "ReturnValue", "value", "dfc-generated"] + - ["::env_casing", "Argument[self].Reference.Field[clap_derive::item::Item::env_casing]", "ReturnValue", "value", "dfc-generated"] - ["::from_args_field", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::casing]", "value", "dfc-generated"] - ["::from_args_field", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::env_casing]", "value", "dfc-generated"] - ["::from_args_struct", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::name]", "value", "dfc-generated"] @@ -437,29 +712,55 @@ extensions: - ["::from_value_enum", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::name]", "value", "dfc-generated"] - ["::from_value_enum_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::casing]", "value", "dfc-generated"] - ["::from_value_enum_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::env_casing]", "value", "dfc-generated"] - - ["::group_id", "Argument[self].Field[clap_derive::item::Item::group_id]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::id", "Argument[self].Field[clap_derive::item::Item::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::is_positional", "Argument[self].Field[clap_derive::item::Item::is_positional]", "ReturnValue", "value", "dfc-generated"] - - ["::kind", "Argument[self].Field[clap_derive::item::Item::kind].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::kind", "Argument[self].Field[clap_derive::item::Item::kind]", "ReturnValue", "value", "dfc-generated"] - - ["::skip_group", "Argument[self].Field[clap_derive::item::Item::skip_group]", "ReturnValue", "value", "dfc-generated"] - - ["::value_name", "Argument[self].Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Assigned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::value_parser", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::group_id", "Argument[self].Reference.Field[clap_derive::item::Item::group_id]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::id", "Argument[self].Reference.Field[clap_derive::item::Item::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::is_positional", "Argument[self].Reference.Field[clap_derive::item::Item::is_positional]", "ReturnValue", "value", "dfc-generated"] + - ["::kind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::skip_group", "Argument[self].Reference.Field[clap_derive::item::Item::skip_group]", "ReturnValue", "value", "dfc-generated"] + - ["::value_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::value_parser", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::value_parser", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::args", "Argument[self].Field[clap_derive::item::Method::args]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Kind::Skip(0)]", "ReturnValue.Field[clap_derive::item::Kind::Skip(0)]", "value", "dfc-generated"] + - ["::attr_kind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ty", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Method::args]", "ReturnValue.Field[clap_derive::item::Method::args]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Method::name]", "ReturnValue.Field[clap_derive::item::Method::name]", "value", "dfc-generated"] + - ["::args", "Argument[self].Reference.Field[clap_derive::item::Method::args]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[clap_derive::item::Method::name]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[clap_derive::item::Method::args]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Name::Assigned(0)]", "ReturnValue.Field[clap_derive::item::Name::Assigned(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::Name::Derived(0)]", "ReturnValue.Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - ["::translate", "Argument[self].Field[clap_derive::item::Name::Assigned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::item::ValueParser::Implicit(0)]", "ReturnValue.Field[clap_derive::item::ValueParser::Implicit(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_derive::utils::spanned::Sp::span]", "ReturnValue.Field[clap_derive::utils::spanned::Sp::span]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[clap_derive::utils::spanned::Sp::span]", "ReturnValue.Field[clap_derive::utils::spanned::Sp::span]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get", "Argument[self].Reference.Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[clap_derive::utils::spanned::Sp::val]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[clap_derive::utils::spanned::Sp::span]", "value", "dfc-generated"] - - ["::span", "Argument[self].Field[clap_derive::utils::spanned::Sp::span]", "ReturnValue", "value", "dfc-generated"] - - ["::to_value", "Argument[self].Field[clap_lex::ParsedArg::inner]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::to_value_os", "Argument[self].Field[clap_lex::ParsedArg::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::remaining", "Argument[self].Field[clap_lex::RawArgs::items].Field[alloc::vec::Vec::len]", "Argument[0].Field[clap_lex::ArgCursor::cursor]", "value", "dfc-generated"] + - ["::span", "Argument[self].Reference.Field[clap_derive::utils::spanned::Sp::span]", "ReturnValue", "value", "dfc-generated"] + - ["::from_syn_ty", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_lex::ArgCursor::cursor]", "ReturnValue.Field[clap_lex::ArgCursor::cursor].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_lex::ArgCursor::cursor]", "ReturnValue.Field[clap_lex::ArgCursor::cursor]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self].Reference.Field[clap_lex::ParsedArg::inner]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::to_value_os", "Argument[self].Reference.Field[clap_lex::ParsedArg::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_lex::RawArgs::items]", "ReturnValue.Field[clap_lex::RawArgs::items]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::remaining", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::seek", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["::seek", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[clap_lex::ShortFlags::invalid_suffix]", "ReturnValue.Field[clap_lex::ShortFlags::invalid_suffix]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[clap_lex::ShortFlags::utf8_prefix]", "ReturnValue.Field[clap_lex::ShortFlags::utf8_prefix]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_flag", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_value_os", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::date", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::generate_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -469,57 +770,142 @@ extensions: - ["::section", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::title", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::args", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["::args", "Argument[self].Field[complex::Args(1)]", "ReturnValue", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[complex::Args(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::args", "Argument[self].Reference.Field[complex::Args(1)]", "ReturnValue", "value", "dfc-generated"] + - ["::name", "Argument[self].Reference.Field[complex::Args(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - ["::into_resettable", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[find::Value::Bool(0)]", "ReturnValue.Field[find::Value::Bool(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[find::Value::Bool(0)]", "ReturnValue.Field[find::Value::Bool(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[find::Value::String(0)]", "ReturnValue.Field[find::Value::String(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[find::Value::Bool(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[find::Value::String(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::split", "Argument[0]", "ReturnValue.Field[clap_lex::ext::Split::needle]", "value", "dfc-generated"] - ["::split", "Argument[self]", "ReturnValue.Field[clap_lex::ext::Split::haystack].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["clap_builder::output::textwrap::word_separators::find_words_ascii_space", "Argument[0]", "ReturnValue.Field[core::iter::sources::from_fn::FromFn(0)]", "value", "dfc-generated"] + - ["clap_builder::output::textwrap::word_separators::find_words_ascii_space", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["clap_complete::aot::generator::generate", "Argument[2]", "Argument[1]", "taint", "df-generated"] + - ["clap_complete::aot::generator::generate_to", "Argument[2]", "Argument[1]", "taint", "df-generated"] + - ["clap_complete::aot::generator::generate_to", "Argument[3]", "ReturnValue", "taint", "df-generated"] - ["clap_complete::aot::generator::utils::find_subcommand_with_path", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["clap_derive::derives::args::derive_args", "Argument[0].Field[syn::derive::DeriveInput::ident].Reference", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::args::derive_args", "Argument[0].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::args::derive_args", "Argument[0].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::parser::derive_parser", "Argument[0].Field[syn::derive::DeriveInput::ident].Reference", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::parser::derive_parser", "Argument[0].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::subcommand::derive_subcommand", "Argument[0].Field[syn::derive::DeriveInput::ident].Reference", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::subcommand::derive_subcommand", "Argument[0].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::subcommand::derive_subcommand", "Argument[0].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::value_enum::derive_value_enum", "Argument[0].Field[syn::derive::DeriveInput::ident].Reference", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::value_enum::derive_value_enum", "Argument[0].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] - - ["clap_derive::derives::value_enum::derive_value_enum", "Argument[0].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_complete::engine::custom::complete_path", "Argument[0]", "Argument[2]", "taint", "df-generated"] + - ["clap_complete::engine::custom::complete_path", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["clap_derive::derives::args::derive_args", "Argument[0].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_derive::derives::args::derive_args", "Argument[0].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_derive::derives::parser::derive_parser", "Argument[0].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_derive::derives::subcommand::derive_subcommand", "Argument[0].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_derive::derives::subcommand::derive_subcommand", "Argument[0].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_derive::derives::value_enum::derive_value_enum", "Argument[0].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::group_id].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_derive::derives::value_enum::derive_value_enum", "Argument[0].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[clap_derive::item::Item::name].Field[clap_derive::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["clap_derive::utils::doc_comments::format_doc_comment", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["clap_derive::utils::ty::inner_type", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["clap_derive::utils::ty::is_simple_ty", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["clap_mangen::generate_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["clap_mangen::render::version", "Argument[0]", "ReturnValue", "taint", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: + - ["<01_quick_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<01_quick_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<02_app_settings_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<02_app_settings_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<02_apps_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<02_apps_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<02_crate_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<02_crate_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_01_flag_bool_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_01_flag_bool_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_01_flag_count_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_01_flag_count_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_02_option_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_02_option_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_02_option_mult_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_02_option_mult_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_03_positional_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_03_positional_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_03_positional_mult_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_03_positional_mult_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_04_subcommands_alt_derive::AddArgs as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_04_subcommands_alt_derive::AddArgs as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_05_default_values_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_05_default_values_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_06_optional_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<03_06_optional_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_01_enum_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_01_enum_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_02_parse_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_02_parse_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_02_validate_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_02_validate_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_03_relations_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_03_relations_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_03_relations_derive::Vers as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_03_relations_derive::Vers as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_04_custom_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<04_04_custom_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<05_01_assert_derive::Cli as clap_builder::derive::FromArgMatches>::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["<05_01_assert_derive::Cli as clap_builder::derive::FromArgMatches>::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - ["::value_hint", "Argument[self]", "log-injection", "df-generated"] - ["::_panic_on_missing_help", "Argument[self]", "log-injection", "df-generated"] + - ["::mut_arg", "Argument[self]", "log-injection", "df-generated"] - ["::mut_group", "Argument[self]", "log-injection", "df-generated"] - ["::mut_subcommand", "Argument[self]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - - ["::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["::parse", "Argument[1]", "pointer-access", "df-generated"] - - ["::parse", "Argument[1]", "pointer-access", "df-generated"] - - ["::parse_ref", "Argument[1]", "pointer-access", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] + - ["::parse", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse", "Argument[1]", "log-injection", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] + - ["::parse", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse", "Argument[1]", "log-injection", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] - ["::range", "Argument[self]", "log-injection", "df-generated"] - - ["::parse_ref", "Argument[1]", "pointer-access", "df-generated"] + - ["::parse_ref", "Argument[1]", "alloc-layout", "df-generated"] + - ["::parse_ref", "Argument[1]", "log-injection", "df-generated"] - ["::range", "Argument[self]", "log-injection", "df-generated"] + - ["::remove", "Argument[self]", "log-injection", "df-generated"] + - ["::remove_by_name", "Argument[self]", "log-injection", "df-generated"] - ["::wrap", "Argument[0]", "log-injection", "df-generated"] - - ["::get_required_usage_from", "Argument[1]", "pointer-access", "df-generated"] + - ["::get_required_usage_from", "Argument[1]", "alloc-layout", "df-generated"] + - ["::get_required_usage_from", "Argument[1]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - ["::unwrap", "Argument[0]", "log-injection", "df-generated"] - - ["::unwrap", "Argument[1]", "log-injection", "df-generated"] - ["::contains_id", "Argument[0]", "log-injection", "df-generated"] - ["::get_count", "Argument[0]", "log-injection", "df-generated"] - ["::get_flag", "Argument[0]", "log-injection", "df-generated"] @@ -538,13 +924,19 @@ extensions: - ["::try_remove_many", "Argument[self]", "log-injection", "df-generated"] - ["::try_remove_occurrences", "Argument[self]", "log-injection", "df-generated"] - ["::try_remove_one", "Argument[self]", "log-injection", "df-generated"] - - ["::check_explicit", "Argument[self]", "pointer-access", "df-generated"] + - ["::check_explicit", "Argument[self]", "alloc-layout", "df-generated"] + - ["::check_explicit", "Argument[self]", "log-injection", "df-generated"] + - ["::into_vals_flatten", "Argument[self]", "pointer-access", "df-generated"] - ["::get_matches_with", "Argument[0]", "log-injection", "df-generated"] - - ["::get_matches_with", "Argument[self]", "pointer-access", "df-generated"] + - ["::get_matches_with", "Argument[self]", "alloc-layout", "df-generated"] + - ["::get_matches_with", "Argument[self]", "log-injection", "df-generated"] - ["::parse", "Argument[0]", "log-injection", "df-generated"] - - ["::parse", "Argument[self]", "pointer-access", "df-generated"] + - ["::parse", "Argument[self]", "alloc-layout", "df-generated"] + - ["::parse", "Argument[self]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - ["::remove_entry", "Argument[self]", "log-injection", "df-generated"] + - ["::into_iter", "Argument[self]", "pointer-access", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::write_complete", "Argument[1]", "log-injection", "df-generated"] - ["::write_complete", "Argument[2]", "log-injection", "df-generated"] - ["::write_complete", "Argument[1]", "log-injection", "df-generated"] @@ -555,14 +947,36 @@ extensions: - ["::write_complete", "Argument[2]", "log-injection", "df-generated"] - ["::write_complete", "Argument[1]", "log-injection", "df-generated"] - ["::write_complete", "Argument[2]", "log-injection", "df-generated"] - - ["::action", "Argument[self]", "pointer-access", "df-generated"] - - ["::value_parser", "Argument[self]", "pointer-access", "df-generated"] + - ["::action", "Argument[self]", "alloc-layout", "df-generated"] + - ["::action", "Argument[self]", "log-injection", "df-generated"] + - ["::value_parser", "Argument[self]", "alloc-layout", "df-generated"] + - ["::value_parser", "Argument[self]", "log-injection", "df-generated"] - ["::generate_to", "Argument[self]", "path-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] - ["::from_matches", "Argument[0]", "log-injection", "df-generated"] - - ["::from_arg_matches", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] - - ["::update_from_arg_matches", "Argument[0]", "log-injection", "df-generated"] - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] - ["clap_complete::engine::complete::complete", "Argument[1]", "log-injection", "df-generated"] - ["clap_complete::engine::complete::complete", "Argument[2]", "log-injection", "df-generated"] - ["clap_complete::engine::complete::complete", "Argument[3]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/hyper.model.yml b/rust/ql/lib/ext/generated/hyper.model.yml index 306bf248543..a86ecc4c67f 100644 --- a/rust/ql/lib/ext/generated/hyper.model.yml +++ b/rust/ql/lib/ext/generated/hyper.model.yml @@ -4,193 +4,213 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[client::Error::Hyper(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[client::Error::Io(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[client::HttpInfo::remote_addr]", "ReturnValue.Field[client::HttpInfo::remote_addr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CReq::body].Field[integration::support::__CReq::body].Field[server::support::__CReq::body]", "ReturnValue.Field[client::support::__CReq::body].Field[integration::support::__CReq::body].Field[server::support::__CReq::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CReq::headers].Field[integration::support::__CReq::headers].Field[server::support::__CReq::headers]", "ReturnValue.Field[client::support::__CReq::headers].Field[integration::support::__CReq::headers].Field[server::support::__CReq::headers]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::body].Field[integration::support::__CRes::body].Field[server::support::__CRes::body]", "ReturnValue.Field[client::support::__CRes::body].Field[integration::support::__CRes::body].Field[server::support::__CRes::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::headers].Field[integration::support::__CRes::headers].Field[server::support::__CRes::headers]", "ReturnValue.Field[client::support::__CRes::headers].Field[integration::support::__CRes::headers].Field[server::support::__CRes::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::status].Field[integration::support::__CRes::status].Field[server::support::__CRes::status]", "ReturnValue.Field[client::support::__CRes::status].Field[integration::support::__CRes::status].Field[server::support::__CRes::status]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SReq::body].Field[integration::support::__SReq::body].Field[server::support::__SReq::body]", "ReturnValue.Field[client::support::__SReq::body].Field[integration::support::__SReq::body].Field[server::support::__SReq::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SReq::headers].Field[integration::support::__SReq::headers].Field[server::support::__SReq::headers]", "ReturnValue.Field[client::support::__SReq::headers].Field[integration::support::__SReq::headers].Field[server::support::__SReq::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::body].Field[integration::support::__SRes::body].Field[server::support::__SRes::body]", "ReturnValue.Field[client::support::__SRes::body].Field[integration::support::__SRes::body].Field[server::support::__SRes::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::headers].Field[integration::support::__SRes::headers].Field[server::support::__SRes::headers]", "ReturnValue.Field[client::support::__SRes::headers].Field[integration::support::__SRes::headers].Field[server::support::__SRes::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::status].Field[integration::support::__SRes::status].Field[server::support::__SRes::status]", "ReturnValue.Field[client::support::__SRes::status].Field[integration::support::__SRes::status].Field[server::support::__SRes::status]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue", "value", "dfc-generated"] - - ["::set_trailers", "Argument[0]", "Argument[self].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::set_trailers", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::with_trailers", "Argument[0]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] - ["::with_trailers", "Argument[1]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::as_ffi_mut", "Argument[self].Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::Ffi(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_ffi_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::h2", "Argument[0]", "ReturnValue.Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::H2::recv]", "value", "dfc-generated"] - ["::h2", "Argument[1]", "ReturnValue.Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::H2::content_length]", "value", "dfc-generated"] - ["::h2", "Argument[2]", "ReturnValue.Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::H2::ping]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[core::option::Option::Some(0)].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[core::option::Option::Some(0)].Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::body::length::DecodedLength(0)]", "ReturnValue.Field[hyper::body::length::DecodedLength(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::body::length::DecodedLength(0)]", "ReturnValue.Field[hyper::body::length::DecodedLength(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::checked_new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[hyper::body::length::DecodedLength(0)]", "value", "dfc-generated"] - - ["::danger_len", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::danger_len", "Argument[self].Field[hyper::body::length::DecodedLength(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_opt", "Argument[self].Field[hyper::body::length::DecodedLength(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::body::length::DecodedLength(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::handshake", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::handshake", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::http09_responses", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h09_responses]", "value", "dfc-generated"] - - ["::http09_responses", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h09_responses]", "value", "dfc-generated"] + - ["::handshake", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::handshake", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::http09_responses", "Argument[0]", "Argument[self].Reference.Field[hyper::client::conn::http1::Builder::h09_responses]", "value", "dfc-generated"] - ["::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_buf_size", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_max_buf_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max_buf_size", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_max_buf_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_headers", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max_headers", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::preserve_header_case", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - - ["::preserve_header_case", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] + - ["::preserve_header_case", "Argument[0]", "Argument[self].Reference.Field[hyper::client::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - ["::preserve_header_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::preserve_header_order", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_preserve_header_order]", "value", "dfc-generated"] - - ["::preserve_header_order", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_preserve_header_order]", "value", "dfc-generated"] + - ["::preserve_header_order", "Argument[0]", "Argument[self].Reference.Field[hyper::client::conn::http1::Builder::h1_preserve_header_order]", "value", "dfc-generated"] - ["::preserve_header_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::read_buf_exact_size", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_read_buf_exact_size]", "value", "dfc-generated"] - - ["::read_buf_exact_size", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_read_buf_exact_size]", "value", "dfc-generated"] + - ["::read_buf_exact_size", "Argument[0]", "Argument[self].Reference.Field[hyper::client::conn::http1::Builder::h1_read_buf_exact_size]", "value", "dfc-generated"] - ["::read_buf_exact_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::title_case_headers", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - - ["::title_case_headers", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] + - ["::title_case_headers", "Argument[0]", "Argument[self].Reference.Field[hyper::client::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - ["::title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::writev", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::writev", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::writev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_parts", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_upgrades", "Argument[self]", "ReturnValue.Field[hyper::client::conn::http1::upgrades::UpgradeableConnection::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::send_request", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::try_send_request", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::adaptive_window", "Argument[0]", "Argument[self].Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::adaptive_window]", "value", "dfc-generated"] - - ["::adaptive_window", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::adaptive_window]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send_request", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_send_request", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::handshake", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::handshake", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::handshake", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::header_table_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::initial_max_send_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::keep_alive_timeout", "Argument[0]", "Argument[self].Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::keep_alive_timeout]", "value", "dfc-generated"] - - ["::keep_alive_timeout", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::keep_alive_timeout]", "value", "dfc-generated"] - ["::keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::keep_alive_while_idle", "Argument[0]", "Argument[self].Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::keep_alive_while_idle]", "value", "dfc-generated"] - - ["::keep_alive_while_idle", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::keep_alive_while_idle]", "value", "dfc-generated"] - ["::keep_alive_while_idle", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_concurrent_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_concurrent_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_header_list_size", "Argument[0]", "Argument[self].Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::max_header_list_size]", "value", "dfc-generated"] - - ["::max_header_list_size", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::max_header_list_size]", "value", "dfc-generated"] - ["::max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_pending_accept_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_send_buf_size", "Argument[0]", "Argument[self].Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::max_send_buffer_size]", "value", "dfc-generated"] - - ["::max_send_buf_size", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::max_send_buffer_size]", "value", "dfc-generated"] - ["::max_send_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::exec]", "value", "dfc-generated"] - ["::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::client::dispatch::SendWhen::call_back]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::client::dispatch::SendWhen::when]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::client::dispatch::SendWhen::call_back]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::client::dispatch::SendWhen::when]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::unbound", "Argument[self].Field[hyper::client::dispatch::Sender::inner]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_error", "Argument[self].Field[hyper::client::dispatch::TrySendError::error]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bufs_cnt", "Argument[self].Field[hyper::common::buf::BufList::bufs].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[hyper::client::dispatch::UnboundedSender::giver]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::giver]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[hyper::client::dispatch::UnboundedSender::inner]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bufs_cnt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::common::io::compat::Compat(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[hyper::common::io::rewind::Rewind::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[hyper::common::io::rewind::Rewind::pre].Field[core::option::Option::Some(0)]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::common::io::rewind::Rewind::inner]", "value", "dfc-generated"] - ["::new_buffered", "Argument[0]", "ReturnValue.Field[hyper::common::io::rewind::Rewind::inner]", "value", "dfc-generated"] - ["::new_buffered", "Argument[1]", "ReturnValue.Field[hyper::common::io::rewind::Rewind::pre].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::rewind", "Argument[0]", "Argument[self].Field[hyper::common::io::rewind::Rewind::pre].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::rewind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::common::time::Dur::Configured(0)]", "ReturnValue.Field[hyper::common::time::Dur::Configured(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::common::time::Dur::Default(0)]", "ReturnValue.Field[hyper::common::time::Dur::Default(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::common::time::Time::Timer(0)].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[hyper::common::time::Time::Timer(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::common::time::Time::Timer(0)].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[hyper::common::time::Time::Timer(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::common::time::Time::Timer(0)]", "ReturnValue.Field[hyper::common::time::Time::Timer(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::check", "Argument[0].Field[hyper::common::time::Dur::Configured(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::check", "Argument[0].Field[hyper::common::time::Dur::Default(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::kind", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::HeaderCaseMap(0)]", "ReturnValue.Field[hyper::ext::HeaderCaseMap(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::OriginalHeaderOrder::entry_order]", "ReturnValue.Field[hyper::ext::OriginalHeaderOrder::entry_order]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::OriginalHeaderOrder::num_entries].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[hyper::ext::OriginalHeaderOrder::num_entries].Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::OriginalHeaderOrder::num_entries]", "ReturnValue.Field[hyper::ext::OriginalHeaderOrder::num_entries]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::Protocol::inner]", "ReturnValue.Field[hyper::ext::Protocol::inner]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[hyper::ext::Protocol::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[hyper::ext::Protocol::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "value", "dfc-generated"] + - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes", "Argument[self].Reference.Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_bytes_unchecked", "Argument[0]", "ReturnValue.Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::informational::OnInformational(0)].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[hyper::ext::informational::OnInformational(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::informational::OnInformational(0)].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[hyper::ext::informational::OnInformational(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ext::informational::OnInformational(0)]", "ReturnValue.Field[hyper::ext::informational::OnInformational(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::ffi::UserDataPointer(0)]", "ReturnValue.Field[hyper::ffi::UserDataPointer(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ffi::UserDataPointer(0)]", "ReturnValue.Field[hyper::ffi::UserDataPointer(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::ffi::http_types::hyper_headers::headers]", "ReturnValue.Field[hyper::ffi::http_types::hyper_headers::headers]", "value", "dfc-generated"] - ["::wrap", "Argument[0]", "ReturnValue.Field[hyper::ffi::http_types::hyper_response(0)]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::sync::Arc::alloc].Reference", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] - - ["::boxed", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::alloc]", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::ptr]", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::ffi::task::WeakExec(0)]", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)]", "value", "dfc-generated"] + - ["::downgrade", "Argument[0].Reference.Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::Wants(0)]", "ReturnValue.Field[hyper::proto::h1::Wants(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::Wants(0)]", "ReturnValue.Field[hyper::proto::h1::Wants(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[hyper::proto::h1::conn::Conn::io].Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::conn::Conn::io].Field[hyper::proto::h1::io::Buffered::io]", "value", "dfc-generated"] - - ["::set_flush_pipeline", "Argument[0]", "Argument[self].Field[hyper::proto::h1::conn::Conn::io].Field[hyper::proto::h1::io::Buffered::flush_pipeline]", "value", "dfc-generated"] - - ["::set_h1_parser_config", "Argument[0]", "Argument[self].Field[hyper::proto::h1::conn::Conn::state].Field[hyper::proto::h1::conn::State::h1_parser_config]", "value", "dfc-generated"] - - ["::set_timer", "Argument[0]", "Argument[self].Field[hyper::proto::h1::conn::Conn::state].Field[hyper::proto::h1::conn::State::timer]", "value", "dfc-generated"] - - ["::wants_read_again", "Argument[self].Field[hyper::proto::h1::conn::Conn::state].Field[hyper::proto::h1::conn::State::notify_read]", "ReturnValue", "value", "dfc-generated"] + - ["::set_flush_pipeline", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_h1_parser_config", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_timer", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::wants_read_again", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::chunked", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Chunked::h1_max_headers]", "value", "dfc-generated"] - ["::chunked", "Argument[1]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Chunked::h1_max_header_size]", "value", "dfc-generated"] - ["::length", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Length(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0].Field[hyper::body::length::DecodedLength(0)]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Length(0)]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Chunked::h1_max_headers]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Chunked::h1_max_header_size]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::recv_msg", "Argument[0].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::dispatch::Client::rx]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::callback]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::rx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::rx_closed]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::callback]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::rx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::rx_closed]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[hyper::proto::h1::dispatch::Dispatcher::dispatch]", "ReturnValue.Field[2]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::dispatch::Dispatcher::dispatch]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[hyper::proto::h1::dispatch::Dispatcher::conn]", "value", "dfc-generated"] @@ -198,228 +218,224 @@ extensions: - ["::recv_msg", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_service", "Argument[self].Field[hyper::proto::h1::dispatch::Server::service]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::dispatch::Server::service]", "value", "dfc-generated"] - - ["::chunk", "Argument[self].Field[hyper::proto::h1::encode::ChunkSize::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::advance", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::chunk", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Chunked(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Exact(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Limited(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::encode::Encoder::is_last]", "ReturnValue.Field[hyper::proto::h1::encode::Encoder::is_last].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::encode::Encoder::is_last]", "ReturnValue.Field[hyper::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::encode", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Exact(0)]", "value", "dfc-generated"] - ["::encode_and_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::end", "Argument[self].Field[hyper::proto::h1::encode::Encoder::kind].Field[hyper::proto::h1::encode::Kind::Length(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Field[hyper::proto::h1::encode::NotEof(0)]", "value", "dfc-generated"] + - ["::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_chunked_with_trailing_fields", "Argument[self].Field[hyper::proto::h1::encode::Encoder::is_last]", "ReturnValue.Field[hyper::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] - ["::into_chunked_with_trailing_fields", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::is_last", "Argument[self].Field[hyper::proto::h1::encode::Encoder::is_last]", "ReturnValue", "value", "dfc-generated"] + - ["::is_last", "Argument[self].Reference.Field[hyper::proto::h1::encode::Encoder::is_last]", "ReturnValue", "value", "dfc-generated"] - ["::length", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::Encoder::kind].Field[hyper::proto::h1::encode::Kind::Length(0)]", "value", "dfc-generated"] - ["::set_last", "Argument[0]", "Argument[self].Field[hyper::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] - ["::set_last", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] - ["::set_last", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::encode::Kind::Chunked(0)]", "ReturnValue.Field[hyper::proto::h1::encode::Kind::Chunked(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::encode::Kind::Length(0)]", "ReturnValue.Field[hyper::proto::h1::encode::Kind::Length(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::encode::Kind::Length(0)]", "ReturnValue.Field[hyper::proto::h1::encode::Kind::Length(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::headers_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::io_mut", "Argument[self].Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::is_read_blocked", "Argument[self].Field[hyper::proto::h1::io::Buffered::read_blocked]", "ReturnValue", "value", "dfc-generated"] + - ["::io_mut", "Argument[self].Reference.Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::is_read_blocked", "Argument[self].Reference.Field[hyper::proto::h1::io::Buffered::read_blocked]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::io::Buffered::io]", "value", "dfc-generated"] - - ["::read_buf_mut", "Argument[self].Field[hyper::proto::h1::io::Buffered::read_buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::set_flush_pipeline", "Argument[0]", "Argument[self].Field[hyper::proto::h1::io::Buffered::flush_pipeline]", "value", "dfc-generated"] - - ["::set_max_buf_size", "Argument[0]", "Argument[self].Field[hyper::proto::h1::io::Buffered::read_buf_strategy].Field[hyper::proto::h1::io::ReadStrategy::Adaptive::max]", "value", "dfc-generated"] - - ["::set_max_buf_size", "Argument[0]", "Argument[self].Field[hyper::proto::h1::io::Buffered::write_buf].Field[hyper::proto::h1::io::WriteBuf::max_buf_size]", "value", "dfc-generated"] - - ["::set_read_buf_exact_size", "Argument[0]", "Argument[self].Field[hyper::proto::h1::io::Buffered::read_buf_strategy].Field[hyper::proto::h1::io::ReadStrategy::Exact(0)]", "value", "dfc-generated"] - - ["::write_buf", "Argument[self].Field[hyper::proto::h1::io::Buffered::write_buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::read_buf_mut", "Argument[self].Reference.Field[hyper::proto::h1::io::Buffered::read_buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::set_flush_pipeline", "Argument[0]", "Argument[self].Reference.Field[hyper::proto::h1::io::Buffered::flush_pipeline]", "value", "dfc-generated"] + - ["::set_max_buf_size", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_read_buf_exact_size", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::write_buf", "Argument[self].Reference.Field[hyper::proto::h1::io::Buffered::write_buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::advance", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::io::Cursor::pos]", "ReturnValue.Field[hyper::proto::h1::io::Cursor::pos].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h1::io::Cursor::pos]", "ReturnValue.Field[hyper::proto::h1::io::Cursor::pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::io::Cursor::bytes]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::advance", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::body_tx]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::data_done]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::body_tx]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::data_done]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ConnTask::cancel_tx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ConnTask::conn]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ConnTask::drop_rx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ConnTask::cancel_tx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ConnTask::conn]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ConnTask::drop_rx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::conn_drop_ref]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::ping]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::pipe]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::conn_drop_ref]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::ping]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::pipe]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::ping]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::send_stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::ping]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::send_stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::encode", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::encode", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_terminated", "Argument[self].Reference.Field[hyper::proto::h2::client::ConnMapErr::is_terminated]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::proto::h2::ping::Recorder::shared]", "ReturnValue.Field[hyper::proto::h2::ping::Recorder::shared]", "value", "dfc-generated"] - ["::for_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::date_header]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::reply]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::date_header]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::reply]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[hyper::proto::h2::server::Server::service]", "value", "dfc-generated"] - - ["::new", "Argument[2].Field[hyper::proto::h2::server::Config::date_header]", "ReturnValue.Field[hyper::proto::h2::server::Server::date_header]", "value", "dfc-generated"] + - ["::new", "Argument[2].Reference.Field[hyper::proto::h2::server::Config::date_header]", "ReturnValue.Field[hyper::proto::h2::server::Server::date_header]", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[hyper::proto::h2::server::Server::exec]", "value", "dfc-generated"] - ["::new", "Argument[4]", "ReturnValue.Field[hyper::proto::h2::server::Server::timer]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::init_len", "Argument[self].Field[hyper::rt::io::ReadBuf::init]", "ReturnValue", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[hyper::rt::io::ReadBuf::filled]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::filled", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::init_len", "Argument[self].Reference.Field[hyper::rt::io::ReadBuf::init]", "ReturnValue", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[hyper::rt::io::ReadBuf::filled]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_filled", "Argument[0]", "Argument[self].Reference.Field[hyper::rt::io::ReadBuf::filled]", "value", "dfc-generated"] + - ["::set_init", "Argument[0]", "Argument[self].Reference.Field[hyper::rt::io::ReadBuf::init]", "value", "dfc-generated"] - ["::uninit", "Argument[0]", "ReturnValue.Field[hyper::rt::io::ReadBuf::raw]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::auto_date_header", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::date_header]", "value", "dfc-generated"] - - ["::auto_date_header", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::date_header]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::auto_date_header", "Argument[0]", "Argument[self].Reference.Field[hyper::server::conn::http1::Builder::date_header]", "value", "dfc-generated"] - ["::auto_date_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::half_close", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_half_close]", "value", "dfc-generated"] - - ["::half_close", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_half_close]", "value", "dfc-generated"] + - ["::half_close", "Argument[0]", "Argument[self].Reference.Field[hyper::server::conn::http1::Builder::h1_half_close]", "value", "dfc-generated"] - ["::half_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::header_read_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::ignore_invalid_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::keep_alive", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_keep_alive]", "value", "dfc-generated"] - - ["::keep_alive", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_keep_alive]", "value", "dfc-generated"] + - ["::keep_alive", "Argument[0]", "Argument[self].Reference.Field[hyper::server::conn::http1::Builder::h1_keep_alive]", "value", "dfc-generated"] - ["::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_buf_size", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::max_buf_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max_buf_size", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::max_buf_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_headers", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max_headers", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::pipeline_flush", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::pipeline_flush]", "value", "dfc-generated"] - - ["::pipeline_flush", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::pipeline_flush]", "value", "dfc-generated"] + - ["::pipeline_flush", "Argument[0]", "Argument[self].Reference.Field[hyper::server::conn::http1::Builder::pipeline_flush]", "value", "dfc-generated"] - ["::pipeline_flush", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::preserve_header_case", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - - ["::preserve_header_case", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] + - ["::preserve_header_case", "Argument[0]", "Argument[self].Reference.Field[hyper::server::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - ["::preserve_header_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::title_case_headers", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - - ["::title_case_headers", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] + - ["::title_case_headers", "Argument[0]", "Argument[self].Reference.Field[hyper::server::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - ["::title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::writev", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::writev", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::writev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http1::Connection::conn]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http1::Connection::conn]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_parts", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_upgrades", "Argument[self]", "ReturnValue.Field[hyper::server::conn::http1::UpgradeableConnection::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::adaptive_window", "Argument[0]", "Argument[self].Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::adaptive_window]", "value", "dfc-generated"] - - ["::adaptive_window", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::adaptive_window]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::auto_date_header", "Argument[0]", "Argument[self].Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::date_header]", "value", "dfc-generated"] - - ["::auto_date_header", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::date_header]", "value", "dfc-generated"] - ["::auto_date_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::enable_connect_protocol", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::keep_alive_timeout", "Argument[0]", "Argument[self].Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::keep_alive_timeout]", "value", "dfc-generated"] - - ["::keep_alive_timeout", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::keep_alive_timeout]", "value", "dfc-generated"] - ["::keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_concurrent_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_header_list_size", "Argument[0]", "Argument[self].Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::max_header_list_size]", "value", "dfc-generated"] - - ["::max_header_list_size", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::max_header_list_size]", "value", "dfc-generated"] - ["::max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_local_error_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_pending_accept_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::max_send_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http2::Builder::exec]", "value", "dfc-generated"] - ["::serve_connection", "Argument[1]", "ReturnValue.Field[hyper::server::conn::http2::Connection::conn].Field[hyper::proto::h2::server::Server::service]", "value", "dfc-generated"] - - ["::serve_connection", "Argument[self].Field[hyper::server::conn::http2::Builder::timer].Reference", "ReturnValue.Field[hyper::server::conn::http2::Connection::conn].Field[hyper::proto::h2::server::Server::timer]", "value", "dfc-generated"] - - ["::serve_connection", "Argument[self].Field[hyper::server::conn::http2::Builder::timer]", "ReturnValue.Field[hyper::server::conn::http2::Connection::conn].Field[hyper::proto::h2::server::Server::timer]", "value", "dfc-generated"] - ["::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http2::Connection::conn]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http2::Connection::conn]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[hyper::service::util::ServiceFn::f].Reference", "ReturnValue.Field[hyper::service::util::ServiceFn::f]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[hyper::service::util::ServiceFn::f]", "ReturnValue.Field[hyper::service::util::ServiceFn::f]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[hyper::service::util::ServiceFn::f]", "ReturnValue.Field[hyper::service::util::ServiceFn::f]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[hyper::upgrade::OnUpgrade::rx]", "ReturnValue.Field[hyper::upgrade::OnUpgrade::rx]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downcast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[client::support::__CReq::body].Field[integration::support::__CReq::body].Field[server::support::__CReq::body]", "ReturnValue.Field[client::support::__CReq::body].Field[integration::support::__CReq::body].Field[server::support::__CReq::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CReq::headers].Field[integration::support::__CReq::headers].Field[server::support::__CReq::headers]", "ReturnValue.Field[client::support::__CReq::headers].Field[integration::support::__CReq::headers].Field[server::support::__CReq::headers]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::body].Field[integration::support::__CRes::body].Field[server::support::__CRes::body]", "ReturnValue.Field[client::support::__CRes::body].Field[integration::support::__CRes::body].Field[server::support::__CRes::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::headers].Field[integration::support::__CRes::headers].Field[server::support::__CRes::headers]", "ReturnValue.Field[client::support::__CRes::headers].Field[integration::support::__CRes::headers].Field[server::support::__CRes::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::status].Field[integration::support::__CRes::status].Field[server::support::__CRes::status]", "ReturnValue.Field[client::support::__CRes::status].Field[integration::support::__CRes::status].Field[server::support::__CRes::status]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SReq::body].Field[integration::support::__SReq::body].Field[server::support::__SReq::body]", "ReturnValue.Field[client::support::__SReq::body].Field[integration::support::__SReq::body].Field[server::support::__SReq::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SReq::headers].Field[integration::support::__SReq::headers].Field[server::support::__SReq::headers]", "ReturnValue.Field[client::support::__SReq::headers].Field[integration::support::__SReq::headers].Field[server::support::__SReq::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::body].Field[integration::support::__SRes::body].Field[server::support::__SRes::body]", "ReturnValue.Field[client::support::__SRes::body].Field[integration::support::__SRes::body].Field[server::support::__SRes::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::headers].Field[integration::support::__SRes::headers].Field[server::support::__SRes::headers]", "ReturnValue.Field[client::support::__SRes::headers].Field[integration::support::__SRes::headers].Field[server::support::__SRes::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::status].Field[integration::support::__SRes::status].Field[server::support::__SRes::status]", "ReturnValue.Field[client::support::__SRes::status].Field[integration::support::__SRes::status].Field[server::support::__SRes::status]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue", "value", "dfc-generated"] - - ["::set_trailers", "Argument[0]", "Argument[self].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::set_trailers", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::with_trailers", "Argument[0]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] - ["::with_trailers", "Argument[1]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[server::Dropped(0)].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[server::Dropped(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[server::Dropped(0)].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[server::Dropped(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[server::Dropped(0)]", "ReturnValue.Field[server::Dropped(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[server::TestService::reply]", "ReturnValue.Field[server::TestService::reply]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[server::TestService::trailers_tx]", "ReturnValue.Field[server::TestService::trailers_tx]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[server::TestService::tx]", "ReturnValue.Field[server::TestService::tx]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CReq::body].Field[integration::support::__CReq::body].Field[server::support::__CReq::body]", "ReturnValue.Field[client::support::__CReq::body].Field[integration::support::__CReq::body].Field[server::support::__CReq::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CReq::headers].Field[integration::support::__CReq::headers].Field[server::support::__CReq::headers]", "ReturnValue.Field[client::support::__CReq::headers].Field[integration::support::__CReq::headers].Field[server::support::__CReq::headers]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::body].Field[integration::support::__CRes::body].Field[server::support::__CRes::body]", "ReturnValue.Field[client::support::__CRes::body].Field[integration::support::__CRes::body].Field[server::support::__CRes::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::headers].Field[integration::support::__CRes::headers].Field[server::support::__CRes::headers]", "ReturnValue.Field[client::support::__CRes::headers].Field[integration::support::__CRes::headers].Field[server::support::__CRes::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__CRes::status].Field[integration::support::__CRes::status].Field[server::support::__CRes::status]", "ReturnValue.Field[client::support::__CRes::status].Field[integration::support::__CRes::status].Field[server::support::__CRes::status]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SReq::body].Field[integration::support::__SReq::body].Field[server::support::__SReq::body]", "ReturnValue.Field[client::support::__SReq::body].Field[integration::support::__SReq::body].Field[server::support::__SReq::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SReq::headers].Field[integration::support::__SReq::headers].Field[server::support::__SReq::headers]", "ReturnValue.Field[client::support::__SReq::headers].Field[integration::support::__SReq::headers].Field[server::support::__SReq::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::body].Field[integration::support::__SRes::body].Field[server::support::__SRes::body]", "ReturnValue.Field[client::support::__SRes::body].Field[integration::support::__SRes::body].Field[server::support::__SRes::body]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::headers].Field[integration::support::__SRes::headers].Field[server::support::__SRes::headers]", "ReturnValue.Field[client::support::__SRes::headers].Field[integration::support::__SRes::headers].Field[server::support::__SRes::headers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::__SRes::status].Field[integration::support::__SRes::status].Field[server::support::__SRes::status]", "ReturnValue.Field[client::support::__SRes::status].Field[integration::support::__SRes::status].Field[server::support::__SRes::status]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers]", "ReturnValue", "value", "dfc-generated"] - - ["::set_trailers", "Argument[0]", "Argument[self].Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::set_trailers", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::with_trailers", "Argument[0]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::stream].Field[integration::support::trailers::StreamBodyWithTrailers::stream].Field[server::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] - ["::with_trailers", "Argument[1]", "ReturnValue.Field[client::support::trailers::StreamBodyWithTrailers::trailers].Field[integration::support::trailers::StreamBodyWithTrailers::trailers].Field[server::support::trailers::StreamBodyWithTrailers::trailers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[service_struct_impl::Svc::counter].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[service_struct_impl::Svc::counter].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[service_struct_impl::Svc::counter].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[service_struct_impl::Svc::counter].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[service_struct_impl::Svc::counter]", "ReturnValue.Field[service_struct_impl::Svc::counter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::inner", "Argument[self].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioIo::inner].Field[client_json::support::tokiort::TokioIo::inner].Field[echo::support::tokiort::TokioIo::inner].Field[end_to_end::support::tokiort::TokioIo::inner].Field[gateway::support::tokiort::TokioIo::inner].Field[graceful_shutdown::support::tokiort::TokioIo::inner].Field[hello-http2::support::tokiort::TokioIo::inner].Field[hello::support::tokiort::TokioIo::inner].Field[http_proxy::support::tokiort::TokioIo::inner].Field[multi_server::support::tokiort::TokioIo::inner].Field[params::support::tokiort::TokioIo::inner].Field[pipeline::support::tokiort::TokioIo::inner].Field[send_file::support::tokiort::TokioIo::inner].Field[server::support::tokiort::TokioIo::inner].Field[service_struct_impl::support::tokiort::TokioIo::inner].Field[single_threaded::support::tokiort::TokioIo::inner].Field[state::support::tokiort::TokioIo::inner].Field[upgrades::support::tokiort::TokioIo::inner].Field[web_api::support::tokiort::TokioIo::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[client::support::tokiort::TokioSleep::inner].Field[client_json::support::tokiort::TokioSleep::inner].Field[echo::support::tokiort::TokioSleep::inner].Field[end_to_end::support::tokiort::TokioSleep::inner].Field[gateway::support::tokiort::TokioSleep::inner].Field[graceful_shutdown::support::tokiort::TokioSleep::inner].Field[hello-http2::support::tokiort::TokioSleep::inner].Field[hello::support::tokiort::TokioSleep::inner].Field[http_proxy::support::tokiort::TokioSleep::inner].Field[multi_server::support::tokiort::TokioSleep::inner].Field[params::support::tokiort::TokioSleep::inner].Field[pipeline::support::tokiort::TokioSleep::inner].Field[send_file::support::tokiort::TokioSleep::inner].Field[server::support::tokiort::TokioSleep::inner].Field[service_struct_impl::support::tokiort::TokioSleep::inner].Field[single_threaded::support::tokiort::TokioSleep::inner].Field[state::support::tokiort::TokioSleep::inner].Field[upgrades::support::tokiort::TokioSleep::inner].Field[web_api::support::tokiort::TokioSleep::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["hyper::client::conn::http1::handshake", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["hyper::client::conn::http2::handshake", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["hyper::proto::h2::client::handshake", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[hyper::proto::h2::client::ClientTask::req_rx]", "value", "dfc-generated"] - ["hyper::proto::h2::client::handshake", "Argument[3]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[hyper::proto::h2::client::ClientTask::executor]", "value", "dfc-generated"] - - ["hyper::proto::h2::ping::channel", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["hyper::service::util::service_fn", "Argument[0]", "ReturnValue.Field[hyper::service::util::ServiceFn::f]", "value", "dfc-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: + - ["::poll_recv", "Argument[0]", "alloc-layout", "df-generated"] + - ["::poll_recv", "Argument[0]", "log-injection", "df-generated"] - ["::push", "Argument[self]", "log-injection", "df-generated"] - ["::check", "Argument[1]", "log-injection", "df-generated"] - ["::end_body", "Argument[self]", "log-injection", "df-generated"] @@ -433,13 +449,31 @@ extensions: - ["::buffer", "Argument[self]", "log-injection", "df-generated"] - ["::encode", "Argument[0]", "log-injection", "df-generated"] - ["::encode", "Argument[0]", "log-injection", "df-generated"] - - ["hyper::proto::h2::client::handshake", "Argument[2]", "pointer-access", "df-generated"] - - ["hyper::proto::h2::ping::channel", "Argument[1]", "pointer-access", "df-generated"] + - ["hyper::proto::h2::client::handshake", "Argument[2]", "alloc-layout", "df-generated"] + - ["hyper::proto::h2::client::handshake", "Argument[2]", "log-injection", "df-generated"] + - ["hyper::proto::h2::ping::channel", "Argument[1]", "alloc-layout", "df-generated"] + - ["hyper::proto::h2::ping::channel", "Argument[1]", "log-injection", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sourceModel data: + - ["hyper::ffi::body::hyper_body_data", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::body::hyper_body_foreach", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::body::hyper_body_new", "ReturnValue", "pointer-invalidate", "df-generated"] - ["hyper::ffi::body::hyper_buf_bytes", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::body::hyper_buf_copy", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::client::hyper_clientconn_handshake", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::client::hyper_clientconn_options_new", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::client::hyper_clientconn_send", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::http_types::hyper_request_headers", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::http_types::hyper_request_new", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::http_types::hyper_response_body", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::http_types::hyper_response_headers", "ReturnValue", "pointer-invalidate", "df-generated"] - ["hyper::ffi::http_types::hyper_response_reason_phrase", "ReturnValue", "pointer-invalidate", "df-generated"] - ["hyper::ffi::hyper_version", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::io::hyper_io_new", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::task::hyper_context_waker", "ReturnValue", "pointer-invalidate", "df-generated"] - ["hyper::ffi::task::hyper_executor_new", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::task::hyper_executor_poll", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::task::hyper_task_userdata", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["hyper::ffi::task::hyper_task_value", "ReturnValue", "pointer-invalidate", "df-generated"] diff --git a/rust/ql/lib/ext/generated/libc.model.yml b/rust/ql/lib/ext/generated/libc.model.yml index 352eb1338a8..91311b799b1 100644 --- a/rust/ql/lib/ext/generated/libc.model.yml +++ b/rust/ql/lib/ext/generated/libc.model.yml @@ -4,22 +4,52 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::si_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::si_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::check_file", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "Argument[self].Field[style::style::StyleChecker::path].Field[style_tests::style::StyleChecker::path]", "value", "dfc-generated"] - - ["::check_file", "Argument[0]", "Argument[self].Field[style::style::StyleChecker::path].Field[style_tests::style::StyleChecker::path].Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["::check_file", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "Argument[self].Field[style::style::StyleChecker::path].Field[style_tests::style::StyleChecker::path]", "value", "dfc-generated"] - - ["::check_file", "Argument[0]", "Argument[self].Field[style::style::StyleChecker::path].Field[style_tests::style::StyleChecker::path].Field[std::path::PathBuf::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::check_file", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "Argument[self].Reference.Field[style::style::StyleChecker::path].Field[style_tests::style::StyleChecker::path]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::check_file", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "Argument[self].Reference.Field[style::style::StyleChecker::path].Field[style_tests::style::StyleChecker::path]", "value", "dfc-generated"] + - ["libc::unix::linux_like::CMSG_FIRSTHDR", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::CMSG_LEN", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::CMSG_SPACE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::IPOPT_CLASS", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -52,6 +82,8 @@ extensions: - ["libc::unix::linux_like::linux::BPF_STMT", "Argument[1]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::k]", "value", "dfc-generated"] - ["libc::unix::linux_like::linux::CMSG_NXTHDR", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::CPU_ALLOC_SIZE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::CPU_CLR", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::CPU_SET", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["libc::unix::linux_like::linux::ELF32_R_INFO", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::ELF32_R_INFO", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::ELF32_R_SYM", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -71,6 +103,7 @@ extensions: - ["libc::unix::linux_like::linux::RT_TOS", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::SCTP_PR_INDEX", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::SCTP_PR_POLICY", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::SCTP_PR_SET_POLICY", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["libc::unix::linux_like::linux::TPACKET_ALIGN", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::_IO", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::_IO", "Argument[1]", "ReturnValue", "taint", "df-generated"] @@ -80,12 +113,17 @@ extensions: - ["libc::unix::linux_like::linux::_IOW", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::_IOWR", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["libc::unix::linux_like::linux::_IOWR", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::major", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::makedev", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::minor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: - ["::check_file", "Argument[0]", "path-injection", "df-generated"] + - ["::finalize", "Argument[self]", "path-injection", "df-generated"] - ["::check_file", "Argument[0]", "path-injection", "df-generated"] + - ["::finalize", "Argument[self]", "path-injection", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sourceModel diff --git a/rust/ql/lib/ext/generated/log.model.yml b/rust/ql/lib/ext/generated/log.model.yml index 4b8a9ebfc1a..9372ee29e01 100644 --- a/rust/ql/lib/ext/generated/log.model.yml +++ b/rust/ql/lib/ext/generated/log.model.yml @@ -4,70 +4,103 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["<& as log::__private_api::sealed::KVs>::into_kvs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<& as log::kv::source::Source>::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_key", "Argument[self]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["::count", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_key", "Argument[self]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::level", "Argument[self].Field[log::Metadata::level]", "ReturnValue", "value", "dfc-generated"] - - ["::target", "Argument[self].Field[log::Metadata::target]", "ReturnValue", "value", "dfc-generated"] - - ["::build", "Argument[self].Field[log::MetadataBuilder::metadata].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::build", "Argument[self].Field[log::MetadataBuilder::metadata]", "ReturnValue", "value", "dfc-generated"] - - ["::level", "Argument[0]", "Argument[self].Field[log::MetadataBuilder::metadata].Field[log::Metadata::level]", "value", "dfc-generated"] - - ["::level", "Argument[0]", "ReturnValue.Field[log::MetadataBuilder::metadata].Field[log::Metadata::level]", "value", "dfc-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::count", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_key", "Argument[self]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::level", "Argument[self].Reference.Field[log::Metadata::level]", "ReturnValue", "value", "dfc-generated"] + - ["::target", "Argument[self].Reference.Field[log::Metadata::target]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::target", "Argument[0]", "Argument[self].Field[log::MetadataBuilder::metadata].Field[log::Metadata::target]", "value", "dfc-generated"] - - ["::target", "Argument[0]", "ReturnValue.Field[log::MetadataBuilder::metadata].Field[log::Metadata::target]", "value", "dfc-generated"] - ["::target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::args", "Argument[self].Field[log::Record::args]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::file", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::key_values", "Argument[self].Field[log::Record::key_values].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::key_values", "Argument[self].Field[log::Record::key_values].Field[log::KeyValues(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::level", "Argument[self].Field[log::Record::metadata].Field[log::Metadata::level]", "ReturnValue", "value", "dfc-generated"] - - ["::line", "Argument[self].Field[log::Record::line]", "ReturnValue", "value", "dfc-generated"] - - ["::metadata", "Argument[self].Field[log::Record::metadata]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::module_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::target", "Argument[self].Field[log::Record::metadata].Field[log::Metadata::target]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::args", "Argument[self].Reference.Field[log::Record::args]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::file_static", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::key_values", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::level", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::line", "Argument[self].Reference.Field[log::Record::line]", "ReturnValue", "value", "dfc-generated"] + - ["::metadata", "Argument[self].Reference.Field[log::Record::metadata]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::module_path_static", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::target", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_builder", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::args", "Argument[0]", "Argument[self].Field[log::RecordBuilder::record].Field[log::Record::args]", "value", "dfc-generated"] - - ["::args", "Argument[0]", "ReturnValue.Field[log::RecordBuilder::record].Field[log::Record::args]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::build", "Argument[self].Field[log::RecordBuilder::record].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::build", "Argument[self].Field[log::RecordBuilder::record]", "ReturnValue", "value", "dfc-generated"] + - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::file_static", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::key_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::line", "Argument[0]", "Argument[self].Field[log::RecordBuilder::record].Field[log::Record::line]", "value", "dfc-generated"] - - ["::line", "Argument[0]", "ReturnValue.Field[log::RecordBuilder::record].Field[log::Record::line]", "value", "dfc-generated"] - ["::line", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::metadata", "Argument[0]", "Argument[self].Field[log::RecordBuilder::record].Field[log::Record::metadata]", "value", "dfc-generated"] - - ["::metadata", "Argument[0]", "ReturnValue.Field[log::RecordBuilder::record].Field[log::Record::metadata]", "value", "dfc-generated"] - ["::metadata", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::module_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::module_path_static", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::boxed", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_value", "Argument[0]", "ReturnValue.Field[log::kv::error::Error::inner].Field[log::kv::error::Inner::Value(0)]", "value", "dfc-generated"] - ["::into_value", "Argument[self].Field[log::kv::error::Error::inner].Field[log::kv::error::Inner::Value(0)]", "ReturnValue", "value", "dfc-generated"] - ["::msg", "Argument[0]", "ReturnValue.Field[log::kv::error::Error::inner].Field[log::kv::error::Inner::Msg(0)]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::borrow", "Argument[self].Reference.Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::to_key", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_key", "Argument[self].Reference.Field[log::kv::key::Key::key]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] + - ["::as_str", "Argument[self].Reference.Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] - ["::from_str", "Argument[0]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["::to_borrowed_str", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::to_value", "Argument[self].Field[log::kv::value::Value::inner].Reference", "ReturnValue.Field[log::kv::value::Value::inner]", "value", "dfc-generated"] - - ["::to_value", "Argument[self].Field[log::kv::value::Value::inner]", "ReturnValue.Field[log::kv::value::Value::inner]", "value", "dfc-generated"] + - ["::to_borrowed_str", "Argument[self].Reference.Field[log::kv::key::Key::key]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[log::kv::value::Value::inner]", "ReturnValue.Field[log::kv::value::Value::inner]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_value", "Argument[self].Reference.Field[log::kv::value::Value::inner]", "ReturnValue.Field[log::kv::value::Value::inner]", "value", "dfc-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: - - ["::file", "Argument[self]", "pointer-access", "df-generated"] - - ["::module_path", "Argument[self]", "pointer-access", "df-generated"] - - ["::file", "Argument[0]", "pointer-access", "df-generated"] - - ["::file_static", "Argument[0]", "pointer-access", "df-generated"] - - ["::module_path", "Argument[0]", "pointer-access", "df-generated"] - - ["::module_path_static", "Argument[0]", "pointer-access", "df-generated"] + - ["::get", "Argument[self]", "alloc-layout", "df-generated"] + - ["::get", "Argument[self]", "log-injection", "df-generated"] + - ["::file", "Argument[self]", "alloc-layout", "df-generated"] + - ["::file", "Argument[self]", "log-injection", "df-generated"] + - ["::module_path", "Argument[self]", "alloc-layout", "df-generated"] + - ["::module_path", "Argument[self]", "log-injection", "df-generated"] + - ["::file", "Argument[0]", "alloc-layout", "df-generated"] + - ["::file", "Argument[0]", "log-injection", "df-generated"] + - ["::file_static", "Argument[0]", "alloc-layout", "df-generated"] + - ["::file_static", "Argument[0]", "log-injection", "df-generated"] + - ["::module_path", "Argument[0]", "alloc-layout", "df-generated"] + - ["::module_path", "Argument[0]", "log-injection", "df-generated"] + - ["::module_path_static", "Argument[0]", "alloc-layout", "df-generated"] + - ["::module_path_static", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/memchr.model.yml b/rust/ql/lib/ext/generated/memchr.model.yml index 4555f3ffe48..3883cc6376b 100644 --- a/rust/ql/lib/ext/generated/memchr.model.yml +++ b/rust/ql/lib/ext/generated/memchr.model.yml @@ -4,69 +4,169 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["<*const as memchr::ext::Pointer>::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut as memchr::ext::Pointer>::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::load_aligned", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::load_aligned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::all::memchr::OneIter::searcher]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::arch::all::memchr::One::s1]", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::One::s1]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::all::memchr::OneIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::memchr::OneIter::searcher].Field[memchr::arch::all::memchr::One::s1]", "ReturnValue.Field[memchr::arch::all::memchr::OneIter::searcher].Field[memchr::arch::all::memchr::One::s1]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::memchr::OneIter::searcher].Field[memchr::arch::all::memchr::One::v1]", "ReturnValue.Field[memchr::arch::all::memchr::OneIter::searcher].Field[memchr::arch::all::memchr::One::v1]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::all::memchr::ThreeIter::searcher]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::arch::all::memchr::Three::s1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::arch::all::memchr::Three::s2]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[memchr::arch::all::memchr::Three::s3]", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Three::s1]", "value", "dfc-generated"] - ["::try_new", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Three::s2]", "value", "dfc-generated"] - ["::try_new", "Argument[2]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Three::s3]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::all::memchr::ThreeIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::all::memchr::TwoIter::searcher]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::arch::all::memchr::Two::s1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::arch::all::memchr::Two::s2]", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Two::s1]", "value", "dfc-generated"] - ["::try_new", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Two::s2]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::all::memchr::TwoIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] - - ["::new", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] - - ["::pair", "Argument[self].Field[memchr::arch::all::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::with_pair", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] - - ["::with_pair", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find_prefilter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] + - ["::new", "Argument[0].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] + - ["::pair", "Argument[self].Reference.Field[memchr::arch::all::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::with_pair", "Argument[0].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] + - ["::with_pair", "Argument[0].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] - ["::with_pair", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::pair]", "value", "dfc-generated"] - - ["::index1", "Argument[self].Field[memchr::arch::all::packedpair::Pair::index1]", "ReturnValue", "value", "dfc-generated"] - - ["::index2", "Argument[self].Field[memchr::arch::all::packedpair::Pair::index2]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::index1", "Argument[self].Reference.Field[memchr::arch::all::packedpair::Pair::index1]", "ReturnValue", "value", "dfc-generated"] + - ["::index2", "Argument[self].Reference.Field[memchr::arch::all::packedpair::Pair::index2]", "ReturnValue", "value", "dfc-generated"] - ["::with_indices", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Pair::index1]", "value", "dfc-generated"] - ["::with_indices", "Argument[2]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Pair::index2]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::rabinkarp::Finder::hash_2pow]", "ReturnValue.Field[memchr::arch::all::rabinkarp::Finder::hash_2pow].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::rabinkarp::Finder::hash_2pow]", "ReturnValue.Field[memchr::arch::all::rabinkarp::Finder::hash_2pow]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::rfind_raw", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::rabinkarp::Hash(0)]", "ReturnValue.Field[memchr::arch::all::rabinkarp::Hash(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::rabinkarp::Hash(0)]", "ReturnValue.Field[memchr::arch::all::rabinkarp::Hash(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::twoway::ApproximateByteSet(0)]", "ReturnValue.Field[memchr::arch::all::twoway::ApproximateByteSet(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::twoway::ApproximateByteSet(0)]", "ReturnValue.Field[memchr::arch::all::twoway::ApproximateByteSet(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::find_with_prefilter", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find_with_prefilter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::twoway::TwoWay::critical_pos]", "ReturnValue.Field[memchr::arch::all::twoway::TwoWay::critical_pos].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::all::twoway::TwoWay::critical_pos]", "ReturnValue.Field[memchr::arch::all::twoway::TwoWay::critical_pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::count", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::count", "Argument[self].Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - ["::count", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::needle1", "Argument[self].Field[memchr::arch::generic::memchr::One::s1]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::generic::memchr::One::s1]", "ReturnValue.Field[memchr::arch::generic::memchr::One::s1].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::generic::memchr::One::s1]", "ReturnValue.Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::count_raw", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::needle1", "Argument[self].Reference.Field[memchr::arch::generic::memchr::One::s1]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - - ["::needle1", "Argument[self].Field[memchr::arch::generic::memchr::Three::s1]", "ReturnValue", "value", "dfc-generated"] - - ["::needle2", "Argument[self].Field[memchr::arch::generic::memchr::Three::s2]", "ReturnValue", "value", "dfc-generated"] - - ["::needle3", "Argument[self].Field[memchr::arch::generic::memchr::Three::s3]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::needle1", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Three::s1]", "ReturnValue", "value", "dfc-generated"] + - ["::needle2", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Three::s2]", "ReturnValue", "value", "dfc-generated"] + - ["::needle3", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Three::s3]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - - ["::needle1", "Argument[self].Field[memchr::arch::generic::memchr::Two::s1]", "ReturnValue", "value", "dfc-generated"] - - ["::needle2", "Argument[self].Field[memchr::arch::generic::memchr::Two::s2]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::needle1", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Two::s1]", "ReturnValue", "value", "dfc-generated"] + - ["::needle2", "Argument[self].Reference.Field[memchr::arch::generic::memchr::Two::s2]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - - ["::min_haystack_len", "Argument[self].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue.Field[memchr::arch::generic::packedpair::Finder::min_haystack_len].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue.Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::min_haystack_len", "Argument[self].Reference.Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::arch::generic::packedpair::Finder::pair]", "value", "dfc-generated"] - - ["::pair", "Argument[self].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::pair", "Argument[self].Reference.Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::count_raw", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::OneIter::searcher]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::One::avx2].Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::One::sse2].Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::x86_64::avx2::memchr::OneIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::ThreeIter::searcher]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::avx2].Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] @@ -75,101 +175,265 @@ extensions: - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::sse2].Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[2]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::avx2].Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[2]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::sse2].Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::x86_64::avx2::memchr::ThreeIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::TwoIter::searcher]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::avx2].Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::sse2].Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::avx2].Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::sse2].Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::x86_64::avx2::memchr::TwoIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["::min_haystack_len", "Argument[self].Field[memchr::arch::x86_64::avx2::packedpair::Finder::sse2].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] - - ["::pair", "Argument[self].Field[memchr::arch::x86_64::avx2::packedpair::Finder::avx2].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::min_haystack_len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pair", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::count_raw", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::OneIter::searcher]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::One(0)].Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::x86_64::sse2::memchr::OneIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::ThreeIter::searcher]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Three(0)].Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Three(0)].Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[2]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Three(0)].Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::x86_64::sse2::memchr::ThreeIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::TwoIter::searcher]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Two(0)].Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Two(0)].Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[memchr::arch::x86_64::sse2::memchr::TwoIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["::min_haystack_len", "Argument[self].Field[0].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] - - ["::min_haystack_len", "Argument[self].Field[memchr::arch::x86_64::sse2::packedpair::Finder(0)].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] - - ["::pair", "Argument[self].Field[0].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::pair", "Argument[self].Field[memchr::arch::x86_64::sse2::packedpair::Finder(0)].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[0].Field[memchr::cow::Imp::Owned(0)]", "ReturnValue.Field[memchr::cow::CowBytes(0)].Field[memchr::cow::Imp::Owned(0)]", "value", "dfc-generated"] + - ["::rfind", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::min_haystack_len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pair", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_owned", "Argument[self].Field[memchr::cow::CowBytes(0)].Field[memchr::cow::Imp::Owned(0)]", "ReturnValue.Field[memchr::cow::CowBytes(0)].Field[memchr::cow::Imp::Owned(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::cow::Imp::Owned(0)]", "ReturnValue.Field[memchr::cow::Imp::Owned(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[memchr::memchr::Memchr::needle1]", "ReturnValue.Field[memchr::memchr::Memchr::needle1].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::memchr::Memchr::needle1]", "ReturnValue.Field[memchr::memchr::Memchr::needle1]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr2::needle1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr2::needle2]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr3::needle1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr3::needle2]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[memchr::memchr::Memchr3::needle3]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr::needle1]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::memmem::FindIter::pos]", "ReturnValue.Field[memchr::memmem::FindIter::pos].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::memmem::FindIter::pos]", "ReturnValue.Field[memchr::memmem::FindIter::pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_owned", "Argument[self].Field[memchr::memmem::FindIter::haystack]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] + - ["::into_owned", "Argument[self].Field[memchr::memmem::FindIter::pos]", "ReturnValue.Field[memchr::memmem::FindIter::pos]", "value", "dfc-generated"] + - ["::into_owned", "Argument[self].Field[memchr::memmem::FindIter::prestate]", "ReturnValue.Field[memchr::memmem::FindIter::prestate]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::memmem::FindIter::finder]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[memchr::memmem::FindRevIter::finder].Field[memchr::memmem::FinderRev::searcher]", "ReturnValue.Field[memchr::memmem::FindRevIter::finder].Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::memmem::FindRevIter::pos]", "ReturnValue.Field[memchr::memmem::FindRevIter::pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_owned", "Argument[self].Field[memchr::memmem::FindRevIter::haystack]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - ["::into_owned", "Argument[self].Field[memchr::memmem::FindRevIter::pos]", "ReturnValue.Field[memchr::memmem::FindRevIter::pos]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[memchr::memmem::FindRevIter::finder]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[memchr::memmem::Finder::searcher].Reference", "ReturnValue.Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[memchr::memmem::Finder::searcher]", "ReturnValue.Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::find_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] - - ["::find_iter", "Argument[self].Field[memchr::memmem::Finder::searcher].Reference", "ReturnValue.Field[memchr::memmem::FindIter::finder].Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["::find_iter", "Argument[self].Field[memchr::memmem::Finder::searcher]", "ReturnValue.Field[memchr::memmem::FindIter::finder].Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[memchr::memmem::Finder::searcher].Reference", "ReturnValue.Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[memchr::memmem::Finder::searcher]", "ReturnValue.Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["::prefilter", "Argument[0]", "Argument[self].Field[memchr::memmem::FinderBuilder::prefilter]", "value", "dfc-generated"] - - ["::prefilter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FinderBuilder::prefilter]", "value", "dfc-generated"] + - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::prefilter", "Argument[0]", "Argument[self].Reference.Field[memchr::memmem::FinderBuilder::prefilter]", "value", "dfc-generated"] - ["::prefilter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[memchr::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[memchr::memmem::FinderRev::searcher]", "ReturnValue.Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[memchr::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] - - ["::into_owned", "Argument[self].Field[memchr::memmem::FinderRev::searcher]", "ReturnValue.Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::rfind_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - - ["::rfind_iter", "Argument[self].Field[memchr::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[memchr::memmem::FindRevIter::finder].Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] - - ["::rfind_iter", "Argument[self].Field[memchr::memmem::FinderRev::searcher]", "ReturnValue.Field[memchr::memmem::FindRevIter::finder].Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[memchr::memmem::searcher::Searcher::kind]", "ReturnValue.Field[memchr::memmem::searcher::Searcher::kind]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::find", "Argument[1]", "Argument[self]", "taint", "df-generated"] - ["::find", "Argument[2]", "Argument[self]", "taint", "df-generated"] - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0].Element", "ReturnValue.Field[memchr::memmem::searcher::SearcherRev::kind].Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0].Reference.Element", "ReturnValue.Field[memchr::memmem::searcher::SearcherRev::kind].Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle]", "value", "dfc-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle]", "ReturnValue.Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle]", "ReturnValue.Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[memchr::vector::SensibleMoveMask(0)]", "ReturnValue.Field[memchr::vector::SensibleMoveMask(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[memchr::vector::SensibleMoveMask(0)]", "ReturnValue.Field[memchr::vector::SensibleMoveMask(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::all_zeros_except_least_significant", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::and", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::and", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clear_least_significant_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::or", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::or", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["memchr::arch::generic::memchr::count_byte_by_byte", "Argument[0].Reference", "Argument[2].Parameter[0]", "value", "dfc-generated"] - - ["memchr::arch::generic::memchr::fwd_byte_by_byte", "Argument[0].Reference", "Argument[2].Parameter[0]", "value", "dfc-generated"] + - ["memchr::arch::generic::memchr::count_byte_by_byte", "Argument[0]", "Argument[2]", "taint", "df-generated"] - ["memchr::arch::generic::memchr::fwd_byte_by_byte", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["memchr::arch::generic::memchr::search_slice_with_raw", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["memchr::arch::generic::memchr::search_slice_with_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["memchr::arch::generic::memchr::search_slice_with_raw", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memchr2", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memchr2", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memchr2", "Argument[2]", "Argument[0]", "taint", "df-generated"] + - ["memchr::memchr::memchr2", "Argument[2]", "Argument[1]", "taint", "df-generated"] - ["memchr::memchr::memchr2_iter", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr2::needle1]", "value", "dfc-generated"] - ["memchr::memchr::memchr2_iter", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr2::needle2]", "value", "dfc-generated"] + - ["memchr::memchr::memchr3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memchr3", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memchr3", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memchr3", "Argument[3]", "Argument[0]", "taint", "df-generated"] + - ["memchr::memchr::memchr3", "Argument[3]", "Argument[1]", "taint", "df-generated"] + - ["memchr::memchr::memchr3", "Argument[3]", "Argument[2]", "taint", "df-generated"] - ["memchr::memchr::memchr3_iter", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr3::needle1]", "value", "dfc-generated"] - ["memchr::memchr::memchr3_iter", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr3::needle2]", "value", "dfc-generated"] - ["memchr::memchr::memchr3_iter", "Argument[2]", "ReturnValue.Field[memchr::memchr::Memchr3::needle3]", "value", "dfc-generated"] + - ["memchr::memchr::memchr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memchr", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["memchr::memchr::memchr_iter", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr::needle1]", "value", "dfc-generated"] + - ["memchr::memchr::memrchr2", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memrchr2", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memrchr2", "Argument[2]", "Argument[0]", "taint", "df-generated"] + - ["memchr::memchr::memrchr2", "Argument[2]", "Argument[1]", "taint", "df-generated"] + - ["memchr::memchr::memrchr3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memrchr3", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memrchr3", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memrchr3", "Argument[3]", "Argument[0]", "taint", "df-generated"] + - ["memchr::memchr::memrchr3", "Argument[3]", "Argument[1]", "taint", "df-generated"] + - ["memchr::memchr::memrchr3", "Argument[3]", "Argument[2]", "taint", "df-generated"] + - ["memchr::memchr::memrchr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["memchr::memchr::memrchr", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["memchr::memmem::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["memchr::memmem::find_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] - ["memchr::memmem::rfind_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: + - ["::count", "Argument[0]", "pointer-access", "df-generated"] + - ["::count_raw", "Argument[0]", "pointer-access", "df-generated"] + - ["::find", "Argument[0]", "pointer-access", "df-generated"] + - ["::find_raw", "Argument[0]", "pointer-access", "df-generated"] + - ["::rfind_raw", "Argument[1]", "pointer-access", "df-generated"] + - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] + - ["::count", "Argument[self]", "pointer-access", "df-generated"] + - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::find", "Argument[0]", "pointer-access", "df-generated"] + - ["::find_raw", "Argument[0]", "pointer-access", "df-generated"] + - ["::rfind_raw", "Argument[1]", "pointer-access", "df-generated"] + - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] + - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::find", "Argument[0]", "pointer-access", "df-generated"] + - ["::find_raw", "Argument[0]", "pointer-access", "df-generated"] + - ["::rfind_raw", "Argument[1]", "pointer-access", "df-generated"] + - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] + - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::find", "Argument[0]", "pointer-access", "df-generated"] + - ["::find", "Argument[1]", "pointer-access", "df-generated"] + - ["::find_raw", "Argument[0]", "pointer-access", "df-generated"] + - ["::find_raw", "Argument[2]", "pointer-access", "df-generated"] + - ["::rfind", "Argument[1]", "pointer-access", "df-generated"] + - ["::rfind_raw", "Argument[1]", "pointer-access", "df-generated"] + - ["::rfind_raw", "Argument[2]", "pointer-access", "df-generated"] + - ["::count", "Argument[self]", "pointer-access", "df-generated"] + - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] + - ["::find", "Argument[1]", "pointer-access", "df-generated"] - ["::find", "Argument[self]", "log-injection", "df-generated"] - ["::find_prefilter", "Argument[self]", "log-injection", "df-generated"] + - ["::find", "Argument[1]", "pointer-access", "df-generated"] - ["::find", "Argument[self]", "log-injection", "df-generated"] - ["::find_prefilter", "Argument[self]", "log-injection", "df-generated"] + - ["::find", "Argument[1]", "pointer-access", "df-generated"] - ["::find", "Argument[self]", "log-injection", "df-generated"] - ["::find_prefilter", "Argument[self]", "log-injection", "df-generated"] + - ["::rfind", "Argument[1]", "pointer-access", "df-generated"] + - ["memchr::arch::all::is_equal", "Argument[0]", "pointer-access", "df-generated"] + - ["memchr::arch::all::is_equal", "Argument[1]", "pointer-access", "df-generated"] + - ["memchr::arch::all::is_equal_raw", "Argument[0]", "pointer-access", "df-generated"] + - ["memchr::arch::all::is_equal_raw", "Argument[1]", "pointer-access", "df-generated"] + - ["memchr::arch::all::is_prefix", "Argument[1]", "pointer-access", "df-generated"] + - ["memchr::arch::all::is_suffix", "Argument[1]", "pointer-access", "df-generated"] + - ["memchr::arch::generic::memchr::search_slice_with_raw", "Argument[0]", "pointer-access", "df-generated"] + - ["memchr::memmem::find", "Argument[0]", "pointer-access", "df-generated"] + - ["memchr::memmem::find", "Argument[1]", "pointer-access", "df-generated"] + - ["memchr::memmem::rfind", "Argument[1]", "pointer-access", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["::load_unaligned", "ReturnValue", "constant-source", "df-generated"] + - ["::load_unaligned", "ReturnValue", "constant-source", "df-generated"] diff --git a/rust/ql/lib/ext/generated/once_cell.model.yml b/rust/ql/lib/ext/generated/once_cell.model.yml index ef8ffdc2228..199a07a0424 100644 --- a/rust/ql/lib/ext/generated/once_cell.model.yml +++ b/rust/ql/lib/ext/generated/once_cell.model.yml @@ -4,21 +4,51 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[once_cell::imp::OnceCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get_or_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_or_init", "Argument[0].ReturnValue", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::into_value", "Argument[0].Field[once_cell::sync::Lazy::init]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::force", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::force_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_try_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["::into_value", "Argument[0].Field[once_cell::unsync::Lazy::init]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] + - ["::wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::force", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::force_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::get_or_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_try_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[once_cell::unsync::OnceCell::inner].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] + - ["::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand.model.yml b/rust/ql/lib/ext/generated/rand.model.yml index 2425829bce1..02ca2db59e2 100644 --- a/rust/ql/lib/ext/generated/rand.model.yml +++ b/rust/ql/lib/ext/generated/rand.model.yml @@ -4,84 +4,199 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["<& as rand::distr::uniform::SampleBorrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::extract_lane", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::decrease_masked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::extract_lane", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::replace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::cast_from_int", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checked_add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::extract_lane", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::replace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::cast_from_int", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checked_add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand::distr::bernoulli::Bernoulli::p_int]", "ReturnValue.Field[rand::distr::bernoulli::Bernoulli::p_int].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::distr::bernoulli::Bernoulli::p_int]", "ReturnValue.Field[rand::distr::bernoulli::Bernoulli::p_int]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_ratio", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_ratio", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::p", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::sample", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand::distr::slice::Choose::num_choices]", "ReturnValue.Field[rand::distr::slice::Choose::num_choices].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::distr::slice::Choose::num_choices]", "ReturnValue.Field[rand::distr::slice::Choose::num_choices]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rand::distr::slice::Choose::slice]", "value", "dfc-generated"] - - ["::num_choices", "Argument[self].Field[rand::distr::slice::Choose::num_choices]", "ReturnValue", "value", "dfc-generated"] + - ["::num_choices", "Argument[self].Reference.Field[rand::distr::slice::Choose::num_choices]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::sample", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sample", "Argument[self].Field[rand::distr::uniform::other::UniformDuration::mode].Field[rand::distr::uniform::other::UniformDurationMode::Small::secs]", "ReturnValue.Field[core::time::Duration::secs]", "value", "dfc-generated"] - - ["::total_weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::total_weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue", "value", "dfc-generated"] - - ["::weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::cumulative_weights].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand::distr::uniform::other::UniformDuration::offset]", "ReturnValue.Field[rand::distr::uniform::other::UniformDuration::offset].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::distr::uniform::other::UniformDuration::offset]", "ReturnValue.Field[rand::distr::uniform::other::UniformDuration::offset]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sample", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::cumulative_weights]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndex::cumulative_weights]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::total_weight", "Argument[self].Reference.Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue", "value", "dfc-generated"] + - ["::update_weights", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::weight", "Argument[self].Reference.Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::weights", "Argument[self]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndexIter::index]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::index]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndexIter::weighted_index].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::index]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::index]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_u32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_u64", "Argument[self].Field[rand::rngs::mock::StepRng::v]", "ReturnValue", "value", "dfc-generated"] + - ["::next_u64", "Argument[self].Reference.Field[rand::rngs::mock::StepRng::v]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand::rngs::mock::StepRng::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[rand::rngs::mock::StepRng::a]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self].Field[0].Field[rand_core::block::BlockRng::core]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingRng(0)].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[rand::rngs::reseeding::ReseedingRng(0)].Field[rand_core::block::BlockRng::core]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingRng(0)].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[rand::rngs::reseeding::ReseedingCore::inner]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingCore::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[rand::rngs::reseeding::ReseedingCore::reseeder]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingCore::reseeder]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[rand::rngs::reseeding::ReseedingCore::threshold]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingCore::threshold]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingCore::reseeder]", "value", "dfc-generated"] + - ["::reseed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand::rngs::thread::ThreadRng::rng].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[rand::rngs::thread::ThreadRng::rng].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::rngs::thread::ThreadRng::rng].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[rand::rngs::thread::ThreadRng::rng].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::rngs::thread::ThreadRng::rng]", "ReturnValue.Field[rand::rngs::thread::ThreadRng::rng]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::rngs::xoshiro256plusplus::Xoshiro256PlusPlus::s]", "ReturnValue.Field[rand::rngs::xoshiro256plusplus::Xoshiro256PlusPlus::s]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand::seq::coin_flipper::CoinFlipper::rng]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand::seq::increasing_uniform::IncreasingUniform::rng]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[rand::seq::increasing_uniform::IncreasingUniform::n]", "value", "dfc-generated"] - ["::next_index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand::seq::index_::IndexVec::U32(0)]", "ReturnValue.Field[rand::seq::index_::IndexVec::U32(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::seq::index_::IndexVec::U64(0)]", "ReturnValue.Field[rand::seq::index_::IndexVec::U64(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[rand::seq::index_::IndexVec::U32(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[rand::seq::index_::IndexVec::U64(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_size]", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[rand::seq::iterator::test::UnhintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[rand::seq::iterator::test::WindowHintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[rand::seq::iterator::test::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::len", "Argument[self].Field[rand::seq::index_::IndexVec::U32(0)].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] + - ["::len", "Argument[self].Field[rand::seq::index_::IndexVec::U64(0)].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::seq::index_::IndexVecIntoIter::U32(0)]", "ReturnValue.Field[rand::seq::index_::IndexVecIntoIter::U32(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand::seq::index_::IndexVecIntoIter::U64(0)]", "ReturnValue.Field[rand::seq::index_::IndexVecIntoIter::U64(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_size]", "Argument[self].Reference.Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[rand::seq::iterator::test::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[rand_chacha::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[rand_chacha::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[rand_chacha::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[rand_chacha::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[rand_chacha::chacha::ChaCha12Rng::rng].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::set_word_pos", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[rand_chacha::chacha::ChaCha20Rng::rng].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::set_word_pos", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[rand_chacha::chacha::ChaCha8Rng::rng].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::set_word_pos", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::re", "Argument[self].Field[0]", "ReturnValue.Field[rand_core::UnwrapMut(0)]", "value", "dfc-generated"] - - ["::re", "Argument[self].Field[rand_core::UnwrapMut(0)]", "ReturnValue.Field[rand_core::UnwrapMut(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand_chacha::guts::ChaCha::b]", "ReturnValue.Field[rand_chacha::guts::ChaCha::b]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_chacha::guts::ChaCha::c]", "ReturnValue.Field[rand_chacha::guts::ChaCha::c]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_chacha::guts::ChaCha::d]", "ReturnValue.Field[rand_chacha::guts::ChaCha::d]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::re", "Argument[self].Reference.Field[rand_core::UnwrapMut(0)]", "ReturnValue.Field[rand_core::UnwrapMut(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_core::block::BlockRng::index]", "ReturnValue.Field[rand_core::block::BlockRng::index].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_core::block::BlockRng::index]", "ReturnValue.Field[rand_core::block::BlockRng::index]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_u32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::generate_and_set", "Argument[0]", "Argument[self].Field[rand_core::block::BlockRng64::index]", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[rand_core::block::BlockRng64::index]", "ReturnValue", "value", "dfc-generated"] + - ["::generate_and_set", "Argument[0]", "Argument[self].Reference.Field[rand_core::block::BlockRng64::index]", "value", "dfc-generated"] + - ["::index", "Argument[self].Reference.Field[rand_core::block::BlockRng64::index]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand_core::block::BlockRng64::core]", "value", "dfc-generated"] - - ["::generate_and_set", "Argument[0]", "Argument[self].Field[rand_core::block::BlockRng::index]", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[rand_core::block::BlockRng::index]", "ReturnValue", "value", "dfc-generated"] + - ["::generate_and_set", "Argument[0]", "Argument[self].Reference.Field[rand_core::block::BlockRng::index]", "value", "dfc-generated"] + - ["::index", "Argument[self].Reference.Field[rand_core::block::BlockRng::index]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_core::block::test::DummyRng::counter]", "ReturnValue.Field[rand_core::block::test::DummyRng::counter].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_core::block::test::DummyRng::counter]", "ReturnValue.Field[rand_core::block::test::DummyRng::counter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand_core::block::test::DummyRng64::counter]", "ReturnValue.Field[rand_core::block::test::DummyRng64::counter].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_core::block::test::DummyRng64::counter]", "ReturnValue.Field[rand_core::block::test::DummyRng64::counter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[rand_core::os::OsError(0)]", "ReturnValue.Field[rand_core::os::OsError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg128::Lcg128Xsl64::state]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_pcg::pcg128::Mcg128Xsl64::state]", "ReturnValue.Field[rand_pcg::pcg128::Mcg128Xsl64::state].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[rand_pcg::pcg128::Mcg128Xsl64::state]", "ReturnValue.Field[rand_pcg::pcg128::Mcg128Xsl64::state]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg128cm::Lcg128CmDxsm64::state]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg64::Lcg64Xsh32::state]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[seq_choose::UnhintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[seq_choose::WindowHintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[seq_choose::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[seq_choose::WindowHintedIterator::window_size]", "ReturnValue.Field[seq_choose::WindowHintedIterator::window_size].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[seq_choose::WindowHintedIterator::window_size]", "ReturnValue.Field[seq_choose::WindowHintedIterator::window_size]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[seq_choose::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["rand::seq::index_::sample", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["rand::test::rng", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg64::Lcg64Xsh32::state]", "value", "dfc-generated"] - ["rand_chacha::guts::diagonalize", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["rand_chacha::guts::round", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["rand_chacha::guts::undiagonalize", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::into_iter", "Argument[self]", "pointer-access", "df-generated"] + - ["::into_vec", "Argument[self]", "pointer-access", "df-generated"] + - ["rand::random_bool", "Argument[0]", "log-injection", "df-generated"] + - ["rand::random_ratio", "Argument[0]", "log-injection", "df-generated"] + - ["rand::random_ratio", "Argument[1]", "log-injection", "df-generated"] + - ["rand::seq::index_::sample", "Argument[1]", "alloc-layout", "df-generated"] + - ["rand::seq::index_::sample", "Argument[2]", "alloc-layout", "df-generated"] diff --git a/rust/ql/lib/ext/generated/reqwest.model.yml b/rust/ql/lib/ext/generated/reqwest.model.yml index ac907669ce9..a0e88b881d4 100644 --- a/rust/ql/lib/ext/generated/reqwest.model.yml +++ b/rust/ql/lib/ext/generated/reqwest.model.yml @@ -4,32 +4,36 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["<& as reqwest::into_url::IntoUrlSealed>::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as reqwest::into_url::IntoUrlSealed>::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::as_str", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_str", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundProcessor::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::layer", "Argument[0]", "ReturnValue.Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundProcessor::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundResponseFuture::rx]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundResponseFuture::rx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundResponseFuture::rx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::Body::inner].Field[reqwest::async_impl::body::Inner::Reusable(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_stream", "Argument[self]", "ReturnValue.Field[reqwest::async_impl::body::DataStream(0)]", "value", "dfc-generated"] - ["::reusable", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::Body::inner].Field[reqwest::async_impl::body::Inner::Reusable(0)]", "value", "dfc-generated"] + - ["::try_reuse", "Argument[self].Field[reqwest::async_impl::body::Body::inner].Field[reqwest::async_impl::body::Inner::Reusable(0)]", "ReturnValue.Field[0].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::try_reuse", "Argument[self]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::sleep]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::sleep]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::TotalTimeoutBody::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::TotalTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::TotalTimeoutBody::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::TotalTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["::delete", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::get", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::head", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::patch", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::post", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::put", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::request", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::client::Client::inner].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[reqwest::async_impl::client::Client::inner].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::client::Client::inner].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[reqwest::async_impl::client::Client::inner].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::delete", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client].Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::get", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client].Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::head", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client].Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::patch", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client].Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::post", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client].Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::put", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client].Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::request", "Argument[self].Field[reqwest::async_impl::client::Client::inner]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client].Field[reqwest::async_impl::client::Client::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::add_crl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add_crls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add_root_certificate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -139,56 +143,81 @@ extensions: - ["::use_rustls_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::user_agent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[reqwest::async_impl::client::HyperService::cookie_store].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::call", "Argument[self].Field[reqwest::async_impl::client::HyperService::cookie_store]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::client::Pending::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::client::Pending::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::client::HyperService::cookie_store]", "ReturnValue.Field[reqwest::async_impl::client::HyperService::cookie_store]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::client::HyperService::hyper]", "ReturnValue.Field[reqwest::async_impl::client::HyperService::hyper]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::detect", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::decoder::Decoder::inner].Field[reqwest::async_impl::decoder::Inner::PlainText(0)]", "value", "dfc-generated"] - ["::into_stream", "Argument[self]", "ReturnValue.Field[reqwest::async_impl::decoder::IoStream(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::H3Client::cookie_store]", "ReturnValue.Field[reqwest::async_impl::h3_client::H3Client::cookie_store]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::h3_client::H3Client::connector]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[reqwest::async_impl::h3_client::H3Client::cookie_store]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::connect::H3ClientConfig::max_field_section_size]", "ReturnValue.Field[reqwest::async_impl::h3_client::connect::H3ClientConfig::max_field_section_size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::connect::H3ClientConfig::send_grease]", "ReturnValue.Field[reqwest::async_impl::h3_client::connect::H3ClientConfig::send_grease]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::connect::H3Connector::endpoint]", "ReturnValue.Field[reqwest::async_impl::h3_client::connect::H3Connector::endpoint]", "value", "dfc-generated"] + - ["::connect", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::async_impl::h3_client::connect::H3Connector::resolver]", "value", "dfc-generated"] - ["::new", "Argument[4]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::async_impl::h3_client::connect::H3Connector::client_config]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::pool::Pool::inner].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::Pool::inner].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::pool::Pool::inner].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::Pool::inner].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::pool::Pool::inner]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::Pool::inner]", "value", "dfc-generated"] - ["::new_connection", "Argument[2]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolClient::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::async_impl::h3_client::pool::PoolClient::inner]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolClient::inner]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolClient::inner]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolConnection::client]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolConnection::close_rx]", "value", "dfc-generated"] - - ["::pool", "Argument[self].Field[reqwest::async_impl::h3_client::pool::PoolConnection::client].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::pool", "Argument[self].Field[reqwest::async_impl::h3_client::pool::PoolConnection::client]", "ReturnValue", "value", "dfc-generated"] - - ["::boundary", "Argument[self].Field[reqwest::async_impl::multipart::Form::inner].Field[reqwest::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::boundary", "Argument[self].Field[reqwest::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::pool", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::boundary", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::file", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::part", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::part", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::part", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::part", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::text", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::text", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::boundary", "Argument[self].Reference.Field[reqwest::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt_fields", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::part", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::percent_encode_attr_chars", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::percent_encode_noop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::percent_encode_path_segment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::metadata", "Argument[self].Field[reqwest::async_impl::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::value_len", "Argument[self].Field[reqwest::async_impl::multipart::Part::body_length]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::metadata", "Argument[self].Reference.Field[reqwest::async_impl::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::value_len", "Argument[self].Reference.Field[reqwest::async_impl::multipart::Part::body_length]", "ReturnValue", "value", "dfc-generated"] + - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::file_name", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::headers", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::headers", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::stream", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::stream_with_length", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::multipart::Part::body_length].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::file_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt_fields", "Argument[0].Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::fmt_fields", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mime", "Argument[0]", "Argument[self].Field[reqwest::async_impl::multipart::PartMetadata::mime].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::mime", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::multipart::PartMetadata::mime].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::mime", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::body", "Argument[self].Field[reqwest::async_impl::request::Request::body].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::body_mut", "Argument[self].Field[reqwest::async_impl::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::extensions", "Argument[self].Field[reqwest::async_impl::request::Request::extensions]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::extensions_mut", "Argument[self].Field[reqwest::async_impl::request::Request::extensions]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers_mut", "Argument[self].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::method", "Argument[self].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::method_mut", "Argument[self].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::body", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::body_mut", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::extensions", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::extensions]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::extensions_mut", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::extensions]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::headers", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::headers_mut", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::method", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::method_mut", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::request::Request::method]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::request::Request::url]", "value", "dfc-generated"] - ["::pieces", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::try_clone", "Argument[self].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Field[core::option::Option::Some(0)].Field[reqwest::async_impl::request::Request::method]", "value", "dfc-generated"] - - ["::try_clone", "Argument[self].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Field[core::option::Option::Some(0)].Field[reqwest::async_impl::request::Request::url]", "value", "dfc-generated"] - - ["::url", "Argument[self].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::url_mut", "Argument[self].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::version", "Argument[self].Field[reqwest::async_impl::request::Request::version]", "ReturnValue", "value", "dfc-generated"] - - ["::version_mut", "Argument[self].Field[reqwest::async_impl::request::Request::version]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_clone", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Field[core::option::Option::Some(0)].Field[reqwest::async_impl::request::Request::method]", "value", "dfc-generated"] + - ["::try_clone", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Field[core::option::Option::Some(0)].Field[reqwest::async_impl::request::Request::url]", "value", "dfc-generated"] + - ["::url", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::url_mut", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::version", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::version]", "ReturnValue", "value", "dfc-generated"] + - ["::version_mut", "Argument[self].Reference.Field[reqwest::async_impl::request::Request::version]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -198,36 +227,40 @@ extensions: - ["::fetch_mode_no_cors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from_parts", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["::from_parts", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::request].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::multipart", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::request]", "value", "dfc-generated"] - ["::query", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::try_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::error_for_status", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::error_for_status_ref", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::json", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::response::Response::url].Reference", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::response::Response::url].Field[alloc::boxed::Box(0)]", "value", "dfc-generated"] - ["::text_with_charset", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::url", "Argument[self].Field[reqwest::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::url", "Argument[self].Reference.Field[reqwest::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Bytes(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_async", "Argument[self].Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(1)]", "ReturnValue.Field[2]", "value", "dfc-generated"] - ["::into_reader", "Argument[self].Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Bytes(0)]", "ReturnValue.Field[reqwest::blocking::body::Reader::Bytes(0)].Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - ["::into_reader", "Argument[self].Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(0)]", "ReturnValue.Field[reqwest::blocking::body::Reader::Reader(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(1)]", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sized", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::delete", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::get", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::head", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::patch", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::post", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::put", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["::request", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue.Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(0)]", "value", "dfc-generated"] + - ["::sized", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue.Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(0)]", "value", "dfc-generated"] + - ["::sized", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::execute", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[reqwest::blocking::client::ClientBuilder::inner]", "value", "dfc-generated"] - ["::add_crl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add_crls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -294,26 +327,43 @@ extensions: - ["::use_rustls_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::user_agent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::boundary", "Argument[self].Field[reqwest::blocking::multipart::Form::inner].Field[reqwest::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::blocking::client::ClientHandle::inner].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[reqwest::blocking::client::ClientHandle::inner].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::blocking::client::ClientHandle::inner].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[reqwest::blocking::client::ClientHandle::inner].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::blocking::client::ClientHandle::inner]", "ReturnValue.Field[reqwest::blocking::client::ClientHandle::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::blocking::client::Timeout(0)]", "ReturnValue.Field[reqwest::blocking::client::Timeout(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::boundary", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::file", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::into_reader", "Argument[self]", "ReturnValue.Field[reqwest::blocking::multipart::Reader::form]", "value", "dfc-generated"] + - ["::part", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::part", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::part", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::part", "Argument[self]", "Argument[1]", "taint", "df-generated"] - ["::reader", "Argument[self]", "ReturnValue.Field[reqwest::blocking::multipart::Reader::form]", "value", "dfc-generated"] - - ["::metadata", "Argument[self].Field[reqwest::blocking::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::text", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::text", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::metadata", "Argument[self].Reference.Field[reqwest::blocking::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::value_len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::file_name", "Argument[self].Field[reqwest::blocking::multipart::Part::value]", "ReturnValue.Field[reqwest::blocking::multipart::Part::value]", "value", "dfc-generated"] - ["::headers", "Argument[self].Field[reqwest::blocking::multipart::Part::value]", "ReturnValue.Field[reqwest::blocking::multipart::Part::value]", "value", "dfc-generated"] - ["::mime_str", "Argument[self].Field[reqwest::blocking::multipart::Part::value]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::blocking::multipart::Part::value]", "value", "dfc-generated"] - - ["::body", "Argument[self].Field[reqwest::blocking::request::Request::body].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::body_mut", "Argument[self].Field[reqwest::blocking::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::headers_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::body", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::body_mut", "Argument[self].Reference.Field[reqwest::blocking::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::headers_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_async", "Argument[self].Field[reqwest::blocking::request::Request::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::method", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::method_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::method", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::method_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::method]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::url]", "value", "dfc-generated"] - - ["::url", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::url_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::version", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::version]", "ReturnValue", "value", "dfc-generated"] - - ["::version_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::version]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::url", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::url_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::version_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -322,6 +372,7 @@ extensions: - ["::build_split", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from_parts", "Argument[0]", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["::from_parts", "Argument[1]", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::request].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -334,15 +385,18 @@ extensions: - ["::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::try_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::error_for_status_ref", "Argument[self].Field[reqwest::blocking::response::Response::inner]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["::error_for_status_ref", "Argument[self].Field[reqwest::blocking::response::Response::inner]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::error_for_status_ref", "Argument[self].Reference.Field[reqwest::blocking::response::Response::inner]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["::error_for_status_ref", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::blocking::response::Response::inner]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::blocking::response::Response::timeout]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[reqwest::blocking::response::Response::_thread_handle]", "value", "dfc-generated"] - - ["::url", "Argument[self].Field[reqwest::blocking::response::Response::inner].Field[reqwest::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::fetch", "Argument[self].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::fetch", "Argument[self].Field[reqwest::config::RequestConfig(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::url", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[reqwest::config::RequestConfig(0)]", "ReturnValue.Field[reqwest::config::RequestConfig(0)]", "value", "dfc-generated"] + - ["::fetch", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::config::RequestConfig(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::connect::Connector::WithLayers(0)]", "ReturnValue.Field[reqwest::connect::Connector::WithLayers(0)]", "value", "dfc-generated"] - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_built_default_tls", "Argument[0]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::inner].Field[reqwest::connect::Inner::DefaultTls(0)]", "value", "dfc-generated"] - ["::from_built_default_tls", "Argument[1]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::inner].Field[reqwest::connect::Inner::DefaultTls(1)]", "value", "dfc-generated"] @@ -359,35 +413,54 @@ extensions: - ["::new_rustls_tls", "Argument[3]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] - ["::new_rustls_tls", "Argument[6]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] - ["::new_rustls_tls", "Argument[7]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] - - ["::set_socks_resolver", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::resolver].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::set_timeout", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::timeout]", "value", "dfc-generated"] - - ["::set_verbose", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::verbose].Field[0]", "value", "dfc-generated"] - - ["::set_verbose", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::verbose].Field[reqwest::connect::verbose::Wrapper(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::native_tls_conn::NativeTlsConn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::native_tls_conn::NativeTlsConn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::rustls_tls_conn::RustlsTlsConn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::rustls_tls_conn::RustlsTlsConn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::is_proxy]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::tls_info]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::is_proxy]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::tls_info]", "ReturnValue", "value", "dfc-generated"] - - ["::wrap", "Argument[0]", "ReturnValue.Reference.Field[reqwest::connect::verbose::Verbose::inner]", "value", "dfc-generated"] - - ["::wrap", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::resolve", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::resolve", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::resolve", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::source", "Argument[self].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::source", "Argument[self].Field[reqwest::dns::hickory::HickoryDnsSystemConfError(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::set_socks_resolver", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_timeout", "Argument[0]", "Argument[self].Reference.Field[reqwest::connect::ConnectorBuilder::timeout]", "value", "dfc-generated"] + - ["::set_verbose", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[reqwest::connect::verbose::Wrapper(0)]", "ReturnValue.Field[reqwest::connect::verbose::Wrapper(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::connect::verbose::Wrapper(0)]", "ReturnValue.Field[reqwest::connect::verbose::Wrapper(0)]", "value", "dfc-generated"] + - ["::wrap", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(0)].Field[reqwest::connect::verbose::Verbose::inner]", "value", "dfc-generated"] + - ["::wrap", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[reqwest::dns::hickory::HickoryDnsResolver::state].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[reqwest::dns::hickory::HickoryDnsResolver::state].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::dns::hickory::HickoryDnsResolver::state].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[reqwest::dns::hickory::HickoryDnsResolver::state].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::dns::hickory::HickoryDnsResolver::state]", "ReturnValue.Field[reqwest::dns::hickory::HickoryDnsResolver::state]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::source", "Argument[self].Reference.Field[reqwest::dns::hickory::HickoryDnsSystemConfError(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::dns::resolve::DnsResolverWithOverrides::dns_resolver]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::dns::resolve::DynResolver::resolver].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[reqwest::dns::resolve::DynResolver::resolver].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::dns::resolve::DynResolver::resolver].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[reqwest::dns::resolve::DynResolver::resolver].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::dns::resolve::DynResolver::resolver]", "ReturnValue.Field[reqwest::dns::resolve::DynResolver::resolver]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::dns::resolve::DynResolver::resolver]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::status", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::url", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::url_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_url", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::without_url", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::maybe_has_http_auth", "Argument[self].Field[reqwest::proxy::Matcher::maybe_has_http_auth]", "ReturnValue", "value", "dfc-generated"] - - ["::maybe_has_http_custom_headers", "Argument[self].Field[reqwest::proxy::Matcher::maybe_has_http_custom_headers]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[reqwest::proxy::Extra::auth]", "ReturnValue.Field[reqwest::proxy::Extra::auth]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::proxy::Extra::misc]", "ReturnValue.Field[reqwest::proxy::Extra::misc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::proxy::Intercept::All(0)]", "ReturnValue.Field[reqwest::proxy::Intercept::All(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::proxy::Intercept::Http(0)]", "ReturnValue.Field[reqwest::proxy::Intercept::Http(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::proxy::Intercept::Https(0)]", "ReturnValue.Field[reqwest::proxy::Intercept::Https(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::basic_auth", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::custom_headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::intercept", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::maybe_has_http_auth", "Argument[self].Reference.Field[reqwest::proxy::Matcher::maybe_has_http_auth]", "ReturnValue", "value", "dfc-generated"] + - ["::maybe_has_http_custom_headers", "Argument[self].Reference.Field[reqwest::proxy::Matcher::maybe_has_http_custom_headers]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::proxy::NoProxy::inner]", "ReturnValue.Field[reqwest::proxy::NoProxy::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[reqwest::proxy::Proxy::no_proxy]", "ReturnValue.Field[reqwest::proxy::Proxy::no_proxy]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::custom_http_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -396,44 +469,84 @@ extensions: - ["::no_proxy", "Argument[0]", "Argument[self].Field[reqwest::proxy::Proxy::no_proxy]", "value", "dfc-generated"] - ["::no_proxy", "Argument[0]", "ReturnValue.Field[reqwest::proxy::Proxy::no_proxy]", "value", "dfc-generated"] - ["::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::previous", "Argument[self].Field[reqwest::redirect::Attempt::previous]", "ReturnValue", "value", "dfc-generated"] - - ["::status", "Argument[self].Field[reqwest::redirect::Attempt::status]", "ReturnValue", "value", "dfc-generated"] - - ["::url", "Argument[self].Field[reqwest::redirect::Attempt::next]", "ReturnValue", "value", "dfc-generated"] - - ["::custom", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::error", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::previous", "Argument[self].Reference.Field[reqwest::redirect::Attempt::previous]", "ReturnValue", "value", "dfc-generated"] + - ["::status", "Argument[self].Reference.Field[reqwest::redirect::Attempt::status]", "ReturnValue", "value", "dfc-generated"] + - ["::url", "Argument[self].Reference.Field[reqwest::redirect::Attempt::next]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::check", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::limited", "Argument[0]", "ReturnValue.Field[reqwest::redirect::Policy::inner].Field[reqwest::redirect::PolicyKind::Limit(0)]", "value", "dfc-generated"] + - ["::redirect", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::with_https_only", "Argument[0]", "Argument[self].Field[reqwest::redirect::TowerRedirectPolicy::https_only]", "value", "dfc-generated"] - - ["::with_https_only", "Argument[0]", "ReturnValue.Field[reqwest::redirect::TowerRedirectPolicy::https_only]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::with_https_only", "Argument[0]", "Argument[self].Reference.Field[reqwest::redirect::TowerRedirectPolicy::https_only]", "value", "dfc-generated"] - ["::with_https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::with_referer", "Argument[0]", "Argument[self].Field[reqwest::redirect::TowerRedirectPolicy::referer]", "value", "dfc-generated"] - - ["::with_referer", "Argument[0]", "ReturnValue.Field[reqwest::redirect::TowerRedirectPolicy::referer]", "value", "dfc-generated"] + - ["::with_referer", "Argument[0]", "Argument[self].Reference.Field[reqwest::redirect::TowerRedirectPolicy::referer]", "value", "dfc-generated"] - ["::with_referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_rustls_crl", "Argument[self].Field[reqwest::tls::CertificateRevocationList::inner].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::as_rustls_crl", "Argument[self].Field[reqwest::tls::CertificateRevocationList::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::response::ResponseUrl(0)]", "ReturnValue.Field[reqwest::response::ResponseUrl(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[reqwest::tls::Cert::Der(0)]", "ReturnValue.Field[reqwest::tls::Cert::Der(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::tls::Cert::Pem(0)]", "ReturnValue.Field[reqwest::tls::Cert::Pem(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::tls::Certificate::native]", "ReturnValue.Field[reqwest::tls::Certificate::native]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_rustls_crl", "Argument[self].Reference.Field[reqwest::tls::CertificateRevocationList::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::tls::ClientCert::Pem::certs]", "ReturnValue.Field[reqwest::tls::ClientCert::Pem::certs]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::tls::ClientCert::Pkcs12(0)]", "ReturnValue.Field[reqwest::tls::ClientCert::Pkcs12(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[reqwest::tls::ClientCert::Pkcs8(0)]", "ReturnValue.Field[reqwest::tls::ClientCert::Pkcs8(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::tls::IgnoreHostname::roots]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::tls::IgnoreHostname::signature_algorithms]", "value", "dfc-generated"] - - ["::peer_certificate", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[reqwest::tls::TlsInfo::peer_certificate]", "ReturnValue.Field[reqwest::tls::TlsInfo::peer_certificate]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::util::Escape(0)]", "value", "dfc-generated"] - ["::into_url", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["reqwest::async_impl::body::total_timeout", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::TotalTimeoutBody::inner]", "value", "dfc-generated"] - ["reqwest::async_impl::body::total_timeout", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::body::TotalTimeoutBody::timeout]", "value", "dfc-generated"] - ["reqwest::async_impl::body::with_read_timeout", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::ReadTimeoutBody::inner]", "value", "dfc-generated"] - ["reqwest::async_impl::body::with_read_timeout", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::body::ReadTimeoutBody::timeout]", "value", "dfc-generated"] + - ["reqwest::async_impl::h3_client::dns::resolve", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["reqwest::blocking::body::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["reqwest::error::cast_to_internal_error", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["reqwest::into_url::try_uri", "Argument[0]", "ReturnValue", "taint", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: + - ["<& as tower_service::Service>::call", "Argument[self]", "alloc-layout", "df-generated"] + - ["<& as tower_service::Service>::call", "Argument[self]", "log-injection", "df-generated"] + - ["::call", "Argument[self]", "alloc-layout", "df-generated"] + - ["::call", "Argument[self]", "log-injection", "df-generated"] - ["::delete", "Argument[0]", "request-url", "df-generated"] + - ["::execute", "Argument[self]", "alloc-layout", "df-generated"] + - ["::execute", "Argument[self]", "log-injection", "df-generated"] + - ["::execute_request", "Argument[self]", "alloc-layout", "df-generated"] + - ["::execute_request", "Argument[self]", "log-injection", "df-generated"] - ["::get", "Argument[0]", "request-url", "df-generated"] - ["::head", "Argument[0]", "request-url", "df-generated"] - ["::patch", "Argument[0]", "request-url", "df-generated"] - ["::post", "Argument[0]", "request-url", "df-generated"] - ["::put", "Argument[0]", "request-url", "df-generated"] + - ["::build", "Argument[self]", "disable-certificate", "df-generated"] - ["::into_stream", "Argument[self]", "log-injection", "df-generated"] - ["::stream", "Argument[self]", "log-injection", "df-generated"] - ["::multipart", "Argument[0]", "log-injection", "df-generated"] + - ["::send", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send", "Argument[self]", "log-injection", "df-generated"] + - ["::buffer", "Argument[self]", "alloc-layout", "df-generated"] - ["::delete", "Argument[0]", "request-url", "df-generated"] + - ["::execute", "Argument[self]", "alloc-layout", "df-generated"] + - ["::execute", "Argument[self]", "log-injection", "df-generated"] - ["::get", "Argument[0]", "request-url", "df-generated"] - ["::head", "Argument[0]", "request-url", "df-generated"] - ["::patch", "Argument[0]", "request-url", "df-generated"] @@ -443,22 +556,20 @@ extensions: - ["::reader", "Argument[self]", "log-injection", "df-generated"] - ["::read", "Argument[self]", "log-injection", "df-generated"] - ["::multipart", "Argument[0]", "log-injection", "df-generated"] - - ["::read", "Argument[self]", "pointer-access", "df-generated"] - - ["::bytes", "Argument[self]", "pointer-access", "df-generated"] - - ["::json", "Argument[self]", "pointer-access", "df-generated"] - - ["::text", "Argument[self]", "pointer-access", "df-generated"] - - ["::text_with_charset", "Argument[self]", "pointer-access", "df-generated"] + - ["::send", "Argument[self]", "alloc-layout", "df-generated"] + - ["::send", "Argument[self]", "log-injection", "df-generated"] + - ["::call", "Argument[0]", "log-injection", "df-generated"] - ["::call", "Argument[0]", "log-injection", "df-generated"] - - ["::new", "Argument[1]", "pointer-access", "df-generated"] + - ["::new", "Argument[1]", "alloc-layout", "df-generated"] + - ["::new", "Argument[1]", "log-injection", "df-generated"] - ["reqwest::blocking::get", "Argument[0]", "request-url", "df-generated"] - - ["reqwest::blocking::wait::timeout", "Argument[1]", "pointer-access", "df-generated"] + - ["reqwest::blocking::wait::timeout", "Argument[1]", "alloc-layout", "df-generated"] + - ["reqwest::blocking::wait::timeout", "Argument[1]", "log-injection", "df-generated"] - ["reqwest::get", "Argument[0]", "request-url", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sourceModel data: - - ["::file", "ReturnValue", "file", "df-generated"] - - ["::file", "ReturnValue", "file", "df-generated"] - ["::file", "ReturnValue", "file", "df-generated"] - ["::file", "ReturnValue", "file", "df-generated"] - ["::from_env", "ReturnValue", "environment", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust.model.yml b/rust/ql/lib/ext/generated/rust.model.yml index 9c39cc54595..f4662062329 100644 --- a/rust/ql/lib/ext/generated/rust.model.yml +++ b/rust/ql/lib/ext/generated/rust.model.yml @@ -4,176 +4,582 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["<& as core::borrow::Borrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::clone::Clone>::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::convert::TryFrom>::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::fmt::Pointer>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Element", "ReturnValue.Element", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Iter::head]", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::Iter::len]", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Iter::tail]", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[std::os::unix::net::listener::Incoming::listener]", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::Iter::rx]", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpsc::Iter::rx]", "value", "dfc-generated"] + - ["<& as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::ops::arith::Div>::div", "Argument[self].Field[core::num::saturating::Saturating(0)]", "ReturnValue.Field[core::num::saturating::Saturating(0)]", "value", "dfc-generated"] + - ["<& as core::ops::arith::Div>::div", "Argument[self].Field[core::num::wrapping::Wrapping(0)]", "ReturnValue.Field[core::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] + - ["<& as core::ops::arith::Div>::div", "Argument[self].Reference.Field[core::num::saturating::Saturating(0)]", "ReturnValue.Field[core::num::saturating::Saturating(0)]", "value", "dfc-generated"] + - ["<& as core::ops::arith::Div>::div", "Argument[self].Reference.Field[core::num::wrapping::Wrapping(0)]", "ReturnValue.Field[core::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] + - ["<& as core::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::ops::bit::BitAnd>::bitand", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::ops::bit::BitOr>::bitor", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::ops::bit::Not>::not", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::ops::deref::Deref>::deref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<& as core::str::pattern::Pattern>::as_utf8_pattern", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::str::pattern::Utf8Pattern::StringPattern(0)]", "value", "dfc-generated"] + - ["<& as core::str::pattern::Pattern>::as_utf8_pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as core::str::pattern::Pattern>::into_searcher", "Argument[0]", "ReturnValue.Field[core::str::pattern::StrSearcher::haystack]", "value", "dfc-generated"] + - ["<& as core::str::pattern::Pattern>::into_searcher", "Argument[self]", "ReturnValue.Field[core::str::pattern::StrSearcher::needle]", "value", "dfc-generated"] + - ["<& as proc_macro::bridge::Mark>::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<& as proc_macro::bridge::Unmark>::unmark", "Argument[self].Reference.Field[proc_macro::bridge::Marked::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["<& as proc_macro::bridge::Unmark>::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<& as proc_macro::bridge::rpc::Decode>::decode", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["<& as proc_macro::bridge::rpc::DecodeMut>::decode", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::BufRead>::fill_buf", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["<& as std::io::BufRead>::fill_buf", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["<& as std::io::Read>::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<& as std::io::Read>::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Read>::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Read>::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<& as std::io::Read>::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<& as std::io::Read>::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Read>::read_to_string", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["<& as std::io::Read>::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Read>::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Write>::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Write>::write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as core::borrow::Borrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::borrow::BorrowMut>::borrow_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::convert::TryFrom>::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as core::fmt::Pointer>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Element", "ReturnValue.Element", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::IterMut::length]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::head]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::len]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::tail]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIterator>::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIterator>::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIterator>::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIterator>::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIterator>::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::fold", "Argument[self].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::fold", "Argument[self].Reference.Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::next", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::next", "Argument[self].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::nth", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::nth", "Argument[self].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::try_fold", "Argument[self].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::Iterator>::try_fold", "Argument[self].Reference.Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[self].Reference.Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[self].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["<&mut as core::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[self].Reference.Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["<&mut as core::ops::deref::Deref>::deref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as core::ops::deref::DerefMut>::deref_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as proc_macro::bridge::Unmark>::unmark", "Argument[self].Reference.Field[proc_macro::bridge::Marked::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["<&mut as proc_macro::bridge::rpc::DecodeMut>::decode", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as proc_macro::quote::ext::RepAsIteratorExt>::quote_into_iter", "Argument[self].Reference", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<&mut as proc_macro::quote::ext::RepAsIteratorExt>::quote_into_iter", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<&mut as std::io::BufRead>::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as std::io::BufRead>::read_line", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["<&mut as std::io::BufRead>::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<&mut as std::io::BufRead>::read_line", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as std::io::BufRead>::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_to_string", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as std::io::Read>::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as std::io::Write>::write_fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<&mut as std::io::Write>::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<() as alloc::vec::spec_from_elem::SpecFromElem>::from_elem", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["<() as proc_macro::bridge::Mark>::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["<() as proc_macro::bridge::Unmark>::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<(,) as core::convert::From>::from", "Argument[0].Element", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<(,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,) as libm_test::generate::random::RandomInput>::get_cases", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,) as libm_test::test_traits::TupleCall>::call", "Argument[0].ReturnValue", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<(,) as libm_test::test_traits::TupleCall>::call", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["<(,) as libm_test::test_traits::TupleCall>::call", "Argument[self].Field[0]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["<(,,) as core::convert::From>::from", "Argument[0].Element", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<(,,) as core::convert::From>::from", "Argument[0].Element", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["<(,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,) as core::ops::range::IntoBounds>::into_bounds", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<(,,) as core::ops::range::RangeBounds>::end_bound", "Argument[self].Field[1].Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["<(,,) as core::ops::range::RangeBounds>::end_bound", "Argument[self].Field[1].Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["<(,,) as core::ops::range::RangeBounds>::end_bound", "Argument[self].Reference.Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["<(,,) as core::ops::range::RangeBounds>::start_bound", "Argument[self].Field[0].Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["<(,,) as core::ops::range::RangeBounds>::start_bound", "Argument[self].Field[0].Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["<(,,) as core::ops::range::RangeBounds>::start_bound", "Argument[self].Reference.Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["<(,,) as libm_test::test_traits::TupleCall>::call", "Argument[0].ReturnValue", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<(,,) as libm_test::test_traits::TupleCall>::call", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["<(,,) as libm_test::test_traits::TupleCall>::call", "Argument[self].Field[0]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["<(,,) as libm_test::test_traits::TupleCall>::call", "Argument[self].Field[1]", "Argument[0].Parameter[1]", "value", "dfc-generated"] + - ["<(,,,) as core::convert::From>::from", "Argument[0].Element", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<(,,,) as core::convert::From>::from", "Argument[0].Element", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["<(,,,) as core::convert::From>::from", "Argument[0].Element", "ReturnValue.Field[2]", "value", "dfc-generated"] + - ["<(,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,) as libm_test::test_traits::TupleCall>::call", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["<(,,,) as libm_test::test_traits::TupleCall>::call", "Argument[self].Field[0]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["<(,,,) as libm_test::test_traits::TupleCall>::call", "Argument[self].Field[1]", "Argument[0].Parameter[1]", "value", "dfc-generated"] + - ["<(,,,) as libm_test::test_traits::TupleCall>::call", "Argument[self].Field[2]", "Argument[0].Parameter[2]", "value", "dfc-generated"] + - ["<(,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,,,) as core::convert::From>::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<(,,,,,,,,,,,,) as core::fmt::Debug>::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const as core::clone::Clone>::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*const as core::clone::Clone>::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<*const as core::fmt::Debug>::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["<*const as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<*const as core::fmt::Pointer>::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["<*const as core::fmt::Pointer>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::as_ref_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::as_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<*const>::as_uninit_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::cast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::expose_provenance", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::read", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*const>::read_unaligned", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*const>::read_volatile", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*const>::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<*const>::to_raw_parts", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*const>::try_cast_aligned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut as core::clone::Clone>::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*mut as core::clone::Clone>::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<*mut as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<*mut as core::fmt::Pointer>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_mut_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_mut_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<*mut>::as_mut_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_ref_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_uninit_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::as_uninit_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::cast_const", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::expose_provenance", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::read", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*mut>::read_unaligned", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*mut>::read_volatile", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<*mut>::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<*mut>::to_raw_parts", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::try_cast_aligned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<*mut>::write", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["<*mut>::write_unaligned", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["<*mut>::write_volatile", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["<[] as alloc::slice::Concat>::concat", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<[] as alloc::slice::Join>::join", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<[] as alloc::slice::Join>::join", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["<[] as core::convert::AsMut>::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[] as core::convert::AsRef>::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[] as core::fmt::Debug>::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<[] as core::num::dec2flt::common::ByteSlice>::parse_digits", "Argument[self].Element.Element", "ReturnValue", "value", "dfc-generated"] + - ["<[] as core::num::dec2flt::common::ByteSlice>::parse_digits", "Argument[self].Element", "ReturnValue", "value", "dfc-generated"] + - ["<[] as core::num::dec2flt::common::ByteSlice>::parse_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[] as core::slice::SlicePattern>::as_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::align_to", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::align_to_mut", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::align_to_uninit_mut", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::array_windows", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_ascii", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_ascii_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_mut_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::as_simd", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::as_simd_mut", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::assume_init_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::assume_init_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::chunk_by", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkBy::predicate]", "value", "dfc-generated"] + - ["<[]>::chunk_by", "Argument[self]", "ReturnValue.Field[core::slice::iter::ChunkBy::slice]", "value", "dfc-generated"] + - ["<[]>::chunk_by_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkByMut::predicate]", "value", "dfc-generated"] + - ["<[]>::chunk_by_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::ChunkByMut::slice]", "value", "dfc-generated"] + - ["<[]>::chunks", "Argument[0]", "ReturnValue.Field[core::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] + - ["<[]>::chunks", "Argument[self]", "ReturnValue.Field[core::slice::iter::Chunks::v]", "value", "dfc-generated"] + - ["<[]>::chunks_exact", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] + - ["<[]>::chunks_exact_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksExactMut::chunk_size]", "value", "dfc-generated"] + - ["<[]>::chunks_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksMut::chunk_size]", "value", "dfc-generated"] + - ["<[]>::chunks_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::ChunksMut::v]", "value", "dfc-generated"] + - ["<[]>::concat", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::first", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<[]>::first_chunk", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::first_chunk_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::first_mut", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<[]>::last", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<[]>::last_mut", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<[]>::partition_dedup", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::partition_dedup_by", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::partition_dedup_by_key", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["<[]>::rchunks", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] + - ["<[]>::rchunks", "Argument[self]", "ReturnValue.Field[core::slice::iter::RChunks::v]", "value", "dfc-generated"] + - ["<[]>::rchunks_exact", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] + - ["<[]>::rchunks_exact_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksExactMut::chunk_size]", "value", "dfc-generated"] + - ["<[]>::rchunks_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksMut::chunk_size]", "value", "dfc-generated"] + - ["<[]>::rchunks_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::RChunksMut::v]", "value", "dfc-generated"] + - ["<[]>::rsplit", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] + - ["<[]>::rsplit", "Argument[self]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::v]", "value", "dfc-generated"] + - ["<[]>::rsplit_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] + - ["<[]>::rsplit_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] + - ["<[]>::rsplit_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::rsplitn", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["<[]>::rsplitn_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["<[]>::select_nth_unstable_by", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["<[]>::select_nth_unstable_by_key", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["<[]>::sort_by", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<[]>::sort_by_key", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<[]>::sort_unstable_by", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<[]>::sort_unstable_by_key", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["<[]>::split", "Argument[0]", "ReturnValue.Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] + - ["<[]>::split", "Argument[self]", "ReturnValue.Field[core::slice::iter::Split::v]", "value", "dfc-generated"] + - ["<[]>::split_first", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["<[]>::split_first", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["<[]>::split_first_mut", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["<[]>::split_first_mut", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["<[]>::split_inclusive", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusive::pred]", "value", "dfc-generated"] + - ["<[]>::split_inclusive", "Argument[self]", "ReturnValue.Field[core::slice::iter::SplitInclusive::v]", "value", "dfc-generated"] + - ["<[]>::split_inclusive_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::pred]", "value", "dfc-generated"] + - ["<[]>::split_inclusive_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::v]", "value", "dfc-generated"] + - ["<[]>::split_last", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["<[]>::split_last", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["<[]>::split_last_mut", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["<[]>::split_last_mut", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["<[]>::split_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] + - ["<[]>::split_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] + - ["<[]>::split_off_first", "Argument[self].Reference.Element", "Argument[self].Reference", "value", "dfc-generated"] + - ["<[]>::split_off_first", "Argument[self].Reference.Element", "Argument[self]", "value", "dfc-generated"] + - ["<[]>::split_off_first", "Argument[self].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<[]>::split_off_last", "Argument[self].Reference.Element", "Argument[self].Reference", "value", "dfc-generated"] + - ["<[]>::split_off_last", "Argument[self].Reference.Element", "Argument[self]", "value", "dfc-generated"] + - ["<[]>::split_off_last", "Argument[self].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["<[]>::split_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::splitn", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["<[]>::splitn_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["<[]>::trim_ascii", "Argument[self].Element.Element", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii", "Argument[self].Element", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii_end", "Argument[self].Element.Element", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii_end", "Argument[self].Element", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii_end", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii_start", "Argument[self].Element.Element", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii_start", "Argument[self].Element", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_ascii_start", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_prefix", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::trim_suffix", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["<[]>::utf8_chunks", "Argument[self]", "ReturnValue.Field[core::str::lossy::Utf8Chunks::source]", "value", "dfc-generated"] + - ["<[]>::windows", "Argument[self]", "ReturnValue.Field[core::slice::iter::Windows::v]", "value", "dfc-generated"] + - ["<[]>::write_clone_of_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::write_copy_of_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::write_filled", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["<[]>::write_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::borrow", "Argument[self].Field[alloc::borrow::Cow::Borrowed(0)].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference.Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Reference", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::add", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::add", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] + - ["::add", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::add_assign", "Argument[0]", "Argument[self].Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["::add_assign", "Argument[0]", "Argument[self].Reference.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["::add_assign", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["::add_assign", "Argument[0]", "Argument[self]", "value", "dfc-generated"] + - ["::deref", "Argument[self].Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue", "value", "dfc-generated"] - ["::deref", "Argument[self].Reference.Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_owned", "Argument[self].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::to_mut", "Argument[self].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::to_mut", "Argument[self].Reference.Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["::clone_from", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[proc_macro::bridge::rpc::PanicMessage::StaticStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[proc_macro::bridge::rpc::PanicMessage::String(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::last", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::last", "Argument[self].Field[alloc::boxed::Box(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::borrow", "Argument[self].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow", "Argument[self].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut", "Argument[self].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue.Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)].Field[alloc::string::String::vec]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[proc_macro::bridge::rpc::PanicMessage::StaticStr(0)]", "ReturnValue.Field[alloc::boxed::Box(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[proc_macro::bridge::rpc::PanicMessage::String(0)]", "ReturnValue.Field[alloc::boxed::Box(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::last", "Argument[self].Field[alloc::boxed::Box(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self].Field[alloc::boxed::Box(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::nth", "Argument[self].Field[alloc::boxed::Box(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::deref", "Argument[self].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_line", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::allocator", "Argument[0].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::allocator", "Argument[0].Field[alloc::boxed::Box(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut_ptr", "Argument[0].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ptr", "Argument[0].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[0].Reference.Field[alloc::boxed::Box(1)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut_ptr", "Argument[0].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut_ptr", "Argument[0].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ptr", "Argument[0].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ptr", "Argument[0].Reference.Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::assume_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::downcast_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_non_null_in", "Argument[1]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - ["::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["::into_inner", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_boxed_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[0].Field[alloc::boxed::Box(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_non_null", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::into_pin", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::into_pin", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::into_raw", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_raw_with_allocator", "Argument[0]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["::into_non_null_with_allocator", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_pin", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::into_raw", "Argument[0].Field[alloc::boxed::Box(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::into_raw_with_allocator", "Argument[0].Field[alloc::boxed::Box(0)]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - ["::into_unique", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::leak", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::leak", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new_uninit_in", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - ["::new_zeroed_in", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - ["::try_new_in", "Argument[1]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - ["::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - ["::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[alloc::bstr::ByteString(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index_mut", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index_mut", "Argument[self].Field[alloc::bstr::ByteString(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::borrow", "Argument[self].Reference.Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Reference.Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut", "Argument[self].Reference.Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes", "Argument[self].Reference.Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut_bytestr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[alloc::collections::TryReserveError::kind]", "value", "dfc-generated"] - - ["::kind", "Argument[self].Field[alloc::collections::TryReserveError::kind].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::kind", "Argument[self].Field[alloc::collections::TryReserveError::kind]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::binary_heap::BinaryHeap::data].Reference", "ReturnValue.Field[alloc::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::binary_heap::BinaryHeap::data]", "ReturnValue.Field[alloc::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::kind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[alloc::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] - - ["::drain", "Argument[self].Field[alloc::collections::binary_heap::BinaryHeap::data].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::collections::binary_heap::Drain::iter].Field[alloc::vec::drain::Drain::vec]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::drain_sorted", "Argument[self]", "ReturnValue.Field[alloc::collections::binary_heap::DrainSorted::inner]", "value", "dfc-generated"] - ["::into_iter_sorted", "Argument[self]", "ReturnValue.Field[alloc::collections::binary_heap::IntoIterSorted::inner]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::binary_heap::BinaryHeap::data].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::peek_mut", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::collections::binary_heap::PeekMut::heap]", "value", "dfc-generated"] - - ["::as_into_iter", "Argument[self].Field[alloc::collections::binary_heap::IntoIter::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::pop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_into_iter", "Argument[self].Reference.Field[alloc::collections::binary_heap::IntoIter::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_inner", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::allocator", "Argument[self].Field[alloc::collections::binary_heap::IntoIter::iter].Field[alloc::vec::into_iter::IntoIter::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self].Field[alloc::collections::binary_heap::Iter::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[1].Field[alloc::collections::btree::borrow::DormantMutRef::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pop", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::dedup_sorted_iter::DedupSortedIter::iter].Field[core::iter::adapters::peekable::Peekable::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bulk_build_from_sorted_iter", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - ["::entry", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::map::entry::Entry::Vacant(0)].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "value", "dfc-generated"] - - ["::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::map::ExtractIf::pred]", "value", "dfc-generated"] - - ["::extract_if", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Field[alloc::collections::btree::map::ExtractIf::alloc]", "value", "dfc-generated"] - - ["::extract_if_inner", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::first_key_value", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::root].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::root].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_key_value", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::root].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::root].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::map::ExtractIf::inner].Field[alloc::collections::btree::map::ExtractIfInner::range]", "value", "dfc-generated"] + - ["::extract_if", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::map::ExtractIf::pred]", "value", "dfc-generated"] + - ["::extract_if_inner", "Argument[0]", "ReturnValue.Field[0].Field[alloc::collections::btree::map::ExtractIfInner::range]", "value", "dfc-generated"] + - ["::first_key_value", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::root]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::root]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_key_value", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::root]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::root]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::get_or_insert_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["::iter", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["::iter_mut", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::IterMut::length]", "value", "dfc-generated"] - - ["::keys", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Keys::inner].Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["::last_key_value", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::root].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] + - ["::iter", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["::iter_mut", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::IterMut::length]", "value", "dfc-generated"] + - ["::keys", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Keys::inner].Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["::last_key_value", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::root]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] - ["::lower_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::lower_bound_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new_in", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - - ["::split_off", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc]", "value", "dfc-generated"] - - ["::split_off", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc]", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc]", "value", "dfc-generated"] + - ["::split_off", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_insert", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::collections::btree::map::entry::OccupiedError::value]", "value", "dfc-generated"] - ["::upper_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::upper_bound_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::values", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Values::inner].Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["::values_mut", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::ValuesMut::inner].Field[alloc::collections::btree::map::IterMut::length]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[alloc::collections::btree::map::Cursor::current]", "ReturnValue.Field[alloc::collections::btree::map::Cursor::current]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[alloc::collections::btree::map::Cursor::root]", "ReturnValue.Field[alloc::collections::btree::map::Cursor::root]", "value", "dfc-generated"] + - ["::values", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Values::inner].Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["::values_mut", "Argument[self].Reference.Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::ValuesMut::inner].Field[alloc::collections::btree::map::IterMut::length]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_mutable_key", "Argument[self].Field[alloc::collections::btree::map::CursorMut::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::peek_next", "Argument[self].Field[alloc::collections::btree::map::CursorMutKey::current].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::peek_prev", "Argument[self].Field[alloc::collections::btree::map::CursorMutKey::current].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::peek", "Argument[self].Field[alloc::collections::btree::map::ExtractIfInner::cur_leaf_edge].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::ExtractIfInner::length].Reference", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::iter", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::IntoKeys::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoKeys::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoKeys::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::IntoValues::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoValues::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoValues::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::iter", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["::peek_next", "Argument[self].Reference.Field[alloc::collections::btree::map::CursorMutKey::current]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::peek_prev", "Argument[self].Reference.Field[alloc::collections::btree::map::CursorMutKey::current]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self].Reference.Field[alloc::collections::btree::map::ExtractIfInner::cur_leaf_edge]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::btree::map::ExtractIfInner::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Reference.Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::iter", "Argument[self].Reference.Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Reference.Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Reference.Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::iter", "Argument[self].Reference.Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::Keys::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::Keys::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::Keys::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::Values::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::Values::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::Values::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::map::ValuesMut::inner].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::ValuesMut::inner].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::map::ValuesMut::inner].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::and_modify", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Occupied(0)]", "ReturnValue.Field[alloc::collections::btree::map::entry::Entry::Occupied(0)]", "value", "dfc-generated"] - ["::and_modify", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Vacant(0)]", "ReturnValue.Field[alloc::collections::btree::map::entry::Entry::Vacant(0)]", "value", "dfc-generated"] - ["::insert_entry", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::insert_entry", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Vacant(0)].Field[alloc::collections::btree::map::entry::VacantEntry::alloc]", "ReturnValue.Field[alloc::collections::btree::map::entry::OccupiedEntry::alloc]", "value", "dfc-generated"] + - ["::insert_entry", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Vacant(0)].Field[alloc::collections::btree::map::entry::VacantEntry::dormant_map]", "ReturnValue.Field[alloc::collections::btree::map::entry::OccupiedEntry::dormant_map]", "value", "dfc-generated"] + - ["::key", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Vacant(0)].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::or_insert_with_key", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Vacant(0)].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remove_entry", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remove_kv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::insert_entry", "Argument[self].Field[alloc::collections::btree::map::entry::VacantEntry::alloc]", "ReturnValue.Field[alloc::collections::btree::map::entry::OccupiedEntry::alloc]", "value", "dfc-generated"] - ["::insert_entry", "Argument[self].Field[alloc::collections::btree::map::entry::VacantEntry::dormant_map]", "ReturnValue.Field[alloc::collections::btree::map::entry::OccupiedEntry::dormant_map]", "value", "dfc-generated"] - ["::into_key", "Argument[self].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue", "value", "dfc-generated"] - - ["::key", "Argument[self].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::key", "Argument[self].Reference.Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::collections::btree::merge_iter::MergeIterInner::a]", "ReturnValue.Field[alloc::collections::btree::merge_iter::MergeIterInner::a]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::collections::btree::merge_iter::MergeIterInner::b]", "ReturnValue.Field[alloc::collections::btree::merge_iter::MergeIterInner::b]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::merge_iter::MergeIterInner::a]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::merge_iter::MergeIterInner::b]", "value", "dfc-generated"] - - ["::nexts", "Argument[self].Field[alloc::collections::btree::merge_iter::MergeIterInner::a].Element", "ReturnValue.Field[0].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nexts", "Argument[self].Field[alloc::collections::btree::merge_iter::MergeIterInner::b].Element", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::navigate::LazyLeafHandle::Edge(0)].Reference", "ReturnValue.Field[alloc::collections::btree::navigate::LazyLeafHandle::Edge(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::navigate::LazyLeafHandle::Root(0)].Reference", "ReturnValue.Field[alloc::collections::btree::navigate::LazyLeafHandle::Root(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nexts", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::nexts", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deallocating_next_back_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deallocating_next_back_unchecked", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::deallocating_next_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deallocating_next_unchecked", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::into_left_child", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue", "value", "dfc-generated"] - ["::into_right_child", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::right_child]", "ReturnValue", "value", "dfc-generated"] - ["::merge_tracking_child", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue", "value", "dfc-generated"] @@ -184,6 +590,7 @@ extensions: - ["::steal_right", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::steal_right", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::awaken", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::awaken", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - ["::awaken", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] @@ -192,15 +599,14 @@ extensions: - ["::cast_to_leaf_unchecked", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["::consider_for_balancing", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::BalancingContext::parent]", "value", "dfc-generated"] - ["::descend", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::dormant", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["::dormant", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::dormant", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::dormant", "Argument[self].Reference.Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::force", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::ForceResult::Internal(0)].Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::force", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::ForceResult::Leaf(0)].Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::forget_node_type", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::forget_node_type", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - ["::forget_node_type", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::idx", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue", "value", "dfc-generated"] + - ["::idx", "Argument[self].Reference.Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue", "value", "dfc-generated"] + - ["::insert_recursing", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_node", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue", "value", "dfc-generated"] - ["::left_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::left_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] @@ -210,14 +616,18 @@ extensions: - ["::new_edge", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::new_kv", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::new_kv", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["::reborrow", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["::reborrow", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::reborrow", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::reborrow_mut", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["::reborrow_mut", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::reborrow_mut", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::next_back_kv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["::next_back_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::next_back_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::next_kv", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["::next_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::next_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::reborrow", "Argument[self].Reference.Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["::reborrow_mut", "Argument[self].Reference.Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::remove", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[1].Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::remove", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[1].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["::remove_kv_tracking", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[1].Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::right_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::right_kv", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["::right_kv", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] @@ -225,170 +635,219 @@ extensions: - ["::split", "Argument[self].Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::SplitResult::right].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - ["::split", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[alloc::collections::btree::node::SplitResult::left]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::awaken", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - ["::awaken", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::borrow_valmut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::borrow_valmut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::borrow_valmut", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::borrow_valmut", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["::cast_to_leaf_unchecked", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - ["::cast_to_leaf_unchecked", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::dormant", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::dormant", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::dormant", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::dormant", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["::find_lower_bound_edge", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::find_lower_bound_edge", "Argument[self]", "ReturnValue.Field[0].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::find_upper_bound_edge", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::find_upper_bound_edge", "Argument[self]", "ReturnValue.Field[0].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::first_edge", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::first_kv", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["::first_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::first_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["::force", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::forget_type", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - ["::forget_type", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::height", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue", "value", "dfc-generated"] + - ["::height", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue", "value", "dfc-generated"] - ["::into_dying", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - ["::into_dying", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["::last_edge", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::last_kv", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["::push_internal_level", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::push_internal_level", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::push_with_handle", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::push_with_handle", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["::reborrow", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["::reborrow", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::last_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::last_leaf_edge", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::lower_bound", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::lower_bound", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::push_internal_level", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::push_internal_level", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::push_with_handle", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::push_with_handle", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["::reborrow", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::reborrow", "Argument[self].Reference.Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["::search_node", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::search::SearchResult::Found(0)].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::search_node", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::search::SearchResult::GoDown(0)].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["::search_tree", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::search::SearchResult::Found(0)].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["::search_tree_for_bifurcation", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] + - ["::upper_bound", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["::upper_bound", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node].Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["::visit_nodes_in_order", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::forget_node_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_range", "Argument[0].Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[alloc::collections::btree::search::SearchBound::Excluded(0)]", "value", "dfc-generated"] - ["::from_range", "Argument[0].Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[alloc::collections::btree::search::SearchBound::Included(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map].Reference", "ReturnValue.Field[alloc::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map]", "ReturnValue.Field[alloc::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Field[alloc::collections::btree::set::BTreeSet::map]", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map].Reference", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Field[alloc::collections::btree::set::BTreeSet::map]", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] + - ["::clone_from", "Argument[0].Reference.Field[alloc::collections::btree::set::BTreeSet::map]", "Argument[self].Reference.Field[alloc::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::difference", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::set::Difference::inner].Field[alloc::collections::btree::set::DifferenceInner::Search::other_set]", "value", "dfc-generated"] - - ["::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::set::ExtractIf::pred]", "value", "dfc-generated"] + - ["::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::set::ExtractIf::inner].Field[alloc::collections::btree::map::ExtractIfInner::range]", "value", "dfc-generated"] + - ["::extract_if", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::set::ExtractIf::pred]", "value", "dfc-generated"] + - ["::first", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_or_insert_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::intersection", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::set::Intersection::inner].Field[alloc::collections::btree::set::IntersectionInner::Search::large_set]", "value", "dfc-generated"] - ["::intersection", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::set::Intersection::inner].Field[alloc::collections::btree::set::IntersectionInner::Search::large_set]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] - - ["::split_off", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map].Field[alloc::collections::btree::map::BTreeMap::alloc]", "ReturnValue.Field[alloc::collections::btree::set::BTreeSet::map].Field[alloc::collections::btree::map::BTreeMap::alloc]", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Cursor::inner].Field[alloc::collections::btree::map::Cursor::current]", "ReturnValue.Field[alloc::collections::btree::set::Cursor::inner].Field[alloc::collections::btree::map::Cursor::current]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Cursor::inner].Field[alloc::collections::btree::map::Cursor::root]", "ReturnValue.Field[alloc::collections::btree::set::Cursor::inner].Field[alloc::collections::btree::map::Cursor::root]", "value", "dfc-generated"] + - ["::peek_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_mutable_key", "Argument[self].Field[alloc::collections::btree::set::CursorMut::inner].Field[alloc::collections::btree::map::CursorMut::inner]", "ReturnValue.Field[alloc::collections::btree::set::CursorMutKey::inner]", "value", "dfc-generated"] + - ["::peek_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::min", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::len", "Argument[self].Field[alloc::collections::btree::set::IntoIter::iter].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::set::IntoIter::iter].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::btree::set::IntoIter::iter].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Iter::iter].Field[alloc::collections::btree::map::Keys::inner]", "ReturnValue.Field[alloc::collections::btree::set::Iter::iter].Field[alloc::collections::btree::map::Keys::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Iter::iter].Reference", "ReturnValue.Field[alloc::collections::btree::set::Iter::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Iter::iter]", "ReturnValue.Field[alloc::collections::btree::set::Iter::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Range::iter].Field[alloc::collections::btree::map::Range::inner]", "ReturnValue.Field[alloc::collections::btree::set::Range::iter].Field[alloc::collections::btree::map::Range::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Range::iter].Reference", "ReturnValue.Field[alloc::collections::btree::set::Range::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::collections::btree::set::Range::iter]", "ReturnValue.Field[alloc::collections::btree::set::Range::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::min", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::min", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::insert", "Argument[self].Field[alloc::collections::btree::set::entry::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[alloc::collections::btree::set::entry::VacantEntry::inner].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_value", "Argument[self].Field[alloc::collections::btree::set::entry::VacantEntry::inner].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::current]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::index]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::index]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::list]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["::as_list", "Argument[self].Field[alloc::collections::linked_list::Cursor::list]", "ReturnValue", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[alloc::collections::linked_list::Cursor::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[alloc::collections::linked_list::Cursor::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[alloc::collections::linked_list::Cursor::index]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::move_next", "Argument[self].Field[alloc::collections::linked_list::Cursor::list].Field[alloc::collections::linked_list::LinkedList::head]", "Argument[self].Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["::move_prev", "Argument[self].Field[alloc::collections::linked_list::Cursor::list].Field[alloc::collections::linked_list::LinkedList::len]", "Argument[self].Field[alloc::collections::linked_list::Cursor::index]", "value", "dfc-generated"] - - ["::move_prev", "Argument[self].Field[alloc::collections::linked_list::Cursor::list].Field[alloc::collections::linked_list::LinkedList::tail]", "Argument[self].Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["::as_cursor", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["::as_cursor", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::index]", "value", "dfc-generated"] - - ["::as_cursor", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["::as_list", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list]", "ReturnValue", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::insert_after", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::len]", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "value", "dfc-generated"] - - ["::move_next", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::head]", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - - ["::move_prev", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::len]", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "value", "dfc-generated"] - - ["::move_prev", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::tail]", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - - ["::remove_current", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::remove_current", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::remove_current_as_list", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::remove_current_as_list", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::splice_after", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::len]", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "value", "dfc-generated"] - - ["::split_after", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::alloc]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["::split_after", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::tail]", "value", "dfc-generated"] - - ["::split_before", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] - - ["::split_before", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::alloc]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["::split_before", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::head]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::linked_list::IntoIter::list].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::linked_list::IntoIter::list].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::linked_list::Iter::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::linked_list::Iter::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::linked_list::IterMut::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::linked_list::IterMut::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Field[alloc::collections::linked_list::LinkedList::len]", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] - - ["::cursor_back", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_list", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::list]", "ReturnValue", "value", "dfc-generated"] + - ["::index", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::index]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_cursor", "Argument[self].Reference.Field[alloc::collections::linked_list::CursorMut::current]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] + - ["::as_cursor", "Argument[self].Reference.Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::index]", "value", "dfc-generated"] + - ["::as_cursor", "Argument[self].Reference.Field[alloc::collections::linked_list::CursorMut::list]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] + - ["::as_list", "Argument[self].Reference.Field[alloc::collections::linked_list::CursorMut::list]", "ReturnValue", "value", "dfc-generated"] + - ["::index", "Argument[self].Reference.Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::remove_current", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remove_current_as_list", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::split_after", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::split_before", "Argument[self].Reference.Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[alloc::collections::linked_list::IntoIter::list].Field[alloc::collections::linked_list::LinkedList::alloc]", "ReturnValue.Field[alloc::collections::linked_list::IntoIter::list].Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::linked_list::Iter::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::linked_list::Iter::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::linked_list::IterMut::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::linked_list::IterMut::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::alloc]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] + - ["::clone_from", "Argument[0].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::IntoIter::list]", "value", "dfc-generated"] + - ["::cursor_back", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - ["::cursor_back", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["::cursor_back_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] + - ["::cursor_back_mut", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - ["::cursor_back_mut", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::list]", "value", "dfc-generated"] - - ["::cursor_front", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] + - ["::cursor_front", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - ["::cursor_front", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["::cursor_front_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] + - ["::cursor_front_mut", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - ["::cursor_front_mut", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::list]", "value", "dfc-generated"] - ["::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::pred]", "value", "dfc-generated"] - - ["::extract_if", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::it]", "value", "dfc-generated"] - - ["::extract_if", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::old_len]", "value", "dfc-generated"] + - ["::extract_if", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::it]", "value", "dfc-generated"] + - ["::extract_if", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::old_len]", "value", "dfc-generated"] - ["::extract_if", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::list]", "value", "dfc-generated"] - - ["::iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Iter::head]", "value", "dfc-generated"] - - ["::iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::Iter::len]", "value", "dfc-generated"] - - ["::iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Iter::tail]", "value", "dfc-generated"] - - ["::iter_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::head]", "value", "dfc-generated"] - - ["::iter_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::len]", "value", "dfc-generated"] - - ["::iter_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::tail]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue", "value", "dfc-generated"] + - ["::iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Iter::head]", "value", "dfc-generated"] + - ["::iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::Iter::len]", "value", "dfc-generated"] + - ["::iter", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Iter::tail]", "value", "dfc-generated"] + - ["::iter_mut", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::head]", "value", "dfc-generated"] + - ["::iter_mut", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::len]", "value", "dfc-generated"] + - ["::iter_mut", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::tail]", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue", "value", "dfc-generated"] - ["::new_in", "Argument[0]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["::split_off", "Argument[0]", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] - - ["::split_off", "Argument[self].Field[alloc::collections::linked_list::LinkedList::alloc].Reference", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["::split_off", "Argument[self].Field[alloc::collections::linked_list::LinkedList::alloc]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["::split_off", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::tail]", "value", "dfc-generated"] + - ["::remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::split_off", "Argument[0]", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] + - ["::split_off", "Argument[self].Reference.Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::tail]", "value", "dfc-generated"] - ["::spec_from_iter", "Argument[0].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::read_to_end", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::read_to_string", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue.Field[alloc::collections::vec_deque::into_iter::IntoIter::inner]", "value", "dfc-generated"] + - ["::read_to_end", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::read_to_string", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::copy_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::drain", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::deque]", "value", "dfc-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_contiguous_raw_parts_in", "Argument[1].Field[core::ops::range::Range::start]", "ReturnValue.Field[alloc::collections::vec_deque::VecDeque::head]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] - - ["::resize", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["::resize_with", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["::retain", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["::retain_mut", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["::shrink_to", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::split_off", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["::truncate", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::deque]", "value", "dfc-generated"] + - ["::insert_mut", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] + - ["::push_back_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::push_front_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::resize", "Argument[0]", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["::resize_with", "Argument[0]", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["::split_off", "Argument[0]", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["::truncate", "Argument[0]", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["::truncate_front", "Argument[0]", "Argument[self].Reference.Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[alloc::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::idx]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::drain_len]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::remaining]", "value", "dfc-generated"] - - ["::advance_back_by", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::rfold", "Argument[0].Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[0].Field[core::result::Result::Ok(0)].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::count", "Argument[self].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fold", "Argument[0].Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0].Field[core::result::Result::Ok(0)].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_vecdeque", "Argument[self].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[alloc::collections::vec_deque::into_iter::IntoIter::inner]", "value", "dfc-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[alloc::collections::vec_deque::iter::Iter::i1].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::try_fold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::try_fold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[alloc::collections::vec_deque::iter::Iter::i1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[alloc::collections::vec_deque::iter::Iter::i2]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] @@ -398,392 +857,584 @@ extensions: - ["::new", "Argument[0]", "ReturnValue.Field[alloc::collections::vec_deque::iter_mut::IterMut::i1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[alloc::collections::vec_deque::iter_mut::IterMut::i2]", "value", "dfc-generated"] - ["::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[alloc::ffi::c_str::CString::inner]", "ReturnValue.Field[alloc::ffi::c_str::CString::inner]", "value", "dfc-generated"] + - ["::cmp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_bytes_with_nul", "Argument[self].Field[alloc::ffi::c_str::CString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_c_str", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_c_str", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes_with_nul", "Argument[self].Reference.Field[alloc::ffi::c_str::CString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_vec_with_nul", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::ffi::c_str::FromVecWithNulError::bytes]", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[alloc::ffi::c_str::FromVecWithNulError::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[alloc::ffi::c_str::FromBytesWithNulErrorKind::InteriorNul(0)]", "ReturnValue.Field[alloc::ffi::c_str::FromBytesWithNulErrorKind::InteriorNul(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[alloc::ffi::c_str::FromBytesWithNulErrorKind::InteriorNul(0)]", "ReturnValue.Field[alloc::ffi::c_str::FromBytesWithNulErrorKind::InteriorNul(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_bytes", "Argument[self].Field[alloc::ffi::c_str::FromVecWithNulError::bytes]", "ReturnValue", "value", "dfc-generated"] - - ["::source", "Argument[self].Field[alloc::ffi::c_str::IntoStringError::error]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::source", "Argument[self].Reference.Field[alloc::ffi::c_str::IntoStringError::error]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_cstring", "Argument[self].Field[alloc::ffi::c_str::IntoStringError::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::utf8_error", "Argument[self].Field[alloc::ffi::c_str::IntoStringError::error]", "ReturnValue", "value", "dfc-generated"] - - ["::into_vec", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["::utf8_error", "Argument[self].Reference.Field[alloc::ffi::c_str::IntoStringError::error]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[alloc::ffi::c_str::NulError(0)]", "ReturnValue.Field[alloc::ffi::c_str::NulError(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[alloc::ffi::c_str::NulError(0)]", "ReturnValue.Field[alloc::ffi::c_str::NulError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_vec", "Argument[self].Field[alloc::ffi::c_str::NulError(1)]", "ReturnValue", "value", "dfc-generated"] - - ["::nul_position", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::nul_position", "Argument[self].Field[alloc::ffi::c_str::NulError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::allocator", "Argument[self].Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nul_position", "Argument[self].Reference.Field[alloc::ffi::c_str::NulError(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_nonnull_in", "Argument[2]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - ["::from_raw_parts_in", "Argument[2]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - ["::new_in", "Argument[0]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - ["::with_capacity_in", "Argument[1]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - ["::with_capacity_zeroed_in", "Argument[1]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::allocator", "Argument[0].Field[alloc::rc::Rc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[0].Reference.Field[alloc::rc::Rc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::rc::Rc::alloc].Reference", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] - - ["::into_inner", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::downgrade", "Argument[0].Reference.Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] + - ["::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::into_inner", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new_in", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::new_uninit_in", "Argument[0]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - ["::new_uninit_slice_in", "Argument[1]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - ["::new_zeroed_in", "Argument[0]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - ["::new_zeroed_slice_in", "Argument[1]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::pin_in", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_new_in", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - ["::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - ["::try_unwrap", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::try_unwrap", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["::try_unwrap", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::unwrap_or_clone", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::unwrap_or_clone", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::strong_ref", "Argument[self].Field[alloc::rc::RcInner::strong]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::weak_ref", "Argument[self].Field[alloc::rc::RcInner::weak]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::rc::UniqueRc::alloc].Reference", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::rc::UniqueRc::alloc]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::rc::UniqueRc::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::rc::Weak::alloc].Reference", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::rc::Weak::alloc]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::rc::Weak::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] - - ["::allocator", "Argument[self].Field[alloc::rc::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::unwrap_or_clone", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::strong_ref", "Argument[self].Reference.Field[alloc::rc::RcInner::strong]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::weak_ref", "Argument[self].Reference.Field[alloc::rc::RcInner::weak]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade", "Argument[0].Reference.Field[alloc::rc::UniqueRc::alloc]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] + - ["::downgrade", "Argument[0].Reference.Field[alloc::rc::UniqueRc::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::rc::Weak::alloc]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::rc::Weak::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] + - ["::allocator", "Argument[self].Reference.Field[alloc::rc::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - ["::new_in", "Argument[0]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["::upgrade", "Argument[self].Field[alloc::rc::Weak::ptr]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] - - ["::strong_ref", "Argument[self].Field[alloc::rc::WeakInner::strong]", "ReturnValue", "value", "dfc-generated"] - - ["::weak_ref", "Argument[self].Field[alloc::rc::WeakInner::weak]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_bytes", "Argument[self].Field[alloc::string::FromUtf8Error::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::upgrade", "Argument[self].Reference.Field[alloc::rc::Weak::ptr]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::strong_ref", "Argument[self].Reference.Field[alloc::rc::WeakInner::strong]", "ReturnValue", "value", "dfc-generated"] + - ["::weak_ref", "Argument[self].Reference.Field[alloc::rc::WeakInner::weak]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_bytes", "Argument[self].Field[alloc::string::FromUtf8Error::bytes]", "ReturnValue", "value", "dfc-generated"] - - ["::utf8_error", "Argument[self].Field[alloc::string::FromUtf8Error::error]", "ReturnValue", "value", "dfc-generated"] + - ["::utf8_error", "Argument[self].Reference.Field[alloc::string::FromUtf8Error::error]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_string", "Argument[self].Field[alloc::string::IntoChars::bytes].Element", "ReturnValue.Field[alloc::string::String::vec].Element", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::string::String::vec].Reference", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] + - ["::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::borrow_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[alloc::string::String::vec].Reference", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_from", "Argument[0].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::string::FromUtf8Error::bytes]", "value", "dfc-generated"] + - ["::try_from", "Argument[0].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] + - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::string::FromUtf8Error::bytes]", "value", "dfc-generated"] + - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::deref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_mut_vec", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut_vec", "Argument[self].Reference.Field[alloc::string::String::vec]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_raw_parts", "Argument[1]", "ReturnValue.Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - ["::from_utf8", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::string::FromUtf8Error::bytes]", "value", "dfc-generated"] - ["::from_utf8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["::from_utf8_lossy_owned", "Argument[0]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["::from_utf8_unchecked", "Argument[0]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["::into_bytes", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::remove", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::split_off", "Argument[0]", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::truncate", "Argument[0]", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::into_raw_parts", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::split_off", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::truncate", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::allocator", "Argument[0].Field[alloc::sync::Arc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[0].Reference.Field[alloc::sync::Arc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::sync::Arc::alloc].Reference", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] + - ["::downgrade", "Argument[0].Reference.Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] + - ["::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - ["::new_uninit_in", "Argument[0]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - ["::new_uninit_slice_in", "Argument[1]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - ["::new_zeroed_in", "Argument[0]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - ["::new_zeroed_slice_in", "Argument[1]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::try_new_in", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - ["::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::try_pin_in", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_unwrap", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::sync::Weak::alloc].Reference", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::sync::Weak::alloc]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::sync::Weak::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] - - ["::allocator", "Argument[self].Field[alloc::sync::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::unwrap_or_clone", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade", "Argument[0].Reference.Field[alloc::sync::UniqueArc::alloc]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] + - ["::downgrade", "Argument[0].Reference.Field[alloc::sync::UniqueArc::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::sync::Weak::alloc]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[alloc::sync::Weak::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] + - ["::allocator", "Argument[self].Reference.Field[alloc::sync::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - ["::new_in", "Argument[0]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["::upgrade", "Argument[self].Field[alloc::sync::Weak::ptr]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::upgrade", "Argument[self].Reference.Field[alloc::sync::Weak::ptr]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::borrow_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::bstr::ByteString(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::collections::binary_heap::BinaryHeap::data]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_spans", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::buffer_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::copy_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::drain", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::vec::drain::Drain::vec]", "value", "dfc-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::extract_if", "Argument[1]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::pred]", "value", "dfc-generated"] - - ["::extract_if", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::old_len]", "value", "dfc-generated"] + - ["::extract_if", "Argument[self].Reference.Field[alloc::vec::Vec::len]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::old_len]", "value", "dfc-generated"] - ["::extract_if", "Argument[self]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::vec]", "value", "dfc-generated"] + - ["::from_parts", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - ["::from_parts_in", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::from_raw_parts", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - ["::from_raw_parts_in", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] + - ["::insert_mut", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::into_chunks", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_parts", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::into_parts_with_alloc", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::into_raw_parts", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::into_raw_parts_with_alloc", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] + - ["::peek_mut", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::vec::peek_mut::PeekMut::vec]", "value", "dfc-generated"] + - ["::push_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::push_mut_within_capacity", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::push_within_capacity", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::resize", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::resize_with", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::set_len", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::splice", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::vec::splice::Splice::drain].Field[alloc::vec::drain::Drain::vec]", "value", "dfc-generated"] - - ["::split_off", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::truncate", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::resize", "Argument[0]", "Argument[self].Reference.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::resize_with", "Argument[0]", "Argument[self].Reference.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::set_len", "Argument[0]", "Argument[self].Reference.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::split_at_spare_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::split_off", "Argument[0]", "Argument[self].Reference.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::truncate", "Argument[0]", "Argument[self].Reference.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - ["::try_with_capacity_in", "Argument[1]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::old_len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::allocator", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0].Reference.Field[alloc::vec::Vec::len]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::old_len]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::vec]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::pred]", "value", "dfc-generated"] - ["::as_into_iter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_inner", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[alloc::vec::into_iter::IntoIter::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::allocator", "Argument[self].Field[alloc::vec::into_iter::IntoIter::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::forget_allocation_drop_remaining", "Argument[self].Field[alloc::vec::into_iter::IntoIter::buf]", "Argument[self].Field[alloc::vec::into_iter::IntoIter::ptr]", "value", "dfc-generated"] - - ["::drop", "Argument[self].Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "Argument[self].Field[alloc::vec::set_len_on_drop::SetLenOnDrop::len].Reference", "value", "dfc-generated"] - - ["::current_len", "Argument[self].Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self].Field[alloc::vec::into_iter::IntoIter::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::allocator", "Argument[self].Reference.Field[alloc::vec::into_iter::IntoIter::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::forget_allocation_drop_remaining", "Argument[self].Reference.Field[alloc::vec::into_iter::IntoIter::buf]", "Argument[self].Reference.Field[alloc::vec::into_iter::IntoIter::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::vec::peek_mut::PeekMut::vec]", "value", "dfc-generated"] + - ["::drop", "Argument[self].Reference.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "Argument[self].Reference.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::len]", "value", "dfc-generated"] + - ["::current_len", "Argument[self].Reference.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0].Reference", "ReturnValue.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::len]", "value", "dfc-generated"] - - ["::sp", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::Frame::inner].Field[backtrace::backtrace::Frame::inner].Field[std::backtrace_rs::backtrace::Frame::inner].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[allocbenches::vec::Droppable(0)]", "ReturnValue.Field[allocbenches::vec::Droppable(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[allocbenches::vec::Droppable(0)]", "ReturnValue.Field[allocbenches::vec::Droppable(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::sp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::ip].Field[backtrace::backtrace::libunwind::Frame::Cloned::ip].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::ip]", "ReturnValue", "value", "dfc-generated"] + - ["::ip", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::ip].Field[backtrace::backtrace::libunwind::Frame::Cloned::ip].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::ip]", "ReturnValue", "value", "dfc-generated"] + - ["::sp", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - ["::sp", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "value", "dfc-generated"] - - ["::into", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "ReturnValue", "value", "dfc-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::frames", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::BacktraceFrame::frame].Field[backtrace::capture::BacktraceFrame::frame].Field[std::backtrace_rs::capture::BacktraceFrame::frame].Field[as_if_std::the_backtrace_crate::capture::Frame::Raw(0)].Field[backtrace::capture::Frame::Raw(0)].Field[std::backtrace_rs::capture::Frame::Raw(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::symbols", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::colno].Field[backtrace::capture::BacktraceSymbol::colno].Field[std::backtrace_rs::capture::BacktraceSymbol::colno]", "ReturnValue", "value", "dfc-generated"] - - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::lineno].Field[backtrace::capture::BacktraceSymbol::lineno].Field[std::backtrace_rs::capture::BacktraceSymbol::lineno]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::colno].Field[backtrace::capture::BacktraceSymbol::colno].Field[std::backtrace_rs::capture::BacktraceSymbol::colno]", "ReturnValue", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::lineno].Field[backtrace::capture::BacktraceSymbol::lineno].Field[std::backtrace_rs::capture::BacktraceSymbol::lineno]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::formatter", "Argument[self].Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "value", "dfc-generated"] + - ["::formatter", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "ReturnValue", "value", "dfc-generated"] - ["::frame", "Argument[self]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFrameFmt::fmt].Field[backtrace::print::BacktraceFrameFmt::fmt].Field[std::backtrace_rs::print::BacktraceFrameFmt::fmt]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::format].Field[backtrace::print::BacktraceFmt::format].Field[std::backtrace_rs::print::BacktraceFmt::format]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::print_path].Field[backtrace::print::BacktraceFmt::print_path].Field[std::backtrace_rs::print::BacktraceFmt::print_path]", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::Symbol::inner].Field[backtrace::symbolize::Symbol::inner].Field[std::backtrace_rs::symbolize::Symbol::inner].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Symtab::name].Field[backtrace::symbolize::gimli::Symbol::Symtab::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Symtab::name]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] + - ["::backtrace_frame", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::backtrace_symbol", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::print_raw", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::print_raw_with_column", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filename", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filename_raw", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lineno", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_bytes", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] - - ["::addr", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::addr].Field[backtrace::symbolize::gimli::Symbol::Frame::addr].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::addr].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[addr2line::frame::Location::column]", "ReturnValue", "value", "dfc-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename_raw", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename_raw", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[addr2line::frame::Location::line]", "ReturnValue", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::name].Field[backtrace::symbolize::gimli::Symbol::Frame::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::name].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::name].Field[backtrace::symbolize::gimli::Symbol::Frame::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::name]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Symtab::name].Field[backtrace::symbolize::gimli::Symbol::Symtab::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Symtab::name]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] - - ["::section", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::map", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::gimli::mmap::Mmap::len].Field[backtrace::symbolize::gimli::mmap::Mmap::len].Field[std::backtrace_rs::symbolize::gimli::mmap::Mmap::len]", "value", "dfc-generated"] - - ["::pathname", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[backtrace::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[std::backtrace_rs::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::allocate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sp", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::Frame::inner].Field[backtrace::backtrace::Frame::inner].Field[std::backtrace_rs::backtrace::Frame::inner].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pathname", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[backtrace::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[std::backtrace_rs::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::cache_mmap", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::sp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::ip].Field[backtrace::backtrace::libunwind::Frame::Cloned::ip].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::ip]", "ReturnValue", "value", "dfc-generated"] + - ["::ip", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::ip].Field[backtrace::backtrace::libunwind::Frame::Cloned::ip].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::ip]", "ReturnValue", "value", "dfc-generated"] + - ["::sp", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - ["::sp", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "value", "dfc-generated"] - - ["::into", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "ReturnValue", "value", "dfc-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::frames", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::BacktraceFrame::frame].Field[backtrace::capture::BacktraceFrame::frame].Field[std::backtrace_rs::capture::BacktraceFrame::frame].Field[as_if_std::the_backtrace_crate::capture::Frame::Raw(0)].Field[backtrace::capture::Frame::Raw(0)].Field[std::backtrace_rs::capture::Frame::Raw(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::symbols", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::colno].Field[backtrace::capture::BacktraceSymbol::colno].Field[std::backtrace_rs::capture::BacktraceSymbol::colno]", "ReturnValue", "value", "dfc-generated"] - - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::lineno].Field[backtrace::capture::BacktraceSymbol::lineno].Field[std::backtrace_rs::capture::BacktraceSymbol::lineno]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::colno].Field[backtrace::capture::BacktraceSymbol::colno].Field[std::backtrace_rs::capture::BacktraceSymbol::colno]", "ReturnValue", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::lineno].Field[backtrace::capture::BacktraceSymbol::lineno].Field[std::backtrace_rs::capture::BacktraceSymbol::lineno]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::formatter", "Argument[self].Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "value", "dfc-generated"] + - ["::formatter", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "ReturnValue", "value", "dfc-generated"] - ["::frame", "Argument[self]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFrameFmt::fmt].Field[backtrace::print::BacktraceFrameFmt::fmt].Field[std::backtrace_rs::print::BacktraceFrameFmt::fmt]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::format].Field[backtrace::print::BacktraceFmt::format].Field[std::backtrace_rs::print::BacktraceFmt::format]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::print_path].Field[backtrace::print::BacktraceFmt::print_path].Field[std::backtrace_rs::print::BacktraceFmt::print_path]", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::Symbol::inner].Field[backtrace::symbolize::Symbol::inner].Field[std::backtrace_rs::symbolize::Symbol::inner].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Symtab::name].Field[backtrace::symbolize::gimli::Symbol::Symtab::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Symtab::name]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] + - ["::backtrace_frame", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::backtrace_symbol", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::print_raw", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::print_raw_with_column", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filename", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filename_raw", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lineno", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_bytes", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] - - ["::addr", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::addr].Field[backtrace::symbolize::gimli::Symbol::Frame::addr].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::addr].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[addr2line::frame::Location::column]", "ReturnValue", "value", "dfc-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename_raw", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename_raw", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[addr2line::frame::Location::line]", "ReturnValue", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::name].Field[backtrace::symbolize::gimli::Symbol::Frame::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::name].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::name].Field[backtrace::symbolize::gimli::Symbol::Frame::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::name]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Symtab::name].Field[backtrace::symbolize::gimli::Symbol::Symtab::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Symtab::name]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] - - ["::section", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::map", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::gimli::mmap::Mmap::len].Field[backtrace::symbolize::gimli::mmap::Mmap::len].Field[std::backtrace_rs::symbolize::gimli::mmap::Mmap::len]", "value", "dfc-generated"] - - ["::pathname", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[backtrace::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[std::backtrace_rs::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::allocate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "Argument[self].Field[connect5::List::p_move].Element", "value", "dfc-generated"] - - ["::size", "Argument[self].Field[connect5::List::p_size]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pathname", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[backtrace::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[std::backtrace_rs::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::cache_mmap", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self].Field[compiler_builtins::int::big::i256(0)]", "ReturnValue.Field[compiler_builtins::int::big::u256(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self].Field[compiler_builtins::int::big::u256(0)]", "ReturnValue.Field[compiler_builtins::int::big::i256(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::i256::hi].Field[libm::math::support::big::i256::hi]", "ReturnValue", "value", "dfc-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::i256::lo].Field[libm::math::support::big::i256::lo]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "value", "dfc-generated"] + - ["::hi", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::u256::hi].Field[libm::math::support::big::u256::hi]", "ReturnValue", "value", "dfc-generated"] + - ["::lo", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::i256::lo].Field[libm::math::support::big::i256::lo]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::status].Field[libm::math::support::env::FpResult::status]", "value", "dfc-generated"] + - ["::ok", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bits", "Argument[self].Reference.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from_bits", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size", "Argument[self].Reference.Field[connect5::List::p_size]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::alloc::layout::Layout::size]", "ReturnValue.Field[core::alloc::layout::Layout::size].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::alloc::layout::Layout::size]", "ReturnValue.Field[core::alloc::layout::Layout::size]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::align", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::align_to", "Argument[self].Field[core::alloc::layout::Layout::align]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::align]", "value", "dfc-generated"] - - ["::align_to", "Argument[self].Field[core::alloc::layout::Layout::size]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::size]", "value", "dfc-generated"] - - ["::extend_packed", "Argument[self].Field[core::alloc::layout::Layout::align]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::align]", "value", "dfc-generated"] + - ["::align_to", "Argument[self].Reference.Field[core::alloc::layout::Layout::size]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::size]", "value", "dfc-generated"] + - ["::alignment", "Argument[self].Reference.Field[core::alloc::layout::Layout::align]", "ReturnValue", "value", "dfc-generated"] + - ["::extend_packed", "Argument[self].Reference.Field[core::alloc::layout::Layout::align]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::align]", "value", "dfc-generated"] - ["::from_size_align", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::size]", "value", "dfc-generated"] - ["::from_size_align_unchecked", "Argument[0]", "ReturnValue.Field[core::alloc::layout::Layout::size]", "value", "dfc-generated"] + - ["::repeat", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::repeat", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::repeat_packed", "Argument[self].Field[core::alloc::layout::Layout::align]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::align]", "value", "dfc-generated"] - - ["::size", "Argument[self].Field[core::alloc::layout::Layout::size]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::array::iter::IntoIter::data]", "value", "dfc-generated"] - - ["::new_unchecked", "Argument[1].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::array::iter::IntoIter::alive].Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["::new_unchecked", "Argument[1].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::array::iter::IntoIter::alive].Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] + - ["::repeat_packed", "Argument[self].Reference.Field[core::alloc::layout::Layout::align]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::align]", "value", "dfc-generated"] + - ["::size", "Argument[self].Reference.Field[core::alloc::layout::Layout::size]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::array::iter::IntoIter::inner].Field[core::array::iter::iter_inner::PolymorphicIter::data]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::array::iter::iter_inner::PolymorphicIter::alive]", "value", "dfc-generated"] + - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[core::array::iter::iter_inner::PolymorphicIter::data]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::try_capture", "Argument[self].Field[0].Reference", "Argument[0].Field[core::asserting::Capture::elem].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::try_capture", "Argument[self].Field[core::asserting::Wrapper(0)].Reference", "Argument[0].Field[core::asserting::Capture::elem].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::try_capture", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clamp", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::clamp", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::clamp", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::max", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::max", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::min", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::min", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::select_unpredictable", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::select_unpredictable", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::ok_or", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::ok_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::then", "Argument[0].ReturnValue", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::then_some", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[core::bstr::ByteStr(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::index_mut", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index_mut", "Argument[self].Field[core::bstr::ByteStr(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_bytes", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_bytes_mut", "Argument[self].Reference.Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_bytes", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_bytes_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self].Field[core::cell::BorrowRef::borrow]", "ReturnValue.Field[core::cell::BorrowRef::borrow]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::cell::BorrowRef::borrow]", "ReturnValue.Field[core::cell::BorrowRef::borrow]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_array_of_cells", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_slice_of_cells", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["::update", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::update", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::clone", "Argument[0].Reference.Field[core::cell::Ref::value]", "ReturnValue.Field[core::cell::Ref::value]", "value", "dfc-generated"] - ["::filter_map", "Argument[0].Field[core::cell::Ref::borrow]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::cell::Ref::borrow]", "value", "dfc-generated"] - - ["::filter_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map", "Argument[0].Field[core::cell::Ref::borrow]", "ReturnValue.Field[core::cell::Ref::borrow]", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::map_split", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["::map_split", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::map_split", "Argument[0].Field[core::cell::Ref::borrow]", "ReturnValue.Field[1].Field[core::cell::Ref::borrow]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::borrow_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::try_borrow_unguarded", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::undo_leak", "Argument[self].Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::undo_leak", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::filter_map", "Argument[0].Field[core::cell::RefMut::borrow]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::cell::RefMut::borrow]", "value", "dfc-generated"] - - ["::filter_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map", "Argument[0].Field[core::cell::RefMut::borrow]", "ReturnValue.Field[core::cell::RefMut::borrow]", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::map_split", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["::map_split", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::map_split", "Argument[0].Field[core::cell::RefMut::borrow]", "ReturnValue.Field[1].Field[core::cell::RefMut::borrow]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::raw_get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::raw_get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::force", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::force_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut_or_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut_or_try_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_init", "Argument[0].ReturnValue", "ReturnValue.Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::get_or_init", "Argument[0].ReturnValue", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_try_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::cell::once::OnceCell::inner].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::try_insert", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - ["::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] + - ["::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_utf8_pattern", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::str::pattern::Utf8Pattern::CharPattern(0)]", "value", "dfc-generated"] + - ["::as_utf8_pattern", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::str::pattern::Utf8Pattern::CharPattern(0)]", "value", "dfc-generated"] - ["::into_searcher", "Argument[0]", "ReturnValue.Field[core::str::pattern::CharSearcher::haystack]", "value", "dfc-generated"] - ["::into_searcher", "Argument[self]", "ReturnValue.Field[core::str::pattern::CharSearcher::needle]", "value", "dfc-generated"] - - ["::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[0].Field[core::char::EscapeDebugInner::Char(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::char::EscapeDebug(0)].Field[core::char::EscapeDebugInner::Char(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self].Field[core::char::decode::DecodeUtf16::iter].Element", "Argument[self].Field[core::char::decode::DecodeUtf16::buf].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::char::decode::DecodeUtf16::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["::unpaired_surrogate", "Argument[self].Field[core::char::decode::DecodeUtf16Error::code]", "ReturnValue", "value", "dfc-generated"] + - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::char::decode::DecodeUtf16Error::code]", "ReturnValue.Field[core::char::decode::DecodeUtf16Error::code].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::char::decode::DecodeUtf16Error::code]", "ReturnValue.Field[core::char::decode::DecodeUtf16Error::code]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::unpaired_surrogate", "Argument[self].Reference.Field[core::char::decode::DecodeUtf16Error::code]", "ReturnValue", "value", "dfc-generated"] - ["::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_ascii_lowercase", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::to_ascii_lowercase", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::to_ascii_uppercase", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::to_ascii_uppercase", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::then", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::then", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::then_with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::then_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::cmp::Reverse(0)]", "ReturnValue.Field[core::cmp::Reverse(0)]", "value", "dfc-generated"] + - ["::clone_from", "Argument[0].Reference.Field[core::cmp::Reverse(0)]", "Argument[self].Reference.Field[core::cmp::Reverse(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] @@ -801,6 +1452,8 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] @@ -834,11 +1487,15 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] @@ -848,6 +1505,8 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] @@ -865,14 +1524,20 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] @@ -882,16 +1547,24 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x1(0)].Field[core_arch::core_arch::simd::f64x1(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x1(0)].Field[core_arch::core_arch::simd::f64x1(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] @@ -901,6 +1574,8 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] @@ -918,9 +1593,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] @@ -954,11 +1633,15 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] @@ -968,6 +1651,8 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] @@ -985,9 +1670,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] @@ -1021,11 +1710,15 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] @@ -1035,16 +1728,24 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x1(0)].Field[core_arch::core_arch::simd::i64x1(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x1(0)].Field[core_arch::core_arch::simd::i64x1(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] @@ -1054,6 +1755,8 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] @@ -1071,9 +1774,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] @@ -1107,11 +1814,15 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] @@ -1177,6 +1888,8 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] @@ -1186,6 +1899,22 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] @@ -1203,9 +1932,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] @@ -1239,11 +1972,15 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] @@ -1309,6 +2046,8 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] @@ -1318,6 +2057,8 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] @@ -1335,9 +2076,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] @@ -1371,11 +2116,15 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] @@ -1385,16 +2134,24 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x1(0)].Field[core_arch::core_arch::simd::u64x1(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x1(0)].Field[core_arch::core_arch::simd::u64x1(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] @@ -1404,6 +2161,8 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] @@ -1421,9 +2180,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] @@ -1457,11 +2220,15 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] @@ -1527,6 +2294,8 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] @@ -1536,65 +2305,96 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "ReturnValue.Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "ReturnValue.Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_bits", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "value", "dfc-generated"] - - ["::to_bits", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::to_bits", "Argument[self].Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::simd_clamp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::simd_clamp", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::simd_clamp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::simd_max", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::simd_max", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::simd_min", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::simd_min", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitand_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitxor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::select_mask", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::select_mask", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::select_mask", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_bits", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::without_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::without_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_mut_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::provide_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::provide_ref_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::provide_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::provide_value_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::error::Source::current]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[core::error::Source::current]", "ReturnValue", "value", "dfc-generated"] - ["::as_request", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::backslash", "Argument[0]", "ReturnValue.Field[core::escape::EscapeIterInner::data].Element", "value", "dfc-generated"] - - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self].Field[core::escape::EscapeIterInner::alive].Field[core::ops::range::Range::start]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::escape::EscapeIterInner::alive].Field[core::ops::range::Range::end]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::escape::EscapeIterInner::data]", "ReturnValue.Field[core::escape::EscapeIterInner::data].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::escape::EscapeIterInner::data]", "ReturnValue.Field[core::escape::EscapeIterInner::data]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hexf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::flush", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clamp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::clamp", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["::clamp", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::maximum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::maximum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::minimum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -1602,130 +2402,315 @@ extensions: - ["::next_down", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::next_up", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::narrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::narrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hexf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::flush", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clamp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::clamp", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["::clamp", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::maximum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::maximum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::minimum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::minimum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::next_down", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::next_up", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::ffi::c_str::Bytes::ptr]", "ReturnValue.Field[core::ffi::c_str::Bytes::ptr].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::ffi::c_str::Bytes::ptr]", "ReturnValue.Field[core::ffi::c_str::Bytes::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::into_c_string", "Argument[self].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[core::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[core::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::to_bytes_with_nul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::ffi::c_str::FromBytesWithNulError::InteriorNul::position]", "ReturnValue.Field[core::ffi::c_str::FromBytesWithNulError::InteriorNul::position].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::ffi::c_str::FromBytesWithNulError::InteriorNul::position]", "ReturnValue.Field[core::ffi::c_str::FromBytesWithNulError::InteriorNul::position]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[core::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[core::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_va_list", "Argument[self]", "ReturnValue.Field[core::ffi::va_list::VaList::inner]", "value", "dfc-generated"] - ["::with_copy", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::spec_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_statically_known_str", "Argument[self].Field[core::fmt::Arguments::pieces].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::as_str", "Argument[self].Field[core::fmt::Arguments::pieces].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::as_statically_known_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new_const", "Argument[0]", "ReturnValue.Field[core::fmt::Arguments::pieces]", "value", "dfc-generated"] - ["::new_v1", "Argument[0]", "ReturnValue.Field[core::fmt::Arguments::pieces]", "value", "dfc-generated"] - ["::new_v1", "Argument[1]", "ReturnValue.Field[core::fmt::Arguments::args]", "value", "dfc-generated"] - ["::new_v1_formatted", "Argument[0]", "ReturnValue.Field[core::fmt::Arguments::pieces]", "value", "dfc-generated"] - ["::new_v1_formatted", "Argument[1]", "ReturnValue.Field[core::fmt::Arguments::args]", "value", "dfc-generated"] - ["::new_v1_formatted", "Argument[2]", "ReturnValue.Field[core::fmt::Arguments::fmt].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::debug_list", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugList::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - ["::debug_map", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugMap::fmt]", "value", "dfc-generated"] - ["::debug_set", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - ["::debug_struct", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugStruct::fmt]", "value", "dfc-generated"] + - ["::debug_struct_field1_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field1_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field1_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_struct_field1_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_struct_field1_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[1]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[2]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[self]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[self]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field2_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[1]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[1]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[1]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[2]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[2]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[2]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[3]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[3]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[4]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[4]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[5]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[6]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[self]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[self]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[self]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[self]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field3_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[1]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[1]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[1]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[1]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[1]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[2]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[2]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[2]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[2]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[2]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[3]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[3]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[3]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[3]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[4]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[4]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[4]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[4]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[5]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[5]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[5]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[6]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[6]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[6]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[7]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[8]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field4_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[10]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[3]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[3]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[3]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[3]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[3]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[3]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[4]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[4]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[4]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[4]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[4]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[4]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[5]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[5]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[5]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[5]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[5]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[6]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[6]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[6]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[6]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[6]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[7]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[7]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[7]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[8]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[8]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[8]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[9]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[10]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[3]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[4]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[5]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[6]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[7]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[8]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "Argument[9]", "taint", "df-generated"] + - ["::debug_struct_field5_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_struct_fields_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::debug_tuple", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugTuple::fmt]", "value", "dfc-generated"] - - ["::flags", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field1_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field1_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_tuple_field1_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field2_finish", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field2_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field2_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field2_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_tuple_field2_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field2_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[self]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field3_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[1]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[2]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[3]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[self]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[self]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field4_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[1]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[1]", "Argument[5]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[2]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[2]", "Argument[5]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[3]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[3]", "Argument[5]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[4]", "Argument[5]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[5]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[self]", "Argument[3]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[self]", "Argument[4]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[self]", "Argument[5]", "taint", "df-generated"] + - ["::debug_tuple_field5_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_fields_finish", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::debug_tuple_fields_finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::fmt::Formatter::buf]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::fmt::Formatter::options]", "value", "dfc-generated"] - - ["::options", "Argument[self].Field[core::fmt::Formatter::options]", "ReturnValue", "value", "dfc-generated"] - - ["::pad", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pad_integral", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::padding", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::options", "Argument[self].Reference.Field[core::fmt::Formatter::options]", "ReturnValue", "value", "dfc-generated"] - ["::precision", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::width", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_options", "Argument[0]", "ReturnValue.Field[core::fmt::Formatter::options]", "value", "dfc-generated"] - - ["::with_options", "Argument[self].Field[core::fmt::Formatter::buf]", "ReturnValue.Field[core::fmt::Formatter::buf]", "value", "dfc-generated"] + - ["::with_options", "Argument[self].Reference.Field[core::fmt::Formatter::buf]", "ReturnValue.Field[core::fmt::Formatter::buf]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::align", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::alternate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::create_formatter", "Argument[0]", "ReturnValue.Field[core::fmt::Formatter::buf]", "value", "dfc-generated"] - ["::create_formatter", "Argument[self]", "ReturnValue.Field[core::fmt::Formatter::options]", "value", "dfc-generated"] - ["::debug_as_hex", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::fill", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_precision", "Argument[self].Field[core::fmt::FormattingOptions::precision]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::get_width", "Argument[self].Field[core::fmt::FormattingOptions::width]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::get_precision", "Argument[self].Reference.Field[core::fmt::FormattingOptions::precision]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::get_width", "Argument[self].Reference.Field[core::fmt::FormattingOptions::width]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::precision", "Argument[0].Field[core::option::Option::Some(0)]", "Argument[self].Reference.Field[core::fmt::FormattingOptions::precision]", "value", "dfc-generated"] - ["::precision", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::sign", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::sign_aware_zero_pad", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::width", "Argument[0].Field[core::option::Option::Some(0)]", "Argument[self].Reference.Field[core::fmt::FormattingOptions::width]", "value", "dfc-generated"] - ["::width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::entry_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugList::inner].Field[core::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] + - ["::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::finish_non_exhaustive", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::entry", "Argument[self].Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] - - ["::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] - - ["::key", "Argument[self].Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::finish", "Argument[self].Reference.Field[core::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] + - ["::finish_non_exhaustive", "Argument[self].Reference.Field[core::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] - ["::key", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::key_with", "Argument[self].Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::key_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::value", "Argument[self].Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::value_with", "Argument[self].Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugMap::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::value_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::entry_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] - - ["::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] - - ["::field", "Argument[self].Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::finish_non_exhaustive", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::field", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::field_with", "Argument[self].Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::field_with", "Argument[1].ReturnValue", "Argument[self].Reference.Field[core::fmt::builders::DebugStruct::result]", "value", "dfc-generated"] - ["::field_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] - - ["::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugStruct::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] - - ["::field", "Argument[self].Field[core::fmt::builders::DebugTuple::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugTuple::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::finish", "Argument[self].Reference.Field[core::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] + - ["::finish_non_exhaustive", "Argument[self].Reference.Field[core::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] - ["::field", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::field_with", "Argument[self].Field[core::fmt::builders::DebugTuple::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::fmt::builders::DebugTuple::result].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::field_with", "Argument[0].ReturnValue", "Argument[self].Reference.Field[core::fmt::builders::DebugTuple::result]", "value", "dfc-generated"] - ["::field_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugTuple::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] - - ["::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugTuple::result].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] + - ["::finish", "Argument[self].Reference.Field[core::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] + - ["::finish_non_exhaustive", "Argument[self].Reference.Field[core::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] - ["::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] @@ -1734,490 +2719,450 @@ extensions: - ["::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_u16", "Argument[self].Field[core::fmt::rt::Argument::ty].Field[core::fmt::rt::ArgumentType::Count(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_u16", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_usize", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[core::fmt::rt::Placeholder::position]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue.Field[core::fmt::rt::Placeholder::fill]", "value", "dfc-generated"] - - ["::new", "Argument[2]", "ReturnValue.Field[core::fmt::rt::Placeholder::align]", "value", "dfc-generated"] - - ["::new", "Argument[3]", "ReturnValue.Field[core::fmt::rt::Placeholder::flags]", "value", "dfc-generated"] - - ["::new", "Argument[4]", "ReturnValue.Field[core::fmt::rt::Placeholder::precision]", "value", "dfc-generated"] - - ["::new", "Argument[5]", "ReturnValue.Field[core::fmt::rt::Placeholder::width]", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::future::ResumeTy(0)]", "ReturnValue.Field[core::future::ResumeTy(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::future::ResumeTy(0)]", "ReturnValue.Field[core::future::ResumeTy(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::future::ready::Ready(0)].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new_with_keys", "Argument[0]", "ReturnValue.Field[core::hash::sip::SipHasher13::hasher].Field[core::hash::sip::Hasher::k0]", "value", "dfc-generated"] - ["::new_with_keys", "Argument[1]", "ReturnValue.Field[core::hash::sip::SipHasher13::hasher].Field[core::hash::sip::Hasher::k1]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::i256::hi].Field[libm::math::support::big::i256::hi]", "value", "dfc-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::i256::hi].Field[libm::math::support::big::i256::hi]", "value", "dfc-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hex", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hex", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_elem", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedBuf::buf]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clear", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::init_len", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::filled]", "ReturnValue", "value", "dfc-generated"] - - ["::set_init", "Argument[0]", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - - ["::set_init", "Argument[0]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - - ["::set_init", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] + - ["::init_len", "Argument[self].Reference.Field[core::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[core::io::borrowed_buf::BorrowedBuf::filled]", "ReturnValue", "value", "dfc-generated"] + - ["::set_init", "Argument[0]", "Argument[self].Reference.Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - ["::set_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::unfilled", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::filled]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedCursor::start]", "value", "dfc-generated"] - - ["::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::write_all", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::write_all_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::advance_unchecked", "Argument[self]", "ReturnValue", "value", "df-generated"] - - ["::capacity", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::advance_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::ensure_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::reborrow", "Argument[self].Field[core::io::borrowed_buf::BorrowedCursor::start]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedCursor::start]", "value", "dfc-generated"] - - ["::set_init", "Argument[self].Field[core::io::borrowed_buf::BorrowedCursor::buf].Field[core::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedCursor::buf].Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - ["::set_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with_unfilled_buf", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::written", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_remainder", "Argument[self].Field[core::iter::adapters::array_chunks::ArrayChunks::remainder]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::array_chunks::ArrayChunks::iter]", "value", "dfc-generated"] - - ["::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::by_ref_sized::ByRefSized(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::by_ref_sized::ByRefSized(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::iter::adapters::chain::Chain::a].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::iter::adapters::chain::Chain::b].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::iter::adapters::chain::Chain::a].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::rfind", "Argument[self].Field[core::iter::adapters::chain::Chain::a].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::rfind", "Argument[self].Field[core::iter::adapters::chain::Chain::b].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::a]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::b]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nth_back", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::a]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfind", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::a]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfind", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::b]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::find", "Argument[self].Field[core::iter::adapters::chain::Chain::a].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::find", "Argument[self].Field[core::iter::adapters::chain::Chain::b].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_rfold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::a]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::find", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::b]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::chain::Chain::a].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::chain::Chain::b].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::chain::Chain::b].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::a]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::b]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nth", "Argument[self].Reference.Field[core::iter::adapters::chain::Chain::b]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::chain::Chain::a].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::chain::Chain::b].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -2225,108 +3170,185 @@ extensions: - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::cloned::Cloned::it]", "value", "dfc-generated"] - - ["::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::copied::Copied::it]", "value", "dfc-generated"] - - ["::advance_by", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig].Reference", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["::advance_by", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::try_fold", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig].Reference", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["::try_fold", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["::new", "Argument[0].Reference", "ReturnValue.Field[core::iter::adapters::cycle::Cycle::orig]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::advance_by", "Argument[self].Reference.Field[core::iter::adapters::cycle::Cycle::orig]", "Argument[self].Reference.Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::cycle::Cycle::orig]", "Argument[self].Reference.Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] + - ["::try_fold", "Argument[self].Reference.Field[core::iter::adapters::cycle::Cycle::orig]", "Argument[self].Reference.Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::cycle::Cycle::orig]", "value", "dfc-generated"] - - ["::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::count]", "ReturnValue.Field[core::iter::adapters::enumerate::Enumerate::count].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::count]", "ReturnValue.Field[core::iter::adapters::enumerate::Enumerate::count]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::__iterator_get_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::__iterator_get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::count]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::enumerate::Enumerate::count]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::enumerate::Enumerate::iter]", "value", "dfc-generated"] + - ["::next_index", "Argument[self].Reference.Field[core::iter::adapters::enumerate::Enumerate::count]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_rfold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_rfold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::filter::Filter::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::filter::Filter::predicate]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_rfold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_rfold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::filter_map::FilterMap::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::filter_map::FilterMap::f]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::iter::adapters::flatten::FlatMap::inner].Reference", "ReturnValue.Field[core::iter::adapters::flatten::FlatMap::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::iter::adapters::flatten::FlatMap::inner]", "ReturnValue.Field[core::iter::adapters::flatten::FlatMap::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_parts", "Argument[self].Field[core::iter::adapters::flatten::FlatMap::inner].Field[core::iter::adapters::flatten::FlattenCompat::backiter]", "ReturnValue.Field[2]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[core::iter::adapters::flatten::FlatMap::inner].Field[core::iter::adapters::flatten::FlattenCompat::frontiter]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::iter::adapters::flatten::Flatten::inner].Reference", "ReturnValue.Field[core::iter::adapters::flatten::Flatten::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::iter::adapters::flatten::Flatten::inner]", "ReturnValue.Field[core::iter::adapters::flatten::Flatten::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::iter::adapters::flatten::FlattenCompat::frontiter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::adapters::flatten::FlattenCompat::backiter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::adapters::flatten::FlattenCompat::frontiter]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::flatten::FlattenCompat::backiter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::find", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::rfind", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::flatten::FlattenCompat::backiter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::flatten::FlattenCompat::frontiter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nth", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nth_back", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfind", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nth_back", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfind", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::find", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nth", "Argument[self].Reference.Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::inspect::Inspect::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::inspect::Inspect::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::inspect::Inspect::f]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::intersperse::Intersperse::started]", "ReturnValue.Field[core::iter::adapters::intersperse::Intersperse::started].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::intersperse::Intersperse::started]", "ReturnValue.Field[core::iter::adapters::intersperse::Intersperse::started]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[self].Field[core::iter::adapters::intersperse::Intersperse::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::intersperse::Intersperse::separator]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::iter::adapters::intersperse::IntersperseWith::separator]", "ReturnValue.Field[core::iter::adapters::intersperse::IntersperseWith::separator]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::iter::adapters::intersperse::IntersperseWith::started]", "ReturnValue.Field[core::iter::adapters::intersperse::IntersperseWith::started]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[self].Field[core::iter::adapters::intersperse::IntersperseWith::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::intersperse::IntersperseWith::separator]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] @@ -2340,63 +3362,94 @@ extensions: - ["::into_inner", "Argument[self].Field[core::iter::adapters::map::Map::iter]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::map::Map::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::map::Map::f]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::map_while::MapWhile::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::map_while::MapWhile::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::map_while::MapWhile::predicate]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::iter::adapters::map_windows::Buffer::start]", "ReturnValue.Field[core::iter::adapters::map_windows::Buffer::start]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::iter::adapters::map_windows::Buffer::start]", "ReturnValue.Field[core::iter::adapters::map_windows::Buffer::start]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::iter::adapters::map_windows::MapWindows::f]", "ReturnValue.Field[core::iter::adapters::map_windows::MapWindows::f]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::map_windows::MapWindows::f]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fold", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::last", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::peekable::Peekable::iter]", "value", "dfc-generated"] - - ["::next_if", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["::next_if", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next_if_eq", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::peek_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self].Field[core::iter::adapters::rev::Rev::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::iter::adapters::rev::Rev::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next_if", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::next_if", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_if_eq", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::next_if_eq", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self].Reference.Field[core::iter::adapters::peekable::Peekable::peeked]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::peek_mut", "Argument[self].Reference.Field[core::iter::adapters::peekable::Peekable::peeked]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::advance_back_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[self].Field[core::iter::adapters::rev::Rev::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[core::iter::adapters::rev::Rev::iter]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::rev::Rev::iter]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::scan::Scan::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::scan::Scan::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::scan::Scan::state]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::iter::adapters::scan::Scan::f]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::skip::Skip::n]", "ReturnValue.Field[core::iter::adapters::skip::Skip::n].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::skip::Skip::n]", "ReturnValue.Field[core::iter::adapters::skip::Skip::n]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::last", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::last", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::skip::Skip::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::skip::Skip::n]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::skip_while::SkipWhile::flag]", "ReturnValue.Field[core::iter::adapters::skip_while::SkipWhile::flag].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::skip_while::SkipWhile::flag]", "ReturnValue.Field[core::iter::adapters::skip_while::SkipWhile::flag]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[self].Field[core::iter::adapters::skip_while::SkipWhile::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::skip_while::SkipWhile::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::skip_while::SkipWhile::predicate]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::spec_next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::spec_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -2404,317 +3457,347 @@ extensions: - ["::spec_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::spec_try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::spec_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::spec_fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::spec_fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Field[core::ops::range::Range::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::spec_next", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_next", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_nth", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::spec_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::spec_nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::spec_size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::spec_try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::spec_try_fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::spec_fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[core::iter::adapters::take::Take::n].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[core::iter::adapters::take::Take::n]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::spec_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[core::iter::adapters::take::Take::n]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::take::Take::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::take::Take::n]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::take_while::TakeWhile::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::adapters::take_while::TakeWhile::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::take_while::TakeWhile::flag]", "ReturnValue.Field[core::iter::adapters::take_while::TakeWhile::flag].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::adapters::take_while::TakeWhile::flag]", "ReturnValue.Field[core::iter::adapters::take_while::TakeWhile::flag]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::take_while::TakeWhile::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::take_while::TakeWhile::predicate]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::spec_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::zip::Zip::a]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::zip::Zip::b]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue.Field[core::iter::sources::repeat_n::RepeatN::count]", "value", "dfc-generated"] - - ["::advance_back_by", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::advance_back_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::nth_back", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::nth_back", "Argument[self].Reference.Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::nth", "Argument[self].Reference.Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::iter::sources::repeat_n::RepeatN::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::nth_back", "Argument[self].Reference.Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[self].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue", "value", "dfc-generated"] - - ["::advance_by", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::count", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue", "value", "dfc-generated"] - - ["::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[self].Reference.Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::iter::sources::repeat_n::RepeatN::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::sources::repeat_n::RepeatNInner::count]", "ReturnValue.Field[core::iter::sources::repeat_n::RepeatNInner::count].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::iter::sources::repeat_n::RepeatNInner::count]", "ReturnValue.Field[core::iter::sources::repeat_n::RepeatNInner::count]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::try_fold", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::marker::variance::PhantomContravariantLifetime(0)]", "ReturnValue.Field[core::marker::variance::PhantomContravariantLifetime(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::marker::variance::PhantomContravariantLifetime(0)]", "ReturnValue.Field[core::marker::variance::PhantomContravariantLifetime(0)]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::marker::variance::PhantomCovariantLifetime(0)]", "ReturnValue.Field[core::marker::variance::PhantomCovariantLifetime(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::marker::variance::PhantomCovariantLifetime(0)]", "ReturnValue.Field[core::marker::variance::PhantomCovariantLifetime(0)]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::marker::variance::PhantomInvariantLifetime(0)]", "ReturnValue.Field[core::marker::variance::PhantomInvariantLifetime(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::marker::variance::PhantomInvariantLifetime(0)]", "ReturnValue.Field[core::marker::variance::PhantomInvariantLifetime(0)]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[core::mem::drop_guard::DropGuard::inner].Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::mem::drop_guard::DropGuard::f].Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[0].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - - ["::take", "Argument[0].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue", "value", "dfc-generated"] + - ["::take", "Argument[0].Reference.Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone_from_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::copy_from_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fill", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fill_with", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::assume_init_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::assume_init_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::assume_init_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::slice_as_mut_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::slice_as_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::slice_assume_init_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::slice_assume_init_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V4(0)].Field[core::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V4(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)].Field[core::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] - - ["::to_canonical", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::as_octets", "Argument[self].Field[core::net::ip_addr::IpAddr::V4(0)].Field[core::net::ip_addr::Ipv4Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_octets", "Argument[self].Field[core::net::ip_addr::IpAddr::V6(0)].Field[core::net::ip_addr::Ipv6Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::to_canonical", "Argument[self]", "ReturnValue", "value", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_octets", "Argument[self].Field[core::net::ip_addr::Ipv4Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_octets", "Argument[self].Reference.Field[core::net::ip_addr::Ipv4Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_octets", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - - ["::octets", "Argument[self].Field[core::net::ip_addr::Ipv4Addr::octets]", "ReturnValue", "value", "dfc-generated"] - - ["::to_ipv6_compatible", "Argument[self].Field[core::net::ip_addr::Ipv4Addr::octets].Element", "ReturnValue.Field[core::net::ip_addr::Ipv6Addr::octets].Element", "value", "dfc-generated"] - - ["::to_ipv6_mapped", "Argument[self].Field[core::net::ip_addr::Ipv4Addr::octets].Element", "ReturnValue.Field[core::net::ip_addr::Ipv6Addr::octets].Element", "value", "dfc-generated"] + - ["::octets", "Argument[self].Reference.Field[core::net::ip_addr::Ipv4Addr::octets]", "ReturnValue", "value", "dfc-generated"] + - ["::to_ipv6_compatible", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_ipv6_mapped", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_octets", "Argument[self].Field[core::net::ip_addr::Ipv6Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_octets", "Argument[self].Reference.Field[core::net::ip_addr::Ipv6Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_octets", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - - ["::octets", "Argument[self].Field[core::net::ip_addr::Ipv6Addr::octets]", "ReturnValue", "value", "dfc-generated"] + - ["::octets", "Argument[self].Reference.Field[core::net::ip_addr::Ipv6Addr::octets]", "ReturnValue", "value", "dfc-generated"] - ["::to_canonical", "Argument[self].Reference", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] + - ["::to_canonical", "Argument[self]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] - ["::to_ipv4_mapped", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V4(0)].Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V6(0)].Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V4(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V6(0)]", "value", "dfc-generated"] + - ["::ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0].Field[core::net::ip_addr::IpAddr::V4(0)]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V4(0)].Field[core::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] - ["::new", "Argument[0].Field[core::net::ip_addr::IpAddr::V6(0)]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V6(0)].Field[core::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V4(0)].Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V6(0)].Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::ip", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::ip]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::port", "Argument[self].Field[core::net::socket_addr::SocketAddr::V4(0)].Field[core::net::socket_addr::SocketAddrV4::port]", "ReturnValue", "value", "dfc-generated"] + - ["::port", "Argument[self].Field[core::net::socket_addr::SocketAddr::V6(0)].Field[core::net::socket_addr::SocketAddrV6::port]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::port]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV4::port].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::port]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] + - ["::ip", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV4::ip]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - - ["::port", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::port]", "ReturnValue", "value", "dfc-generated"] - - ["::set_ip", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] - - ["::set_port", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::flowinfo", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "ReturnValue", "value", "dfc-generated"] - - ["::ip", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::ip]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::port", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV4::port]", "ReturnValue", "value", "dfc-generated"] + - ["::set_ip", "Argument[0]", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] + - ["::set_port", "Argument[0]", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::flowinfo", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "ReturnValue", "value", "dfc-generated"] + - ["::ip", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::ip]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::scope_id]", "value", "dfc-generated"] - - ["::port", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::port]", "ReturnValue", "value", "dfc-generated"] - - ["::scope_id", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::scope_id]", "ReturnValue", "value", "dfc-generated"] - - ["::set_flowinfo", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "value", "dfc-generated"] - - ["::set_ip", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] - - ["::set_port", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - - ["::set_scope_id", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::scope_id]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::num::bignum::Big32x40::base]", "ReturnValue.Field[core::num::bignum::Big32x40::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["::add", "Argument[0].Field[core::num::bignum::Big32x40::size]", "Argument[self].Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["::add", "Argument[0].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["::add", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["::port", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::port]", "ReturnValue", "value", "dfc-generated"] + - ["::scope_id", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::scope_id]", "ReturnValue", "value", "dfc-generated"] + - ["::set_flowinfo", "Argument[0]", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "value", "dfc-generated"] + - ["::set_ip", "Argument[0]", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] + - ["::set_port", "Argument[0]", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] + - ["::set_scope_id", "Argument[0]", "Argument[self].Reference.Field[core::net::socket_addr::SocketAddrV6::scope_id]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::num::bignum::Big32x40::base]", "ReturnValue.Field[core::num::bignum::Big32x40::base]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["::add", "Argument[0].Reference.Field[core::num::bignum::Big32x40::size]", "Argument[self].Reference.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::digits", "Argument[self].Field[core::num::bignum::Big32x40::base].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::div_rem", "Argument[0].Field[core::num::bignum::Big32x40::size]", "Argument[2].Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["::digits", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::div_rem", "Argument[0].Reference.Field[core::num::bignum::Big32x40::size]", "Argument[2].Reference.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["::div_rem_small", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::from_small", "Argument[0]", "ReturnValue.Field[core::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] - - ["::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_bit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::mul_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::mul_pow2", "Argument[self].Field[core::num::bignum::Big32x40::base].Element", "ReturnValue.Field[core::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] - ["::mul_pow2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mul_pow5", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::mul_small", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["::mul_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::sub", "Argument[0].Field[core::num::bignum::Big32x40::size]", "Argument[self].Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["::sub", "Argument[0].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["::sub", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["::sub", "Argument[0].Reference.Field[core::num::bignum::Big32x40::size]", "Argument[self].Reference.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::num::bignum::tests::Big8x3::base]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["::add", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["::add", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["::add", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::num::bignum::tests::Big8x3::base]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::base]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["::add", "Argument[0].Reference.Field[core::num::bignum::tests::Big8x3::size]", "Argument[self].Reference.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::digits", "Argument[self].Field[core::num::bignum::tests::Big8x3::base].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::div_rem", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "Argument[2].Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["::digits", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::div_rem", "Argument[0].Reference.Field[core::num::bignum::tests::Big8x3::size]", "Argument[2].Reference.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["::div_rem_small", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::from_small", "Argument[0]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::base].Element", "value", "dfc-generated"] - - ["::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_bit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::mul_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::mul_pow2", "Argument[self].Field[core::num::bignum::tests::Big8x3::base].Element", "ReturnValue.Field[core::num::bignum::tests::Big8x3::base].Element", "value", "dfc-generated"] - ["::mul_pow2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mul_pow5", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::mul_small", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["::mul_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::sub", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["::sub", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["::sub", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["::sub", "Argument[0].Reference.Field[core::num::bignum::tests::Big8x3::size]", "Argument[self].Reference.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::zero_pow2", "Argument[0]", "ReturnValue.Field[core::num::dec2flt::common::BiasedFp::p_biased]", "value", "dfc-generated"] - - ["::right_shift", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::try_add_digit", "Argument[0]", "Argument[self].Field[core::num::dec2flt::decimal_seq::DecimalSeq::digits].Element", "value", "dfc-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::normalize", "Argument[self].Field[core::num::diy_float::Fp::e]", "ReturnValue.Field[core::num::diy_float::Fp::e]", "value", "dfc-generated"] - - ["::normalize", "Argument[self].Field[core::num::diy_float::Fp::f]", "ReturnValue.Field[core::num::diy_float::Fp::f]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::normalize_to", "Argument[0]", "ReturnValue.Field[core::num::diy_float::Fp::e]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::kind", "Argument[self].Field[core::num::error::ParseIntError::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::kind", "Argument[self].Reference.Field[core::num::error::ParseIntError::kind]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Field[core::num::fmt::Part::Zero(0)]", "ReturnValue", "value", "dfc-generated"] - ["::len", "Argument[self].Reference.Field[core::num::fmt::Part::Zero(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::write", "Argument[self].Field[core::num::fmt::Part::Zero(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::write", "Argument[self].Reference.Field[core::num::fmt::Part::Zero(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::I32NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::I32NotAllOnes(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::I32NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::I64NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::I64NotAllOnes(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::I64NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::I64NotAllOnes(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::I64NotAllOnes(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::I64NotAllOnes(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::Nanoseconds(0)]", "ReturnValue.Field[core::num::niche_types::Nanoseconds(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::Nanoseconds(0)]", "ReturnValue.Field[core::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroCharInner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroCharInner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroCharInner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroCharInner(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroCharInner(0)]", "value", "dfc-generated"] + - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroCharInner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI128Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI128Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI128Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI128Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI128Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI128Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI16Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI16Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI16Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI16Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI16Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI16Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI32Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI32Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI32Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI32Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI32Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI32Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI64Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI64Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI64Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI64Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI64Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI64Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI8Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI8Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroI8Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroI8Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI8Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI8Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroIsizeInner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroIsizeInner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroIsizeInner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroIsizeInner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroIsizeInner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroIsizeInner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU128Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU128Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU128Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU128Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU128Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU128Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU16Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU16Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU16Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU16Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU16Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU16Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU32Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU32Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU32Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU32Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU32Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU32Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU64Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU64Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU64Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU64Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU64Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU64Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU8Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU8Inner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroU8Inner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroU8Inner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU8Inner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU8Inner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroUsizeInner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroUsizeInner(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::NonZeroUsizeInner(0)]", "ReturnValue.Field[core::num::niche_types::NonZeroUsizeInner(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroUsizeInner(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroUsizeInner(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::U32NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::U32NotAllOnes(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::U32NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::U32NotAllOnes(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::U32NotAllOnes(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::U32NotAllOnes(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::U64NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::U64NotAllOnes(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::U64NotAllOnes(0)]", "ReturnValue.Field[core::num::niche_types::U64NotAllOnes(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::U64NotAllOnes(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::U64NotAllOnes(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::UsizeNoHighBit(0)]", "ReturnValue.Field[core::num::niche_types::UsizeNoHighBit(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::num::niche_types::UsizeNoHighBit(0)]", "ReturnValue.Field[core::num::niche_types::UsizeNoHighBit(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::UsizeNoHighBit(0)]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::UsizeNoHighBit(0)]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::from_mut_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::new_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs", "Argument[self].Field[0]", "ReturnValue.Field[core::num::saturating::Saturating(0)]", "value", "dfc-generated"] + - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_mut_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::div", "Argument[self].Field[core::num::saturating::Saturating(0)]", "ReturnValue.Field[core::num::saturating::Saturating(0)]", "value", "dfc-generated"] - ["::abs", "Argument[self].Field[core::num::saturating::Saturating(0)]", "ReturnValue.Field[core::num::saturating::Saturating(0)]", "value", "dfc-generated"] - - ["::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::div", "Argument[self].Field[core::num::wrapping::Wrapping(0)]", "ReturnValue.Field[core::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::shr_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::abs", "Argument[self].Field[0]", "ReturnValue.Field[core::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] - ["::abs", "Argument[self].Field[core::num::wrapping::Wrapping(0)]", "ReturnValue.Field[core::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_residual", "Argument[0].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - ["::branch", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)].Field[core::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - ["::branch", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] @@ -2730,22 +3813,31 @@ extensions: - ["::map_continue", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["::map_continue", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - ["::map_continue", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::end", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::end", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::end]", "ReturnValue", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["::start", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue", "value", "dfc-generated"] - - ["::take_prefix", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - - ["::take_prefix", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["::take_prefix", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - - ["::take_suffix", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["::take_suffix", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["::take_suffix", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] + - ["::start", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::start]", "ReturnValue", "value", "dfc-generated"] + - ["::take_prefix", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::end]", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] + - ["::take_prefix", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::end]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["::take_prefix", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] + - ["::take_suffix", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::end]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["::take_suffix", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::start]", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["::take_suffix", "Argument[self].Reference.Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - ["::zero_to", "Argument[0]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cloned", "Argument[self].Field[core::ops::range::Bound::Excluded(0)].Reference", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["::cloned", "Argument[self].Field[core::ops::range::Bound::Included(0)].Reference", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - ["::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::map", "Argument[self].Field[core::ops::range::Bound::Excluded(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] @@ -2753,147 +3845,141 @@ extensions: - ["::from", "Argument[0].Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Range::end]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Range::start]", "value", "dfc-generated"] - ["::setup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::spec_next", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_next_back", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_next_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_nth", "Argument[self].Field[core::ops::range::Range::end].Reference", "Argument[self].Field[core::ops::range::Range::start]", "value", "dfc-generated"] - - ["::spec_nth", "Argument[self].Field[core::ops::range::Range::end]", "Argument[self].Field[core::ops::range::Range::start]", "value", "dfc-generated"] - - ["::spec_nth_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_nth_back", "Argument[self].Field[core::ops::range::Range::start]", "Argument[self].Field[core::ops::range::Range::end]", "value", "dfc-generated"] - - ["::spec_nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::last", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::spec_next", "Argument[self].Reference.Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::spec_next_back", "Argument[self].Reference.Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::spec_nth", "Argument[self].Reference.Field[core::ops::range::Range::end]", "Argument[self].Reference.Field[core::ops::range::Range::start]", "value", "dfc-generated"] + - ["::spec_nth_back", "Argument[self].Reference.Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::spec_nth_back", "Argument[self].Reference.Field[core::ops::range::Range::start]", "Argument[self].Reference.Field[core::ops::range::Range::end]", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::nth_back", "Argument[self].Reference.Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::last", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::min", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::ops::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::ops::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::RangeFrom::start]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::bound", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::get", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::get_mut", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::get_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::get_unchecked_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::index", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::index_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::spec_next", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_next", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::spec_next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::ops::range::RangeInclusive::exhausted]", "ReturnValue.Field[core::ops::range::RangeInclusive::exhausted].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::ops::range::RangeInclusive::exhausted]", "ReturnValue.Field[core::ops::range::RangeInclusive::exhausted]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] + - ["::spec_next", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::spec_next_back", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::spec_try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::spec_try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::spec_try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::spec_try_fold", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::spec_try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::spec_try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::spec_try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["::spec_try_rfold", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::nth_back", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::last", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::try_rfold", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::last", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::min", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::min", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::nth", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["::try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["::try_fold", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::end", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::end", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] - - ["::start", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::start", "Argument[self].Reference.Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - ["::bound", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::bound", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::branch", "Argument[self].Field[0]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::branch", "Argument[self].Field[core::ops::try_trait::NeverShortCircuit(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["::from_output", "Argument[0]", "ReturnValue.Field[core::ops::try_trait::NeverShortCircuit(0)]", "value", "dfc-generated"] - - ["::wrap_mut_1", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::wrap_mut_2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::option::Iter::inner].Reference", "ReturnValue.Field[core::option::Iter::inner]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::option::Iter::inner].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::option::IterMut::inner].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::wrap_mut_1", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::wrap_mut_2", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::from", "Argument[0].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue.Field[core::option::IntoIter::inner].Field[core::option::Item::opt]", "value", "dfc-generated"] - ["::branch", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["::from_output", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::and", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::and_then", "Argument[self].Field[core::option::Option::Some(0)].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::and_then", "Argument[self].Field[core::option::Option::Some(0)].Field[std::path::Component::Normal(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::and_then", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::as_mut", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::as_ref", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::copied", "Argument[self].Field[core::option::Option::Some(0)].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::expect", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::filter", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] + - ["::filter", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::flatten", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::get_or_insert", "Argument[0]", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::get_or_insert", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_or_insert", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::get_or_insert", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_or_insert_default", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::get_or_insert_default", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_or_insert_with", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::get_or_insert_with", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::insert", "Argument[0]", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::insert", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::insert", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::insert", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::inspect", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - ["::inspect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::is_none_or", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::is_none_or", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["::is_some_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::is_some_and", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::map", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::map", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::map", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::map_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::map_or", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::map_or", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["::map_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::map_or", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::map_or_default", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::map_or_default", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["::map_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::map_or_else", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::map_or_else", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::ok_or", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::ok_or", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::ok_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::ok_or_else", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::ok_or_else", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::or_else", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::take_if", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - ["::take_if", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - ["::transpose", "Argument[self].Field[core::option::Option::Some(0)].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::transpose", "Argument[self].Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] @@ -2913,137 +3999,134 @@ extensions: - ["::zip_with", "Argument[0].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["::zip_with", "Argument[1].ReturnValue", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::zip_with", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["::column", "Argument[self].Field[core::panic::location::Location::col]", "ReturnValue", "value", "dfc-generated"] - - ["::file", "Argument[self].Field[core::panic::location::Location::file]", "ReturnValue", "value", "dfc-generated"] - - ["::internal_constructor", "Argument[0]", "ReturnValue.Field[core::panic::location::Location::file]", "value", "dfc-generated"] - - ["::internal_constructor", "Argument[1]", "ReturnValue.Field[core::panic::location::Location::line]", "value", "dfc-generated"] - - ["::internal_constructor", "Argument[2]", "ReturnValue.Field[core::panic::location::Location::col]", "value", "dfc-generated"] - - ["::line", "Argument[self].Field[core::panic::location::Location::line]", "ReturnValue", "value", "dfc-generated"] - - ["::can_unwind", "Argument[self].Field[core::panic::panic_info::PanicInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] - - ["::force_no_backtrace", "Argument[self].Field[core::panic::panic_info::PanicInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] - - ["::location", "Argument[self].Field[core::panic::panic_info::PanicInfo::location]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::message", "Argument[self].Field[core::panic::panic_info::PanicInfo::message]", "ReturnValue.Field[core::panic::panic_info::PanicMessage::message]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cmp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::column", "Argument[self].Reference.Field[core::panic::location::Location::col]", "ReturnValue", "value", "dfc-generated"] + - ["::line", "Argument[self].Reference.Field[core::panic::location::Location::line]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::can_unwind", "Argument[self].Reference.Field[core::panic::panic_info::PanicInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] + - ["::force_no_backtrace", "Argument[self].Reference.Field[core::panic::panic_info::PanicInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] + - ["::location", "Argument[self].Reference.Field[core::panic::panic_info::PanicInfo::location]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::message", "Argument[self].Reference.Field[core::panic::panic_info::PanicInfo::message]", "ReturnValue.Field[core::panic::panic_info::PanicMessage::message]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::message]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::location]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::can_unwind]", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::force_no_backtrace]", "value", "dfc-generated"] - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[core::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[core::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[core::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[core::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::call_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["::get_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[0].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner_unchecked", "Argument[0].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["::into_ref", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::map_unchecked", "Argument[0].ReturnValue.Reference", "ReturnValue", "value", "dfc-generated"] - - ["::map_unchecked", "Argument[0].ReturnValue", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::map_unchecked", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["::map_unchecked_mut", "Argument[0].ReturnValue.Reference", "ReturnValue", "value", "dfc-generated"] - - ["::map_unchecked_mut", "Argument[0].ReturnValue", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::map_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer].Field[0]", "ReturnValue.Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["::map_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::map_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::new", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::set", "Argument[0]", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["::static_mut", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::static_mut", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::static_ref", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::static_ref", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map_unchecked", "Argument[0].ReturnValue", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::map_unchecked_mut", "Argument[0].ReturnValue", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::static_mut", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::static_ref", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::pin::unsafe_pinned::UnsafePinned::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[self].Field[core::pin::unsafe_pinned::UnsafePinned::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[core::pin::unsafe_pinned::UnsafePinned::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::raw_get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::raw_get_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::max", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::max", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::ptr::unique::Unique::pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_non_null_ptr", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue", "value", "dfc-generated"] + - ["::from_non_null", "Argument[0]", "ReturnValue.Field[core::ptr::unique::Unique::pointer]", "value", "dfc-generated"] - ["::new_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::range::Range::end]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::range::Range::start]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::range::Range::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::range::Range::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::range::RangeFrom::start]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::range::RangeFrom::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::range::RangeInclusive::end]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::range::RangeInclusive::start]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::into_bounds", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::end_bound", "Argument[self].Field[core::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["::start_bound", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::end_bound", "Argument[self].Reference.Field[core::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["::start_bound", "Argument[self].Reference.Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["::into_slice_range", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::range::Range::start]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::last", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::last", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::min", "Argument[self].Field[0].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::min", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[0].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::remainder", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::remainder", "Argument[self].Field[0].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::range::RangeFrom::start]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remainder", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::range::Range::end]", "value", "dfc-generated"] + - ["::remainder", "Argument[self].Field[core::range::iter::IterRange(0)].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::range::Range::start]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::remainder", "Argument[self].Field[core::range::iter::IterRangeFrom(0)].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::range::RangeFrom::start]", "value", "dfc-generated"] - - ["::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::range::iter::IterRangeInclusive(0)].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::last", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::last", "Argument[self].Field[core::range::iter::IterRangeInclusive(0)].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::max", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::max", "Argument[self].Field[core::range::iter::IterRangeInclusive(0)].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::min", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::min", "Argument[self].Field[core::range::iter::IterRangeInclusive(0)].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::range::iter::IterRangeInclusive(0)].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::remainder", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self].Field[core::result::Iter::inner]", "ReturnValue.Field[core::result::Iter::inner]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remainder", "Argument[self].Field[core::range::iter::IterRangeInclusive(0)].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["::remainder", "Argument[self].Field[core::range::iter::IterRangeInclusive(0)].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::range::RangeInclusive::start]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::result::Iter::inner]", "ReturnValue.Field[core::result::Iter::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::IntoIter::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::from_residual", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::branch", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::branch", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["::from_output", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::and", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::and", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::and_then", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::and_then", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["::and_then", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::as_deref", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - ["::as_deref", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] + - ["::as_deref_mut", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - ["::as_deref_mut", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Reference.Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Reference.Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::cloned", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::copied", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::copied", "Argument[self].Field[core::result::Result::Ok(0)].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] @@ -3052,7 +4135,9 @@ extensions: - ["::expect_err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] - ["::flatten", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::flatten", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::inspect", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - ["::inspect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::inspect_err", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - ["::inspect_err", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::into_err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_ok", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] @@ -3063,13 +4148,12 @@ extensions: - ["::iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::iter_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::map", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::fs::File::inner]", "value", "dfc-generated"] - ["::map_err", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::map_or", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::map_or", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::map_or_default", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::map_or_default", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["::map_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::map_or_else", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::map_or_else", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] @@ -3092,369 +4176,502 @@ extensions: - ["::unwrap_or_else", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["::unwrap_or_else", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::unwrap_unchecked", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::ArrayChunks::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::slice::iter::ArrayChunks::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::remainder", "Argument[self].Field[core::slice::iter::ArrayChunks::rem]", "ReturnValue", "value", "dfc-generated"] - - ["::into_remainder", "Argument[self].Field[core::slice::iter::ArrayChunksMut::rem]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::count", "Argument[self].Field[core::slice::iter::ArrayWindows::num]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[core::slice::iter::ArrayWindows::num]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[core::slice::iter::ArrayWindows::num]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[core::slice::iter::ArrayWindows::num]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[core::slice::iter::ArrayWindows::num]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::ChunkBy::predicate]", "ReturnValue.Field[core::slice::iter::ChunkBy::predicate]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::ChunkBy::slice]", "ReturnValue.Field[core::slice::iter::ChunkBy::slice]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkBy::slice]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunkBy::predicate]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkByMut::slice]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunkByMut::predicate]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::Chunks::chunk_size]", "ReturnValue.Field[core::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::Chunks::v]", "ReturnValue.Field[core::slice::iter::Chunks::v]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "Argument[self].Field[core::slice::iter::Chunks::v].Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::last", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "Argument[self].Field[core::slice::iter::Chunks::v].Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Chunks::chunk_size]", "ReturnValue.Field[core::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Chunks::v]", "ReturnValue.Field[core::slice::iter::Chunks::v]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::Chunks::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::ChunksExact::chunk_size]", "ReturnValue.Field[core::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::ChunksExact::rem]", "ReturnValue.Field[core::slice::iter::ChunksExact::rem]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::ChunksExact::v]", "ReturnValue.Field[core::slice::iter::ChunksExact::v]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::ChunksExact::v].Element", "Argument[self].Field[core::slice::iter::ChunksExact::v].Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::ChunksExact::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::ChunksExact::chunk_size]", "ReturnValue.Field[core::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::ChunksExact::rem]", "ReturnValue.Field[core::slice::iter::ChunksExact::rem]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::ChunksExact::v]", "ReturnValue.Field[core::slice::iter::ChunksExact::v]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] - - ["::remainder", "Argument[self].Field[core::slice::iter::ChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remainder", "Argument[self].Reference.Field[core::slice::iter::ChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_remainder", "Argument[self].Field[core::slice::iter::ChunksExactMut::rem]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunksExactMut::chunk_size]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksMut::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunksMut::chunk_size]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::GenericSplitN::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::Iter::_marker]", "ReturnValue.Field[core::slice::iter::Iter::_marker]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::Iter::end_or_len]", "ReturnValue.Field[core::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::Iter::ptr]", "ReturnValue.Field[core::slice::iter::Iter::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Iter::_marker]", "ReturnValue.Field[core::slice::iter::Iter::_marker]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Iter::end_or_len]", "ReturnValue.Field[core::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Iter::ptr]", "ReturnValue.Field[core::slice::iter::Iter::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find_map", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::find_map", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::RChunks::chunk_size]", "ReturnValue.Field[core::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::RChunks::v]", "ReturnValue.Field[core::slice::iter::RChunks::v]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "Argument[self].Field[core::slice::iter::RChunks::v].Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::last", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "Argument[self].Field[core::slice::iter::RChunks::v].Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::RChunks::chunk_size]", "ReturnValue.Field[core::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::RChunks::v]", "ReturnValue.Field[core::slice::iter::RChunks::v]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunks::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::RChunksExact::chunk_size]", "ReturnValue.Field[core::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::RChunksExact::rem]", "ReturnValue.Field[core::slice::iter::RChunksExact::rem]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::RChunksExact::v]", "ReturnValue.Field[core::slice::iter::RChunksExact::v]", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::RChunksExact::v].Element", "Argument[self].Field[core::slice::iter::RChunksExact::v].Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::RChunksExact::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::RChunksExact::chunk_size]", "ReturnValue.Field[core::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::RChunksExact::rem]", "ReturnValue.Field[core::slice::iter::RChunksExact::rem]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::RChunksExact::v]", "ReturnValue.Field[core::slice::iter::RChunksExact::v]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] - - ["::remainder", "Argument[self].Field[core::slice::iter::RChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remainder", "Argument[self].Reference.Field[core::slice::iter::RChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_remainder", "Argument[self].Field[core::slice::iter::RChunksExactMut::rem]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunksExactMut::chunk_size]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksMut::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunksMut::chunk_size]", "value", "dfc-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self].Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self].Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self].Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::finish", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::as_slice", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Split::finished]", "ReturnValue.Field[core::slice::iter::Split::finished]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Split::pred]", "ReturnValue.Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::slice::iter::Split::v]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self].Reference.Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::finish", "Argument[self].Reference.Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::as_slice", "Argument[self].Reference.Field[core::slice::iter::Split::v]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::Split::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Reference", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Reference", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::SplitInclusive::finished]", "ReturnValue.Field[core::slice::iter::SplitInclusive::finished]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::SplitInclusive::pred]", "ReturnValue.Field[core::slice::iter::SplitInclusive::pred]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::SplitInclusive::v]", "ReturnValue.Field[core::slice::iter::SplitInclusive::v]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusive::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitInclusive::pred]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::pred]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self].Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::size_hint", "Argument[self].Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::Windows::size]", "ReturnValue.Field[core::slice::iter::Windows::size]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::slice::iter::Windows::v]", "ReturnValue.Field[core::slice::iter::Windows::v]", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["::nth_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::last", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["::nth", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Windows::size]", "ReturnValue.Field[core::slice::iter::Windows::size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[core::slice::iter::Windows::v]", "ReturnValue.Field[core::slice::iter::Windows::v]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::Windows::v]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::Windows::size]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::slice::sort::stable::drift::DriftsortRun(0)]", "ReturnValue.Field[core::slice::sort::stable::drift::DriftsortRun(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::slice::sort::stable::drift::DriftsortRun(0)]", "ReturnValue.Field[core::slice::sort::stable::drift::DriftsortRun(0)]", "value", "dfc-generated"] - ["::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::call", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::call_once", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::error::Utf8Error::valid_up_to]", "ReturnValue.Field[core::str::error::Utf8Error::valid_up_to].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::error::Utf8Error::valid_up_to]", "ReturnValue.Field[core::str::error::Utf8Error::valid_up_to]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::error_len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::valid_up_to", "Argument[self].Field[core::str::error::Utf8Error::valid_up_to]", "ReturnValue", "value", "dfc-generated"] + - ["::valid_up_to", "Argument[self].Reference.Field[core::str::error::Utf8Error::valid_up_to]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::str::iter::CharIndices::front_offset]", "ReturnValue.Field[core::str::iter::CharIndices::front_offset].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::iter::CharIndices::front_offset]", "ReturnValue.Field[core::str::iter::CharIndices::front_offset]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self].Field[core::str::iter::CharIndices::front_offset]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["::offset", "Argument[self].Field[core::str::iter::CharIndices::front_offset]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[core::str::iter::EncodeUtf16::extra]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[core::str::iter::CharIndices::front_offset]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["::offset", "Argument[self].Reference.Field[core::str::iter::CharIndices::front_offset]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::iter::Chars::iter].Field[core::slice::iter::Iter::_marker]", "ReturnValue.Field[core::str::iter::Chars::iter].Field[core::slice::iter::Iter::_marker]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::iter::Chars::iter].Field[core::slice::iter::Iter::end_or_len]", "ReturnValue.Field[core::str::iter::Chars::iter].Field[core::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::iter::Chars::iter].Field[core::slice::iter::Iter::ptr]", "ReturnValue.Field[core::str::iter::Chars::iter].Field[core::slice::iter::Iter::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::str::iter::EncodeUtf16::extra]", "ReturnValue.Field[core::str::iter::EncodeUtf16::extra].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::iter::EncodeUtf16::extra]", "ReturnValue.Field[core::str::iter::EncodeUtf16::extra]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[core::str::iter::EncodeUtf16::extra]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self].Field[core::str::iter::SplitNInternal::iter].Reference", "ReturnValue.Field[core::str::iter::SplitNInternal::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[core::str::iter::SplitNInternal::iter]", "ReturnValue.Field[core::str::iter::SplitNInternal::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::invalid", "Argument[self].Field[core::str::lossy::Utf8Chunk::invalid]", "ReturnValue", "value", "dfc-generated"] - - ["::valid", "Argument[self].Field[core::str::lossy::Utf8Chunk::valid]", "ReturnValue", "value", "dfc-generated"] - - ["::debug", "Argument[self].Field[core::str::lossy::Utf8Chunks::source]", "ReturnValue.Field[core::str::lossy::Debug(0)]", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::invalid", "Argument[self].Reference.Field[core::str::lossy::Utf8Chunk::invalid]", "ReturnValue", "value", "dfc-generated"] + - ["::valid", "Argument[self].Reference.Field[core::str::lossy::Utf8Chunk::valid]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::debug", "Argument[self].Reference.Field[core::str::lossy::Utf8Chunks::source]", "ReturnValue.Field[core::str::lossy::Debug(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_match_back", "Argument[self].Field[core::str::pattern::CharSearcher::finger]", "Argument[self].Field[core::str::pattern::CharSearcher::finger_back]", "value", "dfc-generated"] - - ["::next_match_back", "Argument[self].Field[core::str::pattern::CharSearcher::finger_back]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["::haystack", "Argument[self].Field[core::str::pattern::CharSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] + - ["::next_match_back", "Argument[self].Reference.Field[core::str::pattern::CharSearcher::finger]", "Argument[self].Reference.Field[core::str::pattern::CharSearcher::finger_back]", "value", "dfc-generated"] + - ["::next_match_back", "Argument[self].Reference.Field[core::str::pattern::CharSearcher::finger_back]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["::haystack", "Argument[self].Reference.Field[core::str::pattern::CharSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_match", "Argument[self].Field[core::str::pattern::CharSearcher::finger]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["::next_match", "Argument[self].Field[core::str::pattern::CharSearcher::finger_back]", "Argument[self].Field[core::str::pattern::CharSearcher::finger]", "value", "dfc-generated"] + - ["::next_match", "Argument[self].Reference.Field[core::str::pattern::CharSearcher::finger]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["::next_match", "Argument[self].Reference.Field[core::str::pattern::CharSearcher::finger_back]", "Argument[self].Reference.Field[core::str::pattern::CharSearcher::finger]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::matching", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - ["::matching", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - ["::into_searcher", "Argument[0]", "ReturnValue.Field[core::str::pattern::MultiCharEqSearcher::haystack]", "value", "dfc-generated"] - - ["::into_searcher", "Argument[self].Field[0]", "ReturnValue.Field[core::str::pattern::MultiCharEqSearcher::char_eq]", "value", "dfc-generated"] - ["::into_searcher", "Argument[self].Field[core::str::pattern::MultiCharEqPattern(0)]", "ReturnValue.Field[core::str::pattern::MultiCharEqSearcher::char_eq]", "value", "dfc-generated"] - - ["::haystack", "Argument[self].Field[core::str::pattern::MultiCharEqSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::haystack", "Argument[self].Reference.Field[core::str::pattern::MultiCharEqSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::matching", "Argument[0]", "ReturnValue.Field[core::str::pattern::SearchStep::Match(0)]", "value", "dfc-generated"] - ["::matching", "Argument[1]", "ReturnValue.Field[core::str::pattern::SearchStep::Match(1)]", "value", "dfc-generated"] - ["::rejecting", "Argument[0]", "ReturnValue.Field[core::str::pattern::SearchStep::Reject(0)]", "value", "dfc-generated"] - ["::rejecting", "Argument[1]", "ReturnValue.Field[core::str::pattern::SearchStep::Reject(1)]", "value", "dfc-generated"] - - ["::haystack", "Argument[self].Field[core::str::pattern::StrSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_match_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::haystack", "Argument[self].Reference.Field[core::str::pattern::StrSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_match", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::str::pattern::Utf8Pattern::CharPattern(0)]", "ReturnValue.Field[core::str::pattern::Utf8Pattern::CharPattern(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::str::pattern::Utf8Pattern::CharPattern(0)]", "ReturnValue.Field[core::str::pattern::Utf8Pattern::CharPattern(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_ascii", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ascii_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_bytes_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::char_indices", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::chars", "Argument[self].Element", "ReturnValue.Field[core::str::iter::Chars::iter].Element", "value", "dfc-generated"] - - ["::encode_utf16", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ceil_char_boundary", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::floor_char_boundary", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::from_utf8_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_utf8_unchecked_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::replace", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::rsplitn", "Argument[0]", "ReturnValue.Field[core::str::iter::RSplitN(0)].Field[core::str::iter::SplitNInternal::count]", "value", "dfc-generated"] - ["::splitn", "Argument[0]", "ReturnValue.Field[core::str::iter::SplitN(0)].Field[core::str::iter::SplitNInternal::count]", "value", "dfc-generated"] + - ["::trim_prefix", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::trim_suffix", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI128::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI128::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI16::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI16::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI32::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI32::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI64::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI64::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI8::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI8::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicIsize::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicIsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicIsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicIsize::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicPtr::p].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicPtr::p].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicPtr::p].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicPtr::p].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU128::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU128::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU16::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU16::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU32::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU32::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU64::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU64::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU8::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU8::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicUsize::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::atomic::AtomicUsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[core::sync::atomic::AtomicUsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicUsize::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::sync::exclusive::Exclusive::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_pin_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_pin_mut", "Argument[self].Field[core::pin::Pin::__pointer].Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue.Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["::get_pin_mut", "Argument[self].Field[core::pin::Pin::__pointer].Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::sync::exclusive::Exclusive::inner]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_residual", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::branch", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::branch", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)].Field[core::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] + - ["::branch", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::async_gen_ready", "Argument[0]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] - ["::map", "Argument[self].Field[core::task::poll::Poll::Ready(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["::map_err", "Argument[0].ReturnValue", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map_err", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["::map_err", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::map_err", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::map_ok", "Argument[0].ReturnValue", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::map_ok", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map_ok", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::map_ok", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ext", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_waker", "Argument[0]", "ReturnValue.Field[core::task::wake::Context::waker]", "value", "dfc-generated"] - - ["::local_waker", "Argument[self].Field[core::task::wake::Context::local_waker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::waker", "Argument[self].Field[core::task::wake::Context::waker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::build", "Argument[self].Field[core::task::wake::ContextBuilder::ext]", "ReturnValue.Field[core::task::wake::Context::ext].Field[core::panic::unwind_safe::AssertUnwindSafe(0)]", "value", "dfc-generated"] - - ["::build", "Argument[self].Field[core::task::wake::ContextBuilder::local_waker]", "ReturnValue.Field[core::task::wake::Context::local_waker]", "value", "dfc-generated"] - - ["::build", "Argument[self].Field[core::task::wake::ContextBuilder::waker]", "ReturnValue.Field[core::task::wake::Context::waker]", "value", "dfc-generated"] + - ["::local_waker", "Argument[self].Reference.Field[core::task::wake::Context::local_waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::waker", "Argument[self].Reference.Field[core::task::wake::Context::waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::ext", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::ext].Field[core::task::wake::ExtData::Some(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[core::task::wake::Context::local_waker]", "ReturnValue.Field[core::task::wake::ContextBuilder::local_waker]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[core::task::wake::Context::waker]", "ReturnValue.Field[core::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] + - ["::from", "Argument[0].Reference.Field[core::task::wake::Context::local_waker]", "ReturnValue.Field[core::task::wake::ContextBuilder::local_waker]", "value", "dfc-generated"] + - ["::from", "Argument[0].Reference.Field[core::task::wake::Context::waker]", "ReturnValue.Field[core::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - ["::from_waker", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - ["::local_waker", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::local_waker]", "value", "dfc-generated"] - ["::waker", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["::data", "Argument[self].Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::data]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::drop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::data", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_raw", "Argument[0]", "ReturnValue.Field[core::task::wake::LocalWaker::waker]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::data]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::vtable]", "value", "dfc-generated"] - - ["::vtable", "Argument[self].Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::vtable]", "ReturnValue", "value", "dfc-generated"] + - ["::vtable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wake_by_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::task::wake::RawWaker::data]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::task::wake::RawWaker::vtable]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::task::wake::RawWakerVTable::clone]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::task::wake::RawWakerVTable::wake]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::task::wake::RawWakerVTable::wake_by_ref]", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::task::wake::RawWakerVTable::drop]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["::data", "Argument[self].Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::data]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::drop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::data", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_raw", "Argument[0]", "ReturnValue.Field[core::task::wake::Waker::waker]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::data]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::vtable]", "value", "dfc-generated"] - - ["::vtable", "Argument[self].Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::vtable]", "ReturnValue", "value", "dfc-generated"] + - ["::vtable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wake_by_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[core::time::Duration::secs]", "ReturnValue.Field[core::time::Duration::secs].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[core::time::Duration::secs]", "ReturnValue.Field[core::time::Duration::secs]", "value", "dfc-generated"] - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::as_micros", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_millis", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_millis_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_millis_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_nanos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_secs", "Argument[self].Field[core::time::Duration::secs]", "ReturnValue", "value", "dfc-generated"] - - ["::as_secs_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_secs_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::checked_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::checked_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_duration_f32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_duration_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_duration_f64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_duration_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_secs", "Argument[self].Reference.Field[core::time::Duration::secs]", "ReturnValue", "value", "dfc-generated"] - ["::from_days", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_hours", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_micros", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -3465,548 +4682,248 @@ extensions: - ["::from_weeks", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::time::Duration::secs]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::time::Duration::nanos].Field[core::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] - - ["::saturating_mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "value", "dfc-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::hi].Field[libm::math::support::big::u256::hi]", "value", "dfc-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "value", "dfc-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::hi].Field[libm::math::support::big::u256::hi]", "value", "dfc-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "value", "dfc-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hex", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hex", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_elem", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::full_div_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::full_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::widen_hi", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::zero_widen", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::ascii_change_case_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_ascii_lowercase", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_ascii_uppercase", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::index", "Argument[0].Reference.Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index_mut", "Argument[0].Reference.Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::product", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::cast_lossy", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_unsigned", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ascii_radix", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::repeat_u16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] @@ -4024,6 +4941,7 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] @@ -4057,11 +4975,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] @@ -4071,6 +4991,7 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] @@ -4088,14 +5009,17 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] @@ -4105,16 +5029,20 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x1(0)].Field[core_arch::core_arch::simd::f64x1(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x1(0)].Field[core_arch::core_arch::simd::f64x1(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] @@ -4124,6 +5052,7 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] @@ -4141,9 +5070,11 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] @@ -4177,11 +5108,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] @@ -4191,6 +5124,7 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] @@ -4208,9 +5142,11 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] @@ -4244,11 +5180,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] @@ -4258,16 +5196,20 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x1(0)].Field[core_arch::core_arch::simd::i64x1(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x1(0)].Field[core_arch::core_arch::simd::i64x1(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] @@ -4277,6 +5219,7 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] @@ -4294,9 +5237,11 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] @@ -4330,11 +5275,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] @@ -4400,6 +5347,7 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] @@ -4409,6 +5357,14 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] @@ -4426,9 +5382,11 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] @@ -4462,11 +5420,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] @@ -4532,6 +5492,7 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] @@ -4541,6 +5502,7 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] @@ -4558,9 +5520,11 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] @@ -4594,11 +5558,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] @@ -4608,16 +5574,20 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x1(0)].Field[core_arch::core_arch::simd::u64x1(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x1(0)].Field[core_arch::core_arch::simd::u64x1(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] @@ -4627,6 +5597,7 @@ extensions: - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] @@ -4644,9 +5615,11 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] @@ -4680,11 +5653,13 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] @@ -4750,6 +5725,7 @@ extensions: - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] @@ -4760,90 +5736,322 @@ extensions: - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - ["::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - ["::from_bits", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "value", "dfc-generated"] - - ["::to_bits", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::to_bits", "Argument[self].Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::simd_clamp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::simd_clamp", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::simd_clamp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::simd_max", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::simd_max", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::simd_min", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::simd_min", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::select_mask", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::select_mask", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::select_mask", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_bits", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::without_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::without_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_mut_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from_c", "Argument[0]", "ReturnValue.Field[intrinsic-test::argument::Argument::pos]", "value", "dfc-generated"] - - ["::from_c", "Argument[1].Element", "ReturnValue.Field[intrinsic-test::argument::Argument::name].Reference", "value", "dfc-generated"] - - ["::type_and_name_from_c", "Argument[0].Element", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["::load_values_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::load_values_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::load_values_rust", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_c", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_c", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_rust", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_rust", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_rust", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::generate_loop_rust", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::print_result_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::print_result_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::c_single_vector_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::c_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::kind", "Argument[self].Reference.Field[intrinsic-test::types::IntrinsicType::Type::kind]", "ReturnValue", "value", "dfc-generated"] - - ["::populate_random", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::rust_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::create", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(0)].Field[intrinsic-test::arm::ArmArchitectureTest::cli_options]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[intrinsic-test::arm::intrinsic::ArmIntrinsicType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[intrinsic-test::arm::intrinsic::ArmIntrinsicType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::c_single_vector_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::c_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rust_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[intrinsic-test::common::argument::Argument::pos]", "ReturnValue.Field[intrinsic-test::common::argument::Argument::pos].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[intrinsic-test::common::argument::Argument::pos]", "ReturnValue.Field[intrinsic-test::common::argument::Argument::pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_c", "Argument[0]", "ReturnValue.Field[intrinsic-test::common::argument::Argument::pos]", "value", "dfc-generated"] + - ["::from_c", "Argument[3]", "ReturnValue.Field[intrinsic-test::common::argument::Argument::constraint]", "value", "dfc-generated"] + - ["::type_and_name_from_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::load_values_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::load_values_rust", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::add_arch_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::add_extra_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::add_extra_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_compiler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_cxx_toolchain_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_opt_level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_project_root", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::command_mut", "Argument[self].Reference.Field[intrinsic-test::common::compile_c::CppCompilation(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[intrinsic-test::common::constraint::Constraint::Equal(0)]", "ReturnValue.Field[intrinsic-test::common::constraint::Constraint::Equal(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[intrinsic-test::common::constraint::Constraint::Equal(0)]", "ReturnValue.Field[intrinsic-test::common::constraint::Constraint::Equal(0)]", "value", "dfc-generated"] + - ["::try_from", "Argument[0].Field[intrinsic-test::arm::json_parser::ArgPrep::Immediate::min]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[intrinsic-test::common::constraint::Constraint::Equal(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[intrinsic-test::common::indentation::Indentation(0)]", "ReturnValue.Field[intrinsic-test::common::indentation::Indentation(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[intrinsic-test::common::indentation::Indentation(0)]", "ReturnValue.Field[intrinsic-test::common::indentation::Indentation(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::nested", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::print_result_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::print_result_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::print_result_c", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::results", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_call_param_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::c_scalar_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::inner_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::is_ptr", "Argument[self].Reference.Field[intrinsic-test::common::intrinsic_helpers::IntrinsicType::ptr]", "ReturnValue", "value", "dfc-generated"] + - ["::kind", "Argument[self].Reference.Field[intrinsic-test::common::intrinsic_helpers::IntrinsicType::kind]", "ReturnValue", "value", "dfc-generated"] + - ["::num_lanes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::num_vectors", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::populate_random", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::rust_scalar_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::acos", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::acosh", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::asin", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::atan2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::atan", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::cbrt", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::ceil", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::cos", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::erf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::erfc", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::exp10", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::exp10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::exp2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::exp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::expm1", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fdim", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fdim", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::floor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmax", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmax", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximum_numf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximum_numf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmaximumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fminimum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fminimum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fminimum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fminimum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fminimum_numf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fminimum_numf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fminimumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fminimumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmod", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::frexp", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::jn", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::ldexp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::lgamma", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::lgamma_r", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::log10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::log1p", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::log2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::log", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::modf", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::modf", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::nextafter", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::pow", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::pow", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::remainder", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::remquo", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::rint", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::round", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::roundevem", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::roundeven", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::scalbn", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sin", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::sincos", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::sinh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::tan", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::tgamma", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::trunc", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::y0", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::y1", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::yn", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hi", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::i256::hi].Field[libm::math::support::big::i256::hi]", "ReturnValue", "value", "dfc-generated"] + - ["::lo", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsigned", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::i256::lo].Field[libm::math::support::big::i256::lo]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hi", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::u256::hi].Field[libm::math::support::big::u256::hi]", "ReturnValue", "value", "dfc-generated"] + - ["::lo", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "ReturnValue", "value", "dfc-generated"] + - ["::signed", "Argument[self].Field[compiler_builtins::math::libm_math::support::big::u256::lo].Field[libm::math::support::big::u256::lo]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::big::i256::lo].Field[libm::math::support::big::i256::lo]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::status].Field[libm::math::support::env::FpResult::status]", "value", "dfc-generated"] + - ["::ok", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::Status(0)].Field[libm::math::support::env::Status(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bits", "Argument[self].Reference.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from_bits", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::feature_detect::Flags(0)].Field[libm::math::support::feature_detect::Flags(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[libm_macros::shared::MathOpInfo::public]", "ReturnValue.Field[libm_macros::shared::MathOpInfo::public].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[libm_macros::shared::MathOpInfo::public]", "ReturnValue.Field[libm_macros::shared::MathOpInfo::public]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::range_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::range_start", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::unwrap_float", "Argument[self].Field[libm_test::domain::EitherPrim::Float(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_int", "Argument[self].Field[libm_test::domain::EitherPrim::Int(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from_bits", "Argument[0]", "ReturnValue.Field[libm_test::f8_impl::f8(0)]", "value", "dfc-generated"] + - ["::to_bits", "Argument[self].Field[libm_test::f8_impl::f8(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::to_bits_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[libm_test::f8_impl::f8(0)]", "ReturnValue.Field[libm_test::f8_impl::f8(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[libm_test::f8_impl::f8(0)]", "ReturnValue.Field[libm_test::f8_impl::f8(0)]", "value", "dfc-generated"] + - ["::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_bits", "Argument[0]", "ReturnValue.Field[libm_test::f8_impl::f8(0)]", "value", "dfc-generated"] + - ["::to_bits", "Argument[self].Field[libm_test::f8_impl::f8(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::to_bits_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[libm_test::generate::KnownSize::iter]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[libm_test::generate::KnownSize::total]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::extensive", "Argument[0]", "Argument[self].Field[libm_test::run_cfg::CheckCtx::extensive]", "value", "dfc-generated"] + - ["::extensive", "Argument[0]", "ReturnValue.Field[libm_test::run_cfg::CheckCtx::extensive]", "value", "dfc-generated"] + - ["::extensive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[libm_test::run_cfg::CheckCtx::fn_ident]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[libm_test::run_cfg::CheckCtx::basis]", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[libm_test::run_cfg::CheckCtx::gen_kind]", "value", "dfc-generated"] + - ["::override_iterations", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::delimiter", "Argument[self].Field[0].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue", "value", "dfc-generated"] - - ["::delimiter", "Argument[self].Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::delimiter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::delimiter]", "value", "dfc-generated"] - - ["::new", "Argument[1].Field[0]", "ReturnValue.Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::stream]", "value", "dfc-generated"] - ["::new", "Argument[1].Field[proc_macro::TokenStream(0)]", "ReturnValue.Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::stream]", "value", "dfc-generated"] - - ["::stream", "Argument[self].Field[0].Field[proc_macro::bridge::Group::stream]", "ReturnValue.Field[proc_macro::TokenStream(0)]", "value", "dfc-generated"] - - ["::stream", "Argument[self].Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::stream]", "ReturnValue.Field[proc_macro::TokenStream(0)]", "value", "dfc-generated"] - - ["::new", "Argument[1].Field[0]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] + - ["::span", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::span_close", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::span_open", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1].Field[proc_macro::Span(0)]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] - - ["::new_raw", "Argument[1].Field[0]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] - ["::new_raw", "Argument[1].Field[proc_macro::Span(0)]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] - ["::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::span", "Argument[self].Field[0].Field[proc_macro::bridge::Ident::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["::span", "Argument[self].Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] + - ["::span", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::span", "Argument[self].Field[0].Field[proc_macro::bridge::Literal::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["::span", "Argument[self].Field[proc_macro::Literal(0)].Field[proc_macro::bridge::Literal::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] + - ["::span", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::span", "Argument[self].Field[0].Field[proc_macro::bridge::Punct::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["::span", "Argument[self].Field[proc_macro::Punct(0)].Field[proc_macro::bridge::Punct::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] + - ["::span", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::byte_range", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::column", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::error", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::file", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::help", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::line", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::located_at", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::located_at", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::note", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recover_proc_macro_span", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::resolved_at", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::resolved_at", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::save_span", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::source", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::source_text", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::start", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::warning", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_token_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::expand_expr", "Argument[self].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::expand_expr", "Argument[self].Field[proc_macro::TokenStream(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::expand_expr", "Argument[self].Reference.Field[proc_macro::TokenStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Group(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Ident(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Literal(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Punct(0)]", "value", "dfc-generated"] + - ["::span", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_single", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::DelimSpan::close]", "value", "dfc-generated"] - ["::from_single", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::DelimSpan::entire]", "value", "dfc-generated"] - ["::from_single", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::DelimSpan::open]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::mark", "Argument[0].Field[proc_macro::bridge::Diagnostic::level]", "ReturnValue.Field[proc_macro::bridge::Diagnostic::level]", "value", "dfc-generated"] + - ["::mark", "Argument[0].Field[proc_macro::bridge::Diagnostic::message]", "ReturnValue.Field[proc_macro::bridge::Diagnostic::message]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Diagnostic::level]", "ReturnValue.Field[proc_macro::bridge::Diagnostic::level]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Diagnostic::message]", "ReturnValue.Field[proc_macro::bridge::Diagnostic::message]", "value", "dfc-generated"] + - ["::mark", "Argument[0].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue.Field[proc_macro::bridge::Group::delimiter]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue.Field[proc_macro::bridge::Group::delimiter]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::bridge::Ident::is_raw]", "ReturnValue.Field[proc_macro::bridge::Ident::is_raw].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::bridge::Ident::is_raw]", "ReturnValue.Field[proc_macro::bridge::Ident::is_raw]", "value", "dfc-generated"] + - ["::mark", "Argument[0].Field[proc_macro::bridge::Ident::is_raw]", "ReturnValue.Field[proc_macro::bridge::Ident::is_raw]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Ident::is_raw]", "ReturnValue.Field[proc_macro::bridge::Ident::is_raw]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::mark", "Argument[0].Field[proc_macro::bridge::Literal::kind]", "ReturnValue.Field[proc_macro::bridge::Literal::kind]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Literal::kind]", "ReturnValue.Field[proc_macro::bridge::Literal::kind]", "value", "dfc-generated"] - ["::mark", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::Marked::value]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Marked::value]", "ReturnValue", "value", "dfc-generated"] - ["::decode", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::mark", "Argument[0].Field[proc_macro::bridge::Punct::ch]", "ReturnValue.Field[proc_macro::bridge::Punct::ch]", "value", "dfc-generated"] + - ["::mark", "Argument[0].Field[proc_macro::bridge::Punct::joint]", "ReturnValue.Field[proc_macro::bridge::Punct::joint]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Punct::ch]", "ReturnValue.Field[proc_macro::bridge::Punct::ch]", "value", "dfc-generated"] - ["::unmark", "Argument[self].Field[proc_macro::bridge::Punct::joint]", "ReturnValue.Field[proc_macro::bridge::Punct::joint]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::mark", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[proc_macro::bridge::buffer::Buffer::len]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::drop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::emit_diagnostic", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::injected_env_var", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::literal_from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::track_env_var", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::track_env_var", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::track_path", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::attr", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::Attr::name]", "value", "dfc-generated"] - ["::bang", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::Bang::name]", "value", "dfc-generated"] - ["::custom_derive", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::CustomDerive::trait_name]", "value", "dfc-generated"] @@ -4851,14 +6059,49 @@ extensions: - ["::name", "Argument[self].Field[proc_macro::bridge::client::ProcMacro::Attr::name]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self].Field[proc_macro::bridge::client::ProcMacro::Bang::name]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self].Field[proc_macro::bridge::client::ProcMacro::CustomDerive::trait_name]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::bridge::client::Span::handle]", "ReturnValue.Field[proc_macro::bridge::client::Span::handle].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::bridge::client::Span::handle]", "ReturnValue.Field[proc_macro::bridge::client::Span::handle]", "value", "dfc-generated"] + - ["::byte_range", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::column", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::debug", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::file", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::join", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::join", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::line", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::local_file", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::parent", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recover_proc_macro_span", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::resolved_at", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::resolved_at", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::save_span", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::source", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::source_text", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::start", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::subspan", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::subspan", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::subspan", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::concat_streams", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::concat_streams", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::concat_trees", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::concat_trees", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::drop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expand_expr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_token_tree", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_trees", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::is_empty", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::copy", "Argument[self].Field[proc_macro::bridge::handle::InternedStore::owned].Element", "ReturnValue", "value", "dfc-generated"] + - ["::copy", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::handle::InternedStore::owned].Field[proc_macro::bridge::handle::OwnedStore::counter]", "value", "dfc-generated"] + - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::handle::OwnedStore::counter]", "value", "dfc-generated"] - ["::as_str", "Argument[self].Field[proc_macro::bridge::rpc::PanicMessage::StaticStr(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::as_str", "Argument[self].Field[proc_macro::bridge::rpc::PanicMessage::String(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] @@ -4866,107 +6109,216 @@ extensions: - ["::run_bridge_and_client", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::server::MaybeCrossThread::cross_thread]", "value", "dfc-generated"] - ["::run_bridge_and_client", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[proc_macro::diagnostic::Children(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::bridge::symbol::Symbol(0)]", "ReturnValue.Field[proc_macro::bridge::symbol::Symbol(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::bridge::symbol::Symbol(0)]", "ReturnValue.Field[proc_macro::bridge::symbol::Symbol(0)]", "value", "dfc-generated"] + - ["::new_ident", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::normalize_and_validate_ident", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[proc_macro::diagnostic::Children(0)].Field[core::slice::iter::Iter::_marker]", "ReturnValue.Field[proc_macro::diagnostic::Children(0)].Field[core::slice::iter::Iter::_marker]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::diagnostic::Children(0)].Field[core::slice::iter::Iter::end_or_len]", "ReturnValue.Field[proc_macro::diagnostic::Children(0)].Field[core::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[proc_macro::diagnostic::Children(0)].Field[core::slice::iter::Iter::ptr]", "ReturnValue.Field[proc_macro::diagnostic::Children(0)].Field[core::slice::iter::Iter::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::level", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::level]", "ReturnValue", "value", "dfc-generated"] - - ["::message", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::message]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::level", "Argument[self].Reference.Field[proc_macro::diagnostic::Diagnostic::level]", "ReturnValue", "value", "dfc-generated"] + - ["::message", "Argument[self].Reference.Field[proc_macro::diagnostic::Diagnostic::message]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[proc_macro::diagnostic::Diagnostic::level]", "value", "dfc-generated"] - ["::note", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::set_level", "Argument[0]", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::level]", "value", "dfc-generated"] + - ["::set_level", "Argument[0]", "Argument[self].Reference.Field[proc_macro::diagnostic::Diagnostic::level]", "value", "dfc-generated"] + - ["::set_message", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::span_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::span_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::span_note", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::span_warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::spanned", "Argument[1]", "ReturnValue.Field[proc_macro::diagnostic::Diagnostic::level]", "value", "dfc-generated"] - - ["::spans", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::spans]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::spans", "Argument[self].Reference.Field[proc_macro::diagnostic::Diagnostic::spans]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::sp", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::Frame::inner].Field[backtrace::backtrace::Frame::inner].Field[std::backtrace_rs::backtrace::Frame::inner].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Field[proc_macro::quote::RepInterp(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::sp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::ip].Field[backtrace::backtrace::libunwind::Frame::Cloned::ip].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::ip]", "ReturnValue", "value", "dfc-generated"] + - ["::ip", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::ip].Field[backtrace::backtrace::libunwind::Frame::Cloned::ip].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::ip]", "ReturnValue", "value", "dfc-generated"] + - ["::sp", "Argument[self].Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - ["::sp", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::backtrace::libunwind::Frame::Cloned::sp].Field[backtrace::backtrace::libunwind::Frame::Cloned::sp].Field[std::backtrace_rs::backtrace::libunwind::Frame::Cloned::sp]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "value", "dfc-generated"] - - ["::into", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "ReturnValue", "value", "dfc-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::Backtrace::frames].Field[backtrace::capture::Backtrace::frames].Field[std::backtrace_rs::capture::Backtrace::frames]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::frames", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::BacktraceFrame::frame].Field[backtrace::capture::BacktraceFrame::frame].Field[std::backtrace_rs::capture::BacktraceFrame::frame].Field[as_if_std::the_backtrace_crate::capture::Frame::Raw(0)].Field[backtrace::capture::Frame::Raw(0)].Field[std::backtrace_rs::capture::Frame::Raw(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol_address", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::symbols", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::colno].Field[backtrace::capture::BacktraceSymbol::colno].Field[std::backtrace_rs::capture::BacktraceSymbol::colno]", "ReturnValue", "value", "dfc-generated"] - - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::lineno].Field[backtrace::capture::BacktraceSymbol::lineno].Field[std::backtrace_rs::capture::BacktraceSymbol::lineno]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::colno].Field[backtrace::capture::BacktraceSymbol::colno].Field[std::backtrace_rs::capture::BacktraceSymbol::colno]", "ReturnValue", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::capture::BacktraceSymbol::lineno].Field[backtrace::capture::BacktraceSymbol::lineno].Field[std::backtrace_rs::capture::BacktraceSymbol::lineno]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::formatter", "Argument[self].Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "ReturnValue.Field[as_if_std::the_backtrace_crate::capture::TracePtr(0)].Field[backtrace::capture::TracePtr(0)].Field[std::backtrace_rs::capture::TracePtr(0)]", "value", "dfc-generated"] + - ["::formatter", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "ReturnValue", "value", "dfc-generated"] - ["::frame", "Argument[self]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFrameFmt::fmt].Field[backtrace::print::BacktraceFrameFmt::fmt].Field[std::backtrace_rs::print::BacktraceFrameFmt::fmt]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::fmt].Field[backtrace::print::BacktraceFmt::fmt].Field[std::backtrace_rs::print::BacktraceFmt::fmt]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::format].Field[backtrace::print::BacktraceFmt::format].Field[std::backtrace_rs::print::BacktraceFmt::format]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[as_if_std::the_backtrace_crate::print::BacktraceFmt::print_path].Field[backtrace::print::BacktraceFmt::print_path].Field[std::backtrace_rs::print::BacktraceFmt::print_path]", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::Symbol::inner].Field[backtrace::symbolize::Symbol::inner].Field[std::backtrace_rs::symbolize::Symbol::inner].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Symtab::name].Field[backtrace::symbolize::gimli::Symbol::Symtab::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Symtab::name]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] + - ["::backtrace_frame", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::backtrace_symbol", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::print_raw", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::print_raw_with_column", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::symbol", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filename", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filename_raw", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lineno", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_bytes", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_bytes", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] - - ["::addr", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::addr].Field[backtrace::symbolize::gimli::Symbol::Frame::addr].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::addr].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[addr2line::frame::Location::column]", "ReturnValue", "value", "dfc-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::colno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename_raw", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::filename_raw", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[addr2line::frame::Location::line]", "ReturnValue", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::lineno", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::location].Field[backtrace::symbolize::gimli::Symbol::Frame::location].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::location]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::name].Field[backtrace::symbolize::gimli::Symbol::Frame::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::name].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Frame::name].Field[backtrace::symbolize::gimli::Symbol::Frame::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Frame::name]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::name", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::Symbol::Symtab::name].Field[backtrace::symbolize::gimli::Symbol::Symtab::name].Field[std::backtrace_rs::symbolize::gimli::Symbol::Symtab::name]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::SymbolName::bytes].Field[backtrace::symbolize::SymbolName::bytes].Field[std::backtrace_rs::symbolize::SymbolName::bytes]", "value", "dfc-generated"] - - ["::section", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::map", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[as_if_std::the_backtrace_crate::symbolize::gimli::mmap::Mmap::len].Field[backtrace::symbolize::gimli::mmap::Mmap::len].Field[std::backtrace_rs::symbolize::gimli::mmap::Mmap::len]", "value", "dfc-generated"] - - ["::pathname", "Argument[self].Field[as_if_std::the_backtrace_crate::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[backtrace::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[std::backtrace_rs::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::allocate", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pathname", "Argument[self].Reference.Field[as_if_std::the_backtrace_crate::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[backtrace::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname].Field[std::backtrace_rs::symbolize::gimli::parse_running_mmaps::MapsEntry::pathname]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::cache_mmap", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::and_modify", "Argument[self].Field[std::collections::hash::map::Entry::Occupied(0)]", "ReturnValue.Field[std::collections::hash::map::Entry::Occupied(0)]", "value", "dfc-generated"] - ["::and_modify", "Argument[self].Field[std::collections::hash::map::Entry::Vacant(0)]", "ReturnValue.Field[std::collections::hash::map::Entry::Vacant(0)]", "value", "dfc-generated"] - ["::insert_entry", "Argument[self].Field[std::collections::hash::map::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::HashMap::base].Reference", "ReturnValue.Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_insert", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::collections::hash::map::OccupiedError::value]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Iter::base].Reference", "ReturnValue.Field[std::collections::hash::map::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Iter::base]", "ReturnValue.Field[std::collections::hash::map::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Keys::inner].Field[std::collections::hash::map::Iter::base]", "ReturnValue.Field[std::collections::hash::map::Keys::inner].Field[std::collections::hash::map::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Keys::inner].Reference", "ReturnValue.Field[std::collections::hash::map::Keys::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Keys::inner]", "ReturnValue.Field[std::collections::hash::map::Keys::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Values::inner].Field[std::collections::hash::map::Iter::base]", "ReturnValue.Field[std::collections::hash::map::Values::inner].Field[std::collections::hash::map::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Values::inner].Reference", "ReturnValue.Field[std::collections::hash::map::Values::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::map::Values::inner]", "ReturnValue.Field[std::collections::hash::map::Values::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Difference::iter].Field[std::collections::hash::set::Iter::base]", "ReturnValue.Field[std::collections::hash::set::Difference::iter].Field[std::collections::hash::set::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Difference::iter].Reference", "ReturnValue.Field[std::collections::hash::set::Difference::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Difference::iter]", "ReturnValue.Field[std::collections::hash::set::Difference::iter]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[std::collections::hash::map::Iter::base]", "ReturnValue.Field[std::collections::hash::map::Iter::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::insert", "Argument[self].Field[std::collections::hash::set::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::HashSet::base].Reference", "ReturnValue.Field[std::collections::hash::set::HashSet::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::HashSet::base]", "ReturnValue.Field[std::collections::hash::set::HashSet::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[std::collections::hash::set::HashSet::base]", "ReturnValue.Field[std::collections::hash::set::HashSet::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::difference", "Argument[0]", "ReturnValue.Field[std::collections::hash::set::Difference::other]", "value", "dfc-generated"] - ["::intersection", "Argument[0]", "ReturnValue.Field[std::collections::hash::set::Intersection::other]", "value", "dfc-generated"] - ["::intersection", "Argument[self]", "ReturnValue.Field[std::collections::hash::set::Intersection::other]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Intersection::iter].Field[std::collections::hash::set::Iter::base]", "ReturnValue.Field[std::collections::hash::set::Intersection::iter].Field[std::collections::hash::set::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Intersection::iter].Reference", "ReturnValue.Field[std::collections::hash::set::Intersection::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Intersection::iter]", "ReturnValue.Field[std::collections::hash::set::Intersection::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Iter::base].Reference", "ReturnValue.Field[std::collections::hash::set::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Iter::base]", "ReturnValue.Field[std::collections::hash::set::Iter::base]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::SymmetricDifference::iter].Reference", "ReturnValue.Field[std::collections::hash::set::SymmetricDifference::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::SymmetricDifference::iter]", "ReturnValue.Field[std::collections::hash::set::SymmetricDifference::iter]", "value", "dfc-generated"] + - ["::symmetric_difference", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::symmetric_difference", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::union", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::union", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[std::collections::hash::set::Iter::base]", "ReturnValue.Field[std::collections::hash::set::Iter::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Union::iter].Reference", "ReturnValue.Field[std::collections::hash::set::Union::iter]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::collections::hash::set::Union::iter]", "ReturnValue.Field[std::collections::hash::set::Union::iter]", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::error::Report::error]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[std::error::Report::error]", "value", "dfc-generated"] - ["::pretty", "Argument[0]", "Argument[self].Field[std::error::Report::pretty]", "value", "dfc-generated"] - ["::pretty", "Argument[0]", "ReturnValue.Field[std::error::Report::pretty]", "value", "dfc-generated"] - ["::pretty", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::show_backtrace", "Argument[0]", "Argument[self].Field[std::error::Report::show_backtrace]", "value", "dfc-generated"] - ["::show_backtrace", "Argument[0]", "ReturnValue.Field[std::error::Report::show_backtrace]", "value", "dfc-generated"] - ["::show_backtrace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[std::ffi::os_str::OsStr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_encoded_bytes", "Argument[self].Field[std::ffi::os_str::OsStr::inner].Field[std::sys::os_str::bytes::Slice::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::ffi::os_str::OsStr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_encoded_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::display", "Argument[self]", "ReturnValue.Field[std::ffi::os_str::Display::os_str]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::ffi::os_str::OsString::inner].Reference", "ReturnValue.Field[std::ffi::os_str::OsString::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::ffi::os_str::OsString::inner]", "ReturnValue.Field[std::ffi::os_str::OsString::inner]", "value", "dfc-generated"] + - ["::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[std::path::PathBuf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_str", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::from_str", "Argument[0].Field[std::path::PathBuf::inner]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_vec", "Argument[0]", "ReturnValue.Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - ["::into_vec", "Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::ffi::os_str::OsString::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::ffi::os_str::OsString::inner]", "ReturnValue", "value", "dfc-generated"] @@ -4974,262 +6326,445 @@ extensions: - ["::from_encoded_bytes_unchecked", "Argument[0]", "ReturnValue.Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - ["::into_encoded_bytes", "Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - ["::into_string", "Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] + - ["::truncate", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[std::fs::DirBuilder::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::recursive", "Argument[0]", "Argument[self].Field[std::fs::DirBuilder::recursive]", "value", "dfc-generated"] - - ["::recursive", "Argument[0]", "ReturnValue.Field[std::fs::DirBuilder::recursive]", "value", "dfc-generated"] + - ["::as_inner_mut", "Argument[self].Reference.Field[std::fs::DirBuilder::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::create", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recursive", "Argument[0]", "Argument[self].Reference.Field[std::fs::DirBuilder::recursive]", "value", "dfc-generated"] - ["::recursive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::fs::DirEntry(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[std::fs::File::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ino", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::fs::DirEntry(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::fs::File::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::File::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::fs::File::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[std::fs::FileTimes(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::set_modified", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_permissions", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_permissions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_times", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::sync_all", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::sync_data", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner_mut", "Argument[self].Reference.Field[std::fs::FileTimes(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::set_accessed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::fs::FileType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::fs::Metadata(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::fs::FileType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_raw_stat", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_atime", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_atime_nsec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_blksize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_blocks", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_ctime", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_ctime_nsec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_dev", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_gid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_ino", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_mtime", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_mtime_nsec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_nlink", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_rdev", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::st_uid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::atime", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::atime_nsec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::blksize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::blocks", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ctime", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ctime_nsec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::dev", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::gid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ino", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::mtime", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::mtime_nsec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nlink", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rdev", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::uid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::fs::Metadata(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::Metadata(0)]", "value", "dfc-generated"] + - ["::file_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::permissions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::custom_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[std::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner_mut", "Argument[self].Reference.Field[std::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::create", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::create_new", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::truncate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_mode", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::fs::Permissions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::set_mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::fs::Permissions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::Permissions(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[std::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[std::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[std::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[std::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::Chain::first]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::Chain::second]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::drop", "Argument[self].Field[std::io::Guard::len]", "Argument[self].Field[std::io::Guard::buf].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::seek", "Argument[0].Field[std::io::SeekFrom::Start(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::stream_len", "Argument[self].Reference.Field[std::io::Take::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::lower_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::upper_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::min_limit", "Argument[self].Field[std::io::Take::limit]", "ReturnValue", "value", "dfc-generated"] - - ["::taken", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[std::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::min_limit", "Argument[self].Reference.Field[std::io::Take::limit]", "ReturnValue", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[std::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::Take::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::limit", "Argument[self].Field[std::io::Take::limit]", "ReturnValue", "value", "dfc-generated"] - - ["::set_limit", "Argument[0]", "Argument[self].Field[std::io::Take::limit]", "value", "dfc-generated"] - - ["::error", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::error", "Argument[self].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_error", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["::limit", "Argument[self].Reference.Field[std::io::Take::limit]", "ReturnValue", "value", "dfc-generated"] + - ["::set_limit", "Argument[0]", "Argument[self].Reference.Field[std::io::Take::len]", "value", "dfc-generated"] + - ["::set_limit", "Argument[0]", "Argument[self].Reference.Field[std::io::Take::limit]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::error", "Argument[self].Reference.Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_error", "Argument[self].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::buffered::IntoInnerError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::into_parts", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::consume", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::into_parts", "Argument[self].Field[std::io::buffered::IntoInnerError(0)]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::into_parts", "Argument[self].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::read_buf", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::seek_relative", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::upper_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - - ["::seek_relative", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_buffer", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - ["::with_buffer", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::buf]", "value", "dfc-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - - ["::consume", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::filled]", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::pos]", "value", "dfc-generated"] - - ["::filled", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::filled]", "ReturnValue", "value", "dfc-generated"] - - ["::pos", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::pos]", "ReturnValue", "value", "dfc-generated"] - - ["::buffer", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::buffer_mut", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::consume", "Argument[self].Reference.Field[std::io::buffered::bufreader::buffer::Buffer::filled]", "Argument[self].Reference.Field[std::io::buffered::bufreader::buffer::Buffer::pos]", "value", "dfc-generated"] + - ["::fill_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::filled", "Argument[self].Reference.Field[std::io::buffered::bufreader::buffer::Buffer::filled]", "ReturnValue", "value", "dfc-generated"] + - ["::pos", "Argument[self].Reference.Field[std::io::buffered::bufreader::buffer::Buffer::pos]", "ReturnValue", "value", "dfc-generated"] + - ["::read_more", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::flush", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::buffer", "Argument[self].Reference.Field[std::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::buffer_mut", "Argument[self].Reference.Field[std::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::into_inner", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::io::buffered::IntoInnerError(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - ["::with_buffer", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - ["::with_buffer", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::buf]", "value", "dfc-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - - ["::write_to_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[std::io::buffered::bufwriter::WriterPanicked::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::flush", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::flush", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::linewritershim::LineWriterShim::buffer]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::io::cursor::Cursor::inner].Reference", "ReturnValue.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Field[std::io::cursor::Cursor::inner]", "Argument[self].Field[std::io::cursor::Cursor::inner].Reference", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Field[std::io::cursor::Cursor::inner]", "Argument[self].Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["::clone_from", "Argument[0].Field[std::io::cursor::Cursor::pos]", "Argument[self].Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - - ["::seek", "Argument[0].Field[std::io::SeekFrom::Start(0)]", "Argument[self].Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[std::io::cursor::Cursor::inner]", "ReturnValue.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] + - ["::clone_from", "Argument[0].Reference.Field[std::io::cursor::Cursor::inner]", "Argument[self].Reference.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] + - ["::clone_from", "Argument[0].Reference.Field[std::io::cursor::Cursor::pos]", "Argument[self].Reference.Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::seek", "Argument[0].Field[std::io::SeekFrom::Start(0)]", "Argument[self].Reference.Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - ["::seek", "Argument[0].Field[std::io::SeekFrom::Start(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::seek", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::stream_position", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::seek", "Argument[self].Reference.Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::stream_position", "Argument[self].Reference.Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[std::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["::position", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue", "value", "dfc-generated"] - - ["::set_position", "Argument[0]", "Argument[self].Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["::position", "Argument[self].Reference.Field[std::io::cursor::Cursor::pos]", "ReturnValue", "value", "dfc-generated"] + - ["::set_position", "Argument[0]", "Argument[self].Reference.Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0].Field[std::fs::TryLockError::Error(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new_simple_message", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[std::io::pipe::PipeReader(0)].Field[std::sys::fd::unix::FileDesc(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::io::pipe::PipeReader(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::pipe::PipeReader(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[std::io::pipe::PipeWriter(0)].Field[std::sys::fd::unix::FileDesc(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::io::pipe::PipeWriter(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::io::pipe::PipeWriter(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::lock", "Argument[self].Field[std::io::stdio::Stderr::inner]", "ReturnValue.Field[std::io::stdio::StderrLock::inner].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::lock", "Argument[self].Reference.Field[std::io::stdio::Stderr::inner]", "ReturnValue.Field[std::io::stdio::StderrLock::inner].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write_fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::lines", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::lock", "Argument[self].Field[std::io::stdio::Stdin::inner]", "ReturnValue.Field[std::io::stdio::StdinLock::inner].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["::as_mut_buf", "Argument[self].Field[std::io::stdio::StdinLock::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::lock", "Argument[self].Reference.Field[std::io::stdio::Stdin::inner]", "ReturnValue.Field[std::io::stdio::StdinLock::inner].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] + - ["::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_line", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_line", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut_buf", "Argument[self].Reference.Field[std::io::stdio::StdinLock::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::lock", "Argument[self].Field[std::io::stdio::Stdout::inner]", "ReturnValue.Field[std::io::stdio::StdoutLock::inner].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::net::tcp::TcpListener(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::lock", "Argument[self].Reference.Field[std::io::stdio::Stdout::inner]", "ReturnValue.Field[std::io::stdio::StdoutLock::inner].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write_fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::net::tcp::TcpListener(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::net::tcp::TcpListener(0)]", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::net::tcp::TcpListener(0)]", "ReturnValue", "value", "dfc-generated"] - ["::incoming", "Argument[self]", "ReturnValue.Field[std::net::tcp::Incoming::listener]", "value", "dfc-generated"] - ["::into_incoming", "Argument[self]", "ReturnValue.Field[std::net::tcp::IntoIncoming::listener]", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::net::tcp::TcpStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::net::tcp::TcpStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::net::tcp::TcpStream(0)]", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::net::tcp::TcpStream(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::net::udp::UdpSocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::net::udp::UdpSocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::net::udp::UdpSocket(0)]", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::net::udp::UdpSocket(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::connect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_fd", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::as_fd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[std::io::pipe::PipeReader(0)].Field[std::sys::fd::unix::FileDesc(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[std::io::pipe::PipeWriter(0)].Field[std::sys::fd::unix::FileDesc(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[std::os::linux::process::PidFd::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::os::linux::process::PidFd::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::os::linux::process::PidFd::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::os::linux::process::PidFd::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::os::unix::net::addr::SocketAddr::len]", "ReturnValue.Field[std::os::unix::net::addr::SocketAddr::len].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::os::unix::net::addr::SocketAddr::len]", "ReturnValue.Field[std::os::unix::net::addr::SocketAddr::len]", "value", "dfc-generated"] - ["::from_parts", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::os::unix::net::addr::SocketAddr::addr]", "value", "dfc-generated"] - ["::from_parts", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::os::unix::net::addr::SocketAddr::len]", "value", "dfc-generated"] - ["::new", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[std::os::unix::net::ancillary::AncillaryDataIter::data].Element", "Argument[self].Field[std::os::unix::net::ancillary::AncillaryDataIter::data].Reference", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[std::os::unix::net::ancillary::ScmRights(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[std::os::unix::net::ancillary::SocketAncillary::length]", "ReturnValue", "value", "dfc-generated"] - - ["::messages", "Argument[self].Field[std::os::unix::net::ancillary::SocketAncillary::buffer].Element", "ReturnValue.Field[std::os::unix::net::ancillary::Messages::buffer].Reference", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Reference.Field[std::os::unix::net::ancillary::SocketAncillary::length]", "ReturnValue", "value", "dfc-generated"] + - ["::messages", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::os::unix::net::ancillary::SocketAncillary::buffer]", "value", "dfc-generated"] - - ["::truncated", "Argument[self].Field[std::os::unix::net::ancillary::SocketAncillary::truncated]", "ReturnValue", "value", "dfc-generated"] - - ["::get_gid", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::gid]", "ReturnValue", "value", "dfc-generated"] - - ["::get_gid", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::gid]", "ReturnValue", "value", "dfc-generated"] - - ["::get_pid", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::pid]", "ReturnValue", "value", "dfc-generated"] - - ["::get_pid", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::pid]", "ReturnValue", "value", "dfc-generated"] - - ["::get_uid", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::uid]", "ReturnValue", "value", "dfc-generated"] - - ["::get_uid", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::uid]", "ReturnValue", "value", "dfc-generated"] - - ["::set_gid", "Argument[0]", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::gid]", "value", "dfc-generated"] - - ["::set_gid", "Argument[0]", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::gid]", "value", "dfc-generated"] - - ["::set_pid", "Argument[0]", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::pid]", "value", "dfc-generated"] - - ["::set_pid", "Argument[0]", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::pid]", "value", "dfc-generated"] - - ["::set_uid", "Argument[0]", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::uid]", "value", "dfc-generated"] - - ["::set_uid", "Argument[0]", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::uid]", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::os::unix::net::datagram::UnixDatagram(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::truncated", "Argument[self].Reference.Field[std::os::unix::net::ancillary::SocketAncillary::truncated]", "ReturnValue", "value", "dfc-generated"] + - ["::get_gid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_pid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_uid", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_gid", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_pid", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_uid", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::os::unix::net::datagram::UnixDatagram(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::peek_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary_from", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary_from", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::accept", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::incoming", "Argument[self]", "ReturnValue.Field[std::os::unix::net::listener::Incoming::listener]", "value", "dfc-generated"] - - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::os::unix::net::stream::UnixStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::can_unwind", "Argument[self].Field[std::panic::PanicHookInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] - - ["::force_no_backtrace", "Argument[self].Field[std::panic::PanicHookInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] - - ["::location", "Argument[self].Field[std::panic::PanicHookInfo::location]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::os::unix::net::stream::UnixStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_vectored_with_ancillary", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::can_unwind", "Argument[self].Reference.Field[std::panic::PanicHookInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] + - ["::force_no_backtrace", "Argument[self].Reference.Field[std::panic::PanicHookInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] + - ["::location", "Argument[self].Reference.Field[std::panic::PanicHookInfo::location]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::panic::PanicHookInfo::location]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[std::panic::PanicHookInfo::payload]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[std::panic::PanicHookInfo::can_unwind]", "value", "dfc-generated"] - ["::new", "Argument[3]", "ReturnValue.Field[std::panic::PanicHookInfo::force_no_backtrace]", "value", "dfc-generated"] - - ["::payload", "Argument[self].Field[std::panic::PanicHookInfo::payload]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[std::path::Ancestors::next]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::payload", "Argument[self].Reference.Field[std::panic::PanicHookInfo::payload]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[std::path::Ancestors::next]", "ReturnValue", "value", "dfc-generated"] - ["::as_ref", "Argument[self].Reference.Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_os_str", "Argument[self].Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self].Field[std::path::Components::path].Element", "Argument[self].Field[std::path::Components::path].Reference", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[std::path::Components::path].Element", "Argument[self].Field[std::path::Components::path].Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_os_str", "Argument[self].Field[std::path::Component::Prefix(0)].Field[std::path::PrefixComponent::raw]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::path::Components::has_physical_root]", "ReturnValue.Field[std::path::Components::has_physical_root].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::path::Components::has_physical_root]", "ReturnValue.Field[std::path::Components::has_physical_root]", "value", "dfc-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::ancestors", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_mut_os_str", "Argument[self].Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_os_str", "Argument[self].Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::display", "Argument[self].Field[std::path::Path::inner]", "ReturnValue.Field[std::path::Display::inner].Field[std::ffi::os_str::Display::os_str]", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::path::PathBuf::inner].Field[std::ffi::os_str::OsString::inner]", "ReturnValue.Field[std::path::PathBuf::inner].Field[std::ffi::os_str::OsString::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::path::PathBuf::inner].Reference", "ReturnValue.Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::path::PathBuf::inner]", "ReturnValue.Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[std::path::PathBuf::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_u8_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::canonicalize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::components", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::display", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::parent", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::prefix", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::borrow", "Argument[self].Reference.Field[std::path::PathBuf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_mut_os_string", "Argument[self].Field[std::path::PathBuf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[std::path::PathBuf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut_os_string", "Argument[self].Reference.Field[std::path::PathBuf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::as_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::into_os_string", "Argument[self].Field[std::path::PathBuf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::as_os_str", "Argument[self].Field[std::path::PrefixComponent::raw]", "ReturnValue", "value", "dfc-generated"] - - ["::kind", "Argument[self].Field[std::path::PrefixComponent::parsed]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_os_str", "Argument[self].Reference.Field[std::path::PrefixComponent::raw]", "ReturnValue", "value", "dfc-generated"] + - ["::kind", "Argument[self].Reference.Field[std::path::PrefixComponent::parsed]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_pidfd", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::process::Child::handle]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::process::Child::handle]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0].Field[0]", "ReturnValue.Field[std::process::Child::handle]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::process::Child::handle]", "ReturnValue", "value", "dfc-generated"] - ["::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[std::process::ChildStderr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::process::ChildStderr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStderr::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::process::ChildStderr::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::process::ChildStdin::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::process::ChildStdin::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStdin::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::process::ChildStdin::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[std::process::ChildStdout::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::process::ChildStdout::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStdout::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::process::ChildStdout::inner]", "ReturnValue", "value", "dfc-generated"] - ["::create_pidfd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::arg0", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::chroot", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::gid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::pre_exec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::process_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::setsid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::uid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[std::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner_mut", "Argument[self].Reference.Field[std::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -5240,82 +6775,162 @@ extensions: - ["::stderr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::stdout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[std::process::ExitCode(0)].Field[std::sys::process::unix::common::ExitCode(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::report", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::process::ExitCode(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::process::ExitCode(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ExitCode(0)]", "value", "dfc-generated"] - ["::to_i32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::process::ExitStatus(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_raw", "Argument[0]", "ReturnValue.Field[std::process::ExitStatus(0)].Field[std::sys::process::unix::unix::ExitStatus(0)]", "value", "dfc-generated"] + - ["::signal", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::stopped_signal", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::process::ExitStatus(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ExitStatus(0)]", "value", "dfc-generated"] + - ["::code", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::exit_ok", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::Stdio(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::barrier::Barrier::num_threads]", "value", "dfc-generated"] - - ["::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::is_leader", "Argument[self].Field[std::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_leader", "Argument[self].Reference.Field[std::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::IntoIter::rx]", "value", "dfc-generated"] + - ["::capacity", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::Iter::rx]", "value", "dfc-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::TryIter::rx]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::capacity", "Argument[self].Field[std::sync::mpmc::array::Channel::cap]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[std::sync::mpmc::array::Channel::cap]", "ReturnValue", "value", "dfc-generated"] + - ["::capacity", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::SendError(0)]", "value", "dfc-generated"] + - ["::send_deadline", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] + - ["::send_deadline", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] + - ["::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] + - ["::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] + - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] + - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::capacity", "Argument[self].Reference.Field[std::sync::mpmc::array::Channel::cap]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[std::sync::mpmc::array::Channel::cap]", "ReturnValue", "value", "dfc-generated"] - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] - ["::with_capacity", "Argument[0]", "ReturnValue.Field[std::sync::mpmc::array::Channel::cap]", "value", "dfc-generated"] - ["::write", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::acquire", "Argument[self].Field[std::sync::mpmc::counter::Receiver::counter]", "ReturnValue.Field[std::sync::mpmc::counter::Receiver::counter]", "value", "dfc-generated"] - - ["::acquire", "Argument[self].Field[std::sync::mpmc::counter::Sender::counter]", "ReturnValue.Field[std::sync::mpmc::counter::Sender::counter]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sync::mpmc::context::Context::inner].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[std::sync::mpmc::context::Context::inner].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sync::mpmc::context::Context::inner].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[std::sync::mpmc::context::Context::inner].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::thread_id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::acquire", "Argument[self].Reference.Field[std::sync::mpmc::counter::Receiver::counter]", "ReturnValue.Field[std::sync::mpmc::counter::Receiver::counter]", "value", "dfc-generated"] + - ["::release", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::acquire", "Argument[self].Reference.Field[std::sync::mpmc::counter::Sender::counter]", "ReturnValue.Field[std::sync::mpmc::counter::Sender::counter]", "value", "dfc-generated"] + - ["::release", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::from", "Argument[0].Field[std::sync::mpsc::SendError(0)]", "ReturnValue.Field[std::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_send", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::write", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sync::mpmc::select::Operation(0)]", "ReturnValue.Field[std::sync::mpmc::select::Operation(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sync::mpmc::select::Operation(0)]", "ReturnValue.Field[std::sync::mpmc::select::Operation(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::hook", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::sync::mpmc::select::Selected::Operation(0)].Field[std::sync::mpmc::select::Operation(0)]", "value", "dfc-generated"] - ["::into", "Argument[self].Field[std::sync::mpmc::select::Selected::Operation(0)].Field[std::sync::mpmc::select::Operation(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[std::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[std::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[std::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[std::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::mpmc::utils::CachePadded::value]", "value", "dfc-generated"] + - ["::try_select", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] - ["::write", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpsc::IntoIter::rx]", "value", "dfc-generated"] - ["::iter", "Argument[self]", "ReturnValue.Field[std::sync::mpsc::Iter::rx]", "value", "dfc-generated"] - ["::try_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpsc::TryIter::rx]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self].Field[std::sync::mpsc::Sender::inner].Reference", "ReturnValue.Field[std::sync::mpsc::Sender::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::sync::mpsc::Sender::inner]", "ReturnValue.Field[std::sync::mpsc::Sender::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::sync::mpsc::SyncSender::inner].Reference", "ReturnValue.Field[std::sync::mpsc::SyncSender::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::sync::mpsc::SyncSender::inner]", "ReturnValue.Field[std::sync::mpsc::SyncSender::inner]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::SendError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::SendError(0)]", "value", "dfc-generated"] + - ["::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] + - ["::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] + - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] + - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[std::sync::mpsc::SendError(0)]", "ReturnValue.Field[std::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[std::sync::nonpoison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::data_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[self].Field[std::sync::nonpoison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] + - ["::lock", "Argument[self]", "ReturnValue.Field[std::sync::nonpoison::mutex::MutexGuard::lock]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::nonpoison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::try_lock", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::nonpoison::mutex::MutexGuard::lock]", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut_or_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[std::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[std::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sync::poison::Guard::panicking]", "ReturnValue.Field[std::sync::poison::Guard::panicking].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sync::poison::Guard::panicking]", "ReturnValue.Field[std::sync::poison::Guard::panicking]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[std::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sync::poison::PoisonError::data]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::sync::poison::TryLockError::Poisoned(0)]", "value", "dfc-generated"] + - ["::cause", "Argument[self].Field[std::sync::poison::TryLockError::Poisoned(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["::cause", "Argument[self].Reference.Field[std::sync::poison::TryLockError::Poisoned(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::wait", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["::wait", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::wait_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - ["::wait_timeout_ms", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - - ["::wait_timeout_while", "Argument[0].Reference", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["::wait_timeout_while", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::wait_timeout_while", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - - ["::wait_while", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["::wait_while", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::timed_out", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::timed_out", "Argument[self].Field[std::sync::poison::condvar::WaitTimeoutResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::wait_while", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sync::poison::condvar::WaitTimeoutResult(0)]", "ReturnValue.Field[std::sync::poison::condvar::WaitTimeoutResult(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sync::poison::condvar::WaitTimeoutResult(0)]", "ReturnValue.Field[std::sync::poison::condvar::WaitTimeoutResult(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::timed_out", "Argument[self].Reference.Field[std::sync::poison::condvar::WaitTimeoutResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::sync::poison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[std::sync::poison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::data_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[std::sync::poison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sync::poison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::lock", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] @@ -5324,198 +6939,303 @@ extensions: - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["::try_lock", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - ["::try_lock", "Argument[self]", "ReturnValue.Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::is_poisoned", "Argument[self].Field[std::sync::poison::once::OnceState::inner].Field[std::sys::sync::once::futex::OnceState::poisoned]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_poisoned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::sync::poison::rwlock::RwLock::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[std::sync::poison::rwlock::RwLock::data].Field[core::cell::UnsafeCell::value]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::data_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[std::sync::poison::rwlock::RwLock::data].Field[core::cell::UnsafeCell::value]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sync::poison::rwlock::RwLock::data].Field[core::cell::UnsafeCell::value]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::poison::rwlock::RwLock::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::replace", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["::try_read", "Argument[self].Field[std::sync::poison::rwlock::RwLock::inner]", "ReturnValue.Field[std::sync::poison::rwlock::RwLockReadGuard::inner_lock].Reference", "value", "dfc-generated"] + - ["::try_read", "Argument[self].Reference.Field[std::sync::poison::rwlock::RwLock::inner]", "ReturnValue.Field[std::sync::poison::rwlock::RwLockReadGuard::inner_lock].Reference", "value", "dfc-generated"] - ["::try_write", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - ["::try_write", "Argument[self]", "ReturnValue.Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - ["::write", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::downgrade", "Argument[0].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock].Field[std::sync::poison::rwlock::RwLock::inner]", "ReturnValue.Field[std::sync::poison::rwlock::RwLockReadGuard::inner_lock].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[std::sync::reentrant_lock::ReentrantLock::data]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::data_ptr", "Argument[self].Reference.Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue", "value", "dfc-generated"] - ["::lock", "Argument[self]", "ReturnValue.Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::reentrant_lock::ReentrantLock::data]", "value", "dfc-generated"] - ["::try_lock", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock].Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::print", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys::fd::unix::FileDesc(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::fd::unix::FileDesc(0)]", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[std::sys::fd::unix::FileDesc(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::mkdir", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::set_mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::ino", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys::fs::unix::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[std::sys::fs::unix::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys::fs::unix::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner_mut", "Argument[self].Reference.Field[std::sys::fs::unix::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::fs::unix::File(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sys::fs::unix::File(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys::fs::unix::FileAttr::stat]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::datasync", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fsync", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::open", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::open_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::open_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::set_permissions", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_permissions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_times", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys::fs::unix::FileAttr::stat]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::accessed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::file_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::modified", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::perm", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::FilePermissions::mode]", "ReturnValue.Field[std::sys::fs::unix::FilePermissions::mode].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::FilePermissions::mode]", "ReturnValue.Field[std::sys::fs::unix::FilePermissions::mode]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_inner", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::set_accessed", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::FileTimes::accessed].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::set_modified", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::FileTimes::modified].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::append", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::append]", "value", "dfc-generated"] - - ["::create", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::create]", "value", "dfc-generated"] - - ["::create_new", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::create_new]", "value", "dfc-generated"] - - ["::custom_flags", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::custom_flags]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_accessed", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::set_modified", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::FileType::mode]", "ReturnValue.Field[std::sys::fs::unix::FileType::mode].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::FileType::mode]", "ReturnValue.Field[std::sys::fs::unix::FileType::mode]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::Mode(0)]", "ReturnValue.Field[std::sys::fs::unix::Mode(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::Mode(0)]", "ReturnValue.Field[std::sys::fs::unix::Mode(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::append", "Argument[0]", "Argument[self].Reference.Field[std::sys::fs::unix::OpenOptions::append]", "value", "dfc-generated"] + - ["::create", "Argument[0]", "Argument[self].Reference.Field[std::sys::fs::unix::OpenOptions::create]", "value", "dfc-generated"] + - ["::create_new", "Argument[0]", "Argument[self].Reference.Field[std::sys::fs::unix::OpenOptions::create_new]", "value", "dfc-generated"] + - ["::custom_flags", "Argument[0]", "Argument[self].Reference.Field[std::sys::fs::unix::OpenOptions::custom_flags]", "value", "dfc-generated"] - ["::mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::read", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::read]", "value", "dfc-generated"] - - ["::truncate", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::truncate]", "value", "dfc-generated"] - - ["::write", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::write]", "value", "dfc-generated"] - - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::properties", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::properties", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read", "Argument[0]", "Argument[self].Reference.Field[std::sys::fs::unix::OpenOptions::read]", "value", "dfc-generated"] + - ["::truncate", "Argument[0]", "Argument[self].Reference.Field[std::sys::fs::unix::OpenOptions::truncate]", "value", "dfc-generated"] + - ["::write", "Argument[0]", "Argument[self].Reference.Field[std::sys::fs::unix::OpenOptions::write]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::StatxExtraFields::stx_mask]", "ReturnValue.Field[std::sys::fs::unix::StatxExtraFields::stx_mask].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::fs::unix::StatxExtraFields::stx_mask]", "ReturnValue.Field[std::sys::fs::unix::StatxExtraFields::stx_mask]", "value", "dfc-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::port", "Argument[self].Field[std::sys::net::connection::socket::LookupHost::port]", "ReturnValue", "value", "dfc-generated"] + - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::port", "Argument[self].Reference.Field[std::sys::net::connection::socket::LookupHost::port]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::TcpListener::inner]", "value", "dfc-generated"] + - ["::accept", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bind", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::bind", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_socket", "Argument[self].Field[std::sys::net::connection::socket::TcpListener::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::socket", "Argument[self].Field[std::sys::net::connection::socket::TcpListener::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::socket", "Argument[self].Reference.Field[std::sys::net::connection::socket::TcpListener::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::socket_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::TcpStream::inner]", "value", "dfc-generated"] - ["::connect", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::connect", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_socket", "Argument[self].Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::socket", "Argument[self].Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::socket", "Argument[self].Reference.Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::socket_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::UdpSocket::inner]", "value", "dfc-generated"] - ["::bind", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::bind", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::connect", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["::connect", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_socket", "Argument[self].Field[std::sys::net::connection::socket::UdpSocket::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::socket", "Argument[self].Field[std::sys::net::connection::socket::UdpSocket::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys::net::connection::socket::unix::Socket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::socket", "Argument[self].Reference.Field[std::sys::net::connection::socket::UdpSocket::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::socket_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys::net::connection::socket::unix::Socket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::unix::Socket(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sys::net::connection::socket::unix::Socket(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner].Reference", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::accept", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::accept", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::accept", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - ["::from_encoded_bytes_unchecked", "Argument[0]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - ["::from_string", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - ["::into_encoded_bytes", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - ["::into_string", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::truncate", "Argument[0]", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::as_encoded_bytes", "Argument[self].Field[std::sys::os_str::bytes::Slice::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys::pal::unix::fd::FileDesc(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[std::sys::pal::unix::fd::FileDesc(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys::pal::unix::linux::pidfd::PidFd(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::truncate_unchecked", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::as_encoded_bytes", "Argument[self].Reference.Field[std::sys::os_str::bytes::Slice::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys::pal::unix::linux::pidfd::PidFd(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::linux::pidfd::PidFd(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sys::pal::unix::linux::pidfd::PidFd(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::as_file_desc", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_file_desc", "Argument[self].Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_file_desc", "Argument[self].Reference.Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::raw", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::id", "Argument[self].Field[std::sys::pal::unix::thread::Thread::id]", "ReturnValue", "value", "dfc-generated"] - - ["::checked_sub_instant", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::checked_sub_instant", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::id", "Argument[self].Reference.Field[std::sys::pal::unix::thread::Thread::id]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_timespec", "Argument[self].Field[std::sys::pal::unix::time::Instant::t]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::time::Timespec::tv_sec]", "value", "dfc-generated"] - - ["::sub_time", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub_time", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::sub_timespec", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::sub_timespec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys::pal::unix::time::Timespec::tv_sec]", "ReturnValue.Field[std::sys::pal::unix::time::Timespec::tv_sec].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::pal::unix::time::Timespec::tv_sec]", "ReturnValue.Field[std::sys::pal::unix::time::Timespec::tv_sec]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::weak::DlsymWeak::name]", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[std::sys::pal::unix::weak::ExternWeak::weak_ptr]", "ReturnValue", "value", "dfc-generated"] + - ["::get", "Argument[self].Reference.Field[std::sys::pal::unix::weak::ExternWeak::weak_ptr]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::weak::ExternWeak::weak_ptr]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::personality::dwarf::DwarfReader::ptr]", "value", "dfc-generated"] + - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::does_clear", "Argument[self].Reference.Field[std::sys::process::env::CommandEnv::clear]", "ReturnValue", "value", "dfc-generated"] + - ["::iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fd", "Argument[self].Field[std::sys::process::unix::common::ChildStdio::Explicit(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::fd", "Argument[self].Reference.Field[std::sys::process::unix::common::ChildStdio::Explicit(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::create_pidfd", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::create_pidfd]", "value", "dfc-generated"] - - ["::env_mut", "Argument[self].Field[std::sys::process::unix::common::Command::env]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_argv", "Argument[self].Field[std::sys::process::unix::common::Command::argv].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_argv", "Argument[self].Field[std::sys::process::unix::common::Command::argv].Field[std::sys::process::unix::common::Argv(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_closures", "Argument[self].Field[std::sys::process::unix::common::Command::closures]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_create_pidfd", "Argument[self].Field[std::sys::process::unix::common::Command::create_pidfd]", "ReturnValue", "value", "dfc-generated"] - - ["::get_gid", "Argument[self].Field[std::sys::process::unix::common::Command::gid]", "ReturnValue", "value", "dfc-generated"] - - ["::get_pgroup", "Argument[self].Field[std::sys::process::unix::common::Command::pgroup]", "ReturnValue", "value", "dfc-generated"] - - ["::get_program_cstr", "Argument[self].Field[std::sys::process::unix::common::Command::program].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_program_kind", "Argument[self].Field[std::sys::process::unix::common::Command::program_kind]", "ReturnValue", "value", "dfc-generated"] - - ["::get_uid", "Argument[self].Field[std::sys::process::unix::common::Command::uid]", "ReturnValue", "value", "dfc-generated"] - - ["::gid", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::gid].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::pgroup", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::pgroup].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::saw_nul", "Argument[self].Field[std::sys::process::unix::common::Command::saw_nul]", "ReturnValue", "value", "dfc-generated"] - - ["::stderr", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::stderr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::stdin", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::stdin].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::stdout", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::stdout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::uid", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::uid].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::capture_env", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::create_pidfd", "Argument[0]", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::create_pidfd]", "value", "dfc-generated"] + - ["::env_mut", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::env]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_argv", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::args]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_closures", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::closures]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_create_pidfd", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::create_pidfd]", "ReturnValue", "value", "dfc-generated"] + - ["::get_envs", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_gid", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::gid]", "ReturnValue", "value", "dfc-generated"] + - ["::get_pgroup", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::pgroup]", "ReturnValue", "value", "dfc-generated"] + - ["::get_program_cstr", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::program]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_program_kind", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::program_kind]", "ReturnValue", "value", "dfc-generated"] + - ["::get_setsid", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::setsid]", "ReturnValue", "value", "dfc-generated"] + - ["::get_uid", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::uid]", "ReturnValue", "value", "dfc-generated"] + - ["::gid", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::groups", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::pgroup", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::saw_nul", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::saw_nul]", "ReturnValue", "value", "dfc-generated"] + - ["::setsid", "Argument[0]", "Argument[self].Reference.Field[std::sys::process::unix::common::Command::setsid]", "value", "dfc-generated"] + - ["::stderr", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::stdin", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::stdout", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::uid", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::common::ExitCode(0)]", "ReturnValue.Field[std::sys::process::unix::common::ExitCode(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::common::ExitCode(0)]", "ReturnValue.Field[std::sys::process::unix::common::ExitCode(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::common::ExitCode(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_i32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[std::sys::fs::unix::File(0)]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_child_stdio", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::common::cstring_array::CStringIter::iter].Field[core::slice::iter::Iter::_marker]", "ReturnValue.Field[std::sys::process::unix::common::cstring_array::CStringIter::iter].Field[core::slice::iter::Iter::_marker]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::common::cstring_array::CStringIter::iter].Field[core::slice::iter::Iter::end_or_len]", "ReturnValue.Field[std::sys::process::unix::common::cstring_array::CStringIter::iter].Field[core::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::common::cstring_array::CStringIter::iter].Field[core::slice::iter::Iter::ptr]", "ReturnValue.Field[std::sys::process::unix::common::cstring_array::CStringIter::iter].Field[core::slice::iter::Iter::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::unix::ExitStatus(0)]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatus(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::unix::ExitStatus(0)]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatus(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatus(0)]", "value", "dfc-generated"] - - ["::into_raw", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::into_raw", "Argument[self].Field[std::sys::process::unix::unix::ExitStatus(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::code", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_raw", "Argument[self].Reference.Field[std::sys::process::unix::unix::ExitStatus(0)]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatus(0)]", "value", "dfc-generated"] + - ["::signal", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::stopped_signal", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::unix::ExitStatusError(0)]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatusError(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys::process::unix::unix::ExitStatusError(0)]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatusError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::is_poisoned", "Argument[self].Field[std::sys::sync::once::futex::OnceState::poisoned]", "ReturnValue", "value", "dfc-generated"] + - ["::try_wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::is_poisoned", "Argument[self].Reference.Field[std::sys::sync::once::futex::OnceState::poisoned]", "ReturnValue", "value", "dfc-generated"] - ["::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::thread_local::key::racy::LazyKey::dtor]", "value", "dfc-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::thread_local::native::eager::Storage::val].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["::does_clear", "Argument[self].Field[std::sys_common::process::CommandEnv::clear]", "ReturnValue", "value", "dfc-generated"] - - ["::iter", "Argument[self].Field[std::sys_common::process::CommandEnv::vars].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[std::sys_common::process::CommandEnvs::iter].Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[std::sys_common::process::CommandEnvs::iter].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[std::sys_common::process::CommandEnvs::iter].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[std::sys_common::process::CommandEnvs::iter].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::get_or_init", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::CodePoint::value]", "ReturnValue.Field[std::sys_common::wtf8::CodePoint::value].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::CodePoint::value]", "ReturnValue.Field[std::sys_common::wtf8::CodePoint::value]", "value", "dfc-generated"] - ["::from_char", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_u32", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sys_common::wtf8::CodePoint::value]", "value", "dfc-generated"] - ["::from_u32_unchecked", "Argument[0]", "ReturnValue.Field[std::sys_common::wtf8::CodePoint::value]", "value", "dfc-generated"] - ["::to_lead_surrogate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::to_trail_surrogate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::to_u32", "Argument[self].Field[std::sys_common::wtf8::CodePoint::value]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[std::sys_common::wtf8::EncodeWide::extra]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_u32", "Argument[self].Reference.Field[std::sys_common::wtf8::CodePoint::value]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::EncodeWide::extra]", "ReturnValue.Field[std::sys_common::wtf8::EncodeWide::extra].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::EncodeWide::extra]", "ReturnValue.Field[std::sys_common::wtf8::EncodeWide::extra]", "value", "dfc-generated"] + - ["::next", "Argument[self].Reference.Field[std::sys_common::wtf8::EncodeWide::extra]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::cmp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::partial_cmp", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_bytes", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::ascii_byte_at", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes].Element", "ReturnValue", "value", "dfc-generated"] - - ["::code_points", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes].Element", "ReturnValue.Field[std::sys_common::wtf8::Wtf8CodePoints::bytes].Element", "value", "dfc-generated"] - - ["::encode_wide", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[std::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_bytes", "Argument[self].Reference.Field[std::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_bytes_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::is_known_utf8]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8Buf::is_known_utf8].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::is_known_utf8]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8Buf::is_known_utf8]", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_bytes_unchecked", "Argument[0]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "value", "dfc-generated"] - ["::from_string", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "value", "dfc-generated"] - ["::into_bytes", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "ReturnValue", "value", "dfc-generated"] - ["::into_string", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["::into_string", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::into_string_lossy", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::truncate", "Argument[0]", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["::truncate", "Argument[0]", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::bytes].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] + - ["::truncate", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::Wtf8CodePoints::bytes].Field[core::slice::iter::Iter::_marker]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8CodePoints::bytes].Field[core::slice::iter::Iter::_marker]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::Wtf8CodePoints::bytes].Field[core::slice::iter::Iter::end_or_len]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8CodePoints::bytes].Field[core::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::sys_common::wtf8::Wtf8CodePoints::bytes].Field[core::slice::iter::Iter::ptr]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8CodePoints::bytes].Field[core::slice::iter::Iter::ptr]", "value", "dfc-generated"] - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::name", "Argument[0]", "Argument[self].Field[std::thread::Builder::name].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::name", "Argument[0]", "ReturnValue.Field[std::thread::Builder::name].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -5523,101 +7243,469 @@ extensions: - ["::stack_size", "Argument[0]", "Argument[self].Field[std::thread::Builder::stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::stack_size", "Argument[0]", "ReturnValue.Field[std::thread::Builder::stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::stack_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[0].Field[std::thread::JoinInner::native]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[std::thread::JoinHandle(0)].Field[std::thread::JoinInner::native]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0].Field[std::thread::JoinInner::native]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_pthread_t", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[std::thread::JoinHandle(0)].Field[std::thread::JoinInner::native]", "ReturnValue", "value", "dfc-generated"] - - ["::thread", "Argument[self].Field[0].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::thread", "Argument[self].Field[std::thread::JoinHandle(0)].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_u64", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::as_u64", "Argument[self].Field[std::thread::ThreadId(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::thread", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[std::thread::ThreadId(0)]", "ReturnValue.Field[std::thread::ThreadId(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std::thread::ThreadId(0)]", "ReturnValue.Field[std::thread::ThreadId(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_u64", "Argument[self].Reference.Field[std::thread::ThreadId(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[std::thread::local::LocalKey::inner]", "value", "dfc-generated"] + - ["::replace", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_with", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::update", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::with_borrow", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::with_borrow_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::thread", "Argument[self].Field[0].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::thread", "Argument[self].Field[std::thread::scoped::ScopedJoinHandle(0)].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_cstr", "Argument[self].Field[std::thread::thread_name_string::ThreadNameString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::elapsed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::thread", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_cstr", "Argument[self].Reference.Field[std::thread::thread_name_string::ThreadNameString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[std::time::Instant(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::time::SystemTime(0)]", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[std::time::SystemTime(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::duration", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::duration", "Argument[self].Field[std::time::SystemTimeError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::unset", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::duration", "Argument[self].Reference.Field[std::time::SystemTimeError(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std_detect::detect::cache::Initializer(0)]", "ReturnValue.Field[std_detect::detect::cache::Initializer(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[std_detect::detect::cache::Initializer(0)]", "ReturnValue.Field[std_detect::detect::cache::Initializer(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::context::GroupContext::links].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[stdarch-gen-arm::context::GroupContext::links].Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::context::LocalContext::substitutions].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[stdarch-gen-arm::context::LocalContext::substitutions].Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::context::LocalContext::variables].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[stdarch-gen-arm::context::LocalContext::variables].Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::make_assertion_from_constraint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::make_assertion_from_constraint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::context::LocalContext::input]", "value", "dfc-generated"] - - ["::new", "Argument[1].Field[stdarch-gen-arm::intrinsic::Intrinsic::signature].Reference", "ReturnValue.Field[stdarch-gen-arm::context::LocalContext::signature]", "value", "dfc-generated"] - - ["::new", "Argument[1].Field[stdarch-gen-arm::intrinsic::Intrinsic::signature]", "ReturnValue.Field[stdarch-gen-arm::context::LocalContext::signature]", "value", "dfc-generated"] - ["::provide_substitution_wildcard", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::provide_type_wildcard", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::provide_type_wildcard", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::expression::Expression::FnCall(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::expression::Expression::Identifier(0)]", "value", "dfc-generated"] + - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::pre_build", "Argument[self].Field[stdarch-gen-arm::expression::Expression::MatchKind(1)].Field[stdarch-gen-arm::matching::MatchKindValues::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::pre_build", "Argument[self].Field[stdarch-gen-arm::expression::Expression::MatchSize(1)].Field[stdarch-gen-arm::matching::MatchSizeValues::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::expression::FnCall(0)]", "ReturnValue.Field[stdarch-gen-arm::expression::FnCall(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::expression::FnCall(3)]", "ReturnValue.Field[stdarch-gen-arm::expression::FnCall(3)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::expression::FnCall(3)]", "ReturnValue.Field[stdarch-gen-arm::expression::FnCall(3)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::pre_build", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pre_build", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::expression::LetVariant::Basic(1)]", "ReturnValue.Field[stdarch-gen-arm::expression::LetVariant::Basic(1)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::expression::LetVariant::MutWithType(2)]", "ReturnValue.Field[stdarch-gen-arm::expression::LetVariant::MutWithType(2)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::expression::LetVariant::WithType(2)]", "ReturnValue.Field[stdarch-gen-arm::expression::LetVariant::WithType(2)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::typekind", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::input::InputSetEntry(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::n_variant_op", "Argument[self].Field[stdarch-gen-arm::input::InputType::NVariantOp(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::predicate_form", "Argument[self].Field[stdarch-gen-arm::input::InputType::PredicateForm(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::predicate_form_mut", "Argument[self].Field[stdarch-gen-arm::input::InputType::PredicateForm(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::typekind", "Argument[self].Field[stdarch-gen-arm::input::InputType::Type(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::generate_variant", "Argument[self].Reference.Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::generate_variant", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::intrinsic::Intrinsic::defer_to_signed_only_indices].Field[std::collections::hash::set::HashSet::base]", "ReturnValue.Field[stdarch-gen-arm::intrinsic::Intrinsic::defer_to_signed_only_indices].Field[std::collections::hash::set::HashSet::base]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::intrinsic::Intrinsic::substitutions].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[stdarch-gen-arm::intrinsic::Intrinsic::substitutions].Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::generate_variant", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::generate_variant", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::generate_variant", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::generate_variant", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::generate_variants", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::apply_conversions_to_call", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[stdarch-gen-arm::expression::Expression::FnCall(0)]", "value", "dfc-generated"] - - ["::make_fn_call", "Argument[self].Field[stdarch-gen-arm::intrinsic::LLVMLink::signature].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::build", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build_and_save", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::make_fn_call", "Argument[self].Reference.Field[stdarch-gen-arm::intrinsic::LLVMLink::signature]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::resolve", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::resolve", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::drop_argument", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::get_typeset_index", "Argument[self].Reference.Field[stdarch-gen-arm::intrinsic::Test::Load(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::get_typeset_index", "Argument[self].Reference.Field[stdarch-gen-arm::intrinsic::Test::Store(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[stdarch-gen-arm::matching::MatchKindValues::default]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["::get", "Argument[self].Field[stdarch-gen-arm::matching::MatchSizeValues::default]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["::has_dont_care", "Argument[self].Field[stdarch-gen-arm::predicate_forms::PredicationMask::x]", "ReturnValue", "value", "dfc-generated"] - - ["::has_merging", "Argument[self].Field[stdarch-gen-arm::predicate_forms::PredicationMask::m]", "ReturnValue", "value", "dfc-generated"] - - ["::has_zeroing", "Argument[self].Field[stdarch-gen-arm::predicate_forms::PredicationMask::z]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_typeset_index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut", "Argument[self].Field[stdarch-gen-arm::matching::KindMatchable::Matched(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Field[stdarch-gen-arm::matching::KindMatchable::Matched(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::perform_match", "Argument[self].Field[stdarch-gen-arm::matching::KindMatchable::Unmatched::values].Field[stdarch-gen-arm::matching::MatchKindValues::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self].Reference.Field[stdarch-gen-arm::matching::MatchKindValues::default]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self].Reference.Field[stdarch-gen-arm::matching::MatchSizeValues::default]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Field[stdarch-gen-arm::matching::SizeMatchable::Matched(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Field[stdarch-gen-arm::matching::SizeMatchable::Matched(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::perform_match", "Argument[self].Field[stdarch-gen-arm::matching::SizeMatchable::Unmatched::values].Field[stdarch-gen-arm::matching::MatchSizeValues::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::post_build", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::has_dont_care", "Argument[self].Reference.Field[stdarch-gen-arm::predicate_forms::PredicationMask::x]", "ReturnValue", "value", "dfc-generated"] + - ["::has_merging", "Argument[self].Reference.Field[stdarch-gen-arm::predicate_forms::PredicationMask::m]", "ReturnValue", "value", "dfc-generated"] + - ["::has_zeroing", "Argument[self].Reference.Field[stdarch-gen-arm::predicate_forms::PredicationMask::z]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "ReturnValue.Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "ReturnValue.Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::repr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::repr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::get_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::kind", "Argument[self].Field[stdarch-gen-arm::typekinds::BaseType::Sized(0)]", "ReturnValue", "value", "dfc-generated"] - ["::kind", "Argument[self].Field[stdarch-gen-arm::typekinds::BaseType::Unsized(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Pointer(0)]", "ReturnValue.Field[stdarch-gen-arm::typekinds::TypeKind::Pointer(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::repr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::repr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::base", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Base(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::base", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Vector(0)].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::base_type", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Base(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::base_type", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Vector(0)].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::base_type_mut", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Base(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::base_type_mut", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Vector(0)].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::express_reinterpretation_from", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::make_predicate_from", "Argument[0].Field[stdarch-gen-arm::typekinds::TypeKind::Base(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::make_predicate_from", "Argument[0].Field[stdarch-gen-arm::typekinds::TypeKind::Vector(0)].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::make_vector", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::make_vector", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::make_vector", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["::populate_wildcard", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["::populate_wildcard", "Argument[0]", "Argument[self]", "value", "dfc-generated"] + - ["::vector", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Vector(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::vector_mut", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Vector(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::wildcard", "Argument[self].Field[stdarch-gen-arm::typekinds::TypeKind::Wildcard(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::contains", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::repr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::base_type", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::base_type_mut", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::cast_base_type_as", "Argument[0]", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "value", "dfc-generated"] - - ["::lanes", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::lanes]", "ReturnValue", "value", "dfc-generated"] + - ["::base_type", "Argument[self].Reference.Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::base_type_mut", "Argument[self].Reference.Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::cast_base_type_as", "Argument[0]", "Argument[self].Reference.Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "value", "dfc-generated"] + - ["::lanes", "Argument[self].Reference.Field[stdarch-gen-arm::typekinds::VectorType::lanes]", "ReturnValue", "value", "dfc-generated"] + - ["::make_from_base", "Argument[0].Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::base_type].Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "value", "dfc-generated"] - ["::make_from_base", "Argument[0].Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::lanes]", "value", "dfc-generated"] - ["::make_from_base", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "value", "dfc-generated"] - ["::make_from_base", "Argument[1]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::is_scalable]", "value", "dfc-generated"] - ["::make_from_base", "Argument[2]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::tuple_size]", "value", "dfc-generated"] - ["::make_predicate_from_bitsize", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::base_type].Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "value", "dfc-generated"] - - ["::tuple_size", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::tuple_size]", "ReturnValue", "value", "dfc-generated"] + - ["::tuple_size", "Argument[self].Reference.Field[stdarch-gen-arm::typekinds::VectorType::tuple_size]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::wildcards::Wildcard::Scale(0)]", "ReturnValue.Field[stdarch-gen-arm::wildcards::Wildcard::Scale(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[stdarch-gen-arm::wildcards::Wildcard::Scale(1)]", "ReturnValue.Field[stdarch-gen-arm::wildcards::Wildcard::Scale(1)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_typeset_index", "Argument[self].Field[stdarch-gen-arm::wildcards::Wildcard::NEONType(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::get_typeset_index", "Argument[self].Field[stdarch-gen-arm::wildcards::Wildcard::SVEType(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::get_typeset_index", "Argument[self].Field[stdarch-gen-arm::wildcards::Wildcard::Type(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::build_acle", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build_neon_intrinsic_signature", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[stdarch-gen-loongarch::Lines::lines]", "value", "dfc-generated"] - - ["::simplify", "Argument[self].Field[test_helpers::array::ArrayValueTree::shrinker]", "Argument[self].Field[test_helpers::array::ArrayValueTree::last_shrinker].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[test_helpers::array::UniformArrayStrategy::strategy]", "value", "dfc-generated"] - ["alloc::collections::btree::mem::replace", "Argument[0].Reference", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["alloc::collections::btree::mem::take_mut", "Argument[0].Reference", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["alloc::collections::btree::mem::take_mut", "Argument[1].ReturnValue", "Argument[0].Reference", "value", "dfc-generated"] - - ["alloc::str::convert_while_ascii", "Argument[0].Element", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["alloc::fmt::format", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["as_if_std::the_backtrace_crate::symbolize::gimli::elf::handle_split_dwarf", "Argument[2].Field[addr2line::lookup::SplitDwarfLoad::path].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["as_if_std::the_backtrace_crate::symbolize::gimli::elf::handle_split_dwarf", "Argument[2].Field[addr2line::lookup::SplitDwarfLoad::path]", "ReturnValue.Reference", "value", "dfc-generated"] - ["backtrace::symbolize::gimli::elf::handle_split_dwarf", "Argument[2].Field[addr2line::lookup::SplitDwarfLoad::path].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["backtrace::symbolize::gimli::elf::handle_split_dwarf", "Argument[2].Field[addr2line::lookup::SplitDwarfLoad::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["compiler_builtins::float::add::__adddf3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::float::add::__adddf3", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::float::add::__addsf3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::float::add::__addsf3", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::float::conv::__fixdfdi", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::conv::__fixdfsi", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::conv::__fixdfti", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::conv::__fixsfdi", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::conv::__fixsfsi", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::conv::__fixsfti", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::pow::__powidf2", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::pow::__powisf2", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::float::sub::__subdf3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::float::sub::__subsf3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::sdiv::__divdi3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::sdiv::__divmoddi4", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::sdiv::__divmodsi4", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::sdiv::__divsi3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::sdiv::__moddi3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::sdiv::__modsi3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::shift::__ashldi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__ashlsi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__ashlti3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__ashrdi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__ashrsi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__ashrti3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__lshrdi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__lshrsi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::shift::__lshrti3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::specialized_div_rem::delegate::u128_divide_sparc", "Argument[0]", "Argument[2].Reference", "value", "dfc-generated"] + - ["compiler_builtins::int::specialized_div_rem::delegate::u128_divide_sparc", "Argument[0]", "Argument[2]", "value", "dfc-generated"] + - ["compiler_builtins::int::specialized_div_rem::u32_div_rem", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["compiler_builtins::int::specialized_div_rem::u64_div_rem", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["compiler_builtins::int::udiv::__udivdi3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::udiv::__udivmoddi4", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::udiv::__udivmodsi4", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::udiv::__udivsi3", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::int::udiv::__umoddi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::int::udiv::__umodsi3", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::cbrtf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::ceil", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::ceilf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::fdim", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fdim", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fdimf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fdimf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::floor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::floorf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::fmax", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmax", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmaxf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmaxf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmaximum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmaximum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmaximumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmaximumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fminf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fminf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fminimum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fminimum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fminimumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fminimumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::fmod", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::fmodf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::rint", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::rintf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::round", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::roundeven", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::roundevenf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::roundf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::full_availability::trunc", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::full_availability::truncf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::acos::acos", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::acosf::acosf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::acosh::acosh", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::acoshf::acoshf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::asin::asin", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::asinf::asinf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::atan2::atan2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::atan2f::atan2f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::atan::atan", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::atanf::atanf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::cbrtf::cbrtf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::ceil::ceil", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::ceil::ceilf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::cos::cos", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::cosf::cosf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::erf::erf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::erff::erfcf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::erff::erff", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::exp10::exp10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::exp10f::exp10f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::exp2f::exp2f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::exp::exp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::expf::expf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::expm1::expm1", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::expm1f::expm1f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::fdim::fdim", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fdim::fdim", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fdim::fdimf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fdim::fdimf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::floor::floor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::floor::floorf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fmax", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fmax", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fmaxf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fmaxf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fmin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fmin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fminf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmin_fmax::fminf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fmaximum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fmaximum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fmaximumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fmaximumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fminimum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fminimum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fminimumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum::fminimumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fmaximum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fmaximum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fmaximum_numf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fmaximum_numf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fminimum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fminimum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fminimum_numf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fminimum_fmaximum_num::fminimum_numf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::fmod::fmod", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::fmod::fmodf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::frexp::frexp", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::frexpf::frexpf", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::ceil::ceil", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::ceil::ceil_status", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::fdim::fdim", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fdim::fdim", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::floor::floor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::floor::floor_status", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::fma::fma_round", "Argument[2]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::fmax::fmax", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmax::fmax", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmaximum::fmaximum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmaximum::fmaximum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmaximum_num::fmaximum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmaximum_num::fmaximum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmin::fmin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmin::fmin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fminimum::fminimum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fminimum::fminimum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fminimum_num::fminimum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fminimum_num::fminimum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::fmod::fmod", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::rint::rint_round", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::round::round", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::scalbn::scalbn", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::sqrt::sqrt", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::sqrt::sqrt_round", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::trunc::trunc", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::generic::trunc::trunc_status", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::j0::y0", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::j0f::y0f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::j1::y1", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::j1f::y1f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::jn::jn", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::jn::yn", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::jnf::jnf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::jnf::ynf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::k_sin::k_sin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::k_sin::k_sin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::k_sinf::k_sinf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::k_tan::k_tan", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::k_tan::k_tan", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::k_tanf::k_tanf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::ldexp::ldexp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::ldexp::ldexpf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::lgammaf::lgammaf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::lgammaf_r::lgammaf_r", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::log10::log10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::log10f::log10f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::log1p::log1p", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::log1pf::log1pf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::log2::log2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::log2f::log2f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::log::log", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::logf::logf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::modf::modf", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::modf::modf", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::modff::modff", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::modff::modff", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::nextafter::nextafter", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::nextafterf::nextafterf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::pow::pow", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::pow::pow", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::powf::powf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::powf::powf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::rem_pio2::rem_pio2", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::rem_pio2f::rem_pio2f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::remainder::remainder", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::remainderf::remainderf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::remquo::remquo", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::remquof::remquof", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::rint::rint", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::rint::rintf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::round::round", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::round::roundf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::roundeven::roundeven", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::roundeven::roundeven_impl", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::roundeven::roundevenf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::scalbn::scalbn", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::scalbn::scalbnf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::sin::sin", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::sincos::sincos", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::sincosf::sincosf", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::sinf::sinf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::sinh::sinh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::sinhf::sinhf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::support::feature_detect::get_or_init_flags_cache", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::support::hex_float::parse_any", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::support::hex_float::parse_any", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::support::hex_float::parse_hex_exact", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::support::hex_float::parse_hex_exact", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::tan::tan", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::tanf::tanf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::tgamma::tgamma", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::tgammaf::tgammaf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["compiler_builtins::math::libm_math::trunc::trunc", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::math::libm_math::trunc::truncf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::mem::memcpy", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::mem::memmove", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["compiler_builtins::mem::memset", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::array::drain::drain_array_with", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["core::array::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::array::from_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::char::convert::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::char::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::cmp::max", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -5652,39 +7740,14 @@ extensions: - ["core::cmp::minmax_by_key", "Argument[1]", "ReturnValue.Element", "value", "dfc-generated"] - ["core::contracts::build_check_ensures", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::convert::identity", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::core_arch::simd::debug_simd_finish", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bf16::_mm_mask_cvtneps_pbh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::core_arch::x86::avx512bw::_cvtmask32_u32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::core_arch::x86::avx512bw::_cvtu32_mask32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["core::core_arch::x86::avx512bw::_kadd_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kadd_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kadd_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kadd_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kand_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kand_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kand_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kand_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kandn_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kandn_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kandn_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kandn_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_knot_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_knot_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bw::_kshiftli_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bw::_kshiftli_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bw::_kshiftri_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bw::_kshiftri_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxnor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxnor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxnor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxnor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512bw::_kxor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bw::_load_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bw::_load_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512bw::_mm256_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -5707,41 +7770,16 @@ extensions: - ["core::core_arch::x86::avx512bw::_store_mask64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core::core_arch::x86::avx512dq::_cvtmask8_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512dq::_cvtu32_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kadd_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kadd_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kadd_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kadd_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kand_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kand_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kandn_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kandn_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512dq::_knot_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512dq::_kshiftli_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512dq::_kshiftri_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kxnor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kxnor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kxor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_kxor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512dq::_load_mask8", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["core::core_arch::x86::avx512dq::_store_mask8", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512dq::_load_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_cvtmask16_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_cvtu32_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kand_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kand_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kandn_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kandn_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_knot_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_kshiftli_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_kshiftri_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kxnor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kxnor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kxor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_kxor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_load_mask16", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512f::_load_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm256_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm256_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm256_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -5751,30 +7789,20 @@ extensions: - ["core::core_arch::x86::avx512f::_mm256_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm256_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_int2mask", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kand", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kandn", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kandn", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_kmov", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::core_arch::x86::avx512f::_mm512_knot", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_kunpackb", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_kunpackb", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kxnor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kxnor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_kxor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["core::core_arch::x86::avx512f::_mm512_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_loadu_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_loadu_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["core::core_arch::x86::avx512f::_mm512_mask2int", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm512_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] @@ -5796,7 +7824,8 @@ extensions: - ["core::core_arch::x86::avx512f::_mm_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core::core_arch::x86::avx512f::_mm_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core::core_arch::x86::avx512f::_store_mask16", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512fp16::_mm256_load_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm256_loadu_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[10]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[11]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] @@ -5829,6 +7858,8 @@ extensions: - ["core::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[8]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[9]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512fp16::_mm512_load_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm512_loadu_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[10]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[11]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] @@ -5893,7 +7924,9 @@ extensions: - ["core::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[8]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[9]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::avx512fp16::_mm_load_sh", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512fp16::_mm_load_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm_load_sh", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm_loadu_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx512fp16::_mm_mask_load_sh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] @@ -5913,10 +7946,12 @@ extensions: - ["core::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm256_broadcast_sd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::avx::_mm256_broadcast_sd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm256_broadcast_ss", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::avx::_mm256_broadcast_ss", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm256_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx::_mm256_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::avx::_mm256_load_si256", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["core::core_arch::x86::avx::_mm256_load_si256", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::avx::_mm256_set1_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm256_set1_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm256_set_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] @@ -5943,27 +7978,16 @@ extensions: - ["core::core_arch::x86::avx::_mm256_setr_ps", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm256_setr_ps", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm256_setr_ps", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::avx::_mm256_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core::core_arch::x86::avx::_mm256_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core::core_arch::x86::avx::_mm256_store_si256", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu_si256", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - ["core::core_arch::x86::avx::_mm_broadcast_ss", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::bmi1::_andn_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::bmi1::_andn_u32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::bmi1::_blsi_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::bmi1::_blsmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::bmi1::_blsr_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::bmi2::_mulx_u32", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["core::core_arch::x86::bmi2::_mulx_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::bmi2::_mulx_u32", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - ["core::core_arch::x86::bmi2::_mulx_u32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::rtm::_xabort_code", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::sse2::_mm_load1_pd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::sse2::_mm_load_pd1", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::avx::_mm_broadcast_ss", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::sse2::_mm_load1_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_load_pd1", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::sse2::_mm_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::sse2::_mm_load_sd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::sse2::_mm_load_si128", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["core::core_arch::x86::sse2::_mm_loadh_pd", "Argument[1].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::sse2::_mm_loadl_pd", "Argument[1].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::sse2::_mm_load_sd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_load_si128", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_loadh_pd", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_loadl_pd", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::sse2::_mm_set1_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse2::_mm_set_pd1", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse2::_mm_set_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] @@ -5971,17 +7995,12 @@ extensions: - ["core::core_arch::x86::sse2::_mm_set_sd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse2::_mm_setr_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse2::_mm_setr_pd", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::sse2::_mm_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core::core_arch::x86::sse2::_mm_store_si128", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["core::core_arch::x86::sse3::_mm_loaddup_pd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::sse::_MM_SHUFFLE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::sse::_MM_SHUFFLE", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::sse::_MM_SHUFFLE", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::sse::_MM_SHUFFLE", "Argument[3]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::sse::_mm_load1_ps", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::sse::_mm_load_ps1", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::sse2::_mm_storeu_si128", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core::core_arch::x86::sse3::_mm_loaddup_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::sse::_mm_load1_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::sse::_mm_load_ps1", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::sse::_mm_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::sse::_mm_load_ss", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] + - ["core::core_arch::x86::sse::_mm_load_ss", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86::sse::_mm_set1_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse::_mm_set_ps1", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse::_mm_set_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] @@ -5993,36 +8012,8 @@ extensions: - ["core::core_arch::x86::sse::_mm_setr_ps", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse::_mm_setr_ps", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core::core_arch::x86::sse::_mm_setr_ps", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["core::core_arch::x86::sse::_mm_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_blcfill_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_blci_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_blcic_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_blcmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_blcs_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_blsfill_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_blsic_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_t1mskc_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86::tbm::_tzmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::core_arch::x86_64::avx512bw::_cvtmask64_u64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::core_arch::x86_64::avx512bw::_cvtu64_mask64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["core::core_arch::x86_64::bmi2::_mulx_u64", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi2::_mulx_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi2::_mulx_u64", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi2::_mulx_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi::_andn_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi::_andn_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi::_blsi_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi::_blsmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::bmi::_blsr_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_blcfill_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_blci_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_blcic_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_blcmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_blcs_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_blsfill_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_blsic_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_t1mskc_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::core_arch::x86_64::tbm::_tzmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::fmt::builders::debug_list_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugList::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - ["core::fmt::builders::debug_map_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugMap::fmt]", "value", "dfc-generated"] - ["core::fmt::builders::debug_set_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] @@ -6032,30 +8023,45 @@ extensions: - ["core::future::poll_fn::poll_fn", "Argument[0]", "ReturnValue.Field[core::future::poll_fn::PollFn::f]", "value", "dfc-generated"] - ["core::future::ready::ready", "Argument[0]", "ReturnValue.Field[core::future::ready::Ready(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["core::hint::must_use", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["core::intrinsics::contract_check_ensures", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["core::intrinsics::const_make_global", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf128", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf128", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf16", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf16", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf32", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::maximumf64", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf128", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf128", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf16", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf16", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf32", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::minimumf64", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["core::intrinsics::select_unpredictable", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["core::intrinsics::select_unpredictable", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::simd::simd_insert_dyn", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::iter::adapters::try_process", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["core::iter::sources::from_coroutine::from_coroutine", "Argument[0]", "ReturnValue.Field[core::iter::sources::from_coroutine::FromCoroutine(0)]", "value", "dfc-generated"] - ["core::iter::sources::from_fn::from_fn", "Argument[0]", "ReturnValue.Field[core::iter::sources::from_fn::FromFn(0)]", "value", "dfc-generated"] - ["core::iter::sources::once_with::once_with", "Argument[0]", "ReturnValue.Field[core::iter::sources::once_with::OnceWith::make].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["core::iter::sources::repeat::repeat", "Argument[0]", "ReturnValue.Field[core::iter::sources::repeat::Repeat::element]", "value", "dfc-generated"] - - ["core::iter::sources::repeat_n::repeat_n", "Argument[1]", "ReturnValue.Field[core::iter::sources::repeat_n::RepeatN::count]", "value", "dfc-generated"] - ["core::iter::sources::repeat_with::repeat_with", "Argument[0]", "ReturnValue.Field[core::iter::sources::repeat_with::RepeatWith::repeater]", "value", "dfc-generated"] - ["core::iter::sources::successors::successors", "Argument[0]", "ReturnValue.Field[core::iter::sources::successors::Successors::next]", "value", "dfc-generated"] - ["core::iter::sources::successors::successors", "Argument[1]", "ReturnValue.Field[core::iter::sources::successors::Successors::succ]", "value", "dfc-generated"] - ["core::mem::copy", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["core::mem::copy", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::mem::transmute_copy", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::num::flt2dec::estimator::estimate_scaling_factor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core::num::flt2dec::strategy::dragon::format_exact", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::num::flt2dec::strategy::dragon::format_shortest", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0].Field[core::num::bignum::Big32x40::base].Element", "ReturnValue.Field[core::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] - - ["core::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["core::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::num::flt2dec::strategy::grisu::format_exact", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::num::flt2dec::strategy::grisu::format_shortest", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::num::flt2dec::to_exact_exp_str", "Argument[5].Element", "Argument[0].Parameter[1].Reference", "value", "dfc-generated"] - - ["core::num::flt2dec::to_exact_fixed_str", "Argument[4].Element", "Argument[0].Parameter[1].Reference", "value", "dfc-generated"] + - ["core::num::flt2dec::to_exact_exp_str", "Argument[5]", "Argument[0]", "taint", "df-generated"] + - ["core::num::flt2dec::to_exact_fixed_str", "Argument[4]", "Argument[0]", "taint", "df-generated"] - ["core::num::flt2dec::to_shortest_exp_str", "Argument[5]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - ["core::num::flt2dec::to_shortest_str", "Argument[4]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - ["core::num::int_log10::i128", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -6069,6 +8075,7 @@ extensions: - ["core::num::int_log10::u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::num::int_log10::u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::num::int_log10::usize", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::ops::try_trait::from_yeet", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::panic::abort_unwind", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["core::ptr::from_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core::ptr::from_ref", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -6076,51 +8083,33 @@ extensions: - ["core::ptr::with_exposed_provenance_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::slice::index::range", "Argument[1].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Range::end]", "value", "dfc-generated"] - ["core::slice::index::try_range", "Argument[1].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::ops::range::Range::end]", "value", "dfc-generated"] + - ["core::slice::raw::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::slice::raw::from_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::slice::sort::select::partition_at_index", "Argument[0]", "Argument[2]", "taint", "df-generated"] - ["core::slice::sort::shared::find_existing_run", "Argument[1].ReturnValue", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["core::slice::sort::shared::pivot::choose_pivot", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["core::slice::sort::shared::smallsort::sort4_stable", "Argument[0].Reference", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] - - ["core::slice::sort::stable::drift::sort", "Argument[0].Element", "Argument[3].Parameter[1].Reference", "value", "dfc-generated"] + - ["core::slice::sort::shared::smallsort::sort4_stable", "Argument[0]", "Argument[2]", "taint", "df-generated"] + - ["core::slice::sort::stable::drift::sort", "Argument[0]", "Argument[3]", "taint", "df-generated"] + - ["core::slice::sort::stable::drift::sort", "Argument[1]", "Argument[3]", "taint", "df-generated"] + - ["core::slice::sort::stable::merge::merge", "Argument[0]", "Argument[3]", "taint", "df-generated"] - ["core::slice::sort::stable::merge::merge", "Argument[1]", "Argument[3]", "taint", "df-generated"] - - ["core::slice::sort::stable::quicksort::quicksort", "Argument[0].Element", "Argument[4].Parameter[1].Reference", "value", "dfc-generated"] - - ["core::slice::sort::stable::sort", "Argument[0].Element", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] - - ["core::slice::sort::unstable::quicksort::quicksort", "Argument[0]", "Argument[3]", "taint", "df-generated"] + - ["core::slice::sort::stable::quicksort::quicksort", "Argument[3].Field[core::option::Option::Some(0)]", "Argument[4].Parameter[0]", "value", "dfc-generated"] + - ["core::slice::sort::stable::sort", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["core::slice::sort::unstable::quicksort::quicksort", "Argument[1].Field[core::option::Option::Some(0)]", "Argument[3].Parameter[0]", "value", "dfc-generated"] - ["core::slice::sort::unstable::sort", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["core::str::converts::from_utf8_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::str::converts::from_utf8_unchecked_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core::str::validations::next_code_point", "Argument[0].Element", "ReturnValue", "value", "dfc-generated"] + - ["core::str::validations::next_code_point", "Argument[0].Reference.Element", "ReturnValue", "value", "dfc-generated"] + - ["core::unicode::unicode_data::conversions::to_lower", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::unicode::unicode_data::conversions::to_upper", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::simd::debug_simd_finish", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bf16::_mm_mask_cvtneps_pbh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512bw::_cvtmask32_u32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512bw::_cvtu32_mask32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kadd_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kadd_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kadd_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kadd_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kand_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kand_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kand_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kand_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kandn_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kandn_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kandn_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kandn_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_knot_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_knot_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_kshiftli_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_kshiftli_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_kshiftri_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_kshiftri_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxnor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxnor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxnor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxnor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512bw::_kxor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_load_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_load_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_mm256_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -6143,41 +8132,16 @@ extensions: - ["core_arch::core_arch::x86::avx512bw::_store_mask64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512dq::_cvtmask8_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512dq::_cvtu32_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kadd_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kadd_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kadd_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kadd_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kand_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kand_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kandn_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kandn_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512dq::_knot_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512dq::_kshiftli_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512dq::_kshiftri_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kxnor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kxnor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kxor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_kxor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512dq::_load_mask8", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::avx512dq::_store_mask8", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512dq::_load_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_cvtmask16_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_cvtu32_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kand_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kand_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kandn_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kandn_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_knot_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_kshiftli_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_kshiftri_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kxnor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kxnor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kxor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_kxor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_load_mask16", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512f::_load_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm256_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm256_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm256_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -6187,30 +8151,20 @@ extensions: - ["core_arch::core_arch::x86::avx512f::_mm256_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm256_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_int2mask", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kand", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kandn", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kandn", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_kmov", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_knot", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_kunpackb", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_kunpackb", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kxnor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kxnor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_kxor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_mask2int", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm512_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] @@ -6232,7 +8186,8 @@ extensions: - ["core_arch::core_arch::x86::avx512f::_mm_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx512f::_store_mask16", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm256_load_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm256_loadu_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[10]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[11]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] @@ -6265,6 +8220,8 @@ extensions: - ["core_arch::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[8]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[9]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm512_load_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm512_loadu_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[10]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[11]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] @@ -6329,7 +8286,9 @@ extensions: - ["core_arch::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[8]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[9]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::avx512fp16::_mm_load_sh", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm_load_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm_load_sh", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm_loadu_ph", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm_mask_load_sh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] @@ -6349,10 +8308,12 @@ extensions: - ["core_arch::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm256_broadcast_sd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_broadcast_sd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm256_broadcast_ss", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_broadcast_ss", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm256_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx::_mm256_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx::_mm256_load_si256", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_load_si256", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::avx::_mm256_set1_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm256_set1_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm256_set_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] @@ -6379,27 +8340,16 @@ extensions: - ["core_arch::core_arch::x86::avx::_mm256_setr_ps", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm256_setr_ps", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm256_setr_ps", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::avx::_mm256_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx::_mm256_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core_arch::core_arch::x86::avx::_mm256_store_si256", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu_si256", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - ["core_arch::core_arch::x86::avx::_mm_broadcast_ss", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::bmi1::_andn_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi1::_andn_u32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi1::_blsi_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi1::_blsmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi1::_blsr_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi2::_mulx_u32", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi2::_mulx_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi2::_mulx_u32", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - ["core_arch::core_arch::x86::bmi2::_mulx_u32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::rtm::_xabort_code", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_load1_pd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_load_pd1", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx::_mm_broadcast_ss", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_load1_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_load_pd1", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_load_sd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_load_si128", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_loadh_pd", "Argument[1].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_loadl_pd", "Argument[1].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_load_sd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_load_si128", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_loadh_pd", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_loadl_pd", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_set1_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse2::_mm_set_pd1", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse2::_mm_set_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] @@ -6407,17 +8357,12 @@ extensions: - ["core_arch::core_arch::x86::sse2::_mm_set_sd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse2::_mm_setr_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse2::_mm_setr_pd", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse2::_mm_store_si128", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse3::_mm_loaddup_pd", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse::_MM_SHUFFLE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse::_MM_SHUFFLE", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse::_MM_SHUFFLE", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse::_MM_SHUFFLE", "Argument[3]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse::_mm_load1_ps", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse::_mm_load_ps1", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_storeu_si128", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::sse3::_mm_loaddup_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::sse::_mm_load1_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::sse::_mm_load_ps1", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::sse::_mm_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::sse::_mm_load_ss", "Argument[0].Reference", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::sse::_mm_load_ss", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86::sse::_mm_set1_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse::_mm_set_ps1", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse::_mm_set_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] @@ -6429,76 +8374,239 @@ extensions: - ["core_arch::core_arch::x86::sse::_mm_setr_ps", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse::_mm_setr_ps", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - ["core_arch::core_arch::x86::sse::_mm_setr_ps", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["core_arch::core_arch::x86::sse::_mm_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_blcfill_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_blci_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_blcic_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_blcmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_blcs_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_blsfill_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_blsic_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_t1mskc_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86::tbm::_tzmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core_arch::core_arch::x86_64::avx512bw::_cvtmask64_u64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["core_arch::core_arch::x86_64::avx512bw::_cvtu64_mask64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["core_arch::core_arch::x86_64::bmi2::_mulx_u64", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi2::_mulx_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi2::_mulx_u64", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi2::_mulx_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi::_andn_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi::_andn_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi::_blsi_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi::_blsmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::bmi::_blsr_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_blcfill_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_blci_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_blcic_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_blcmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_blcs_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_blsfill_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_blsic_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_t1mskc_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["core_arch::core_arch::x86_64::tbm::_tzmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["dylib_dep::foo", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["matrix_inversion::simd_inv4x4", "Argument[0].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[matrix_inversion::Matrix4x4(0)]", "value", "dfc-generated"] + - ["intrinsic-test::arm::compile::build_cpp_compilation", "Argument[0].Reference.Field[intrinsic-test::common::cli::ProcessedCli::cpp_compiler]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["intrinsic-test::arm::config::build_notices", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::create_rust_test_program", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::create_rust_test_program", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::create_rust_test_program", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::create_rust_test_program", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::format_rust_main_template", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::format_rust_main_template", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::format_rust_main_template", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::format_rust_main_template", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::format_rust_main_template", "Argument[4]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::format_rust_main_template", "Argument[5]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::generate_rust_constraint_blocks", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::generate_rust_constraint_blocks", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::generate_rust_test_loop", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::generate_rust_test_loop", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["intrinsic-test::common::gen_rust::generate_rust_test_loop", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::acos::acos", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::acosf::acosf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::acosh::acosh", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::acoshf::acoshf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::asin::asin", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::asinf::asinf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::atan2::atan2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::atan2f::atan2f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::atan::atan", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::atanf::atanf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::cbrtf::cbrtf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::ceil::ceil", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::ceil::ceilf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::cos::cos", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::cosf::cosf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::erf::erf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::erff::erfcf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::erff::erff", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::exp10::exp10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::exp10f::exp10f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::exp2f::exp2f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::exp::exp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::expf::expf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::expm1::expm1", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::expm1f::expm1f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::fdim::fdim", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fdim::fdim", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fdim::fdimf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fdim::fdimf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::floor::floor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::floor::floorf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::fmin_fmax::fmax", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmin_fmax::fmax", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmin_fmax::fmaxf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmin_fmax::fmaxf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmin_fmax::fmin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmin_fmax::fmin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmin_fmax::fminf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmin_fmax::fminf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fmaximum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fmaximum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fmaximumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fmaximumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fminimum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fminimum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fminimumf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum::fminimumf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fmaximum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fmaximum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fmaximum_numf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fmaximum_numf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fminimum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fminimum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fminimum_numf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fminimum_fmaximum_num::fminimum_numf", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::fmod::fmod", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::fmod::fmodf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::frexp::frexp", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::frexpf::frexpf", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::generic::ceil::ceil", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::generic::ceil::ceil_status", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["libm::math::generic::fdim::fdim", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fdim::fdim", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::floor::floor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::generic::floor::floor_status", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["libm::math::generic::fma::fma_round", "Argument[2]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["libm::math::generic::fmax::fmax", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmax::fmax", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmaximum::fmaximum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmaximum::fmaximum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmaximum_num::fmaximum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmaximum_num::fmaximum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmin::fmin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmin::fmin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fminimum::fminimum", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fminimum::fminimum", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fminimum_num::fminimum_num", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fminimum_num::fminimum_num", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::fmod::fmod", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::generic::rint::rint_round", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["libm::math::generic::round::round", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::scalbn::scalbn", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::generic::sqrt::sqrt", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::generic::sqrt::sqrt_round", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["libm::math::generic::trunc::trunc", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::generic::trunc::trunc_status", "Argument[0]", "ReturnValue.Field[compiler_builtins::math::libm_math::support::env::FpResult::val].Field[libm::math::support::env::FpResult::val]", "value", "dfc-generated"] + - ["libm::math::j0::y0", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::j0f::y0f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::j1::y1", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::j1f::y1f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::jn::jn", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::jn::yn", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::jnf::jnf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::jnf::ynf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::k_sin::k_sin", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::k_sin::k_sin", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::k_sinf::k_sinf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::k_tan::k_tan", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::k_tan::k_tan", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::k_tanf::k_tanf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::ldexp::ldexp", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::ldexp::ldexpf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::lgammaf::lgammaf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::lgammaf_r::lgammaf_r", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::log10::log10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::log10f::log10f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::log1p::log1p", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::log1pf::log1pf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::log2::log2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::log2f::log2f", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::log::log", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::logf::logf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::modf::modf", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::modf::modf", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["libm::math::modff::modff", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::modff::modff", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["libm::math::nextafter::nextafter", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::nextafterf::nextafterf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::pow::pow", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::pow::pow", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::powf::powf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::powf::powf", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::rem_pio2::rem_pio2", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::rem_pio2f::rem_pio2f", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::remainder::remainder", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::remainderf::remainderf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::remquo::remquo", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::remquof::remquof", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::rint::rint", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::rint::rintf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::round::round", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::round::roundf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::roundeven::roundeven", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::roundeven::roundeven_impl", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::roundeven::roundevenf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::scalbn::scalbn", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::scalbn::scalbnf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::sin::sin", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::sincos::sincos", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::sincosf::sincosf", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["libm::math::sinf::sinf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::sinh::sinh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::sinhf::sinhf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::support::feature_detect::get_or_init_flags_cache", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::support::hex_float::parse_any", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::support::hex_float::parse_any", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::support::hex_float::parse_hex_exact", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::support::hex_float::parse_hex_exact", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::tan::tan", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::tanf::tanf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::tgamma::tgamma", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::tgammaf::tgammaf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libm::math::trunc::trunc", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm::math::trunc::truncf", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["libm_test::run_cfg::iteration_count", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["matrix_inversion::simd_inv4x4", "Argument[0].Field[matrix_inversion::Matrix4x4(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[matrix_inversion::Matrix4x4(0)]", "value", "dfc-generated"] + - ["panic_unwind::__rust_panic_cleanup", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["panic_unwind::imp::cleanup", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["proc_macro::bridge::client::state::set", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["proc_macro::bridge::client::state::set", "Argument[1]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["proc_macro::bridge::client::state::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["std::backtrace::helper::lazy_resolve", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["std::backtrace::helper::lazy_resolve", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["std::backtrace_rs::symbolize::gimli::elf::handle_split_dwarf", "Argument[2].Field[addr2line::lookup::SplitDwarfLoad::path].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["std::io::append_to_string", "Argument[0].Field[alloc::string::String::vec]", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["std::io::append_to_string", "Argument[1].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["std::backtrace_rs::symbolize::gimli::elf::handle_split_dwarf", "Argument[2].Field[addr2line::lookup::SplitDwarfLoad::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["std::fs::set_permissions", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::io::append_to_string", "Argument[0].Reference.Field[alloc::string::String::vec]", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["std::io::append_to_string", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["std::io::default_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["std::io::default_read_exact", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["std::io::default_read_to_end", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["std::io::default_read_to_string", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::io::default_read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["std::io::default_read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["std::io::default_read_to_string", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["std::io::default_read_to_string", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["std::io::default_read_to_string", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["std::io::default_read_vectored", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["std::io::default_write_fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["std::io::default_write_vectored", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["std::io::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["std::io::util::repeat", "Argument[0]", "ReturnValue.Field[std::io::util::Repeat::byte]", "value", "dfc-generated"] - - ["std::sync::poison::map_result", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["std::sync::poison::map_result", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["std::sync::poison::map_result", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["std::sync::poison::mutex::guard_lock", "Argument[0].Field[std::sync::poison::mutex::MutexGuard::lock].Field[std::sync::poison::mutex::Mutex::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["std::sync::poison::mutex::guard_poison", "Argument[0].Field[std::sync::poison::mutex::MutexGuard::lock].Field[std::sync::poison::mutex::Mutex::poison]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["std::os::unix::fs::chown", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::os::unix::fs::chown", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["std::os::unix::fs::lchown", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::os::unix::fs::lchown", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["std::os::unix::fs::mkfifo", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::os::unix::net::ancillary::recv_vectored_with_ancillary_from", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["std::panicking::begin_panic", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["std::panicking::begin_panic_handler", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["std::sync::poison::map_result", "Argument[1].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] + - ["std::sync::poison::map_result", "Argument[1].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["std::sync::poison::mutex::guard_lock", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["std::sync::poison::mutex::guard_poison", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["std::sys::backtrace::__rust_begin_short_backtrace", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["std::sys::backtrace::__rust_end_short_backtrace", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["std::sys::env::unix::setenv", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::hard_link", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::rename", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::set_permissions", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::symlink", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::unix::chown", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::unix::chown", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::unix::lchown", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::unix::lchown", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["std::sys::fs::unix::mkfifo", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["std::sys::pal::common::small_c_string::run_path_with_cstr", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["std::sys::pal::common::small_c_string::run_with_cstr", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["std::sys::pal::unix::cvt", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["std::sys::pal::unix::cvt_r", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["std::sys::pal::unix::pipe::read2", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["std::sys::pal::unix::pipe::read2", "Argument[2]", "Argument[3]", "taint", "df-generated"] + - ["std::sys::personality::dwarf::eh::find_eh_action", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["std::sys_common::ignore_notfound", "Argument[0].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["std::sys_common::mul_div_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["std::sys_common::mul_div_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["std::sys_common::mul_div_u64", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["std::thread::current::set_current", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["std::thread::current::try_with_current", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["std::thread::with_current_name", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["stdarch-gen-arm::big_endian::create_let_variable", "Argument[1].Reference", "ReturnValue.Field[stdarch-gen-arm::expression::Expression::Let(0)].Field[stdarch-gen-arm::expression::LetVariant::WithType(1)]", "value", "dfc-generated"] - - ["stdarch-gen-arm::big_endian::create_mut_let_variable", "Argument[1].Reference", "ReturnValue.Field[stdarch-gen-arm::expression::Expression::Let(0)].Field[stdarch-gen-arm::expression::LetVariant::MutWithType(1)]", "value", "dfc-generated"] - ["stdarch-gen-arm::fn_suffix::make_neon_suffix", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["test_helpers::subnormals::flush", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["test_helpers::subnormals::flush_in", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -6506,6 +8614,36 @@ extensions: pack: codeql/rust-all extensible: sinkModel data: + - ["<& as core::alloc::Allocator>::allocate", "Argument[0]", "alloc-layout", "df-generated"] + - ["<& as core::alloc::Allocator>::allocate_zeroed", "Argument[0]", "alloc-layout", "df-generated"] + - ["<& as core::alloc::Allocator>::grow", "Argument[2]", "alloc-layout", "df-generated"] + - ["<& as core::alloc::Allocator>::grow_zeroed", "Argument[2]", "alloc-layout", "df-generated"] + - ["<& as core::alloc::Allocator>::shrink", "Argument[2]", "alloc-layout", "df-generated"] + - ["<& as std::io::Write>::write", "Argument[0]", "log-injection", "df-generated"] + - ["<& as std::io::Write>::write_all", "Argument[0]", "log-injection", "df-generated"] + - ["<() as alloc::vec::spec_from_elem::SpecFromElem>::from_elem", "Argument[1]", "alloc-layout", "df-generated"] + - ["<(,) as libm_test::generate::random::RandomInput>::get_cases", "Argument[0]", "log-injection", "df-generated"] + - ["<(,) as libm_test::generate::spaced::SpacedInput>::get_cases", "Argument[0]", "log-injection", "df-generated"] + - ["<(,) as util::ParseTuple>::parse", "Argument[0]", "log-injection", "df-generated"] + - ["<(,,) as libm_test::generate::random::RandomInput>::get_cases", "Argument[0]", "log-injection", "df-generated"] + - ["<(,,) as libm_test::generate::spaced::SpacedInput>::get_cases", "Argument[0]", "log-injection", "df-generated"] + - ["<(,,) as util::ParseTuple>::parse", "Argument[0]", "log-injection", "df-generated"] + - ["<(,,,) as libm_test::generate::random::RandomInput>::get_cases", "Argument[0]", "log-injection", "df-generated"] + - ["<(,,,) as libm_test::generate::spaced::SpacedInput>::get_cases", "Argument[0]", "log-injection", "df-generated"] + - ["<(,,,) as util::ParseTuple>::parse", "Argument[0]", "log-injection", "df-generated"] + - ["<*const>::read", "Argument[self]", "pointer-access", "df-generated"] + - ["<*const>::read_unaligned", "Argument[self]", "pointer-access", "df-generated"] + - ["<*const>::read_volatile", "Argument[self]", "pointer-access", "df-generated"] + - ["<*mut>::read", "Argument[self]", "pointer-access", "df-generated"] + - ["<*mut>::read_unaligned", "Argument[self]", "pointer-access", "df-generated"] + - ["<*mut>::read_volatile", "Argument[self]", "pointer-access", "df-generated"] + - ["<*mut>::write", "Argument[self]", "pointer-access", "df-generated"] + - ["<*mut>::write_bytes", "Argument[self]", "pointer-access", "df-generated"] + - ["<*mut>::write_unaligned", "Argument[self]", "pointer-access", "df-generated"] + - ["<*mut>::write_volatile", "Argument[self]", "pointer-access", "df-generated"] + - ["<[]>::select_nth_unstable", "Argument[0]", "log-injection", "df-generated"] + - ["<[]>::select_nth_unstable_by", "Argument[0]", "log-injection", "df-generated"] + - ["<[]>::select_nth_unstable_by_key", "Argument[0]", "log-injection", "df-generated"] - ["::allocate", "Argument[0]", "alloc-layout", "df-generated"] - ["::allocate_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - ["::grow", "Argument[2]", "alloc-layout", "df-generated"] @@ -6514,6 +8652,7 @@ extensions: - ["::grow_zeroed", "Argument[2]", "alloc-size", "df-generated"] - ["::shrink", "Argument[2]", "alloc-layout", "df-generated"] - ["::shrink", "Argument[2]", "alloc-size", "df-generated"] + - ["::new_uninit_slice", "Argument[0]", "alloc-layout", "df-generated"] - ["::new_uninit_slice_in", "Argument[0]", "alloc-layout", "df-generated"] - ["::new_zeroed_slice", "Argument[0]", "alloc-layout", "df-generated"] - ["::new_zeroed_slice_in", "Argument[0]", "alloc-layout", "df-generated"] @@ -6521,36 +8660,12 @@ extensions: - ["::try_new_uninit_slice_in", "Argument[0]", "alloc-layout", "df-generated"] - ["::try_new_zeroed_slice", "Argument[0]", "alloc-layout", "df-generated"] - ["::try_new_zeroed_slice_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::into_iter", "Argument[self]", "pointer-access", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::with_capacity_in", "Argument[0]", "alloc-layout", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - ["::drop", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::drop", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::max", "Argument[self]", "pointer-access", "df-generated"] - - ["::min", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::max", "Argument[self]", "pointer-access", "df-generated"] - - ["::min", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::max", "Argument[self]", "pointer-access", "df-generated"] - - ["::min", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::max", "Argument[self]", "pointer-access", "df-generated"] - - ["::min", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::append", "Argument[self]", "pointer-access", "df-generated"] - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - ["::last", "Argument[self]", "pointer-access", "df-generated"] - ["::max", "Argument[self]", "pointer-access", "df-generated"] @@ -6561,16 +8676,6 @@ extensions: - ["::max", "Argument[self]", "pointer-access", "df-generated"] - ["::min", "Argument[self]", "pointer-access", "df-generated"] - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::deallocating_next_back_unchecked", "Argument[self]", "pointer-access", "df-generated"] - - ["::deallocating_next_unchecked", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back_unchecked", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_unchecked", "Argument[self]", "pointer-access", "df-generated"] - ["::next_back_checked", "Argument[self]", "pointer-access", "df-generated"] - ["::next_checked", "Argument[self]", "pointer-access", "df-generated"] - ["::consider_for_balancing", "Argument[self]", "pointer-access", "df-generated"] @@ -6578,39 +8683,34 @@ extensions: - ["::fix_node_and_affected_ancestors", "Argument[self]", "pointer-access", "df-generated"] - ["::full_range", "Argument[self]", "pointer-access", "df-generated"] - ["::push_internal_level", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::last", "Argument[self]", "pointer-access", "df-generated"] - - ["::max", "Argument[self]", "pointer-access", "df-generated"] - - ["::min", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::range_search", "Argument[self]", "pointer-access", "df-generated"] + - ["::append", "Argument[self]", "pointer-access", "df-generated"] - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - ["::last", "Argument[self]", "pointer-access", "df-generated"] - ["::max", "Argument[self]", "pointer-access", "df-generated"] - ["::min", "Argument[self]", "pointer-access", "df-generated"] - ["::next", "Argument[self]", "pointer-access", "df-generated"] - ["::spec_extend", "Argument[self]", "log-injection", "df-generated"] - - ["::clone_from", "Argument[self]", "log-injection", "df-generated"] - - ["::extend", "Argument[self]", "log-injection", "df-generated"] + - ["::clone", "Argument[self]", "alloc-layout", "df-generated"] + - ["::from", "Argument[0]", "pointer-access", "df-generated"] - ["::extend_one", "Argument[self]", "log-injection", "df-generated"] - ["::extend_reserve", "Argument[self]", "log-injection", "df-generated"] - - ["::write", "Argument[self]", "log-injection", "df-generated"] - - ["::write_all", "Argument[self]", "log-injection", "df-generated"] - ["::write_all_vectored", "Argument[self]", "log-injection", "df-generated"] - ["::write_vectored", "Argument[self]", "log-injection", "df-generated"] - ["::append", "Argument[self]", "log-injection", "df-generated"] - ["::insert", "Argument[0]", "log-injection", "df-generated"] - ["::insert", "Argument[self]", "log-injection", "df-generated"] + - ["::insert_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::insert_mut", "Argument[self]", "log-injection", "df-generated"] - ["::make_contiguous", "Argument[self]", "log-injection", "df-generated"] - ["::push_back", "Argument[self]", "log-injection", "df-generated"] + - ["::push_back_mut", "Argument[self]", "log-injection", "df-generated"] - ["::push_front", "Argument[self]", "log-injection", "df-generated"] + - ["::push_front_mut", "Argument[self]", "log-injection", "df-generated"] - ["::remove", "Argument[0]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - ["::reserve", "Argument[self]", "log-injection", "df-generated"] - ["::reserve_exact", "Argument[self]", "log-injection", "df-generated"] - - ["::resize", "Argument[self]", "log-injection", "df-generated"] - - ["::resize_with", "Argument[self]", "log-injection", "df-generated"] - ["::rotate_left", "Argument[0]", "log-injection", "df-generated"] - ["::rotate_left", "Argument[self]", "log-injection", "df-generated"] - ["::rotate_right", "Argument[0]", "log-injection", "df-generated"] @@ -6618,67 +8718,134 @@ extensions: - ["::shrink_to", "Argument[0]", "log-injection", "df-generated"] - ["::shrink_to", "Argument[self]", "log-injection", "df-generated"] - ["::shrink_to_fit", "Argument[self]", "log-injection", "df-generated"] - - ["::split_off", "Argument[0]", "alloc-layout", "df-generated"] - - ["::split_off", "Argument[self]", "alloc-layout", "df-generated"] - ["::try_reserve", "Argument[self]", "log-injection", "df-generated"] - ["::try_reserve_exact", "Argument[self]", "log-injection", "df-generated"] - ["::try_with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::with_capacity_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::clone", "Argument[self]", "alloc-layout", "df-generated"] - ["::try_with_capacity_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::with_capacity_in", "Argument[0]", "alloc-layout", "df-generated"] - ["::with_capacity_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - ["::with_capacity_zeroed_in", "Argument[0]", "alloc-layout", "df-generated"] - - ["::into_inner", "Argument[0]", "pointer-access", "df-generated"] + - ["::from", "Argument[0]", "alloc-layout", "df-generated"] + - ["::from", "Argument[0]", "pointer-access", "df-generated"] - ["::make_mut", "Argument[0]", "pointer-access", "df-generated"] - - ["::try_unwrap", "Argument[0]", "pointer-access", "df-generated"] - - ["::unwrap_or_clone", "Argument[0]", "pointer-access", "df-generated"] - - ["::split_off", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_uninit_slice", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_uninit_slice_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_zeroed_slice", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_zeroed_slice_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::into_utf8_lossy", "Argument[self]", "alloc-layout", "df-generated"] + - ["::into_chars", "Argument[self]", "pointer-access", "df-generated"] - ["::split_off", "Argument[0]", "log-injection", "df-generated"] - - ["::split_off", "Argument[self]", "alloc-layout", "df-generated"] - ["::split_off", "Argument[self]", "log-injection", "df-generated"] + - ["::try_with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::from", "Argument[0]", "alloc-layout", "df-generated"] + - ["::from", "Argument[0]", "pointer-access", "df-generated"] - ["::make_mut", "Argument[0]", "pointer-access", "df-generated"] + - ["::new_uninit_slice", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_uninit_slice_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_zeroed_slice", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_zeroed_slice_in", "Argument[0]", "alloc-layout", "df-generated"] - ["::from", "Argument[0]", "log-injection", "df-generated"] + - ["::from", "Argument[0]", "pointer-access", "df-generated"] + - ["::into_iter", "Argument[self]", "pointer-access", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::mark", "Argument[0]", "pointer-access", "df-generated"] + - ["::unmark", "Argument[self]", "pointer-access", "df-generated"] - ["::insert", "Argument[0]", "log-injection", "df-generated"] - ["::insert", "Argument[self]", "log-injection", "df-generated"] + - ["::insert_mut", "Argument[0]", "log-injection", "df-generated"] + - ["::insert_mut", "Argument[self]", "log-injection", "df-generated"] + - ["::into_chunks", "Argument[self]", "pointer-access", "df-generated"] + - ["::into_flattened", "Argument[self]", "pointer-access", "df-generated"] + - ["::into_parts_with_alloc", "Argument[self]", "pointer-access", "df-generated"] + - ["::into_raw_parts_with_alloc", "Argument[self]", "pointer-access", "df-generated"] - ["::remove", "Argument[0]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - - ["::split_off", "Argument[0]", "alloc-layout", "df-generated"] - ["::split_off", "Argument[0]", "log-injection", "df-generated"] - - ["::split_off", "Argument[self]", "alloc-layout", "df-generated"] - ["::split_off", "Argument[self]", "log-injection", "df-generated"] - ["::swap_remove", "Argument[0]", "log-injection", "df-generated"] - ["::swap_remove", "Argument[self]", "log-injection", "df-generated"] + - ["::try_with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::try_with_capacity_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::with_capacity_in", "Argument[0]", "alloc-layout", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::last", "Argument[self]", "pointer-access", "df-generated"] - ["::new", "Argument[0]", "path-injection", "df-generated"] - ["::new", "Argument[0]", "path-injection", "df-generated"] + - ["::deref_mut", "Argument[self]", "pointer-access", "df-generated"] - ["::force_mut", "Argument[0]", "pointer-access", "df-generated"] + - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] + - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] - ["::index", "Argument[0]", "log-injection", "df-generated"] - ["::digit", "Argument[0]", "log-injection", "df-generated"] - ["::digit", "Argument[0]", "log-injection", "df-generated"] - ["::digit", "Argument[0]", "log-injection", "df-generated"] - ["::digit", "Argument[0]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::from_elem", "Argument[1]", "alloc-layout", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::drop", "Argument[self]", "pointer-access", "df-generated"] - ["::take", "Argument[0]", "pointer-access", "df-generated"] + - ["::assume_init_read", "Argument[self]", "pointer-access", "df-generated"] - ["::expect", "Argument[0]", "log-injection", "df-generated"] - - ["::map", "Argument[self]", "pointer-access", "df-generated"] + - ["::map", "Argument[0]", "log-injection", "df-generated"] + - ["::map", "Argument[self]", "alloc-layout", "df-generated"] + - ["::map", "Argument[self]", "log-injection", "df-generated"] - ["::expect", "Argument[0]", "log-injection", "df-generated"] - ["::expect_err", "Argument[0]", "log-injection", "df-generated"] - ["::unwrap_or_else", "Argument[0]", "log-injection", "df-generated"] - - ["::from_c", "Argument[1]", "log-injection", "df-generated"] - - ["::generate_loop_c", "Argument[self]", "log-injection", "df-generated"] - - ["::print_result_c", "Argument[self]", "log-injection", "df-generated"] - - ["::c_scalar_type", "Argument[self]", "log-injection", "df-generated"] - - ["::c_type", "Argument[self]", "log-injection", "df-generated"] - - ["::get_lane_function", "Argument[self]", "log-injection", "df-generated"] - - ["::get_load_function", "Argument[self]", "log-injection", "df-generated"] - - ["::populate_random", "Argument[self]", "log-injection", "df-generated"] - - ["::rust_scalar_type", "Argument[self]", "log-injection", "df-generated"] - - ["::rust_type", "Argument[self]", "log-injection", "df-generated"] - - ["::c_prefix", "Argument[self]", "log-injection", "df-generated"] - - ["::rust_prefix", "Argument[self]", "log-injection", "df-generated"] + - ["::for_each", "Argument[0]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::from_elem", "Argument[1]", "alloc-layout", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::cast", "Argument[self]", "log-injection", "df-generated"] + - ["::build_c_file", "Argument[self]", "log-injection", "df-generated"] + - ["::create", "Argument[0]", "path-injection", "df-generated"] + - ["::c_type", "Argument[self]", "log-injection", "df-generated"] + - ["::get_lane_function", "Argument[self]", "log-injection", "df-generated"] + - ["::get_load_function", "Argument[self]", "log-injection", "df-generated"] + - ["::rust_type", "Argument[self]", "log-injection", "df-generated"] + - ["::from_c", "Argument[1]", "log-injection", "df-generated"] + - ["::new", "Argument[0]", "path-injection", "df-generated"] + - ["::add_arch_flags", "Argument[0]", "pointer-access", "df-generated"] + - ["::add_extra_flags", "Argument[0]", "pointer-access", "df-generated"] + - ["::print_result_c", "Argument[self]", "log-injection", "df-generated"] + - ["::populate_random", "Argument[self]", "log-injection", "df-generated"] + - ["::c_prefix", "Argument[self]", "log-injection", "df-generated"] + - ["::rust_prefix", "Argument[self]", "log-injection", "df-generated"] + - ["::atan2", "Argument[0]", "pointer-access", "df-generated"] + - ["::atan", "Argument[0]", "pointer-access", "df-generated"] + - ["::expm1", "Argument[0]", "pointer-access", "df-generated"] + - ["::log1p", "Argument[0]", "pointer-access", "df-generated"] + - ["::rint", "Argument[0]", "pointer-access", "df-generated"] + - ["::roundevem", "Argument[0]", "pointer-access", "df-generated"] + - ["::roundeven", "Argument[0]", "pointer-access", "df-generated"] + - ["::unwrap_float", "Argument[self]", "log-injection", "df-generated"] + - ["::unwrap_int", "Argument[self]", "log-injection", "df-generated"] - ["::new", "Argument[0]", "log-injection", "df-generated"] - ["::new_raw", "Argument[0]", "log-injection", "df-generated"] - ["::f32_suffixed", "Argument[0]", "log-injection", "df-generated"] @@ -6686,24 +8853,34 @@ extensions: - ["::f64_suffixed", "Argument[0]", "log-injection", "df-generated"] - ["::f64_unsuffixed", "Argument[0]", "log-injection", "df-generated"] - ["::new", "Argument[0]", "log-injection", "df-generated"] + - ["::mark", "Argument[0]", "pointer-access", "df-generated"] + - ["::unmark", "Argument[self]", "pointer-access", "df-generated"] + - ["::emit_diagnostic", "Argument[0]", "pointer-access", "df-generated"] + - ["::concat_streams", "Argument[1]", "pointer-access", "df-generated"] + - ["::concat_trees", "Argument[1]", "pointer-access", "df-generated"] - ["::new_ident", "Argument[0]", "log-injection", "df-generated"] - - ["::allocate", "Argument[0]", "alloc-layout", "df-generated"] - - ["::allocate_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - - ["::grow", "Argument[2]", "alloc-layout", "df-generated"] - - ["::grow_zeroed", "Argument[2]", "alloc-layout", "df-generated"] - - ["::shrink", "Argument[2]", "alloc-layout", "df-generated"] + - ["::emit", "Argument[self]", "pointer-access", "df-generated"] + - ["::allocate", "Argument[0]", "alloc-size", "df-generated"] + - ["::allocate_zeroed", "Argument[0]", "alloc-size", "df-generated"] + - ["::grow", "Argument[2]", "alloc-size", "df-generated"] + - ["::grow_zeroed", "Argument[2]", "alloc-size", "df-generated"] + - ["::shrink", "Argument[2]", "alloc-size", "df-generated"] - ["::alloc", "Argument[0]", "alloc-size", "df-generated"] - - ["::alloc_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - ["::alloc_zeroed", "Argument[0]", "alloc-size", "df-generated"] - - ["::realloc", "Argument[2]", "alloc-layout", "df-generated"] - ["::realloc", "Argument[2]", "alloc-size", "df-generated"] - ["::new", "Argument[0]", "path-injection", "df-generated"] - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] + - ["::last", "Argument[self]", "pointer-access", "df-generated"] - ["::truncate", "Argument[0]", "log-injection", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::create_buffered", "Argument[0]", "path-injection", "df-generated"] - ["::open_buffered", "Argument[0]", "path-injection", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::try_with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::from", "Argument[0]", "log-injection", "df-generated"] - ["::from_raw_os_error", "Argument[0]", "log-injection", "df-generated"] - ["::new", "Argument[0]", "log-injection", "df-generated"] @@ -6713,6 +8890,9 @@ extensions: - ["::write_all", "Argument[0]", "log-injection", "df-generated"] - ["::write", "Argument[0]", "log-injection", "df-generated"] - ["::write_all", "Argument[0]", "log-injection", "df-generated"] + - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::next", "Argument[self]", "pointer-access", "df-generated"] - ["::exists", "Argument[self]", "path-injection", "df-generated"] - ["::is_dir", "Argument[self]", "path-injection", "df-generated"] - ["::is_file", "Argument[self]", "path-injection", "df-generated"] @@ -6721,20 +8901,31 @@ extensions: - ["::read_dir", "Argument[self]", "path-injection", "df-generated"] - ["::read_link", "Argument[self]", "path-injection", "df-generated"] - ["::symlink_metadata", "Argument[self]", "path-injection", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::try_select", "Argument[self]", "log-injection", "df-generated"] - ["::unregister", "Argument[self]", "log-injection", "df-generated"] + - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] + - ["::last", "Argument[self]", "pointer-access", "df-generated"] + - ["::new", "Argument[0]", "pointer-access", "df-generated"] + - ["::new", "Argument[0]", "pointer-access", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::check_public_boundary", "Argument[0]", "log-injection", "df-generated"] - - ["::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["::next", "Argument[self]", "pointer-access", "df-generated"] + - ["::read", "Argument[self]", "pointer-access", "df-generated"] + - ["::read_sleb128", "Argument[self]", "pointer-access", "df-generated"] + - ["::read_uleb128", "Argument[self]", "pointer-access", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new_in_place", "Argument[0]", "pointer-access", "df-generated"] - ["::index", "Argument[0]", "log-injection", "df-generated"] - ["::index", "Argument[self]", "log-injection", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] - ["::is_static_assert", "Argument[self]", "log-injection", "df-generated"] - ["::requires_unsafe_wrapper", "Argument[0]", "log-injection", "df-generated"] - ["::requires_unsafe_wrapper", "Argument[self]", "log-injection", "df-generated"] - - ["::generate_variant", "Argument[self]", "log-injection", "df-generated"] + - ["::into_iter", "Argument[self]", "pointer-access", "df-generated"] - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["::build", "Argument[0]", "log-injection", "df-generated"] - - ["::build_and_save", "Argument[0]", "log-injection", "df-generated"] + - ["::apply_conversions_to_call", "Argument[0]", "pointer-access", "df-generated"] - ["::drop_argument", "Argument[self]", "log-injection", "df-generated"] - ["::as_mut", "Argument[self]", "log-injection", "df-generated"] - ["::as_ref", "Argument[self]", "log-injection", "df-generated"] @@ -6743,13 +8934,32 @@ extensions: - ["::as_ref", "Argument[self]", "log-injection", "df-generated"] - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] - ["::post_build", "Argument[0]", "log-injection", "df-generated"] + - ["::repr", "Argument[0]", "log-injection", "df-generated"] - ["::repr", "Argument[self]", "log-injection", "df-generated"] - ["::repr", "Argument[0]", "log-injection", "df-generated"] + - ["::repr", "Argument[0]", "log-injection", "df-generated"] - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] - ["::prepend_str", "Argument[self]", "log-injection", "df-generated"] - ["alloc::alloc::__alloc_error_handler::__rdl_oom", "Argument[0]", "log-injection", "df-generated"] - ["alloc::collections::btree::mem::replace", "Argument[0]", "pointer-access", "df-generated"] - ["alloc::collections::btree::mem::take_mut", "Argument[0]", "pointer-access", "df-generated"] + - ["allocbenches::vec::vec_cast", "Argument[0]", "pointer-access", "df-generated"] + - ["build-script-build::configure::emit_libm_config", "Argument[0]", "log-injection", "df-generated"] + - ["build-script-build::configure::emit_test_config", "Argument[0]", "log-injection", "df-generated"] + - ["compiler_builtins::math::full_availability::rint", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::full_availability::rintf", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::full_availability::roundeven", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::full_availability::roundevenf", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::atan2::atan2", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::atan::atan", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::expm1::expm1", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::generic::rint::rint_round", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::log1p::log1p", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::rint::rint", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::rint::rintf", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::roundeven::roundeven", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::roundeven::roundeven_impl", "Argument[0]", "pointer-access", "df-generated"] + - ["compiler_builtins::math::libm_math::roundeven::roundevenf", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::avx512bw::_load_mask32", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::avx512bw::_load_mask64", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::avx512bw::_mm256_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] @@ -6802,23 +9012,39 @@ extensions: - ["core::core_arch::x86::avx512f::_mm_store_epi64", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::avx512f::_mm_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::avx512f::_mm_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm256_loadu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm256_storeu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm512_loadu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm512_storeu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm_loadu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512fp16::_mm_storeu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu2_m128d", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu2_m128d", "Argument[1]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu2_m128i", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu2_m128i", "Argument[1]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_storeu_si256", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::kl::_mm_encodekey128_u32", "Argument[2]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::kl::_mm_encodekey256_u32", "Argument[3]", "pointer-access", "df-generated"] - ["core::core_arch::x86::sse2::_mm_loadl_epi64", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::sse2::_mm_loadu_si16", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::sse2::_mm_loadu_si32", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::sse2::_mm_loadu_si64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_storeu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_storeu_si128", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::sse2::_mm_storeu_si16", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::sse2::_mm_storeu_si32", "Argument[0]", "pointer-access", "df-generated"] - ["core::core_arch::x86::sse2::_mm_storeu_si64", "Argument[0]", "pointer-access", "df-generated"] - ["core::mem::transmute_copy", "Argument[0]", "pointer-access", "df-generated"] - ["core::panicking::assert_failed", "Argument[3]", "log-injection", "df-generated"] - ["core::panicking::assert_matches_failed", "Argument[2]", "log-injection", "df-generated"] + - ["core::panicking::const_panic_fmt", "Argument[0]", "log-injection", "df-generated"] - ["core::panicking::panic_display", "Argument[0]", "log-injection", "df-generated"] - ["core::panicking::panic_str_2015", "Argument[0]", "log-injection", "df-generated"] - ["core::panicking::unreachable_display", "Argument[0]", "log-injection", "df-generated"] + - ["core::slice::rotate::ptr_rotate", "Argument[1]", "pointer-access", "df-generated"] - ["core::slice::sort::select::partition_at_index", "Argument[1]", "log-injection", "df-generated"] - - ["core::slice::sort::stable::drift::sort", "Argument[0]", "pointer-access", "df-generated"] - - ["core::slice::sort::stable::quicksort::quicksort", "Argument[0]", "pointer-access", "df-generated"] - - ["core::slice::sort::stable::sort", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_load_mask32", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_load_mask64", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::avx512bw::_mm256_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] @@ -6871,31 +9097,76 @@ extensions: - ["core_arch::core_arch::x86::avx512f::_mm_store_epi64", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::avx512f::_mm_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm256_loadu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm256_storeu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm512_loadu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm512_storeu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm_loadu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512fp16::_mm_storeu_ph", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu2_m128d", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu2_m128d", "Argument[1]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu2_m128i", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu2_m128i", "Argument[1]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_storeu_si256", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::kl::_mm_encodekey128_u32", "Argument[2]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::kl::_mm_encodekey256_u32", "Argument[3]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_loadl_epi64", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_loadu_si16", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_loadu_si32", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_loadu_si64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_storeu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_storeu_si128", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_storeu_si16", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_storeu_si32", "Argument[0]", "pointer-access", "df-generated"] - ["core_arch::core_arch::x86::sse2::_mm_storeu_si64", "Argument[0]", "pointer-access", "df-generated"] - - ["intrinsic-test::json_parser::get_neon_intrinsics", "Argument[0]", "path-injection", "df-generated"] - - ["intrinsic-test::values::value_for_array", "Argument[0]", "log-injection", "df-generated"] - - ["std::alloc::__default_lib_allocator::__rdl_alloc", "Argument[0]", "alloc-layout", "df-generated"] + - ["intrinsic-test::arm::compile::build_cpp_compilation", "Argument[0]", "log-injection", "df-generated"] + - ["intrinsic-test::arm::json_parser::get_neon_intrinsics", "Argument[0]", "path-injection", "df-generated"] + - ["intrinsic-test::common::values::value_for_array", "Argument[0]", "log-injection", "df-generated"] + - ["intrinsic-test::common::write_file::write_file", "Argument[0]", "path-injection", "df-generated"] + - ["libm::math::atan2::atan2", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::atan::atan", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::expm1::expm1", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::generic::rint::rint_round", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::log1p::log1p", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::rint::rint", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::rint::rintf", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::roundeven::roundeven", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::roundeven::roundeven_impl", "Argument[0]", "pointer-access", "df-generated"] + - ["libm::math::roundeven::roundevenf", "Argument[0]", "pointer-access", "df-generated"] + - ["libm_test::run_cfg::int_range", "Argument[0]", "log-injection", "df-generated"] + - ["libm_test::run_cfg::iteration_count", "Argument[0]", "log-injection", "df-generated"] + - ["libm_test::test_log", "Argument[0]", "log-injection", "df-generated"] + - ["panic_unwind::__rust_panic_cleanup", "Argument[0]", "pointer-access", "df-generated"] + - ["panic_unwind::imp::cleanup", "Argument[0]", "pointer-access", "df-generated"] - ["std::alloc::__default_lib_allocator::__rdl_alloc", "Argument[0]", "alloc-size", "df-generated"] - - ["std::alloc::__default_lib_allocator::__rdl_alloc_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - ["std::alloc::__default_lib_allocator::__rdl_alloc_zeroed", "Argument[0]", "alloc-size", "df-generated"] - - ["std::alloc::__default_lib_allocator::__rdl_realloc", "Argument[3]", "alloc-layout", "df-generated"] - ["std::alloc::__default_lib_allocator::__rdl_realloc", "Argument[3]", "alloc-size", "df-generated"] + - ["std::alloc::rust_oom", "Argument[0]", "log-injection", "df-generated"] - ["std::sys::fs::common::copy", "Argument[0]", "path-injection", "df-generated"] - ["std::sys::fs::common::copy", "Argument[1]", "path-injection", "df-generated"] - ["std::sys::fs::common::exists", "Argument[0]", "path-injection", "df-generated"] - ["std::sys::fs::common::remove_dir_all", "Argument[0]", "path-injection", "df-generated"] + - ["std::sys::fs::copy", "Argument[0]", "path-injection", "df-generated"] + - ["std::sys::fs::copy", "Argument[1]", "path-injection", "df-generated"] + - ["std::sys::fs::exists", "Argument[0]", "path-injection", "df-generated"] + - ["std::sys::fs::remove_dir_all", "Argument[0]", "path-injection", "df-generated"] - ["std::sys::fs::unix::copy", "Argument[0]", "path-injection", "df-generated"] + - ["std::sys::fs::unix::copy", "Argument[1]", "path-injection", "df-generated"] - ["std::sys::pal::unix::cvt_nz", "Argument[0]", "log-injection", "df-generated"] + - ["std::sys::personality::dwarf::eh::find_eh_action", "Argument[0]", "pointer-access", "df-generated"] - ["std::sys_common::wtf8::check_utf8_boundary", "Argument[1]", "log-injection", "df-generated"] - ["std::sys_common::wtf8::slice_error_fail", "Argument[0]", "log-injection", "df-generated"] - ["std::sys_common::wtf8::slice_error_fail", "Argument[1]", "log-injection", "df-generated"] - ["std::sys_common::wtf8::slice_error_fail", "Argument[2]", "log-injection", "df-generated"] + - ["stdarch-gen-arm::big_endian::create_assigned_shuffle_call", "Argument[0]", "alloc-layout", "df-generated"] + - ["stdarch-gen-arm::big_endian::create_assigned_shuffle_call", "Argument[1]", "alloc-layout", "df-generated"] + - ["stdarch-gen-arm::big_endian::create_assigned_shuffle_call", "Argument[1]", "log-injection", "df-generated"] + - ["stdarch-gen-arm::big_endian::create_shuffle_call", "Argument[0]", "alloc-layout", "df-generated"] + - ["stdarch-gen-arm::big_endian::create_shuffle_call", "Argument[1]", "alloc-layout", "df-generated"] + - ["stdarch-gen-arm::big_endian::create_shuffle_call", "Argument[1]", "log-injection", "df-generated"] + - ["stdarch-gen-arm::fn_suffix::make_neon_suffix", "Argument[0]", "log-injection", "df-generated"] - ["stdarch-gen-arm::fn_suffix::type_to_size", "Argument[0]", "log-injection", "df-generated"] - ["stdarch-gen-arm::load_store_tests::generate_load_store_tests", "Argument[2]", "path-injection", "df-generated"] - ["stdarch_test::assert", "Argument[1]", "log-injection", "df-generated"] @@ -6906,27 +9177,227 @@ extensions: pack: codeql/rust-all extensible: sourceModel data: - - ["::drop", "Argument[self]", "pointer-invalidate", "df-generated"] + - ["<*const as core::default::Default>::default", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["<*mut as core::default::Default>::default", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["<*mut>::drop_in_place", "Argument[self]", "pointer-invalidate", "df-generated"] + - ["<[]>::assume_init_drop", "Argument[self]", "pointer-invalidate", "df-generated"] - ["::new", "ReturnValue", "file", "df-generated"] - ["::new", "ReturnValue", "file", "df-generated"] + - ["::alloc", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["::alloc_zeroed", "ReturnValue", "pointer-invalidate", "df-generated"] - ["::dealloc", "Argument[0]", "pointer-invalidate", "df-generated"] + - ["::realloc", "Argument[0]", "pointer-invalidate", "df-generated"] + - ["::realloc", "ReturnValue", "pointer-invalidate", "df-generated"] - ["::new", "ReturnValue", "file", "df-generated"] + - ["::create_buffered", "ReturnValue", "file", "df-generated"] - ["::open_buffered", "ReturnValue", "file", "df-generated"] + - ["::only_v6", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::ttl", "ReturnValue", "constant-source", "df-generated"] + - ["::deferaccept", "ReturnValue", "constant-source", "df-generated"] + - ["::quickack", "ReturnValue", "constant-source", "df-generated"] + - ["::linger", "ReturnValue", "constant-source", "df-generated"] + - ["::nodelay", "ReturnValue", "constant-source", "df-generated"] + - ["::read_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::ttl", "ReturnValue", "constant-source", "df-generated"] + - ["::write_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::broadcast", "ReturnValue", "constant-source", "df-generated"] + - ["::multicast_loop_v4", "ReturnValue", "constant-source", "df-generated"] + - ["::multicast_loop_v6", "ReturnValue", "constant-source", "df-generated"] + - ["::multicast_ttl_v4", "ReturnValue", "constant-source", "df-generated"] + - ["::read_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::ttl", "ReturnValue", "constant-source", "df-generated"] + - ["::write_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::passcred", "ReturnValue", "constant-source", "df-generated"] + - ["::read_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::write_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::passcred", "ReturnValue", "constant-source", "df-generated"] + - ["::read_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::write_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::only_v6", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::ttl", "ReturnValue", "constant-source", "df-generated"] + - ["::connect_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::linger", "ReturnValue", "constant-source", "df-generated"] + - ["::nodelay", "ReturnValue", "constant-source", "df-generated"] + - ["::read_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::ttl", "ReturnValue", "constant-source", "df-generated"] + - ["::write_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::broadcast", "ReturnValue", "constant-source", "df-generated"] + - ["::multicast_loop_v4", "ReturnValue", "constant-source", "df-generated"] + - ["::multicast_loop_v6", "ReturnValue", "constant-source", "df-generated"] + - ["::multicast_ttl_v4", "ReturnValue", "constant-source", "df-generated"] + - ["::read_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::ttl", "ReturnValue", "constant-source", "df-generated"] + - ["::write_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::connect_timeout", "ReturnValue", "constant-source", "df-generated"] + - ["::deferaccept", "ReturnValue", "constant-source", "df-generated"] + - ["::linger", "ReturnValue", "constant-source", "df-generated"] + - ["::nodelay", "ReturnValue", "constant-source", "df-generated"] + - ["::passcred", "ReturnValue", "constant-source", "df-generated"] + - ["::quickack", "ReturnValue", "constant-source", "df-generated"] + - ["::take_error", "ReturnValue", "constant-source", "df-generated"] + - ["::timeout", "ReturnValue", "constant-source", "df-generated"] - ["::get", "ReturnValue", "pointer-invalidate", "df-generated"] - ["::get_or_init", "ReturnValue", "pointer-invalidate", "df-generated"] - - ["as_if_std::the_backtrace_crate::symbolize::gimli::parse_running_mmaps::parse_maps", "ReturnValue", "file", "df-generated"] - - ["backtrace::symbolize::gimli::parse_running_mmaps::parse_maps", "ReturnValue", "file", "df-generated"] - - ["core::intrinsics::drop_in_place", "Argument[0]", "pointer-invalidate", "df-generated"] + - ["core::core_arch::x86::avx2::_mm256_alignr_epi8", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx2::_mm256_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx2::_mm256_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx2::_mm256_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx2::_mm256_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx2::_mm256_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx2::_mm256_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm256_maskz_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_alignr_epi8", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_maskz_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_maskz_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_maskz_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_maskz_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_maskz_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_maskz_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_maskz_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_maskz_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_maskz_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_maskz_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_maskz_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_setzero", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_setzero_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_setzero_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_setzero_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_setzero_si512", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_undefined", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_undefined_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_undefined_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_undefined_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_maskz_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_maskz_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_maskz_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_maskz_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_loadu_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_loadu_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_loadu_si256", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_setzero_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_setzero_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_setzero_si256", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_undefined_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_undefined_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::avx::_mm256_undefined_si256", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_loadu_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_loadu_si128", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_setzero_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_setzero_si128", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_undefined_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse2::_mm_undefined_si128", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse::_mm_loadu_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse::_mm_setzero_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::sse::_mm_undefined_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core::core_arch::x86::ssse3::_mm_alignr_epi8", "ReturnValue", "constant-source", "df-generated"] + - ["core::intrinsics::const_allocate", "ReturnValue", "pointer-invalidate", "df-generated"] - ["core::ptr::dangling", "ReturnValue", "pointer-invalidate", "df-generated"] - ["core::ptr::drop_in_place", "Argument[0]", "pointer-invalidate", "df-generated"] - - ["intrinsic-test::json_parser::get_neon_intrinsics", "ReturnValue", "file", "df-generated"] + - ["core_arch::core_arch::x86::avx2::_mm256_alignr_epi8", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx2::_mm256_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx2::_mm256_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx2::_mm256_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx2::_mm256_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx2::_mm256_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx2::_mm256_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm256_maskz_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_alignr_epi8", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_maskz_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_maskz_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_maskz_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_maskz_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_maskz_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_maskz_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_maskz_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_maskz_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_maskz_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_maskz_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_maskz_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_setzero", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_setzero_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_setzero_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_setzero_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_setzero_si512", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_undefined", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_undefined_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_undefined_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_undefined_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_maskz_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_maskz_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_maskz_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_maskz_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_loadu_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_loadu_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_loadu_si256", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_setzero_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_setzero_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_setzero_si256", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_undefined_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_undefined_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::avx::_mm256_undefined_si256", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_loadu_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_loadu_si128", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_setzero_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_setzero_si128", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_slli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_slli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_slli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_srli_epi16", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_srli_epi32", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_srli_epi64", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_undefined_pd", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse2::_mm_undefined_si128", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse::_mm_loadu_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse::_mm_setzero_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::sse::_mm_undefined_ps", "ReturnValue", "constant-source", "df-generated"] + - ["core_arch::core_arch::x86::ssse3::_mm_alignr_epi8", "ReturnValue", "constant-source", "df-generated"] + - ["intrinsic-test::arm::json_parser::get_neon_intrinsics", "ReturnValue", "file", "df-generated"] + - ["std::alloc::__default_lib_allocator::__rdl_alloc", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["std::alloc::__default_lib_allocator::__rdl_alloc_zeroed", "ReturnValue", "pointer-invalidate", "df-generated"] - ["std::alloc::__default_lib_allocator::__rdl_dealloc", "Argument[0]", "pointer-invalidate", "df-generated"] - - ["std::backtrace_rs::symbolize::gimli::parse_running_mmaps::parse_maps", "ReturnValue", "file", "df-generated"] + - ["std::alloc::__default_lib_allocator::__rdl_realloc", "Argument[0]", "pointer-invalidate", "df-generated"] + - ["std::alloc::__default_lib_allocator::__rdl_realloc", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["std::env::temp_dir", "ReturnValue", "environment", "df-generated"] - ["std::fs::copy", "ReturnValue", "file", "df-generated"] - ["std::fs::read", "ReturnValue", "file", "df-generated"] - ["std::fs::read_to_string", "ReturnValue", "file", "df-generated"] + - ["std::fs::remove_dir_all", "ReturnValue", "file", "df-generated"] + - ["std::fs::write", "ReturnValue", "file", "df-generated"] - ["std::path::absolute", "ReturnValue", "commandargs", "df-generated"] - ["std::sys::fs::common::copy", "ReturnValue", "file", "df-generated"] + - ["std::sys::fs::common::remove_dir_all", "ReturnValue", "file", "df-generated"] + - ["std::sys::fs::copy", "ReturnValue", "file", "df-generated"] + - ["std::sys::fs::remove_dir_all", "ReturnValue", "file", "df-generated"] - ["std::sys::fs::unix::copy", "ReturnValue", "file", "df-generated"] + - ["std::sys::pal::unix::os::temp_dir", "ReturnValue", "environment", "df-generated"] - ["std::sys::pal::unix::thread::cgroups::quota", "ReturnValue", "file", "df-generated"] - ["std::sys::path::unix::absolute", "ReturnValue", "commandargs", "df-generated"] + - ["stdarch-gen-arm::load_store_tests::generate_load_store_tests", "ReturnValue", "file", "df-generated"] + - ["stdarch-gen-loongarch::main", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/serde.model.yml b/rust/ql/lib/ext/generated/serde.model.yml index 68946771143..76396e07320 100644 --- a/rust/ql/lib/ext/generated/serde.model.yml +++ b/rust/ql/lib/ext/generated/serde.model.yml @@ -4,12 +4,35 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["<& as serde::__private::de::IdentifierDeserializer>::from", "Argument[self]", "ReturnValue.Field[serde::__private::de::StrDeserializer::value]", "value", "dfc-generated"] + - ["<& as serde::__private::de::IdentifierDeserializer>::from", "Argument[self]", "ReturnValue.Field[serde::de::value::BytesDeserializer::value]", "value", "dfc-generated"] + - ["<& as serde::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::__private::de::content::ContentRefDeserializer::content]", "value", "dfc-generated"] + - ["<& as serde::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::BytesDeserializer::value]", "value", "dfc-generated"] + - ["<& as serde::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::StrDeserializer::value]", "value", "dfc-generated"] + - ["<(,,) as serde::de::value::private::Pair>::split", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] - - ["::from", "Argument[self].Field[0]", "ReturnValue.Field[serde::__private::de::BorrowedStrDeserializer::value]", "value", "dfc-generated"] - - ["::from", "Argument[self].Field[0]", "ReturnValue.Field[serde::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::BoolDeserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::CharDeserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::F32Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::F64Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I128Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I16Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I32Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I64Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I8Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::IsizeDeserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U128Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U16Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U32Deserializer::value]", "value", "dfc-generated"] + - ["::from", "Argument[self]", "ReturnValue.Field[serde::de::value::U64Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U64Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U8Deserializer::value]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::UsizeDeserializer::value]", "value", "dfc-generated"] - ["::from", "Argument[self].Field[serde::__private::de::Borrowed(0)]", "ReturnValue.Field[serde::__private::de::BorrowedStrDeserializer::value]", "value", "dfc-generated"] - ["::from", "Argument[self].Field[serde::__private::de::Borrowed(0)]", "ReturnValue.Field[serde::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::__private::de::content::ContentDeserializer::content]", "value", "dfc-generated"] - ["::as_str", "Argument[self].Reference.Field[serde::__private::de::content::Content::Str(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::as_str", "Argument[self].Reference.Field[serde::__private::de::content::Content::String(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] @@ -17,7 +40,7 @@ extensions: - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::ContentDeserializer::content]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::__deserialize_content", "Argument[self].Field[serde::__private::de::content::ContentRefDeserializer::content].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::__deserialize_content", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::ContentRefDeserializer::content]", "value", "dfc-generated"] - ["::visit_bool", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Bool(0)]", "value", "dfc-generated"] @@ -44,14 +67,10 @@ extensions: - ["::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::TaggedContentVisitor::expecting]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::UntaggedUnitVisitor::type_name]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::UntaggedUnitVisitor::variant_name]", "value", "dfc-generated"] - - ["::serialize_map", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeMap(0)]", "value", "dfc-generated"] - ["::serialize_map", "Argument[self].Field[serde::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeMap(0)]", "value", "dfc-generated"] - - ["::serialize_struct", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStruct(0)]", "value", "dfc-generated"] - ["::serialize_struct", "Argument[self].Field[serde::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStruct(0)]", "value", "dfc-generated"] - ["::serialize_struct_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] - - ["::serialize_struct_variant", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] - ["::serialize_struct_variant", "Argument[self].Field[serde::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] - - ["::serialize_tuple_variant", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] - ["::serialize_tuple_variant", "Argument[self].Field[serde::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] - ["::serialize_struct_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] - ["::serialize_tuple_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeTupleVariantAsMapValue::name]", "value", "dfc-generated"] @@ -67,6 +86,14 @@ extensions: - ["::serialize_newtype_variant", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeVariant(0)]", "value", "dfc-generated"] - ["::serialize_newtype_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeVariant(1)]", "value", "dfc-generated"] - ["::serialize_newtype_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeVariant(2)]", "value", "dfc-generated"] + - ["::serialize_struct", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeStruct::name]", "value", "dfc-generated"] + - ["::serialize_struct_variant", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeStructVariant::name]", "value", "dfc-generated"] + - ["::serialize_struct_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeStructVariant::variant_index]", "value", "dfc-generated"] + - ["::serialize_struct_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeStructVariant::variant]", "value", "dfc-generated"] + - ["::serialize_tuple_struct", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeTupleStruct::name]", "value", "dfc-generated"] + - ["::serialize_tuple_variant", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeTupleVariant::name]", "value", "dfc-generated"] + - ["::serialize_tuple_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeTupleVariant::variant_index]", "value", "dfc-generated"] + - ["::serialize_tuple_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeTupleVariant::variant]", "value", "dfc-generated"] - ["::serialize_u16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U16(0)]", "value", "dfc-generated"] - ["::serialize_u32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U32(0)]", "value", "dfc-generated"] - ["::serialize_u64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U64(0)]", "value", "dfc-generated"] @@ -88,171 +115,202 @@ extensions: - ["::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::ser::content::SerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[serde::__private::ser::content::SerializeTupleVariantAsMapValue::name]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::visit_bool", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::visit_borrowed_bytes", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::visit_borrowed_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::visit_char", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::visit_byte_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::visit_bytes", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::visit_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::visit_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::visit_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::visit_borrowed_bytes", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::visit_borrowed_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::visit_borrowed_str", "Argument[0].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - ["::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::visit_borrowed_bytes", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::visit_borrowed_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::visit_byte_buf", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::visit_string", "Argument[0]", "Argument[self].Field[0].Reference", "value", "dfc-generated"] - ["::visit_string", "Argument[0]", "Argument[self].Field[serde::de::impls::StringInPlaceVisitor(0)].Reference", "value", "dfc-generated"] - ["::visit_byte_buf", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["::visit_string", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BoolDeserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BorrowedStrDeserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BytesDeserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::CharDeserializer::value]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[serde::de::value::CowStrDeserializer::value].Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value].Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[serde::de::value::CowStrDeserializer::value].Reference", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[serde::de::value::CowStrDeserializer::value]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[serde::de::value::CowStrDeserializer::value]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::EnumAccessDeserializer::access]", "value", "dfc-generated"] - - ["::description", "Argument[self].Field[serde::de::value::Error::err]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[serde::de::value::Error::err]", "ReturnValue.Field[serde::de::value::Error::err]", "value", "dfc-generated"] + - ["::description", "Argument[self].Reference.Field[serde::de::value::Error::err]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::F32Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::F64Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I128Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I16Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I32Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I64Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I8Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::IsizeDeserializer::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::MapAccessDeserializer::map]", "value", "dfc-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::deserialize_any", "Argument[self].Field[serde::de::value::NeverDeserializer::never]", "ReturnValue", "value", "dfc-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::SeqAccessDeserializer::seq]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::StrDeserializer::value]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[serde::de::value::StringDeserializer::value].Field[alloc::string::String::vec]", "ReturnValue.Field[serde::de::value::StringDeserializer::value].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[serde::de::value::StringDeserializer::value].Reference", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[serde::de::value::StringDeserializer::value]", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[serde::de::value::StringDeserializer::value]", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U128Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U16Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U32Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U64Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U8Deserializer::value]", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::UsizeDeserializer::value]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[serde::format::Buf::bytes]", "value", "dfc-generated"] - ["::as_ref", "Argument[self].Field[serde_derive::fragment::Fragment::Block(0)]", "ReturnValue", "value", "dfc-generated"] - ["::as_ref", "Argument[self].Field[serde_derive::fragment::Fragment::Expr(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from_ast", "Argument[1].Field[syn::derive::DeriveInput::ident].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[serde_derive::internals::ast::Container::ident]", "value", "dfc-generated"] - - ["::from_ast", "Argument[1].Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[core::option::Option::Some(0)].Field[serde_derive::internals::ast::Container::ident]", "value", "dfc-generated"] + - ["::from_ast", "Argument[1].Reference.Field[syn::derive::DeriveInput::ident]", "ReturnValue.Field[core::option::Option::Some(0)].Field[serde_derive::internals::ast::Container::ident]", "value", "dfc-generated"] - ["::from_ast", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[serde_derive::internals::ast::Container::original]", "value", "dfc-generated"] - ["::get", "Argument[self].Field[serde_derive::internals::attr::Attr::value]", "ReturnValue", "value", "dfc-generated"] - - ["::custom_serde_path", "Argument[self].Field[serde_derive::internals::attr::Container::serde_path].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::default", "Argument[self].Field[serde_derive::internals::attr::Container::default]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deny_unknown_fields", "Argument[self].Field[serde_derive::internals::attr::Container::deny_unknown_fields]", "ReturnValue", "value", "dfc-generated"] - - ["::expecting", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::identifier", "Argument[self].Field[serde_derive::internals::attr::Container::identifier]", "ReturnValue", "value", "dfc-generated"] - - ["::is_packed", "Argument[self].Field[serde_derive::internals::attr::Container::is_packed]", "ReturnValue", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[serde_derive::internals::attr::Container::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::non_exhaustive", "Argument[self].Field[serde_derive::internals::attr::Container::non_exhaustive]", "ReturnValue", "value", "dfc-generated"] - - ["::remote", "Argument[self].Field[serde_derive::internals::attr::Container::remote].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::rename_all_fields_rules", "Argument[self].Field[serde_derive::internals::attr::Container::rename_all_fields_rules]", "ReturnValue", "value", "dfc-generated"] - - ["::rename_all_rules", "Argument[self].Field[serde_derive::internals::attr::Container::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] - - ["::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::tag", "Argument[self].Field[serde_derive::internals::attr::Container::tag]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::transparent", "Argument[self].Field[serde_derive::internals::attr::Container::transparent]", "ReturnValue", "value", "dfc-generated"] - - ["::type_from", "Argument[self].Field[serde_derive::internals::attr::Container::type_from].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::type_into", "Argument[self].Field[serde_derive::internals::attr::Container::type_into].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::type_try_from", "Argument[self].Field[serde_derive::internals::attr::Container::type_try_from].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::aliases", "Argument[self].Field[serde_derive::internals::attr::Field::name].Field[serde_derive::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrowed_lifetimes", "Argument[self].Field[serde_derive::internals::attr::Field::borrowed_lifetimes]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::default", "Argument[self].Field[serde_derive::internals::attr::Field::default]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deserialize_with", "Argument[self].Field[serde_derive::internals::attr::Field::deserialize_with].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::flatten", "Argument[self].Field[serde_derive::internals::attr::Field::flatten]", "ReturnValue", "value", "dfc-generated"] - - ["::getter", "Argument[self].Field[serde_derive::internals::attr::Field::getter].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[serde_derive::internals::attr::Field::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::serialize_with", "Argument[self].Field[serde_derive::internals::attr::Field::serialize_with].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::skip_deserializing", "Argument[self].Field[serde_derive::internals::attr::Field::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] - - ["::skip_serializing", "Argument[self].Field[serde_derive::internals::attr::Field::skip_serializing]", "ReturnValue", "value", "dfc-generated"] - - ["::skip_serializing_if", "Argument[self].Field[serde_derive::internals::attr::Field::skip_serializing_if].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::transparent", "Argument[self].Field[serde_derive::internals::attr::Field::transparent]", "ReturnValue", "value", "dfc-generated"] + - ["::custom_serde_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::default", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deny_unknown_fields", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::deny_unknown_fields]", "ReturnValue", "value", "dfc-generated"] + - ["::from_ast", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::identifier", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::identifier]", "ReturnValue", "value", "dfc-generated"] + - ["::is_packed", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::is_packed]", "ReturnValue", "value", "dfc-generated"] + - ["::name", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::non_exhaustive", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::non_exhaustive]", "ReturnValue", "value", "dfc-generated"] + - ["::remote", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rename_all_fields_rules", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::rename_all_fields_rules]", "ReturnValue", "value", "dfc-generated"] + - ["::rename_all_rules", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] + - ["::tag", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::tag]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::transparent", "Argument[self].Reference.Field[serde_derive::internals::attr::Container::transparent]", "ReturnValue", "value", "dfc-generated"] + - ["::type_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::type_into", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::type_try_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::aliases", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::borrowed_lifetimes", "Argument[self].Reference.Field[serde_derive::internals::attr::Field::borrowed_lifetimes]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::default", "Argument[self].Reference.Field[serde_derive::internals::attr::Field::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deserialize_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::flatten", "Argument[self].Reference.Field[serde_derive::internals::attr::Field::flatten]", "ReturnValue", "value", "dfc-generated"] + - ["::from_ast", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::getter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::name", "Argument[self].Reference.Field[serde_derive::internals::attr::Field::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::serialize_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::skip_deserializing", "Argument[self].Reference.Field[serde_derive::internals::attr::Field::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] + - ["::skip_serializing", "Argument[self].Reference.Field[serde_derive::internals::attr::Field::skip_serializing]", "ReturnValue", "value", "dfc-generated"] + - ["::skip_serializing_if", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::transparent", "Argument[self].Reference.Field[serde_derive::internals::attr::Field::transparent]", "ReturnValue", "value", "dfc-generated"] - ["::or", "Argument[0].Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "value", "dfc-generated"] - ["::or", "Argument[0].Field[serde_derive::internals::attr::RenameAllRules::serialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::serialize]", "value", "dfc-generated"] - ["::or", "Argument[self].Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "value", "dfc-generated"] - ["::or", "Argument[self].Field[serde_derive::internals::attr::RenameAllRules::serialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::serialize]", "value", "dfc-generated"] - - ["::aliases", "Argument[self].Field[serde_derive::internals::attr::Variant::name].Field[serde_derive::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deserialize_with", "Argument[self].Field[serde_derive::internals::attr::Variant::deserialize_with].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::name", "Argument[self].Field[serde_derive::internals::attr::Variant::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::other", "Argument[self].Field[serde_derive::internals::attr::Variant::other]", "ReturnValue", "value", "dfc-generated"] - - ["::rename_all_rules", "Argument[self].Field[serde_derive::internals::attr::Variant::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] - - ["::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::serialize_with", "Argument[self].Field[serde_derive::internals::attr::Variant::serialize_with].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::skip_deserializing", "Argument[self].Field[serde_derive::internals::attr::Variant::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] - - ["::skip_serializing", "Argument[self].Field[serde_derive::internals::attr::Variant::skip_serializing]", "ReturnValue", "value", "dfc-generated"] - - ["::untagged", "Argument[self].Field[serde_derive::internals::attr::Variant::untagged]", "ReturnValue", "value", "dfc-generated"] + - ["::aliases", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deserialize_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_ast", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::name", "Argument[self].Reference.Field[serde_derive::internals::attr::Variant::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::other", "Argument[self].Reference.Field[serde_derive::internals::attr::Variant::other]", "ReturnValue", "value", "dfc-generated"] + - ["::rename_all_rules", "Argument[self].Reference.Field[serde_derive::internals::attr::Variant::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] + - ["::serialize_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::skip_deserializing", "Argument[self].Reference.Field[serde_derive::internals::attr::Variant::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] + - ["::skip_serializing", "Argument[self].Reference.Field[serde_derive::internals::attr::Variant::skip_serializing]", "ReturnValue", "value", "dfc-generated"] + - ["::untagged", "Argument[self].Reference.Field[serde_derive::internals::attr::Variant::untagged]", "ReturnValue", "value", "dfc-generated"] - ["::get", "Argument[self].Field[serde_derive::internals::attr::VecAttr::values]", "ReturnValue", "value", "dfc-generated"] - - ["::apply_to_field", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::apply_to_variant", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[serde_derive::internals::case::ParseError::unknown]", "value", "dfc-generated"] - ["::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deserialize_aliases", "Argument[self].Field[serde_derive::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deserialize_name", "Argument[self].Field[serde_derive::internals::name::MultiName::deserialize]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_attrs", "Argument[0].Reference", "ReturnValue.Field[serde_derive::internals::name::MultiName::serialize]", "value", "dfc-generated"] + - ["::deserialize_aliases", "Argument[self].Reference.Field[serde_derive::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deserialize_name", "Argument[self].Reference.Field[serde_derive::internals::name::MultiName::deserialize]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from_attrs", "Argument[0]", "ReturnValue.Field[serde_derive::internals::name::MultiName::deserialize]", "value", "dfc-generated"] - - ["::from_attrs", "Argument[0]", "ReturnValue.Field[serde_derive::internals::name::MultiName::serialize]", "value", "dfc-generated"] - ["::from_attrs", "Argument[1].Field[serde_derive::internals::attr::Attr::value].Field[core::option::Option::Some(0)]", "ReturnValue.Field[serde_derive::internals::name::MultiName::serialize]", "value", "dfc-generated"] - ["::from_attrs", "Argument[2].Field[serde_derive::internals::attr::Attr::value].Field[core::option::Option::Some(0)]", "ReturnValue.Field[serde_derive::internals::name::MultiName::deserialize]", "value", "dfc-generated"] - - ["::serialize_name", "Argument[self].Field[serde_derive::internals::name::MultiName::serialize]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::serialize_name", "Argument[self].Reference.Field[serde_derive::internals::name::MultiName::serialize]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[serde_derive::internals::name::Name::span]", "ReturnValue.Field[serde_derive::internals::name::Name::span]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[serde_derive::internals::name::Name::value]", "ReturnValue.Field[serde_derive::internals::name::Name::value]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["serde::__private::ser::constrain", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["serde::de::size_hint::cautious", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["serde::de::value::private::map_as_enum", "Argument[0]", "ReturnValue.Field[serde::de::value::private::MapAsEnum::map]", "value", "dfc-generated"] @@ -262,9 +320,43 @@ extensions: - ["serde_derive::bound::with_where_predicates", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["serde_derive::bound::with_where_predicates_from_fields", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] - ["serde_derive::bound::with_where_predicates_from_variants", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["serde_derive::internals::ungroup", "Argument[0].Field[syn::ty::Type::Group(0)].Field[syn::ty::TypeGroup::elem]", "ReturnValue.Reference", "value", "dfc-generated"] - ["serde_derive::internals::ungroup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["serde_derive::this::this_type", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["serde_derive::this::this_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: - - ["::serialize_map", "Argument[0]", "pointer-access", "df-generated"] + - ["::into_deserializer", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_any", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_byte_buf", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_bytes", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_enum", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_map", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_seq", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_struct", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_tuple", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_tuple_struct", "Argument[self]", "pointer-access", "df-generated"] + - ["::deserialize_unit_struct", "Argument[self]", "pointer-access", "df-generated"] + - ["::struct_variant", "Argument[self]", "pointer-access", "df-generated"] + - ["::tuple_variant", "Argument[self]", "pointer-access", "df-generated"] + - ["::serialize_map", "Argument[0]", "alloc-layout", "df-generated"] + - ["::serialize_map", "Argument[0]", "log-injection", "df-generated"] + - ["::serialize_struct_variant", "Argument[3]", "alloc-layout", "df-generated"] + - ["::serialize_tuple_variant", "Argument[3]", "alloc-layout", "df-generated"] + - ["::serialize_map", "Argument[0]", "alloc-layout", "df-generated"] + - ["::serialize_seq", "Argument[0]", "alloc-layout", "df-generated"] + - ["::serialize_struct", "Argument[1]", "alloc-layout", "df-generated"] + - ["::serialize_struct_variant", "Argument[3]", "alloc-layout", "df-generated"] + - ["::serialize_tuple", "Argument[0]", "alloc-layout", "df-generated"] + - ["::serialize_tuple_struct", "Argument[1]", "alloc-layout", "df-generated"] + - ["::serialize_tuple_variant", "Argument[3]", "alloc-layout", "df-generated"] + - ["::new", "Argument[2]", "alloc-layout", "df-generated"] + - ["::new", "Argument[2]", "alloc-layout", "df-generated"] + - ["::visit_str", "Argument[0]", "alloc-layout", "df-generated"] + - ["::visit_str", "Argument[0]", "log-injection", "df-generated"] + - ["::visit_str", "Argument[0]", "pointer-access", "df-generated"] + - ["::visit_string", "Argument[0]", "alloc-layout", "df-generated"] + - ["::visit_string", "Argument[0]", "log-injection", "df-generated"] + - ["::visit_string", "Argument[0]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/smallvec.model.yml b/rust/ql/lib/ext/generated/smallvec.model.yml index 9e78c1e496d..440a671abad 100644 --- a/rust/ql/lib/ext/generated/smallvec.model.yml +++ b/rust/ql/lib/ext/generated/smallvec.model.yml @@ -4,40 +4,41 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["::from_elem", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::drop", "Argument[self].Field[smallvec::SetLenOnDrop::local_len]", "Argument[self].Field[smallvec::SetLenOnDrop::len].Reference", "value", "dfc-generated"] - ["::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::borrow_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - ["::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_iter", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue.Field[smallvec::IntoIter::end]", "value", "dfc-generated"] + - ["::into_iter", "Argument[self]", "ReturnValue.Field[smallvec::IntoIter::data]", "value", "dfc-generated"] - ["::as_mut_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::as_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::capacity", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["::drain", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue.Field[smallvec::Drain::tail_start]", "value", "dfc-generated"] + - ["::capacity", "Argument[self].Reference.Field[smallvec::SmallVec::capacity]", "ReturnValue", "value", "dfc-generated"] + - ["::drain", "Argument[self].Reference.Field[smallvec::SmallVec::capacity]", "ReturnValue.Field[smallvec::Drain::tail_start]", "value", "dfc-generated"] - ["::drain_filter", "Argument[0]", "ReturnValue.Field[smallvec::DrainFilter::pred]", "value", "dfc-generated"] - - ["::drain_filter", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue.Field[smallvec::DrainFilter::old_len]", "value", "dfc-generated"] + - ["::drain_filter", "Argument[self].Reference.Field[smallvec::SmallVec::capacity]", "ReturnValue.Field[smallvec::DrainFilter::old_len]", "value", "dfc-generated"] - ["::drain_filter", "Argument[self]", "ReturnValue.Field[smallvec::DrainFilter::vec]", "value", "dfc-generated"] - ["::from_buf_and_len", "Argument[1]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - ["::from_buf_and_len_unchecked", "Argument[1]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - ["::from_const_with_len_unchecked", "Argument[1]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - ["::from_raw_parts", "Argument[2]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - ["::from_vec", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["::grow", "Argument[0]", "Argument[self].Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] + - ["::grow", "Argument[0]", "Argument[self].Reference.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - ["::into_inner", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["::retain", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["::retain_mut", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["::try_grow", "Argument[0]", "Argument[self].Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[smallvec::tests::MockHintIter::x].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[smallvec::tests::MockHintIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[smallvec::tests::insert_many_panic::BadIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::into_vec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Reference.Field[smallvec::SmallVec::capacity]", "ReturnValue", "value", "dfc-generated"] + - ["::try_grow", "Argument[0]", "Argument[self].Reference.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[smallvec::tests::MockHintIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[smallvec::tests::insert_many_panic::BadIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel @@ -47,8 +48,3 @@ extensions: - ["::remove", "Argument[0]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] - ["::into_inner", "Argument[self]", "pointer-access", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModel - data: - - ["::drop", "Argument[self]", "pointer-invalidate", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio.model.yml b/rust/ql/lib/ext/generated/tokio.model.yml index 98c9fb5f33f..0b84eee4435 100644 --- a/rust/ql/lib/ext/generated/tokio.model.yml +++ b/rust/ql/lib/ext/generated/tokio.model.yml @@ -4,39 +4,351 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + - ["<& as std::io::Read>::read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Seek>::seek", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as std::io::Write>::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["<& as tokio::io::async_buf_read::AsyncBufRead>::poll_fill_buf", "Argument[self].Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["<& as tokio::io::async_buf_read::AsyncBufRead>::poll_fill_buf", "Argument[self].Field[core::pin::Pin::pointer].Reference", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["<& as tokio::sync::task::atomic_waker::WakerRef>::into_waker", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["<&mut as tokio::runtime::scheduler::lock::Lock>::lock", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[async_send_sync::NN::_value].Field[alloc::rc::Rc::alloc]", "ReturnValue.Field[async_send_sync::NN::_value].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[async_send_sync::NN::_value].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[async_send_sync::NN::_value].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[async_send_sync::NN::_value]", "ReturnValue.Field[async_send_sync::NN::_value]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[async_send_sync::YN::_value]", "ReturnValue.Field[async_send_sync::YN::_value]", "value", "dfc-generated"] - ["::extend", "Argument[2].Field[core::result::Result::Err(0)]", "Argument[1].Reference.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::into_waker", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[tokio::runtime::scheduler::multi_thread::idle::State(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::is_write_vectored", "Argument[self].Field[io_buf_writer::MockWriter::vectored]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[io_buf_writer::support::io_vec::IoBufs(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_write_vectored", "Argument[self].Reference.Field[io_buf_writer::MockWriter::vectored]", "ReturnValue", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[io_buf_writer::support::io_vec::IoBufs(0)]", "ReturnValue", "value", "dfc-generated"] - ["::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[io_buf_writer::support::io_vec::IoBufs(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_read", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_read", "Argument[self]", "Argument[1]", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[length_delimited::Op::Data(0)]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[net_unix_pipe::TempFifo::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[net_unix_pipe::TempFifo::path]", "ReturnValue", "value", "dfc-generated"] - - ["::poll_complete", "Argument[self].Field[core::pin::Pin::__pointer].Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[net_unix_pipe::TempFifo::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::poll_next", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[tokio::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[tokio::runtime::blocking::pool::SpawnError::NoThreads(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[tokio::net::unix::socketaddr::SocketAddr(0)]", "ReturnValue", "value", "dfc-generated"] - ["::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0].Field[tokio::time::instant::Instant::std]", "ReturnValue", "value", "dfc-generated"] - - ["::mode", "Argument[0]", "Argument[self].Field[tokio::fs::dir_builder::DirBuilder::mode].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::mode", "Argument[0]", "ReturnValue.Field[tokio::fs::dir_builder::DirBuilder::mode].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[sync_mpsc::Large(0)]", "ReturnValue.Field[sync_mpsc::Large(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[sync_mpsc::Medium(0)]", "ReturnValue.Field[sync_mpsc::Medium(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::recursive", "Argument[0]", "Argument[self].Field[tokio::fs::dir_builder::DirBuilder::recursive]", "value", "dfc-generated"] - - ["::recursive", "Argument[0]", "ReturnValue.Field[tokio::fs::dir_builder::DirBuilder::recursive]", "value", "dfc-generated"] + - ["::recursive", "Argument[0]", "Argument[self].Reference.Field[tokio::fs::dir_builder::DirBuilder::recursive]", "value", "dfc-generated"] - ["::recursive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::set_max_buf_size", "Argument[0]", "Argument[self].Field[tokio::fs::file::File::max_buf_size]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_std", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_max_buf_size", "Argument[0]", "Argument[self].Reference.Field[tokio::fs::file::File::max_buf_size]", "value", "dfc-generated"] - ["::try_into_std", "Argument[self].Field[tokio::fs::file::File::std]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::fs::file::File::std]", "value", "dfc-generated"] - ["::try_into_std", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_raw_fd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::create", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::expect_as_raw_fd", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_inner_flush", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_inner_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_inner_seek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_inner_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_metadata", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_set_len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_set_max_buf_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_set_permissions", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_sync_all", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_sync_data", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_try_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::inner_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::inner_seek", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::inner_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::open", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_len", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_max_buf_size", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::set_permissions", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio::fs::mocks::__mock_MockFile::__create::ExpectationGuard::guard]", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio::fs::mocks::__mock_MockFile::__open::ExpectationGuard::guard]", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio::fs::mocks::__mock_MockFile_std__os__unix__io__FromRawFd::__from_raw_fd::ExpectationGuard::guard]", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio::fs::open_options::OpenOptions(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_inner_mut", "Argument[self].Field[tokio::fs::open_options::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_inner_mut", "Argument[self].Reference.Field[tokio::fs::open_options::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::create", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::create_new", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::custom_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -44,15 +356,185 @@ extensions: - ["::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::truncate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_inner", "Argument[self].Field[tokio::fs::read_dir::DirEntry::std]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future1]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future2]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future3]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future1]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future2]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future3]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::async_fd::AsyncFd::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::async_fd::AsyncFd::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::custom_flags", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::mode", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::append", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::create", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::create_new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::expect_append", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_create", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_create_new", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_custom_flags", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_truncate", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::truncate", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_const_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_once_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::in_sequence", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::never", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::once", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::return_var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::returning_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::withf_st", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::checkpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_inner", "Argument[self].Reference.Field[tokio::fs::read_dir::DirEntry::std]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::file_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ino", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_entry", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[1].ReturnValue.Future", "ReturnValue", "value", "dfc-generated"] + - ["::async_io_mut", "Argument[1].ReturnValue.Future", "ReturnValue", "value", "dfc-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::readable_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::ready", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "value", "dfc-generated"] - ["::ready_mut", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "value", "dfc-generated"] - ["::try_io", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] @@ -60,467 +542,221 @@ extensions: - ["::try_new", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] - ["::try_new_with_handle_and_interest", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] - ["::try_with_interest", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] - ["::try_io", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::try_io", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] + - ["::try_io", "Argument[self].Reference.Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_inner_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] - ["::try_io", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::try_io", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["::source", "Argument[self].Field[tokio::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::try_io", "Argument[self].Reference.Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::source", "Argument[self].Reference.Field[tokio::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_parts", "Argument[self].Field[tokio::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[tokio::io::async_fd::AsyncFdTryNewError::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::blocking::Blocking::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::bytes", "Argument[self].Field[tokio::io::blocking::Buf::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::copy_from", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["::copy_from_bufs", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::copy_to", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::copy_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::copy_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::io::interest::Interest(0)]", "ReturnValue.Field[tokio::io::interest::Interest(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::io::interest::Interest(0)]", "ReturnValue.Field[tokio::io::interest::Interest(0)]", "value", "dfc-generated"] + - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::remove", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::join::Join::reader]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::join::Join::writer]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::writer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::writer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::reader", "Argument[self].Field[tokio::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::reader_mut", "Argument[self].Field[tokio::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::writer", "Argument[self].Field[tokio::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::writer_mut", "Argument[self].Field[tokio::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::reader", "Argument[self].Reference.Field[tokio::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::reader_mut", "Argument[self].Reference.Field[tokio::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::writer", "Argument[self].Reference.Field[tokio::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::writer_mut", "Argument[self].Reference.Field[tokio::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new_with_interest_and_handle", "Argument[2]", "ReturnValue.Field[tokio::runtime::io::registration::Registration::handle]", "value", "dfc-generated"] - - ["::registration", "Argument[self].Field[tokio::io::poll_evented::PollEvented::registration]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::registration", "Argument[self].Reference.Field[tokio::io::poll_evented::PollEvented::registration]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::advance_mut", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::remaining_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::assume_init", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::filled", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::filled_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::initialize_unfilled", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::initialize_unfilled_to", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::inner_mut", "Argument[self].Field[tokio::io::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] + - ["::initialize_unfilled_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::initialized", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::initialized_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::inner_mut", "Argument[self].Reference.Field[tokio::io::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::set_filled", "Argument[0]", "Argument[self].Field[tokio::io::read_buf::ReadBuf::filled]", "value", "dfc-generated"] + - ["::set_filled", "Argument[0]", "Argument[self].Reference.Field[tokio::io::read_buf::ReadBuf::filled]", "value", "dfc-generated"] - ["::take", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::unfilled_mut", "Argument[self].Field[tokio::io::read_buf::ReadBuf::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::unfilled_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::uninit", "Argument[0]", "ReturnValue.Field[tokio::io::read_buf::ReadBuf::buf]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::io::ready::Ready(0)]", "ReturnValue.Field[tokio::io::ready::Ready(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::io::ready::Ready(0)]", "ReturnValue.Field[tokio::io::ready::Ready(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::as_usize", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::as_usize", "Argument[self].Field[tokio::io::ready::Ready(0)]", "ReturnValue", "value", "dfc-generated"] - ["::from_usize", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::intersection", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::pos]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::seek]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::pos]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::seek]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::unsplit", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_write", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["::poll_write", "Argument[1]", "Argument[self]", "taint", "df-generated"] + - ["::poll_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::stdio_common::SplitByUtf8BoundaryIfWindows::inner]", "value", "dfc-generated"] - - ["::buffer", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::buffer", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::buf_reader::BufReader::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[tokio::io::util::buf_reader::BufReader::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::io::util::buf_reader::SeekState::PendingOverflowed(0)]", "ReturnValue.Field[tokio::io::util::buf_reader::SeekState::PendingOverflowed(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::io::util::buf_reader::SeekState::PendingOverflowed(0)]", "ReturnValue.Field[tokio::io::util::buf_reader::SeekState::PendingOverflowed(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::io::util::buf_reader::SeekState::Start(0)]", "ReturnValue.Field[tokio::io::util::buf_reader::SeekState::Start(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio::io::util::buf_stream::BufStream::inner]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::into_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::buf_stream::BufStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::buf_stream::BufStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::buffer", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::buffer", "Argument[self].Reference.Field[tokio::io::util::buf_writer::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::buf_writer::BufWriter::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[tokio::io::util::buf_writer::BufWriter::inner]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::io::util::buf_writer::SeekState::Start(0)]", "ReturnValue.Field[tokio::io::util::buf_writer::SeekState::Start(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::poll_copy", "Argument[self].Field[tokio::io::util::copy::CopyBuffer::amt]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::fill_buf::FillBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::fill_buf::FillBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::flush::Flush::a]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::flush::Flush::a]", "ReturnValue", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_copy", "Argument[self].Reference.Field[tokio::io::util::copy::CopyBuffer::amt]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::util::lines::Lines::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_line", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new_unsplit", "Argument[0]", "ReturnValue.Field[tokio::io::util::mem::SimplexStream::max_buf_size]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::reader]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF32::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF32Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF64::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF64Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI128::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI128Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI16::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI16Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI32::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI32Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI64::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI64Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI8::reader]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI8::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI8::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU128::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU128Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU16::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU16Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU32::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU32Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU64::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU64Le::src]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::src]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU8::reader]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU8::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU8::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::read]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::reader]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::shutdown::Shutdown::a]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::shutdown::Shutdown::a]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self].Field[tokio::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_segment", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::io::util::take::Take::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::limit", "Argument[self].Field[tokio::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::take::Take::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::take::Take::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] - - ["::set_limit", "Argument[0]", "Argument[self].Field[tokio::io::util::take::Take::limit_]", "value", "dfc-generated"] - - ["::apply_read_buf", "Argument[0].Field[tokio::io::util::vec_with_initialized::ReadBufParts::initialized]", "Argument[self].Field[tokio::io::util::vec_with_initialized::VecWithInitialized::num_initialized]", "value", "dfc-generated"] + - ["::limit", "Argument[self].Reference.Field[tokio::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] + - ["::set_limit", "Argument[0]", "Argument[self].Reference.Field[tokio::io::util::take::Take::limit_]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::apply_read_buf", "Argument[0].Field[tokio::io::util::vec_with_initialized::ReadBufParts::initialized]", "Argument[self].Reference.Field[tokio::io::util::vec_with_initialized::VecWithInitialized::num_initialized]", "value", "dfc-generated"] - ["::get_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::vec_with_initialized::VecWithInitialized::vec]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::writer]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF32::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF32Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF64::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF64Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI128::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI128Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI16::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI16Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI32::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI32Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI64::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI64Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI8::dst]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_int::WriteI8::byte]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI8::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI8::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU128::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU128Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU16::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU16Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU32::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU32Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU64::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU64Le::dst]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::written]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU8::dst]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_int::WriteU8::byte]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU8::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU8::dst]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::bufs]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::writer]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::bufs]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::writer]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -529,75 +765,322 @@ extensions: - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::loom::std::barrier::Barrier::num_threads]", "value", "dfc-generated"] - - ["::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::is_leader", "Argument[self].Field[tokio::loom::std::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::lock", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::try_lock", "Argument[self].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["::try_lock", "Argument[self].Field[tokio::loom::std::mutex::Mutex(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_leader", "Argument[self].Reference.Field[tokio::loom::std::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::lock", "Argument[self].Reference.Field[tokio::loom::std::mutex::Mutex(0)]", "ReturnValue.Field[std::sync::poison::mutex::MutexGuard::lock].Reference", "value", "dfc-generated"] + - ["::try_lock", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::wait", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - ["::wait_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::try_write", "Argument[self].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["::try_write", "Argument[self].Field[tokio::loom::std::rwlock::RwLock(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[self].Reference.Field[tokio::loom::std::rwlock::RwLock(0)]", "ReturnValue.Field[std::sync::poison::rwlock::RwLockWriteGuard::lock].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::loom::std::unsafe_cell::UnsafeCell(0)].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Field[tokio::net::addr::sealed::OneOrMore::More(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::next", "Argument[self].Field[tokio::net::addr::sealed::OneOrMore::One(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::accept", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::tcp::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::tcp::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::tcp::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::tcp::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::tcp::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::tcp::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] - ["::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::tcp::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::tcp::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - ["::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["::try_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::connect_mio", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::peek", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::split", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::peek_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_sender", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_peek", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_peek", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_peek_from", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_peek_from", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_peek_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_from", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_from", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_recv_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::send_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_peek", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_peek_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_peek_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_peek_sender", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_send", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_send", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_send_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_send_to", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_send_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from_mio", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_from", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_from", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_recv_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_buf_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::send_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::send_to", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::send_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_buf_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv_from", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_send", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_send", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_send_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_send_to", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_send_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::accept", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::read_write", "Argument[0]", "Argument[self].Field[tokio::net::unix::pipe::OpenOptions::read_write]", "value", "dfc-generated"] - - ["::read_write", "Argument[0]", "ReturnValue.Field[tokio::net::unix::pipe::OpenOptions::read_write]", "value", "dfc-generated"] + - ["::poll_accept", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_write", "Argument[0]", "Argument[self].Reference.Field[tokio::net::unix::pipe::OpenOptions::read_write]", "value", "dfc-generated"] - ["::read_write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::unchecked", "Argument[0]", "Argument[self].Field[tokio::net::unix::pipe::OpenOptions::unchecked]", "value", "dfc-generated"] - - ["::unchecked", "Argument[0]", "ReturnValue.Field[tokio::net::unix::pipe::OpenOptions::unchecked]", "value", "dfc-generated"] + - ["::unchecked", "Argument[0]", "Argument[self].Reference.Field[tokio::net::unix::pipe::OpenOptions::unchecked]", "value", "dfc-generated"] - ["::unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio::net::unix::socketaddr::SocketAddr(0)]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::unix::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::unix::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::unix::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::unix::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::unix::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::unix::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] - ["::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio::net::unix::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio::net::unix::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - ["::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["::try_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::connect_mio", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::readable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::split", "Argument[self]", "ReturnValue.Field[0].Field[tokio::net::unix::split::ReadHalf(0)]", "value", "dfc-generated"] - ["::split", "Argument[self]", "ReturnValue.Field[1].Field[tokio::net::unix::split::WriteHalf(0)]", "value", "dfc-generated"] - - ["::gid", "Argument[self].Field[tokio::net::unix::ucred::UCred::gid]", "ReturnValue", "value", "dfc-generated"] - - ["::pid", "Argument[self].Field[tokio::net::unix::ucred::UCred::pid]", "ReturnValue", "value", "dfc-generated"] - - ["::uid", "Argument[self].Field[tokio::net::unix::ucred::UCred::uid]", "ReturnValue", "value", "dfc-generated"] + - ["::try_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::writable", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::gid", "Argument[self].Reference.Field[tokio::net::unix::ucred::UCred::gid]", "ReturnValue", "value", "dfc-generated"] + - ["::pid", "Argument[self].Reference.Field[tokio::net::unix::ucred::UCred::pid]", "ReturnValue", "value", "dfc-generated"] + - ["::uid", "Argument[self].Reference.Field[tokio::net::unix::ucred::UCred::uid]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::kill", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio::process::Command::std]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::arg0", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::as_std", "Argument[self].Field[tokio::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_std_mut", "Argument[self].Field[tokio::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_std", "Argument[self].Reference.Field[tokio::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_std_mut", "Argument[self].Reference.Field[tokio::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::env_clear", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::env_remove", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::envs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::get_kill_on_drop", "Argument[self].Field[tokio::process::Command::kill_on_drop]", "ReturnValue", "value", "dfc-generated"] + - ["::get_kill_on_drop", "Argument[self].Reference.Field[tokio::process::Command::kill_on_drop]", "ReturnValue", "value", "dfc-generated"] - ["::gid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::into_std", "Argument[self].Field[tokio::process::Command::std]", "ReturnValue", "value", "dfc-generated"] - - ["::kill_on_drop", "Argument[0]", "Argument[self].Field[tokio::process::Command::kill_on_drop]", "value", "dfc-generated"] - - ["::kill_on_drop", "Argument[0]", "ReturnValue.Field[tokio::process::Command::kill_on_drop]", "value", "dfc-generated"] + - ["::kill_on_drop", "Argument[0]", "Argument[self].Reference.Field[tokio::process::Command::kill_on_drop]", "value", "dfc-generated"] - ["::kill_on_drop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::pre_exec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::process_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -605,35 +1088,53 @@ extensions: - ["::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::stdout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::uid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::inner_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::process::imp::pidfd_reaper::PidfdReaper::orphan_queue]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::process::imp::reap::Reaper::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::inner_mut", "Argument[self].Field[tokio::process::imp::reap::Reaper::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::inner_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::process::imp::reap::Reaper::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio::process::imp::reap::Reaper::orphan_queue]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[tokio::process::imp::reap::Reaper::signal]", "value", "dfc-generated"] - - ["::try_wait", "Argument[self].Field[tokio::process::imp::reap::test::MockWait::status]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::poll", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::process::test::Mock::poll_result]", "ReturnValue", "value", "dfc-generated"] - - ["::spawner", "Argument[self].Field[tokio::runtime::blocking::pool::BlockingPool::spawner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_wait", "Argument[self].Reference.Field[tokio::process::imp::reap::test::MockWait::status]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::spawner", "Argument[self].Reference.Field[tokio::runtime::blocking::pool::BlockingPool::spawner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::blocking::pool::Spawner::inner].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[tokio::runtime::blocking::pool::Spawner::inner].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::blocking::pool::Spawner::inner].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[tokio::runtime::blocking::pool::Spawner::inner].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::blocking::pool::Spawner::inner]", "ReturnValue.Field[tokio::runtime::blocking::pool::Spawner::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::blocking::pool::Task::task]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::blocking::pool::Task::mandatory]", "value", "dfc-generated"] - - ["::hooks", "Argument[self].Field[tokio::runtime::blocking::schedule::BlockingSchedule::hooks].Field[tokio::runtime::task::TaskHarnessScheduleHooks::task_terminate_callback]", "ReturnValue.Field[tokio::runtime::task::TaskHarnessScheduleHooks::task_terminate_callback]", "value", "dfc-generated"] - - ["::new", "Argument[0].Reference", "ReturnValue.Field[tokio::runtime::blocking::schedule::BlockingSchedule::handle]", "value", "dfc-generated"] + - ["::hooks", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::blocking::shutdown::Sender::_tx].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[tokio::runtime::blocking::shutdown::Sender::_tx].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::blocking::shutdown::Sender::_tx].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[tokio::runtime::blocking::shutdown::Sender::_tx].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::blocking::shutdown::Sender::_tx]", "ReturnValue.Field[tokio::runtime::blocking::shutdown::Sender::_tx]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::blocking::task::BlockingTask::func].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::enable_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::enable_io", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::enable_time", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::event_interval", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] - - ["::event_interval", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] + - ["::event_interval", "Argument[0]", "Argument[self].Reference.Field[tokio::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] - ["::event_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::global_queue_interval", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::global_queue_interval].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::global_queue_interval", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::global_queue_interval].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::global_queue_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_blocking_threads", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::max_blocking_threads]", "value", "dfc-generated"] - - ["::max_blocking_threads", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::max_blocking_threads]", "value", "dfc-generated"] + - ["::max_blocking_threads", "Argument[0]", "Argument[self].Reference.Field[tokio::runtime::builder::Builder::max_blocking_threads]", "value", "dfc-generated"] - ["::max_blocking_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_io_events_per_tick", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::nevents]", "value", "dfc-generated"] - - ["::max_io_events_per_tick", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::nevents]", "value", "dfc-generated"] + - ["::max_io_events_per_tick", "Argument[0]", "Argument[self].Reference.Field[tokio::runtime::builder::Builder::nevents]", "value", "dfc-generated"] - ["::max_io_events_per_tick", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::kind]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] @@ -641,159 +1142,292 @@ extensions: - ["::on_thread_start", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::on_thread_stop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::on_thread_unpark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::start_paused", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::start_paused]", "value", "dfc-generated"] - - ["::start_paused", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::start_paused]", "value", "dfc-generated"] + - ["::start_paused", "Argument[0]", "Argument[self].Reference.Field[tokio::runtime::builder::Builder::start_paused]", "value", "dfc-generated"] - ["::start_paused", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::thread_keep_alive", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::keep_alive].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::thread_keep_alive", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::keep_alive].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::thread_keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::thread_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::thread_name_fn", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::thread_stack_size", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::thread_stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::thread_stack_size", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::thread_stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::thread_stack_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::worker_threads", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::worker_threads].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::worker_threads", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::worker_threads].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::worker_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::set_current", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::context::runtime::EnterRuntime::Entered::allow_block_in_place]", "ReturnValue.Field[tokio::runtime::context::runtime::EnterRuntime::Entered::allow_block_in_place].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::context::runtime::EnterRuntime::Entered::allow_block_in_place]", "ReturnValue.Field[tokio::runtime::context::runtime::EnterRuntime::Entered::allow_block_in_place]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::set", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clock", "Argument[self].Reference.Field[tokio::runtime::driver::Handle::clock]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::io", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::signal", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::time", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_ref", "Argument[self].Field[tokio::runtime::driver::IoHandle::Enabled(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::metrics", "Argument[self].Reference", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] - - ["::consume_signal_ready", "Argument[self].Field[tokio::runtime::io::driver::Driver::signal_ready]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::consume_signal_ready", "Argument[self].Reference.Field[tokio::runtime::io::driver::Driver::signal_ready]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::with_ready", "Argument[0]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::ready]", "value", "dfc-generated"] - - ["::with_ready", "Argument[self].Field[tokio::runtime::io::driver::ReadyEvent::is_shutdown]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::is_shutdown]", "value", "dfc-generated"] - - ["::with_ready", "Argument[self].Field[tokio::runtime::io::driver::ReadyEvent::tick]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::tick]", "value", "dfc-generated"] + - ["::with_ready", "Argument[self].Reference.Field[tokio::runtime::io::driver::ReadyEvent::is_shutdown]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::is_shutdown]", "value", "dfc-generated"] + - ["::with_ready", "Argument[self].Reference.Field[tokio::runtime::io::driver::ReadyEvent::tick]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::tick]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::async_io", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::new_with_interest_and_handle", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::runtime::io::registration::Registration::handle]", "value", "dfc-generated"] - ["::poll_read_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::poll_write_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::readiness", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_io", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::is_shutdown", "Argument[0].Field[tokio::runtime::io::registration_set::Synced::is_shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["::is_shutdown", "Argument[0].Reference.Field[tokio::runtime::io::registration_set::Synced::is_shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::readiness", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] - - ["::unpark", "Argument[self].Field[tokio::runtime::park::ParkThread::inner].Reference", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] - - ["::unpark", "Argument[self].Field[tokio::runtime::park::ParkThread::inner]", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::unpark", "Argument[self].Reference.Field[tokio::runtime::park::ParkThread::inner]", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::park::UnparkThread::inner].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::park::UnparkThread::inner].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::park::UnparkThread::inner]", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::process::Driver::park]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::wrap", "Argument[0]", "ReturnValue.Field[tokio_util::context::TokioContext::inner]", "value", "dfc-generated"] - - ["::wrap", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle]", "ReturnValue.Field[tokio_util::context::TokioContext::handle]", "value", "dfc-generated"] + - ["::block_on", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_parts", "Argument[0]", "ReturnValue.Field[tokio::runtime::runtime::Runtime::scheduler]", "value", "dfc-generated"] - ["::from_parts", "Argument[1]", "ReturnValue.Field[tokio::runtime::runtime::Runtime::handle]", "value", "dfc-generated"] - ["::from_parts", "Argument[2]", "ReturnValue.Field[tokio::runtime::runtime::Runtime::blocking_pool]", "value", "dfc-generated"] - - ["::handle", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::metrics", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle].Reference", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] - - ["::metrics", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle]", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] + - ["::handle", "Argument[self].Reference.Field[tokio::runtime::runtime::Runtime::handle]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::expect_current_thread", "Argument[self].Field[tokio::runtime::scheduler::Context::CurrentThread(0)]", "ReturnValue", "value", "dfc-generated"] - ["::expect_multi_thread", "Argument[self].Field[tokio::runtime::scheduler::Context::MultiThread(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_current_thread", "Argument[self].Field[tokio::runtime::scheduler::Handle::CurrentThread(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::worker_metrics", "Argument[self].Field[tokio::runtime::scheduler::current_thread::Handle::shared].Field[tokio::runtime::scheduler::current_thread::Shared::worker_metrics]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::blocking_spawner", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::hooks", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::seed_generator", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::worker_metrics", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::worker_metrics", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::pop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].Reference.Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::synced]", "value", "dfc-generated"] - - ["::is_closed", "Argument[0].Field[tokio::runtime::scheduler::inject::synced::Synced::is_closed]", "ReturnValue", "value", "dfc-generated"] - - ["::pop", "Argument[0].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::pop", "Argument[0].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::is_closed", "Argument[0].Reference.Field[tokio::runtime::scheduler::inject::synced::Synced::is_closed]", "ReturnValue", "value", "dfc-generated"] + - ["::pop", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::pop", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::pop_n", "Argument[0]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::synced]", "value", "dfc-generated"] - ["::pop_n", "Argument[1]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "value", "dfc-generated"] - ["::push", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::pop", "Argument[self].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::pop", "Argument[self].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::pop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::trace_core", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::worker_metrics", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[0].Field[tokio::runtime::scheduler::multi_thread::idle::Idle::num_workers]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::scheduler::multi_thread::idle::State(0)]", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::idle::State(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::scheduler::multi_thread::idle::State(0)]", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::idle::State(0)]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::idle::State(0)]", "value", "dfc-generated"] - - ["::unpark", "Argument[self].Field[tokio::runtime::scheduler::multi_thread::park::Parker::inner].Reference", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::park::Unparker::inner]", "value", "dfc-generated"] - - ["::unpark", "Argument[self].Field[tokio::runtime::scheduler::multi_thread::park::Parker::inner]", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::park::Unparker::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::unpark", "Argument[self].Reference.Field[tokio::runtime::scheduler::multi_thread::park::Parker::inner]", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::park::Unparker::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::runtime::scheduler::multi_thread::queue::Steal(0)]", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::queue::Steal(0)]", "value", "dfc-generated"] + - ["::tuned_global_queue_interval", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::tuned_global_queue_interval", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::handle", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::runtime::signal::Driver::io]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::Notified(0)].Field[tokio::runtime::task::Task::raw]", "value", "dfc-generated"] - - ["::into_raw", "Argument[self].Field[0].Field[tokio::runtime::task::Task::raw]", "ReturnValue", "value", "dfc-generated"] - ["::into_raw", "Argument[self].Field[tokio::runtime::task::Notified(0)].Field[tokio::runtime::task::Task::raw]", "ReturnValue", "value", "dfc-generated"] - - ["::as_raw", "Argument[0].Field[tokio::runtime::task::Task::raw].Field[tokio::runtime::task::raw::RawTask::ptr]", "ReturnValue", "value", "dfc-generated"] + - ["::as_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::Task::raw].Field[tokio::runtime::task::raw::RawTask::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task::TaskHarnessScheduleHooks::task_terminate_callback]", "ReturnValue.Field[tokio::runtime::task::TaskHarnessScheduleHooks::task_terminate_callback]", "value", "dfc-generated"] - ["::into_notified", "Argument[self].Field[tokio::runtime::task::UnownedTask::raw]", "ReturnValue.Field[tokio::runtime::task::Notified(0)].Field[tokio::runtime::task::Task::raw]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::runtime::task::abort::AbortHandle::raw]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] - - ["::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["::new", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["::poll", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::get_owner_id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_next", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::set_owner_id", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::set_waker", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::will_wake", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::will_wake", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::cancelled", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::error::JoinError::id]", "value", "dfc-generated"] - - ["::id", "Argument[self].Field[tokio::runtime::task::error::JoinError::id]", "ReturnValue", "value", "dfc-generated"] + - ["::id", "Argument[self].Reference.Field[tokio::runtime::task::error::JoinError::id]", "ReturnValue", "value", "dfc-generated"] + - ["::into_panic", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::panic", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::error::JoinError::id]", "value", "dfc-generated"] - ["::try_into_panic", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::abort_handle", "Argument[self].Field[tokio::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task::id::Id(0)]", "ReturnValue.Field[tokio::runtime::task::id::Id(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task::id::Id(0)]", "ReturnValue.Field[tokio::runtime::task::id::Id(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::abort_handle", "Argument[self].Reference.Field[tokio::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::join::JoinHandle::raw]", "value", "dfc-generated"] - - ["::assert_owner", "Argument[0].Field[0]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] - ["::assert_owner", "Argument[0].Field[tokio::runtime::task::Notified(0)]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] - - ["::assert_owner", "Argument[0].Field[0]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] + - ["::remove", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::remove", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["::assert_owner", "Argument[0].Field[tokio::runtime::task::Notified(0)]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] + - ["::get_shard_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task::raw::RawTask::ptr]", "ReturnValue.Field[tokio::runtime::task::raw::RawTask::ptr].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task::raw::RawTask::ptr]", "ReturnValue.Field[tokio::runtime::task::raw::RawTask::ptr]", "value", "dfc-generated"] - ["::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::raw::RawTask::ptr]", "value", "dfc-generated"] - - ["::header_ptr", "Argument[self].Field[tokio::runtime::task::raw::RawTask::ptr]", "ReturnValue", "value", "dfc-generated"] + - ["::header_ptr", "Argument[self].Reference.Field[tokio::runtime::task::raw::RawTask::ptr]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task::state::Snapshot(0)]", "ReturnValue.Field[tokio::runtime::task::state::Snapshot(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task::state::Snapshot(0)]", "ReturnValue.Field[tokio::runtime::task::state::Snapshot(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::ref_count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Field[tokio::runtime::task::waker::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::from_config", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::id", "Argument[self].Field[tokio::runtime::task_hooks::TaskMeta::id]", "ReturnValue", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[tokio::runtime::task::waker::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task_hooks::TaskHooks::task_spawn_callback]", "ReturnValue.Field[tokio::runtime::task_hooks::TaskHooks::task_spawn_callback]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::task_hooks::TaskHooks::task_terminate_callback]", "ReturnValue.Field[tokio::runtime::task_hooks::TaskHooks::task_terminate_callback]", "value", "dfc-generated"] + - ["::from_config", "Argument[0].Reference.Field[tokio::runtime::config::Config::after_termination]", "ReturnValue.Field[tokio::runtime::task_hooks::TaskHooks::task_terminate_callback]", "value", "dfc-generated"] + - ["::from_config", "Argument[0].Reference.Field[tokio::runtime::config::Config::before_spawn]", "ReturnValue.Field[tokio::runtime::task_hooks::TaskHooks::task_spawn_callback]", "value", "dfc-generated"] + - ["::spawn", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::id", "Argument[self].Reference.Field[tokio::runtime::task_hooks::TaskMeta::id]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::thread_id::ThreadId(0)]", "ReturnValue.Field[tokio::runtime::thread_id::ThreadId(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::runtime::thread_id::ThreadId(0)]", "ReturnValue.Field[tokio::runtime::thread_id::ThreadId(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[0].Field[tokio::runtime::time::Driver::park]", "value", "dfc-generated"] - - ["::deadline", "Argument[self].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deadline", "Argument[self].Reference.Field[tokio::runtime::time::entry::TimerEntry::deadline]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::time::entry::TimerEntry::driver]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] - - ["::as_raw", "Argument[0].Field[tokio::runtime::time::entry::TimerHandle::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::time::entry::TimerHandle::inner]", "value", "dfc-generated"] - ["::handle", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[tokio::runtime::time::entry::TimerHandle::inner]", "value", "dfc-generated"] - - ["::time_source", "Argument[self].Field[tokio::runtime::time::handle::Handle::time_source]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::start_time", "Argument[self].Field[tokio::runtime::time::source::TimeSource::start_time]", "ReturnValue", "value", "dfc-generated"] + - ["::time_source", "Argument[self].Reference.Field[tokio::runtime::time::handle::Handle::time_source]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::start_time", "Argument[self].Reference.Field[tokio::runtime::time::source::TimeSource::start_time]", "ReturnValue", "value", "dfc-generated"] - ["::tick_to_duration", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::elapsed", "Argument[self].Field[tokio::runtime::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::elapsed", "Argument[self].Reference.Field[tokio::runtime::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] - ["::insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[0]", "value", "dfc-generated"] - - ["::next_expiration_time", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::poll", "Argument[0]", "Argument[self].Field[tokio::runtime::time::wheel::Wheel::elapsed]", "value", "dfc-generated"] - - ["::poll_at", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll", "Argument[0]", "Argument[self].Reference.Field[tokio::runtime::time::wheel::Wheel::elapsed]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::time::wheel::level::Level::level]", "value", "dfc-generated"] - - ["::next_expiration", "Argument[self].Field[tokio::runtime::time::wheel::level::Level::level]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::runtime::time::wheel::level::Expiration::level]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::signal::registry::Globals::extra]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::storage", "Argument[self].Field[tokio::signal::registry::Globals::registry].Field[tokio::signal::registry::Registry::storage]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next_expiration", "Argument[self].Reference.Field[tokio::runtime::time::wheel::level::Level::level]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::runtime::time::wheel::level::Expiration::level]", "value", "dfc-generated"] + - ["::take_slot", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[tokio::signal::registry::Globals::extra]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::register_listener", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::storage", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::try_set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::as_raw_value", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::as_raw_value", "Argument[self].Field[tokio::signal::unix::SignalKind(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::signal::unix::SignalKind(0)]", "ReturnValue.Field[tokio::signal::unix::SignalKind(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::signal::unix::SignalKind(0)]", "ReturnValue.Field[tokio::signal::unix::SignalKind(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_raw_value", "Argument[self].Reference.Field[tokio::signal::unix::SignalKind(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::event_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::for_each", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::sync::barrier::Barrier::n]", "value", "dfc-generated"] - - ["::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["::is_leader", "Argument[self].Field[tokio::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::barrier::BarrierWaitResult(0)]", "ReturnValue.Field[tokio::sync::barrier::BarrierWaitResult(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::barrier::BarrierWaitResult(0)]", "ReturnValue.Field[tokio::sync::barrier::BarrierWaitResult(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_leader", "Argument[self].Reference.Field[tokio::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::acquire", "Argument[0]", "ReturnValue.Field[tokio::sync::batch_semaphore::Acquire::num_permits]", "value", "dfc-generated"] - ["::acquire", "Argument[self]", "ReturnValue.Field[tokio::sync::batch_semaphore::Acquire::semaphore]", "value", "dfc-generated"] - ["::forget_permits", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::resubscribe", "Argument[self].Field[tokio::sync::broadcast::Receiver::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - - ["::resubscribe", "Argument[self].Field[tokio::sync::broadcast::Receiver::shared]", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] - - ["::downgrade", "Argument[self].Field[tokio::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - - ["::downgrade", "Argument[self].Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::resubscribe", "Argument[self].Reference.Field[tokio::sync::broadcast::Receiver::shared]", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] + - ["::downgrade", "Argument[self].Reference.Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::broadcast::error::SendError(0)]", "value", "dfc-generated"] - - ["::subscribe", "Argument[self].Field[tokio::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - - ["::subscribe", "Argument[self].Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] + - ["::subscribe", "Argument[self].Reference.Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - ["::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::broadcast::WeakSender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::broadcast::WeakSender::shared]", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - - ["::upgrade", "Argument[self].Field[tokio::sync::broadcast::WeakSender::shared].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] - - ["::upgrade", "Argument[self].Field[tokio::sync::broadcast::WeakSender::shared]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] - - ["::next", "Argument[self].Field[tokio::sync::mpsc::bounded::PermitIterator::chan]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::mpsc::bounded::Permit::chan]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::broadcast::WeakSender::shared]", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] + - ["::upgrade", "Argument[self].Reference.Field[tokio::sync::broadcast::WeakSender::shared]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::broadcast::error::RecvError::Lagged(0)]", "ReturnValue.Field[tokio::sync::broadcast::error::RecvError::Lagged(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::broadcast::error::RecvError::Lagged(0)]", "ReturnValue.Field[tokio::sync::broadcast::error::RecvError::Lagged(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::broadcast::error::TryRecvError::Lagged(0)]", "ReturnValue.Field[tokio::sync::broadcast::error::TryRecvError::Lagged(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::broadcast::error::TryRecvError::Lagged(0)]", "ReturnValue.Field[tokio::sync::broadcast::error::TryRecvError::Lagged(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::observed_tail_position", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::tx_release", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self].Reference.Field[tokio::sync::mpsc::bounded::PermitIterator::chan]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::mpsc::bounded::Permit::chan]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_empty", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::max_capacity", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::bounded::Receiver::chan]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::Sender::chan].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue.Field[tokio::sync::mpsc::bounded::Sender::chan].Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::Sender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::Sender::chan]", "ReturnValue.Field[tokio::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] - - ["::downgrade", "Argument[self].Field[tokio::sync::mpsc::bounded::Sender::chan].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue.Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "value", "dfc-generated"] + - ["::poll_recv", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::max_capacity", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] - ["::reserve", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::reserve_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "value", "dfc-generated"] @@ -806,118 +1440,187 @@ extensions: - ["::try_reserve_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Full(0)]", "value", "dfc-generated"] - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] - ["::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Full(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::WeakSender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "value", "dfc-generated"] - - ["::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner].Reference", "ReturnValue.Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue.Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["::downgrade", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::downgrade", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_empty", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::recv_many", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::recv_many", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::recv_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::semaphore", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue.Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade", "Argument[self].Reference.Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::semaphore", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::upgrade", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::SendTimeoutError::Closed(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::SendTimeoutError::Timeout(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::from", "Argument[0].Field[0]", "ReturnValue.Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[tokio::sync::mpsc::error::SendError(0)]", "ReturnValue.Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::TrySendError::Full(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::is_empty", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedReceiver::chan]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan].Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] - - ["::downgrade", "Argument[self].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "value", "dfc-generated"] + - ["::poll_recv", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "Argument[2]", "taint", "df-generated"] + - ["::poll_recv_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::recv_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendError(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "value", "dfc-generated"] - - ["::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::mutex::MappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio::sync::mutex::MappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio::sync::mutex::Mutex::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::const_new", "Argument[0]", "ReturnValue.Field[tokio::sync::mutex::Mutex::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio::sync::mutex::Mutex::c].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] + - ["::lock", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::lock_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mutex::Mutex::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::try_lock", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mutex::MutexGuard::lock]", "value", "dfc-generated"] - ["::try_lock_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mutex::OwnedMutexGuard::lock]", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::mutex", "Argument[0].Field[tokio::sync::mutex::MutexGuard::lock]", "ReturnValue", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::mutex", "Argument[0].Reference.Field[tokio::sync::mutex::MutexGuard::lock]", "ReturnValue", "value", "dfc-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::mutex::OwnedMappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio::sync::mutex::OwnedMappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::mutex", "Argument[0].Field[tokio::sync::mutex::OwnedMutexGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::mutex", "Argument[0].Reference.Field[tokio::sync::mutex::OwnedMutexGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::notified", "Argument[self]", "ReturnValue.Field[tokio::sync::notify::Notified::notify]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::once_cell::SetError::AlreadyInitializedError(0)]", "value", "dfc-generated"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::once_cell::SetError::InitializingError(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::blocking_recv", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::oneshot::State(0)]", "ReturnValue.Field[tokio::sync::oneshot::State(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::oneshot::State(0)]", "ReturnValue.Field[tokio::sync::oneshot::State(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::const_new", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::const_with_max_readers", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::const_with_max_readers", "Argument[1]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::mr]", "value", "dfc-generated"] - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::try_read_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::lock]", "value", "dfc-generated"] - - ["::try_write", "Argument[self].Field[tokio::sync::rwlock::RwLock::mr]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::rwlock::write_guard::RwLockWriteGuard::permits_acquired]", "value", "dfc-generated"] + - ["::try_write", "Argument[self].Reference.Field[tokio::sync::rwlock::RwLock::mr]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::rwlock::write_guard::RwLockWriteGuard::permits_acquired]", "value", "dfc-generated"] - ["::try_write_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::lock]", "value", "dfc-generated"] - ["::with_max_readers", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::with_max_readers", "Argument[1]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::mr]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::rwlock", "Argument[0].Field[tokio::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::rwlock", "Argument[0].Reference.Field[tokio::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade_map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::downgrade_map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::into_mapped", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::rwlock", "Argument[0].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::rwlock", "Argument[0].Reference.Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::try_downgrade_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::rwlock", "Argument[0].Field[tokio::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::rwlock", "Argument[0].Reference.Field[tokio::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::rwlock::read_guard::RwLockReadGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::rwlock::write_guard::RwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio::sync::rwlock::write_guard::RwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade_map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::downgrade_map", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::downgrade_map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::into_mapped", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::try_downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_downgrade_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::sync::rwlock::write_guard_mapped::RwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio::sync::rwlock::write_guard_mapped::RwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::map", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::merge", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::num_permits", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::semaphore", "Argument[self].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::split", "Argument[self].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] - - ["::split", "Argument[self].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["::semaphore", "Argument[self].Reference.Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::split", "Argument[self].Reference.Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::acquire", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] - ["::acquire_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::permits]", "value", "dfc-generated"] - ["::acquire_many", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] @@ -931,304 +1634,320 @@ extensions: - ["::try_acquire_many_owned", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::permits]", "value", "dfc-generated"] - ["::try_acquire_many_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] - ["::try_acquire_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::merge", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::num_permits", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::split", "Argument[self].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] - - ["::has_changed", "Argument[self].Field[tokio::sync::watch::Ref::has_changed]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::watch::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::watch::Sender::shared]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio::sync::watch::Sender::shared]", "ReturnValue.Field[tokio::sync::watch::Sender::shared]", "value", "dfc-generated"] + - ["::split", "Argument[self].Reference.Field[tokio::sync::semaphore::SemaphorePermit::sem]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::watch::Receiver::shared]", "ReturnValue.Field[tokio::sync::watch::Receiver::shared]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::watch::Receiver::version]", "ReturnValue.Field[tokio::sync::watch::Receiver::version]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::has_changed", "Argument[self].Reference.Field[tokio::sync::watch::Ref::has_changed]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio::sync::watch::Sender::shared]", "ReturnValue.Field[tokio::sync::watch::Sender::shared]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::watch::error::SendError(0)]", "value", "dfc-generated"] - ["::send_replace", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::subscribe", "Argument[self].Field[tokio::sync::watch::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::watch::Receiver::shared]", "value", "dfc-generated"] - - ["::subscribe", "Argument[self].Field[tokio::sync::watch::Sender::shared]", "ReturnValue.Field[tokio::sync::watch::Receiver::shared]", "value", "dfc-generated"] + - ["::subscribe", "Argument[self].Reference.Field[tokio::sync::watch::Sender::shared]", "ReturnValue.Field[tokio::sync::watch::Receiver::shared]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::notified", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::watch::state::StateSnapshot(0)]", "ReturnValue.Field[tokio::sync::watch::state::StateSnapshot(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::watch::state::StateSnapshot(0)]", "ReturnValue.Field[tokio::sync::watch::state::StateSnapshot(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::coop::Coop::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::coop::Coop::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::coop::unconstrained::Unconstrained::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::coop::unconstrained::Unconstrained::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[tokio::task::join_set::JoinSet::inner].Field[tokio::util::idle_notified_set::IdleNotifiedSet::length]", "ReturnValue", "value", "dfc-generated"] - - ["::try_join_next", "Argument[self].Field[tokio::task::join_set::JoinSet::inner]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set].Reference", "value", "dfc-generated"] - - ["::try_join_next", "Argument[self].Field[tokio::task::join_set::JoinSet::inner]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - - ["::try_join_next_with_id", "Argument[self].Field[tokio::task::join_set::JoinSet::inner]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set].Reference", "value", "dfc-generated"] - - ["::try_join_next_with_id", "Argument[self].Field[tokio::task::join_set::JoinSet::inner]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::watch::state::Version(0)]", "ReturnValue.Field[tokio::sync::watch::state::Version(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::sync::watch::state::Version(0)]", "ReturnValue.Field[tokio::sync::watch::state::Version(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::task::coop::Budget(0)]", "ReturnValue.Field[tokio::task::coop::Budget(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::join_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::join_next_with_id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_join_next", "Argument[self].Reference.Field[tokio::task::join_set::JoinSet::inner]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set].Reference", "value", "dfc-generated"] + - ["::try_join_next_with_id", "Argument[self].Reference.Field[tokio::task::join_set::JoinSet::inner]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::block_on", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::run_until", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::run_until", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::scope", "Argument[0]", "ReturnValue.Field[tokio::task::task_local::TaskLocalFuture::slot].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::scope", "Argument[1]", "ReturnValue.Field[tokio::task::task_local::TaskLocalFuture::future].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::scope", "Argument[self]", "ReturnValue.Field[tokio::task::task_local::TaskLocalFuture::local]", "value", "dfc-generated"] - ["::sync_scope", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::local]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::slot]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::local]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::slot]", "ReturnValue", "value", "dfc-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_with", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::with", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio::time::error::Error(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio::time::instant::Instant::std]", "ReturnValue.Field[tokio::time::instant::Instant::std]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio::time::instant::Instant::std]", "value", "dfc-generated"] - ["::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::from_std", "Argument[0]", "ReturnValue.Field[tokio::time::instant::Instant::std]", "value", "dfc-generated"] - ["::into_std", "Argument[self].Field[tokio::time::instant::Instant::std]", "ReturnValue", "value", "dfc-generated"] - - ["::missed_tick_behavior", "Argument[self].Field[tokio::time::interval::Interval::missed_tick_behavior]", "ReturnValue", "value", "dfc-generated"] - - ["::period", "Argument[self].Field[tokio::time::interval::Interval::period]", "ReturnValue", "value", "dfc-generated"] - - ["::set_missed_tick_behavior", "Argument[0]", "Argument[self].Field[tokio::time::interval::Interval::missed_tick_behavior]", "value", "dfc-generated"] - - ["::deadline", "Argument[self].Field[tokio::time::sleep::Sleep::entry].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::missed_tick_behavior", "Argument[self].Reference.Field[tokio::time::interval::Interval::missed_tick_behavior]", "ReturnValue", "value", "dfc-generated"] + - ["::period", "Argument[self].Reference.Field[tokio::time::interval::Interval::period]", "ReturnValue", "value", "dfc-generated"] + - ["::set_missed_tick_behavior", "Argument[0]", "Argument[self].Reference.Field[tokio::time::interval::Interval::missed_tick_behavior]", "value", "dfc-generated"] + - ["::tick", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deadline", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new_timeout", "Argument[0]", "ReturnValue.Field[tokio::time::sleep::Sleep::entry].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::sleep::Sleep::entry]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::sleep::Sleep::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::sleep::Sleep::entry]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::sleep::Sleep::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio::time::timeout::Timeout::value]", "ReturnValue", "value", "dfc-generated"] - ["::new_with_delay", "Argument[0]", "ReturnValue.Field[tokio::time::timeout::Timeout::value]", "value", "dfc-generated"] - ["::new_with_delay", "Argument[1]", "ReturnValue.Field[tokio::time::timeout::Timeout::delay]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::delay]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::delay]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Field[tokio::util::as_ref::OwnedBuf::Bytes(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Field[tokio::util::as_ref::OwnedBuf::Vec(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::pack", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::pack", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::pack", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::unpack", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::unpack", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deref", "Argument[self].Field[tokio::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Field[tokio::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[tokio::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::util::cacheline::CachePadded::value]", "value", "dfc-generated"] + - ["::remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::with_value_and_context", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::insert_idle", "Argument[self]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[tokio::util::idle_notified_set::IdleNotifiedSet::length]", "ReturnValue", "value", "dfc-generated"] + - ["::len", "Argument[self].Reference.Field[tokio::util::idle_notified_set::IdleNotifiedSet::length]", "ReturnValue", "value", "dfc-generated"] - ["::pop_notified", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - ["::try_pop_notified", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::drain_filter", "Argument[0]", "ReturnValue.Field[tokio::util::linked_list::DrainFilter::filter]", "value", "dfc-generated"] - - ["::drain_filter", "Argument[self].Field[tokio::util::linked_list::LinkedList::head]", "ReturnValue.Field[tokio::util::linked_list::DrainFilter::curr]", "value", "dfc-generated"] + - ["::drain_filter", "Argument[self].Reference.Field[tokio::util::linked_list::LinkedList::head]", "ReturnValue.Field[tokio::util::linked_list::DrainFilter::curr]", "value", "dfc-generated"] - ["::drain_filter", "Argument[self]", "ReturnValue.Field[tokio::util::linked_list::DrainFilter::list]", "value", "dfc-generated"] - - ["::last", "Argument[self].Field[tokio::util::linked_list::LinkedList::tail].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::pop_back", "Argument[self].Field[tokio::util::linked_list::LinkedList::tail].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::pop_back", "Argument[self].Field[tokio::util::linked_list::LinkedList::tail].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::pop_front", "Argument[self].Field[tokio::util::linked_list::LinkedList::head].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::pop_front", "Argument[self].Field[tokio::util::linked_list::LinkedList::head].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::pop_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::pop_front", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::expose_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_exposed_addr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from_seed", "Argument[0].Field[tokio::util::rand::RngSeed::r]", "ReturnValue.Field[tokio::util::rand::FastRand::two]", "value", "dfc-generated"] - ["::from_seed", "Argument[0].Field[tokio::util::rand::RngSeed::s]", "ReturnValue.Field[tokio::util::rand::FastRand::one]", "value", "dfc-generated"] - - ["::replace_seed", "Argument[0].Field[tokio::util::rand::RngSeed::r]", "Argument[self].Field[tokio::util::rand::FastRand::two]", "value", "dfc-generated"] - - ["::replace_seed", "Argument[0].Field[tokio::util::rand::RngSeed::s]", "Argument[self].Field[tokio::util::rand::FastRand::one]", "value", "dfc-generated"] - - ["::replace_seed", "Argument[self].Field[tokio::util::rand::FastRand::one]", "ReturnValue.Field[tokio::util::rand::RngSeed::s]", "value", "dfc-generated"] - - ["::replace_seed", "Argument[self].Field[tokio::util::rand::FastRand::two]", "ReturnValue.Field[tokio::util::rand::RngSeed::r]", "value", "dfc-generated"] - - ["::lock_shard", "Argument[self].Field[tokio::util::sharded_list::ShardedList::added]", "ReturnValue.Field[tokio::util::sharded_list::ShardGuard::added].Reference", "value", "dfc-generated"] - - ["::lock_shard", "Argument[self].Field[tokio::util::sharded_list::ShardedList::count]", "ReturnValue.Field[tokio::util::sharded_list::ShardGuard::count].Reference", "value", "dfc-generated"] + - ["::replace_seed", "Argument[0].Field[tokio::util::rand::RngSeed::r]", "Argument[self].Reference.Field[tokio::util::rand::FastRand::two]", "value", "dfc-generated"] + - ["::replace_seed", "Argument[0].Field[tokio::util::rand::RngSeed::s]", "Argument[self].Reference.Field[tokio::util::rand::FastRand::one]", "value", "dfc-generated"] + - ["::replace_seed", "Argument[self].Reference.Field[tokio::util::rand::FastRand::one]", "ReturnValue.Field[tokio::util::rand::RngSeed::s]", "value", "dfc-generated"] + - ["::replace_seed", "Argument[self].Reference.Field[tokio::util::rand::FastRand::two]", "ReturnValue.Field[tokio::util::rand::RngSeed::r]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::replace", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::replace", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::set", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::lock_shard", "Argument[self].Reference.Field[tokio::util::sharded_list::ShardedList::added]", "ReturnValue.Field[tokio::util::sharded_list::ShardGuard::added].Reference", "value", "dfc-generated"] + - ["::lock_shard", "Argument[self].Reference.Field[tokio::util::sharded_list::ShardedList::count]", "ReturnValue.Field[tokio::util::sharded_list::ShardGuard::count].Reference", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::shard_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio::util::sync_wrapper::SyncWrapper::value]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::util::sync_wrapper::SyncWrapper::value]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio::util::trace::SpawnMeta::_pd]", "ReturnValue.Field[tokio::util::trace::SpawnMeta::_pd]", "value", "dfc-generated"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::util::try_lock::TryLock::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["::try_lock", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::util::try_lock::LockGuard::lock]", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio::util::wake::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[tokio::util::wake::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::stream_close::StreamNotifyClose::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_close::StreamNotifyClose::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_close::StreamNotifyClose::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_close::StreamNotifyClose::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::all::AllFuture::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::all::AllFuture::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::stream]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::stream]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::any::AnyFuture::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::any::AnyFuture::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::stream]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::stream]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::chain::Chain::b]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::chain::Chain::a]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::chain::Chain::b]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::chain::Chain::a]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::chain::Chain::b]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::chunks_timeout::ChunksTimeout::cap]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[tokio_stream::stream_ext::chunks_timeout::ChunksTimeout::duration]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::collect::Collect::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::collect::Collect::collection]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::collect::Collect::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::collect::Collect::collection]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::collect::Collect::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::filter::Filter::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::filter::Filter::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter::Filter::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter::Filter::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter::Filter::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter::Filter::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::filter_map::FilterMap::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::filter_map::FilterMap::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter_map::FilterMap::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter_map::FilterMap::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter_map::FilterMap::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter_map::FilterMap::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::fold::FoldFuture::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::fold::FoldFuture::acc].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[2]", "ReturnValue.Field[tokio_stream::stream_ext::fold::FoldFuture::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::acc]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::acc]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::fuse::Fuse::stream].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fuse::Fuse::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fuse::Fuse::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::map::Map::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::map::Map::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map::Map::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map::Map::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map::Map::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map::Map::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::map_while::MapWhile::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::map_while::MapWhile::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map_while::MapWhile::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map_while::MapWhile::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map_while::MapWhile::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map_while::MapWhile::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::a]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::a_first]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::b]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::a]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::a_first]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::b]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::next::Next::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::next::Next::stream]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::next::Next::stream]", "ReturnValue", "value", "dfc-generated"] - - ["::peek", "Argument[self].Field[tokio_stream::stream_ext::peekable::Peekable::peek].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::peekable::Peekable::peek]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::peekable::Peekable::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::peekable::Peekable::peek]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::peekable::Peekable::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::skip::Skip::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::skip::Skip::remaining]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip::Skip::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip::Skip::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip::Skip::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip::Skip::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::skip_while::SkipWhile::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::skip_while::SkipWhile::predicate].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip_while::SkipWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip_while::SkipWhile::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip_while::SkipWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip_while::SkipWhile::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["::size_hint", "Argument[self].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self].Reference.Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::size_hint", "Argument[self].Reference.Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::take::Take::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::take::Take::remaining]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take::Take::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take::Take::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::take_while::TakeWhile::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::take_while::TakeWhile::predicate]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::done]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::done]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::then::Then::stream]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::then::Then::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::timeout::Timeout::duration]", "value", "dfc-generated"] - - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::timeout_repeating::TimeoutRepeating::interval]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::timeout_repeating::TimeoutRepeating::interval]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::timeout_repeating::TimeoutRepeating::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::timeout_repeating::TimeoutRepeating::interval]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::timeout_repeating::TimeoutRepeating::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::try_next::TryNext::inner].Field[tokio_stream::stream_ext::next::Next::stream]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::try_next::TryNext::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::try_next::TryNext::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::len", "Argument[self].Field[tokio_stream::stream_map::StreamMap::entries].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_many", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::next_many", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::next_many", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio_stream::wrappers::broadcast::BroadcastStreamRecvError::Lagged(0)]", "ReturnValue.Field[tokio_stream::wrappers::broadcast::BroadcastStreamRecvError::Lagged(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_stream::wrappers::broadcast::BroadcastStreamRecvError::Lagged(0)]", "ReturnValue.Field[tokio_stream::wrappers::broadcast::BroadcastStreamRecvError::Lagged(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::lines::LinesStream::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::split::SplitStream::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "value", "dfc-generated"] - - ["::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio_test::io::Builder::actions]", "ReturnValue.Field[tokio_test::io::Builder::actions]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_test::io::Builder::name]", "ReturnValue.Field[tokio_test::io::Builder::name]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[self].Reference.Field[tokio_test::io::Builder::actions]", "ReturnValue.Field[tokio_test::io::Mock::inner].Field[tokio_test::io::Inner::actions]", "value", "dfc-generated"] + - ["::build", "Argument[self].Reference.Field[tokio_test::io::Builder::name]", "ReturnValue.Field[tokio_test::io::Mock::inner].Field[tokio_test::io::Inner::name]", "value", "dfc-generated"] - ["::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::read_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::wait", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::write_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::read_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::write_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio_test::stream_mock::Action::Wait(0)]", "ReturnValue.Field[tokio_test::stream_mock::Action::Wait(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio_test::stream_mock::StreamMockBuilder::actions]", "ReturnValue.Field[tokio_test::stream_mock::StreamMockBuilder::actions]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::build", "Argument[self].Field[tokio_test::stream_mock::StreamMockBuilder::actions]", "ReturnValue.Field[tokio_test::stream_mock::StreamMock::actions]", "value", "dfc-generated"] - ["::next", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::wait", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::deref", "Argument[self].Field[tokio_test::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::deref_mut", "Argument[self].Field[tokio_test::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_test::task::MockTask::waker].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[tokio_test::task::MockTask::waker].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_test::task::MockTask::waker].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[tokio_test::task::MockTask::waker].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_test::task::MockTask::waker]", "ReturnValue.Field[tokio_test::task::MockTask::waker]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deref", "Argument[self].Reference.Field[tokio_test::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Field[tokio_test::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::enter", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[tokio_test::task::Spawn::future].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::max_length", "Argument[self].Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::max_length]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::max_length", "Argument[self].Reference.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::max_length]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::seek_delimiters]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::sequence_writer]", "value", "dfc-generated"] - ["::new_with_max_length", "Argument[2]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::max_length]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodecError::Io(0)]", "value", "dfc-generated"] - - ["::codec", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::codec_mut", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::backpressure_boundary", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::codec", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::codec_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::from_parts", "Argument[0].Field[tokio_util::codec::framed::FramedParts::codec]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - ["::from_parts", "Argument[0].Field[tokio_util::codec::framed::FramedParts::io]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Field[tokio_util::codec::framed::FramedParts::codec]", "value", "dfc-generated"] - ["::into_parts", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[tokio_util::codec::framed::FramedParts::io]", "value", "dfc-generated"] @@ -1237,28 +1956,28 @@ extensions: - ["::map_codec", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed::Framed::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed::Framed::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::read_buffer", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_buffer_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_capacity", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["::write_buffer", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_buffer_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::FramedParts::io]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed::FramedParts::codec]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "ReturnValue", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::borrow_mut", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::borrow", "Argument[self].Reference.Field[tokio_util::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow", "Argument[self].Reference.Field[tokio_util::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Reference.Field[tokio_util::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::borrow_mut", "Argument[self].Reference.Field[tokio_util::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_impl::ReadFrame::buffer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_impl::WriteFrame::buffer]", "value", "dfc-generated"] - - ["::decoder", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::decoder_mut", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::decoder", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::decoder_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] - ["::map_decoder", "Argument[0].ReturnValue", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - ["::map_decoder", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "Argument[0].Parameter[0]", "value", "dfc-generated"] @@ -1266,14 +1985,16 @@ extensions: - ["::map_decoder", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_read::FramedRead::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_read::FramedRead::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::read_buffer", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_buffer_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_capacity", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["::encoder", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::encoder_mut", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::backpressure_boundary", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::encoder", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::encoder_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] - ["::map_encoder", "Argument[0].ReturnValue", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - ["::map_encoder", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "Argument[0].Parameter[0]", "value", "dfc-generated"] @@ -1281,196 +2002,229 @@ extensions: - ["::map_encoder", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_write::FramedWrite::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_write::FramedWrite::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::write_buffer", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_buffer_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::big_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::length_adjustment", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::length_adjustment]", "value", "dfc-generated"] - - ["::length_adjustment", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::length_adjustment]", "value", "dfc-generated"] + - ["::length_adjustment", "Argument[0]", "Argument[self].Reference.Field[tokio_util::codec::length_delimited::Builder::length_adjustment]", "value", "dfc-generated"] - ["::length_adjustment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::length_field_length", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::length_field_len]", "value", "dfc-generated"] - - ["::length_field_length", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::length_field_len]", "value", "dfc-generated"] + - ["::length_field_length", "Argument[0]", "Argument[self].Reference.Field[tokio_util::codec::length_delimited::Builder::length_field_len]", "value", "dfc-generated"] - ["::length_field_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::length_field_offset", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::length_field_offset]", "value", "dfc-generated"] - - ["::length_field_offset", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::length_field_offset]", "value", "dfc-generated"] + - ["::length_field_offset", "Argument[0]", "Argument[self].Reference.Field[tokio_util::codec::length_delimited::Builder::length_field_offset]", "value", "dfc-generated"] - ["::length_field_offset", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::length_field_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::little_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_frame_length", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] - - ["::max_frame_length", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] + - ["::max_frame_length", "Argument[0]", "Argument[self].Reference.Field[tokio_util::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] - ["::max_frame_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::native_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::new_codec", "Argument[self].Reference", "ReturnValue.Field[tokio_util::codec::length_delimited::LengthDelimitedCodec::builder]", "value", "dfc-generated"] - ["::new_framed", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::new_read", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - ["::new_write", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["::num_skip", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::num_skip].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::num_skip", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::num_skip].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::num_skip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::max_frame_length", "Argument[self].Field[tokio_util::codec::length_delimited::LengthDelimitedCodec::builder].Field[tokio_util::codec::length_delimited::Builder::max_frame_len]", "ReturnValue", "value", "dfc-generated"] - - ["::set_max_frame_length", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::LengthDelimitedCodec::builder].Field[tokio_util::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] - - ["::max_length", "Argument[self].Field[tokio_util::codec::lines_codec::LinesCodec::max_length]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::codec::length_delimited::DecodeState::Data(0)]", "ReturnValue.Field[tokio_util::codec::length_delimited::DecodeState::Data(0)].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::codec::length_delimited::DecodeState::Data(0)]", "ReturnValue.Field[tokio_util::codec::length_delimited::DecodeState::Data(0)]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::max_frame_length", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_max_frame_length", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::max_length", "Argument[self].Reference.Field[tokio_util::codec::lines_codec::LinesCodec::max_length]", "ReturnValue", "value", "dfc-generated"] - ["::new_with_max_length", "Argument[0]", "ReturnValue.Field[tokio_util::codec::lines_codec::LinesCodec::max_length]", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::lines_codec::LinesCodecError::Io(0)]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Field[tokio_util::compat::Compat::seek_pos]", "ReturnValue.Field[tokio_util::compat::Compat::seek_pos]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio_util::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio_util::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::compat::Compat::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::seek_pos]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::seek_pos]", "ReturnValue", "value", "dfc-generated"] - - ["::handle", "Argument[self].Field[tokio_util::context::TokioContext::handle]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::handle", "Argument[self].Reference.Field[tokio_util::context::TokioContext::handle]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::context::TokioContext::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::context::TokioContext::inner]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::context::TokioContext::handle]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::handle]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::handle]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::io::inspect::InspectReader::reader]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::inspect::InspectReader::reader]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::io::inspect::InspectReader::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectReader::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectReader::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectReader::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectReader::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::io::inspect::InspectWriter::writer]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::inspect::InspectWriter::writer]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::io::inspect::InspectWriter::f]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectWriter::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectWriter::writer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectWriter::f]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectWriter::writer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::reader_stream::ReaderStream::reader].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - ["::with_capacity", "Argument[0]", "ReturnValue.Field[tokio_util::io::reader_stream::ReaderStream::reader].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::with_capacity", "Argument[1]", "ReturnValue.Field[tokio_util::io::reader_stream::ReaderStream::capacity]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::sink_writer::SinkWriter::inner]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_pin_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner_with_chunk", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::chunk]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::into_inner_with_chunk", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::stream_reader::StreamReader::inner]", "value", "dfc-generated"] - - ["::as_mut", "Argument[self].Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_mut", "Argument[self].Reference.Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_line", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_line", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_until", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_until", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::read_until", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_exact", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::seek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::flush", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_all", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write_all", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "value", "dfc-generated"] - ["::new_with_handle", "Argument[0]", "ReturnValue.Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "value", "dfc-generated"] - ["::new_with_handle", "Argument[1]", "ReturnValue.Field[tokio_util::io::sync_bridge::SyncIoBridge::rt]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::sync::cancellation_token::CancellationToken::inner].Reference", "ReturnValue.Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "ReturnValue.Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "value", "dfc-generated"] + - ["::shutdown", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "ReturnValue.Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::cancelled", "Argument[self]", "ReturnValue.Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::cancellation_token]", "value", "dfc-generated"] - ["::cancelled_owned", "Argument[self]", "ReturnValue.Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::cancellation_token]", "value", "dfc-generated"] - ["::drop_guard", "Argument[self]", "ReturnValue.Field[tokio_util::sync::cancellation_token::guard::DropGuard::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::notified", "Argument[self].Field[tokio_util::sync::cancellation_token::tree_node::TreeNode::waker]", "ReturnValue.Field[tokio::sync::notify::Notified::notify].Reference", "value", "dfc-generated"] - - ["::notified", "Argument[self].Field[tokio_util::sync::cancellation_token::tree_node::TreeNode::waker]", "ReturnValue.Field[tokio::sync::notify::Notified::notify]", "value", "dfc-generated"] - - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::run_until_cancelled", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::run_until_cancelled", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::run_until_cancelled_owned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::run_until_cancelled_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::notified", "Argument[self].Reference.Field[tokio_util::sync::cancellation_token::tree_node::TreeNode::waker]", "ReturnValue.Field[tokio::sync::notify::Notified::notify].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::sync::mpsc::PollSendError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::state].Field[tokio_util::sync::mpsc::State::Idle(0)]", "value", "dfc-generated"] - - ["::abort_send", "Argument[self].Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "Argument[self].Field[tokio_util::sync::mpsc::PollSender::state].Field[tokio_util::sync::mpsc::State::Idle(0)]", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["::new", "Argument[0].Reference", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::abort_send", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::state].Field[tokio_util::sync::mpsc::State::Idle(0)]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore].Reference", "ReturnValue.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::clone_inner", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore].Reference", "ReturnValue", "value", "dfc-generated"] - - ["::clone_inner", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::clone_inner", "Argument[self].Reference.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] - - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::reusable_box::ReusableBoxFuture::boxed].Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::try_set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::as_ref", "Argument[self].Field[tokio_util::task::abort_on_drop::AbortOnDropHandle(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::abort_handle", "Argument[self].Field[0].Field[tokio::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] - - ["::abort_handle", "Argument[self].Field[tokio_util::task::abort_on_drop::AbortOnDropHandle(0)].Field[tokio::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::task::task_tracker::TaskTracker::inner].Reference", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - - ["::token", "Argument[self].Field[tokio_util::task::task_tracker::TaskTracker::inner].Reference", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - - ["::token", "Argument[self].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - - ["::token", "Argument[self].Reference", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Reference.Field[tokio_util::task::abort_on_drop::AbortOnDropHandle(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::abort_handle", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::task::abort_on_drop::AbortOnDropHandle(0)]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::task::spawn_pinned::LocalPoolHandle::pool].Field[alloc::sync::Arc::alloc]", "ReturnValue.Field[tokio_util::task::spawn_pinned::LocalPoolHandle::pool].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::task::spawn_pinned::LocalPoolHandle::pool].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[tokio_util::task::spawn_pinned::LocalPoolHandle::pool].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::task::spawn_pinned::LocalPoolHandle::pool]", "ReturnValue.Field[tokio_util::task::spawn_pinned::LocalPoolHandle::pool]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference.Field[tokio_util::task::task_tracker::TaskTracker::inner]", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::token", "Argument[self].Reference.Field[tokio_util::task::task_tracker::TaskTracker::inner]", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - ["::track_future", "Argument[0]", "ReturnValue.Field[tokio_util::task::task_tracker::TrackedFuture::future]", "value", "dfc-generated"] - - ["::track_future", "Argument[self].Reference", "ReturnValue.Field[tokio_util::task::task_tracker::TrackedFuture::token].Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] - ["::wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::clone", "Argument[self].Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker].Reference", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] - - ["::task_tracker", "Argument[self].Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TaskTrackerWaitFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TaskTrackerWaitFuture::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TaskTrackerWaitFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TaskTrackerWaitFuture::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TrackedFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TrackedFuture::token]", "ReturnValue", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TrackedFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TrackedFuture::token]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::task_tracker", "Argument[self].Reference.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::deadline", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::peek", "Argument[self].Field[tokio_util::time::delay_queue::DelayQueue::expired].Field[tokio_util::time::delay_queue::Stack::head]", "ReturnValue", "value", "dfc-generated"] - - ["::poll_expired", "Argument[0].Field[core::task::wake::Context::waker]", "Argument[self].Field[tokio_util::time::delay_queue::DelayQueue::waker].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::remove", "Argument[0].Field[tokio_util::time::delay_queue::Key::index]", "ReturnValue.Field[tokio_util::time::delay_queue::Expired::key].Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] - - ["::try_remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::deadline", "Argument[self].Field[tokio_util::time::delay_queue::Expired::deadline]", "ReturnValue", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_expired", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::remove", "Argument[0].Reference.Field[tokio_util::time::delay_queue::Key::index]", "ReturnValue.Field[tokio_util::time::delay_queue::Expired::key].Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::deadline", "Argument[self].Reference.Field[tokio_util::time::delay_queue::Expired::deadline]", "ReturnValue", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue", "value", "dfc-generated"] - - ["::key", "Argument[self].Field[tokio_util::time::delay_queue::Expired::key]", "ReturnValue", "value", "dfc-generated"] + - ["::key", "Argument[self].Reference.Field[tokio_util::time::delay_queue::Expired::key]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::time::delay_queue::Key::index]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::index].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::time::delay_queue::Key::index]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[tokio_util::time::delay_queue::KeyInternal::index]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::time::delay_queue::KeyInternal::index]", "ReturnValue.Field[tokio_util::time::delay_queue::KeyInternal::index].Reference", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[tokio_util::time::delay_queue::KeyInternal::index]", "ReturnValue.Field[tokio_util::time::delay_queue::KeyInternal::index]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[tokio_util::time::delay_queue::Key::index]", "ReturnValue.Field[tokio_util::time::delay_queue::KeyInternal::index]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::time::delay_queue::KeyInternal::index]", "value", "dfc-generated"] - - ["::index", "Argument[self].Field[tokio_util::time::delay_queue::SlabStorage::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::index_mut", "Argument[self].Field[tokio_util::time::delay_queue::SlabStorage::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::peek", "Argument[self].Field[tokio_util::time::delay_queue::Stack::head]", "ReturnValue", "value", "dfc-generated"] - - ["::push", "Argument[0]", "Argument[self].Field[tokio_util::time::delay_queue::Stack::head].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::elapsed", "Argument[self].Field[tokio_util::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self].Reference.Field[tokio_util::time::delay_queue::Stack::head]", "ReturnValue", "value", "dfc-generated"] + - ["::pop", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::push", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::elapsed", "Argument[self].Reference.Field[tokio_util::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] - ["::insert", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[0]", "value", "dfc-generated"] - - ["::poll", "Argument[0]", "Argument[self].Field[tokio_util::time::wheel::Wheel::elapsed]", "value", "dfc-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll", "Argument[0]", "Argument[self].Reference.Field[tokio_util::time::wheel::Wheel::elapsed]", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::add_entry", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::time::wheel::level::Level::level]", "value", "dfc-generated"] - - ["::next_expiration", "Argument[self].Field[tokio_util::time::wheel::level::Level::level]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio_util::time::wheel::level::Expiration::level]", "value", "dfc-generated"] - - ["::codec", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::codec_mut", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_mut", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::next_expiration", "Argument[self].Reference.Field[tokio_util::time::wheel::level::Level::level]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio_util::time::wheel::level::Expiration::level]", "value", "dfc-generated"] + - ["::pop_entry_slot", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::remove_entry", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::poll_close", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_flush", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::poll_ready", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::codec", "Argument[self].Reference.Field[tokio_util::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::codec_mut", "Argument[self].Reference.Field[tokio_util::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_mut", "Argument[self].Reference.Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Reference.Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::udp::frame::UdpFramed::socket]", "value", "dfc-generated"] - ["::new", "Argument[1]", "ReturnValue.Field[tokio_util::udp::frame::UdpFramed::codec]", "value", "dfc-generated"] - - ["::read_buffer", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::read_buffer_mut", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::read_buffer", "Argument[self].Reference.Field[tokio_util::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::read_buffer_mut", "Argument[self].Reference.Field[tokio_util::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["tokio::future::block_on::block_on", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::io::join::join", "Argument[0]", "ReturnValue.Field[tokio::io::join::Join::reader]", "value", "dfc-generated"] - ["tokio::io::join::join", "Argument[1]", "ReturnValue.Field[tokio::io::join::Join::writer]", "value", "dfc-generated"] - ["tokio::io::seek::seek", "Argument[0]", "ReturnValue.Field[tokio::io::seek::Seek::seek]", "value", "dfc-generated"] - ["tokio::io::seek::seek", "Argument[1]", "ReturnValue.Field[tokio::io::seek::Seek::pos].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["tokio::io::util::chain::chain", "Argument[0]", "ReturnValue.Field[tokio::io::util::chain::Chain::first]", "value", "dfc-generated"] - ["tokio::io::util::chain::chain", "Argument[1]", "ReturnValue.Field[tokio::io::util::chain::Chain::second]", "value", "dfc-generated"] + - ["tokio::io::util::copy::copy", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio::io::util::copy::copy", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["tokio::io::util::copy_bidirectional::copy_bidirectional", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio::io::util::copy_bidirectional::copy_bidirectional", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["tokio::io::util::copy_bidirectional::copy_bidirectional_with_sizes", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio::io::util::copy_bidirectional::copy_bidirectional_with_sizes", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["tokio::io::util::copy_buf::copy_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio::io::util::copy_buf::copy_buf", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["tokio::io::util::fill_buf::fill_buf", "Argument[0]", "ReturnValue.Field[tokio::io::util::fill_buf::FillBuf::reader].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["tokio::io::util::flush::flush", "Argument[0]", "ReturnValue.Field[tokio::io::util::flush::Flush::a]", "value", "dfc-generated"] - ["tokio::io::util::lines::lines", "Argument[0]", "ReturnValue.Field[tokio::io::util::lines::Lines::reader]", "value", "dfc-generated"] @@ -1481,6 +2235,7 @@ extensions: - ["tokio::io::util::read_exact::read_exact", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_exact::ReadExact::reader]", "value", "dfc-generated"] - ["tokio::io::util::read_line::finish_string_read", "Argument[0].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["tokio::io::util::read_line::finish_string_read", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["tokio::io::util::read_line::finish_string_read", "Argument[1].Field[core::result::Result::Err(0)].Field[alloc::string::FromUtf8Error::bytes]", "Argument[3].Reference.Field[alloc::string::String::vec]", "value", "dfc-generated"] - ["tokio::io::util::read_line::finish_string_read", "Argument[1].Field[core::result::Result::Ok(0)]", "Argument[3].Reference", "value", "dfc-generated"] - ["tokio::io::util::read_line::read_line", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_line::ReadLine::reader]", "value", "dfc-generated"] - ["tokio::io::util::read_line::read_line", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_line::ReadLine::output]", "value", "dfc-generated"] @@ -1492,6 +2247,7 @@ extensions: - ["tokio::io::util::read_until::read_until", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_until::ReadUntil::reader]", "value", "dfc-generated"] - ["tokio::io::util::read_until::read_until", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_until::ReadUntil::delimiter]", "value", "dfc-generated"] - ["tokio::io::util::read_until::read_until", "Argument[2]", "ReturnValue.Field[tokio::io::util::read_until::ReadUntil::buf]", "value", "dfc-generated"] + - ["tokio::io::util::read_until::read_until_internal", "Argument[2]", "Argument[4]", "taint", "df-generated"] - ["tokio::io::util::repeat::repeat", "Argument[0]", "ReturnValue.Field[tokio::io::util::repeat::Repeat::byte]", "value", "dfc-generated"] - ["tokio::io::util::shutdown::shutdown", "Argument[0]", "ReturnValue.Field[tokio::io::util::shutdown::Shutdown::a]", "value", "dfc-generated"] - ["tokio::io::util::split::split", "Argument[0]", "ReturnValue.Field[tokio::io::util::split::Split::reader]", "value", "dfc-generated"] @@ -1515,18 +2271,15 @@ extensions: - ["tokio::net::unix::split::split", "Argument[0]", "ReturnValue.Field[1].Field[tokio::net::unix::split::WriteHalf(0)]", "value", "dfc-generated"] - ["tokio::net::unix::split_owned::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - ["tokio::net::unix::split_owned::reunite", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["tokio::process::imp::build_child", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::runtime::context::runtime::enter_runtime", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["tokio::runtime::context::runtime_mt::exit_runtime", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["tokio::runtime::context::runtime_mt::exit_runtime", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["tokio::runtime::metrics::batch::duration_as_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::runtime::scheduler::block_in_place::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["tokio::runtime::scheduler::block_in_place::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["tokio::runtime::scheduler::multi_thread::worker::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["tokio::runtime::scheduler::multi_thread::worker::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["tokio::signal::unix::signal", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::sync::mpsc::block::offset", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::sync::mpsc::block::start_index", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::task::blocking::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["tokio::task::blocking::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["tokio::task::coop::budget", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["tokio::task::coop::cooperative", "Argument[0]", "ReturnValue.Field[tokio::task::coop::Coop::fut]", "value", "dfc-generated"] - ["tokio::task::coop::unconstrained::unconstrained", "Argument[0]", "ReturnValue.Field[tokio::task::coop::unconstrained::Unconstrained::inner]", "value", "dfc-generated"] @@ -1534,9 +2287,11 @@ extensions: - ["tokio::time::interval::interval", "Argument[0]", "ReturnValue.Field[tokio::time::interval::Interval::period]", "value", "dfc-generated"] - ["tokio::time::interval::interval_at", "Argument[1]", "ReturnValue.Field[tokio::time::interval::Interval::period]", "value", "dfc-generated"] - ["tokio::time::sleep::sleep_until", "Argument[0]", "ReturnValue.Field[tokio::time::sleep::Sleep::entry].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] + - ["tokio::util::as_ref::upgrade", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::util::bit::unpack", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["tokio::util::bit::unpack", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["tokio::util::bit::unpack", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["tokio::util::memchr::memchr", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["tokio::util::trace::blocking_task", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["tokio::util::trace::task", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["tokio::util::typeid::try_transmute", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] @@ -1546,42 +2301,55 @@ extensions: - ["tokio_macros::select_priv_clean_pattern", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["tokio_stream::stream_ext::throttle::throttle", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::throttle::Throttle::duration]", "value", "dfc-generated"] - ["tokio_stream::stream_ext::throttle::throttle", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "value", "dfc-generated"] - - ["tokio_test::task::spawn", "Argument[0]", "ReturnValue.Field[tokio_test::task::Spawn::future].Reference", "value", "dfc-generated"] + - ["tokio_test::block_on", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio_util::io::read_arc::read_exact_arc", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio_util::io::read_buf::read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio_util::io::read_buf::read_buf", "Argument[1]", "ReturnValue", "taint", "df-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel data: + - ["<& as tokio::io::async_read::AsyncRead>::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["::for_each", "Argument[0]", "log-injection", "df-generated"] + - ["::initialize", "Argument[1]", "alloc-layout", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::write", "Argument[0]", "log-injection", "df-generated"] - ["::poll_write", "Argument[1]", "log-injection", "df-generated"] + - ["::write", "Argument[0]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["::poll_read", "Argument[self]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::poll_write", "Argument[1]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["::create_new", "Argument[0]", "path-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - ["::copy_to", "Argument[0]", "log-injection", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - ["::put_slice", "Argument[self]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["::unsync_load", "Argument[self]", "pointer-access", "df-generated"] - - ["::unsync_load", "Argument[self]", "pointer-access", "df-generated"] - - ["::unsync_load", "Argument[self]", "pointer-access", "df-generated"] - - ["::with", "Argument[self]", "pointer-access", "df-generated"] + - ["::with_capacity", "Argument[1]", "alloc-layout", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::try_write", "Argument[0]", "log-injection", "df-generated"] + - ["::try_write", "Argument[0]", "log-injection", "df-generated"] + - ["::try_write", "Argument[0]", "log-injection", "df-generated"] + - ["::try_write", "Argument[0]", "log-injection", "df-generated"] + - ["::try_write", "Argument[0]", "log-injection", "df-generated"] + - ["::try_write", "Argument[0]", "log-injection", "df-generated"] + - ["::try_write", "Argument[0]", "log-injection", "df-generated"] - ["::poll_recv", "Argument[self]", "log-injection", "df-generated"] - - ["::shutdown", "Argument[0]", "pointer-access", "df-generated"] - - ["::pop", "Argument[self]", "pointer-access", "df-generated"] - - ["::push", "Argument[self]", "pointer-access", "df-generated"] - - ["::pop", "Argument[self]", "pointer-access", "df-generated"] - - ["::pop_n", "Argument[self]", "pointer-access", "df-generated"] - - ["::push", "Argument[self]", "pointer-access", "df-generated"] - - ["::push_batch", "Argument[self]", "pointer-access", "df-generated"] - - ["::push", "Argument[self]", "pointer-access", "df-generated"] - - ["::push_batch", "Argument[self]", "pointer-access", "df-generated"] - - ["::set_queue_next", "Argument[0]", "pointer-access", "df-generated"] + - ["::build", "Argument[self]", "alloc-layout", "df-generated"] + - ["::try_io", "Argument[1]", "log-injection", "df-generated"] + - ["::can_spawn_local_on_local_runtime", "Argument[self]", "alloc-layout", "df-generated"] + - ["::can_spawn_local_on_local_runtime", "Argument[self]", "log-injection", "df-generated"] + - ["::new", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new", "Argument[0]", "alloc-layout", "df-generated"] + - ["::set_queue_next", "Argument[0]", "alloc-layout", "df-generated"] + - ["::set_queue_next", "Argument[0]", "log-injection", "df-generated"] - ["::transition_to_terminal", "Argument[0]", "log-injection", "df-generated"] - ["::poll", "Argument[0]", "log-injection", "df-generated"] - ["::poll", "Argument[self]", "log-injection", "df-generated"] @@ -1593,29 +2361,48 @@ extensions: - ["::release", "Argument[0]", "log-injection", "df-generated"] - ["::drop", "Argument[self]", "log-injection", "df-generated"] - ["::add_permits", "Argument[0]", "log-injection", "df-generated"] - - ["::into_inner", "Argument[self]", "pointer-access", "df-generated"] + - ["::drop", "Argument[self]", "log-injection", "df-generated"] + - ["::drop", "Argument[self]", "log-injection", "df-generated"] - ["::drop", "Argument[self]", "log-injection", "df-generated"] - ["::drop", "Argument[self]", "log-injection", "df-generated"] + - ["::drop", "Argument[self]", "log-injection", "df-generated"] - ["::add_permits", "Argument[0]", "log-injection", "df-generated"] - ["::drop", "Argument[self]", "log-injection", "df-generated"] + - ["::abort_all", "Argument[self]", "alloc-layout", "df-generated"] + - ["::join_all", "Argument[self]", "alloc-layout", "df-generated"] + - ["::shutdown", "Argument[self]", "alloc-layout", "df-generated"] + - ["::for_each", "Argument[self]", "alloc-layout", "df-generated"] + - ["::new", "Argument[0]", "alloc-layout", "df-generated"] + - ["::new", "Argument[1]", "alloc-layout", "df-generated"] - ["::insert", "Argument[self]", "log-injection", "df-generated"] - ["::poll_next_many", "Argument[self]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] + - ["::with_capacity", "Argument[0]", "alloc-layout", "df-generated"] + - ["::clone", "Argument[self]", "alloc-layout", "df-generated"] + - ["::build", "Argument[self]", "alloc-layout", "df-generated"] + - ["::build_with_handle", "Argument[self]", "alloc-layout", "df-generated"] - ["::read", "Argument[self]", "log-injection", "df-generated"] - ["::read_error", "Argument[self]", "log-injection", "df-generated"] - ["::wait", "Argument[self]", "log-injection", "df-generated"] - ["::write", "Argument[self]", "log-injection", "df-generated"] - ["::write_error", "Argument[self]", "log-injection", "df-generated"] + - ["::clone", "Argument[self]", "alloc-layout", "df-generated"] - ["::next", "Argument[self]", "log-injection", "df-generated"] - ["::wait", "Argument[self]", "log-injection", "df-generated"] - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["::add_permits", "Argument[0]", "log-injection", "df-generated"] - ["::drop", "Argument[self]", "pointer-access", "df-generated"] - - ["::fmt", "Argument[self]", "pointer-access", "df-generated"] - - ["::poll_next", "Argument[self]", "log-injection", "df-generated"] + - ["::fmt", "Argument[self]", "alloc-layout", "df-generated"] + - ["::fmt", "Argument[self]", "log-injection", "df-generated"] + - ["::deadline", "Argument[0]", "log-injection", "df-generated"] - ["::poll_expired", "Argument[self]", "log-injection", "df-generated"] + - ["::remove", "Argument[0]", "log-injection", "df-generated"] - ["::remove", "Argument[self]", "log-injection", "df-generated"] + - ["::reset", "Argument[0]", "log-injection", "df-generated"] - ["::reset", "Argument[self]", "log-injection", "df-generated"] + - ["::reset_at", "Argument[0]", "log-injection", "df-generated"] - ["::reset_at", "Argument[self]", "log-injection", "df-generated"] + - ["::try_remove", "Argument[0]", "log-injection", "df-generated"] - ["::try_remove", "Argument[self]", "log-injection", "df-generated"] - ["::index", "Argument[0]", "log-injection", "df-generated"] - ["::index_mut", "Argument[0]", "log-injection", "df-generated"] @@ -1633,6 +2420,7 @@ extensions: - ["signal_realtime::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] - ["signal_twice::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] - ["signal_usr1::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - ["tokio::runtime::scheduler::multi_thread::worker::create", "Argument[0]", "alloc-layout", "df-generated"] - ["tokio::signal::unix::signal", "Argument[0]", "log-injection", "df-generated"] - ["tokio::signal::unix::signal_with_handle", "Argument[0]", "log-injection", "df-generated"] - addsTo: @@ -1641,8 +2429,6 @@ extensions: data: - ["::file_name", "ReturnValue", "file", "df-generated"] - ["::path", "ReturnValue", "file", "df-generated"] + - ["::open_receiver", "ReturnValue", "file", "df-generated"] + - ["::open_sender", "ReturnValue", "file", "df-generated"] - ["connect-tcp::connect", "ReturnValue", "remote", "df-generated"] - - ["tokio::runtime::context::runtime_mt::exit_runtime", "ReturnValue", "file", "df-generated"] - - ["tokio::runtime::scheduler::block_in_place::block_in_place", "ReturnValue", "file", "df-generated"] - - ["tokio::runtime::scheduler::multi_thread::worker::block_in_place", "ReturnValue", "file", "df-generated"] - - ["tokio::task::blocking::block_in_place", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index 7e8a551b67b..14244fff454 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -10,45 +10,49 @@ models | 9 | Summary: ::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value | | 10 | Summary: ::pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; value | | 11 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | -| 12 | Summary: ::map_or; Argument[1].ReturnValue; ReturnValue; value | -| 13 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 14 | Summary: ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | -| 15 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | -| 16 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Reference; ReturnValue.Reference; value | -| 17 | Summary: ::into_inner; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | -| 18 | Summary: ::into_inner_unchecked; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | -| 19 | Summary: ::new; Argument[0].Reference; ReturnValue; value | -| 20 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 21 | Summary: ::new_unchecked; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 22 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 23 | Summary: core::ptr::read; Argument[0].Reference; ReturnValue; value | -| 24 | Summary: core::ptr::write; Argument[1]; Argument[0].Reference; value | +| 12 | Summary: ::clone; Argument[self]; ReturnValue; value | +| 13 | Summary: ::map_or; Argument[1].ReturnValue; ReturnValue; value | +| 14 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 15 | Summary: ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | +| 16 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 17 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Reference; ReturnValue.Reference; value | +| 18 | Summary: ::into_inner; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | +| 19 | Summary: ::into_inner_unchecked; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | +| 20 | Summary: ::new; Argument[0].Reference; ReturnValue; value | +| 21 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 22 | Summary: ::new_unchecked; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 23 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 24 | Summary: core::ptr::read; Argument[0].Reference; ReturnValue; value | +| 25 | Summary: core::ptr::write; Argument[1]; Argument[0].Reference; value | edges | main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:10 | a [Some] | provenance | | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | | main.rs:12:13:12:28 | Some(...) [Some] | main.rs:12:9:12:9 | a [Some] | provenance | | | main.rs:12:18:12:27 | source(...) | main.rs:12:13:12:28 | Some(...) [Some] | provenance | | -| main.rs:13:10:13:10 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:13 | +| main.rs:13:10:13:10 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:14 | | main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:10 | b [Some] | provenance | | | main.rs:14:13:14:13 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | MaD:2 | | main.rs:14:13:14:21 | a.clone() [Some] | main.rs:14:9:14:9 | b [Some] | provenance | | -| main.rs:15:10:15:10 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:13 | +| main.rs:15:10:15:10 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:14 | | main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:10 | a [Ok] | provenance | | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:13 | a [Ok] | provenance | | | main.rs:19:31:19:44 | Ok(...) [Ok] | main.rs:19:9:19:9 | a [Ok] | provenance | | | main.rs:19:34:19:43 | source(...) | main.rs:19:31:19:44 | Ok(...) [Ok] | provenance | | -| main.rs:20:10:20:10 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:22 | +| main.rs:20:10:20:10 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:23 | | main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:10 | b [Ok] | provenance | | | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | MaD:2 | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | -| main.rs:22:10:22:10 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:22 | +| main.rs:22:10:22:10 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:23 | | main.rs:26:9:26:9 | a | main.rs:27:10:27:10 | a | provenance | | | main.rs:26:9:26:9 | a | main.rs:28:13:28:13 | a | provenance | | | main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | a | provenance | | | main.rs:28:9:28:9 | b | main.rs:29:10:29:10 | b | provenance | | +| main.rs:28:9:28:9 | b [&ref] | main.rs:29:10:29:10 | b | provenance | | | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:2 | | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:11 | +| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() [&ref] | provenance | MaD:12 | | main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | +| main.rs:28:13:28:21 | a.clone() [&ref] | main.rs:28:9:28:9 | b [&ref] | provenance | | | main.rs:43:18:43:22 | SelfParam [&ref, Wrapper] | main.rs:44:26:44:31 | self.n | provenance | | | main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | provenance | | | main.rs:44:26:44:31 | self.n | main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | provenance | | @@ -71,19 +75,19 @@ edges | main.rs:66:22:66:31 | source(...) | main.rs:66:17:66:32 | Some(...) [Some] | provenance | | | main.rs:67:13:67:13 | z [Some, tuple.1] | main.rs:68:15:68:15 | z [Some, tuple.1] | provenance | | | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | main.rs:67:13:67:13 | z [Some, tuple.1] | provenance | | -| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:14 | +| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:15 | | main.rs:68:15:68:15 | z [Some, tuple.1] | main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | provenance | | | main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | main.rs:69:18:69:23 | TuplePat [tuple.1] | provenance | | | main.rs:69:18:69:23 | TuplePat [tuple.1] | main.rs:69:22:69:22 | m | provenance | | | main.rs:69:22:69:22 | m | main.rs:71:22:71:22 | m | provenance | | | main.rs:79:13:79:13 | b | main.rs:80:14:80:14 | b | provenance | | | main.rs:79:17:79:47 | a.map_or(...) | main.rs:79:13:79:13 | b | provenance | | -| main.rs:79:33:79:46 | ... + ... | main.rs:79:17:79:47 | a.map_or(...) | provenance | MaD:12 | +| main.rs:79:33:79:46 | ... + ... | main.rs:79:17:79:47 | a.map_or(...) | provenance | MaD:13 | | main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:6 | | main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:7 | | main.rs:92:29:92:29 | [post] y [&ref] | main.rs:93:33:93:33 | y [&ref] | provenance | | -| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:24 | -| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:23 | +| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:25 | +| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:24 | | main.rs:108:13:108:17 | mut i | main.rs:109:34:109:34 | i | provenance | | | main.rs:108:13:108:17 | mut i | main.rs:110:33:110:33 | i | provenance | | | main.rs:108:13:108:17 | mut i | main.rs:111:47:111:47 | i | provenance | | @@ -96,8 +100,8 @@ edges | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | main.rs:115:31:115:34 | pin1 [Pin, &ref] | provenance | | | main.rs:109:24:109:35 | ...::new(...) | main.rs:109:13:109:20 | mut pin1 | provenance | | | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | provenance | | -| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) | provenance | MaD:19 | -| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:20 | +| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) | provenance | MaD:20 | +| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:21 | | main.rs:109:34:109:34 | i | main.rs:109:33:109:34 | &i [&ref] | provenance | | | main.rs:110:13:110:20 | mut pin2 [Pin, Box(0)] | main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | provenance | | | main.rs:110:24:110:34 | ...::pin(...) [Pin, Box(0)] | main.rs:110:13:110:20 | mut pin2 [Pin, Box(0)] | provenance | | @@ -107,40 +111,40 @@ edges | main.rs:111:38:111:48 | ...::new(...) [Box(0)] | main.rs:111:24:111:49 | ...::into_pin(...) [Pin, Box(0)] | provenance | MaD:8 | | main.rs:111:47:111:47 | i | main.rs:111:38:111:48 | ...::new(...) [Box(0)] | provenance | MaD:9 | | main.rs:112:13:112:20 | mut pin4 [Pin, &ref] | main.rs:118:15:118:18 | pin4 [Pin, &ref] | provenance | | -| main.rs:112:24:112:27 | &mut pinned [&ref] | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | provenance | MaD:21 | +| main.rs:112:24:112:27 | &mut pinned [&ref] | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | provenance | MaD:22 | | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | main.rs:112:13:112:20 | mut pin4 [Pin, &ref] | provenance | | | main.rs:112:24:112:27 | mut pinned | main.rs:112:24:112:27 | pinned | provenance | | | main.rs:112:24:112:27 | pinned | main.rs:112:24:112:27 | &mut pinned [&ref] | provenance | | -| main.rs:114:15:114:18 | pin1 | main.rs:114:14:114:18 | * ... | provenance | MaD:15 | | main.rs:114:15:114:18 | pin1 | main.rs:114:14:114:18 | * ... | provenance | MaD:16 | -| main.rs:114:15:114:18 | pin1 [Pin, &ref] | main.rs:114:14:114:18 | * ... | provenance | MaD:16 | +| main.rs:114:15:114:18 | pin1 | main.rs:114:14:114:18 | * ... | provenance | MaD:17 | +| main.rs:114:15:114:18 | pin1 [Pin, &ref] | main.rs:114:14:114:18 | * ... | provenance | MaD:17 | | main.rs:115:15:115:35 | ...::into_inner(...) | main.rs:115:14:115:35 | * ... | provenance | MaD:1 | | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | main.rs:115:14:115:35 | * ... | provenance | MaD:1 | -| main.rs:115:31:115:34 | pin1 | main.rs:115:15:115:35 | ...::into_inner(...) | provenance | MaD:17 | -| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:17 | -| main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | main.rs:116:14:116:18 | * ... | provenance | MaD:15 | -| main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | main.rs:117:14:117:18 | * ... | provenance | MaD:15 | -| main.rs:118:15:118:18 | pin4 [Pin, &ref] | main.rs:118:14:118:18 | * ... | provenance | MaD:16 | +| main.rs:115:31:115:34 | pin1 | main.rs:115:15:115:35 | ...::into_inner(...) | provenance | MaD:18 | +| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:18 | +| main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | main.rs:116:14:116:18 | * ... | provenance | MaD:16 | +| main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | main.rs:117:14:117:18 | * ... | provenance | MaD:16 | +| main.rs:118:15:118:18 | pin4 [Pin, &ref] | main.rs:118:14:118:18 | * ... | provenance | MaD:17 | | main.rs:122:13:122:18 | mut ms [MyStruct] | main.rs:123:34:123:35 | ms [MyStruct] | provenance | | | main.rs:122:13:122:18 | mut ms [MyStruct] | main.rs:127:14:127:15 | ms [MyStruct] | provenance | | | main.rs:122:22:122:49 | MyStruct {...} [MyStruct] | main.rs:122:13:122:18 | mut ms [MyStruct] | provenance | | | main.rs:122:38:122:47 | source(...) | main.rs:122:22:122:49 | MyStruct {...} [MyStruct] | provenance | | | main.rs:123:13:123:20 | mut pin1 [Pin, &ref, MyStruct] | main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | provenance | | | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | main.rs:123:13:123:20 | mut pin1 [Pin, &ref, MyStruct] | provenance | | -| main.rs:123:33:123:35 | &ms [&ref, MyStruct] | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | provenance | MaD:20 | +| main.rs:123:33:123:35 | &ms [&ref, MyStruct] | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | provenance | MaD:21 | | main.rs:123:34:123:35 | ms [MyStruct] | main.rs:123:33:123:35 | &ms [&ref, MyStruct] | provenance | | | main.rs:127:14:127:15 | ms [MyStruct] | main.rs:127:14:127:19 | ms.val | provenance | | | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | main.rs:129:14:129:38 | ... .val | provenance | | -| main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | provenance | MaD:17 | +| main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | provenance | MaD:18 | | main.rs:136:13:136:18 | mut ms [MyStruct] | main.rs:137:44:137:45 | ms [MyStruct] | provenance | | | main.rs:136:22:136:49 | MyStruct {...} [MyStruct] | main.rs:136:13:136:18 | mut ms [MyStruct] | provenance | | | main.rs:136:38:136:47 | source(...) | main.rs:136:22:136:49 | MyStruct {...} [MyStruct] | provenance | | | main.rs:137:13:137:20 | mut pin5 [Pin, &ref, MyStruct] | main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | provenance | | | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | main.rs:137:13:137:20 | mut pin5 [Pin, &ref, MyStruct] | provenance | | -| main.rs:137:43:137:45 | &ms [&ref, MyStruct] | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | provenance | MaD:21 | +| main.rs:137:43:137:45 | &ms [&ref, MyStruct] | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | provenance | MaD:22 | | main.rs:137:44:137:45 | ms [MyStruct] | main.rs:137:43:137:45 | &ms [&ref, MyStruct] | provenance | | | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | main.rs:139:14:139:48 | ... .val | provenance | | -| main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | provenance | MaD:18 | +| main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | provenance | MaD:19 | | main.rs:153:9:153:9 | a | main.rs:155:13:155:13 | a | provenance | | | main.rs:153:13:153:22 | source(...) | main.rs:153:9:153:9 | a | provenance | | | main.rs:154:9:154:9 | b | main.rs:155:19:155:19 | b | provenance | | @@ -193,8 +197,10 @@ nodes | main.rs:26:13:26:22 | source(...) | semmle.label | source(...) | | main.rs:27:10:27:10 | a | semmle.label | a | | main.rs:28:9:28:9 | b | semmle.label | b | +| main.rs:28:9:28:9 | b [&ref] | semmle.label | b [&ref] | | main.rs:28:13:28:13 | a | semmle.label | a | | main.rs:28:13:28:21 | a.clone() | semmle.label | a.clone() | +| main.rs:28:13:28:21 | a.clone() [&ref] | semmle.label | a.clone() [&ref] | | main.rs:29:10:29:10 | b | semmle.label | b | | main.rs:43:18:43:22 | SelfParam [&ref, Wrapper] | semmle.label | SelfParam [&ref, Wrapper] | | main.rs:43:33:45:9 | { ... } [Wrapper] | semmle.label | { ... } [Wrapper] | diff --git a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected index 1314393fd0a..f01253fb493 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected @@ -13,38 +13,37 @@ models | 12 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | | 13 | Summary: <_ as mysql::conn::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Field[core::result::Result::Ok(0)]; value | | 14 | Summary: <_ as mysql_async::queryable::Queryable>::query_fold; Argument[2].ReturnValue; ReturnValue.Future.Field[core::result::Result::Ok(0)]; value | -| 15 | Summary: ::add; Argument[0]; ReturnValue; taint | -| 16 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 17 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 15 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 16 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | edges | test.rs:18:13:18:14 | v1 | test.rs:19:14:19:15 | v1 | provenance | | -| test.rs:18:24:18:33 | row.get(...) [Some] | test.rs:18:24:18:42 | ... .unwrap() | provenance | MaD:16 | +| test.rs:18:24:18:33 | row.get(...) [Some] | test.rs:18:24:18:42 | ... .unwrap() | provenance | MaD:15 | | test.rs:18:24:18:42 | ... .unwrap() | test.rs:18:13:18:14 | v1 | provenance | | | test.rs:18:28:18:30 | get | test.rs:18:24:18:33 | row.get(...) [Some] | provenance | Src:MaD:7 | | test.rs:21:13:21:14 | v2 | test.rs:22:14:22:15 | v2 | provenance | | -| test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | test.rs:21:24:21:46 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:21:24:21:46 | ... .unwrap() [Ok] | test.rs:21:24:21:55 | ... .unwrap() | provenance | MaD:17 | +| test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | test.rs:21:24:21:46 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:21:24:21:46 | ... .unwrap() [Ok] | test.rs:21:24:21:55 | ... .unwrap() | provenance | MaD:16 | | test.rs:21:24:21:55 | ... .unwrap() | test.rs:21:13:21:14 | v2 | provenance | | | test.rs:21:28:21:34 | get_opt | test.rs:21:24:21:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:8 | | test.rs:24:13:24:14 | v3 | test.rs:25:14:25:15 | v3 | provenance | | -| test.rs:24:24:24:34 | row.take(...) [Some] | test.rs:24:24:24:43 | ... .unwrap() | provenance | MaD:16 | +| test.rs:24:24:24:34 | row.take(...) [Some] | test.rs:24:24:24:43 | ... .unwrap() | provenance | MaD:15 | | test.rs:24:24:24:43 | ... .unwrap() | test.rs:24:13:24:14 | v3 | provenance | | | test.rs:24:28:24:31 | take | test.rs:24:24:24:34 | row.take(...) [Some] | provenance | Src:MaD:9 | | test.rs:27:13:27:14 | v4 | test.rs:28:14:28:15 | v4 | provenance | | -| test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | test.rs:27:24:27:47 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:27:24:27:47 | ... .unwrap() [Ok] | test.rs:27:24:27:56 | ... .unwrap() | provenance | MaD:17 | +| test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | test.rs:27:24:27:47 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:27:24:27:47 | ... .unwrap() [Ok] | test.rs:27:24:27:56 | ... .unwrap() | provenance | MaD:16 | | test.rs:27:24:27:56 | ... .unwrap() | test.rs:27:13:27:14 | v4 | provenance | | | test.rs:27:28:27:35 | take_opt | test.rs:27:24:27:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | | test.rs:37:13:37:14 | v6 | test.rs:38:14:38:15 | v6 | provenance | | | test.rs:37:23:37:63 | conn.query_first(...) [Ok, Some] | test.rs:37:23:37:64 | TryExpr [Some] | provenance | | -| test.rs:37:23:37:64 | TryExpr [Some] | test.rs:37:23:37:73 | ... .unwrap() | provenance | MaD:16 | +| test.rs:37:23:37:64 | TryExpr [Some] | test.rs:37:23:37:73 | ... .unwrap() | provenance | MaD:15 | | test.rs:37:23:37:73 | ... .unwrap() | test.rs:37:13:37:14 | v6 | provenance | | | test.rs:37:28:37:38 | query_first | test.rs:37:23:37:63 | conn.query_first(...) [Ok, Some] | provenance | Src:MaD:1 | | test.rs:40:13:40:18 | mut t1 [element] | test.rs:42:20:42:21 | t1 [element] | provenance | | | test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | test.rs:40:22:40:72 | TryExpr [element] | provenance | | | test.rs:40:22:40:72 | TryExpr [element] | test.rs:40:13:40:18 | mut t1 [element] | provenance | | | test.rs:40:27:40:35 | exec_iter | test.rs:40:22:40:71 | conn.exec_iter(...) [Ok, element] | provenance | Src:MaD:6 | -| test.rs:41:14:41:61 | ... .get(...) [Some] | test.rs:41:14:41:70 | ... .unwrap() | provenance | MaD:16 | +| test.rs:41:14:41:61 | ... .get(...) [Some] | test.rs:41:14:41:70 | ... .unwrap() | provenance | MaD:15 | | test.rs:41:42:41:44 | get | test.rs:41:14:41:61 | ... .get(...) [Some] | provenance | Src:MaD:7 | | test.rs:42:13:42:15 | row | test.rs:44:22:44:22 | v | provenance | | | test.rs:42:20:42:21 | t1 [element] | test.rs:42:13:42:15 | row | provenance | | @@ -64,7 +63,6 @@ edges | test.rs:66:13:66:21 | ... + ... | test.rs:64:86:67:9 | { ... } | provenance | | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:11 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:12 | -| test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:15 | | test.rs:70:22:70:31 | query_fold | test.rs:70:83:70:105 | ...: ... | provenance | Src:MaD:2 | | test.rs:70:83:70:105 | ...: ... | test.rs:71:17:71:18 | id | provenance | | | test.rs:70:83:70:105 | ...: ... | test.rs:72:17:72:20 | name | provenance | | @@ -73,21 +71,21 @@ edges | test.rs:72:17:72:20 | name | test.rs:75:18:75:21 | name | provenance | | | test.rs:73:17:73:19 | age | test.rs:76:18:76:20 | age | provenance | | | test.rs:105:13:105:14 | v1 | test.rs:106:14:106:15 | v1 | provenance | | -| test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:16 | +| test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:15 | | test.rs:105:24:105:42 | ... .unwrap() | test.rs:105:13:105:14 | v1 | provenance | | | test.rs:105:28:105:30 | get | test.rs:105:24:105:33 | row.get(...) [Some] | provenance | Src:MaD:7 | | test.rs:108:13:108:14 | v2 | test.rs:109:14:109:15 | v2 | provenance | | -| test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | test.rs:108:24:108:46 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:108:24:108:46 | ... .unwrap() [Ok] | test.rs:108:24:108:55 | ... .unwrap() | provenance | MaD:17 | +| test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | test.rs:108:24:108:46 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:108:24:108:46 | ... .unwrap() [Ok] | test.rs:108:24:108:55 | ... .unwrap() | provenance | MaD:16 | | test.rs:108:24:108:55 | ... .unwrap() | test.rs:108:13:108:14 | v2 | provenance | | | test.rs:108:28:108:34 | get_opt | test.rs:108:24:108:37 | row.get_opt(...) [Some, Ok] | provenance | Src:MaD:8 | | test.rs:111:13:111:14 | v3 | test.rs:112:14:112:15 | v3 | provenance | | -| test.rs:111:24:111:34 | row.take(...) [Some] | test.rs:111:24:111:43 | ... .unwrap() | provenance | MaD:16 | +| test.rs:111:24:111:34 | row.take(...) [Some] | test.rs:111:24:111:43 | ... .unwrap() | provenance | MaD:15 | | test.rs:111:24:111:43 | ... .unwrap() | test.rs:111:13:111:14 | v3 | provenance | | | test.rs:111:28:111:31 | take | test.rs:111:24:111:34 | row.take(...) [Some] | provenance | Src:MaD:9 | | test.rs:114:13:114:14 | v4 | test.rs:115:14:115:15 | v4 | provenance | | -| test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | test.rs:114:24:114:47 | ... .unwrap() [Ok] | provenance | MaD:16 | -| test.rs:114:24:114:47 | ... .unwrap() [Ok] | test.rs:114:24:114:56 | ... .unwrap() | provenance | MaD:17 | +| test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | test.rs:114:24:114:47 | ... .unwrap() [Ok] | provenance | MaD:15 | +| test.rs:114:24:114:47 | ... .unwrap() [Ok] | test.rs:114:24:114:56 | ... .unwrap() | provenance | MaD:16 | | test.rs:114:24:114:56 | ... .unwrap() | test.rs:114:13:114:14 | v4 | provenance | | | test.rs:114:28:114:35 | take_opt | test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | | test.rs:135:22:135:30 | query_map | test.rs:137:14:137:24 | ...: i64 | provenance | Src:MaD:5 | @@ -107,7 +105,6 @@ edges | test.rs:153:13:153:21 | ... + ... | test.rs:151:86:154:9 | { ... } | provenance | | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:11 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:12 | -| test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:15 | | test.rs:157:22:157:31 | query_fold | test.rs:157:83:157:105 | ...: ... | provenance | Src:MaD:4 | | test.rs:157:83:157:105 | ...: ... | test.rs:158:17:158:18 | id | provenance | | | test.rs:157:83:157:105 | ...: ... | test.rs:159:17:159:20 | name | provenance | | diff --git a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected index c7413e3c28f..746226c411e 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected @@ -40,9 +40,10 @@ models | 39 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | | 40 | Summary: ::into_string; Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]; ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]; value | | 41 | Summary: ::from; Argument[0]; ReturnValue.Field[std::path::PathBuf::inner]; value | -| 42 | Summary: ::as_path; Argument[self].Reference; ReturnValue.Reference; value | -| 43 | Summary: ::into_boxed_path; Argument[self]; ReturnValue.Field[alloc::boxed::Box(0)]; taint | -| 44 | Summary: ::into_os_string; Argument[self].Field[std::path::PathBuf::inner]; ReturnValue; value | +| 42 | Summary: ::deref; Argument[self].Reference.Field[std::path::PathBuf::inner]; ReturnValue.Reference; value | +| 43 | Summary: ::as_path; Argument[self].Reference; ReturnValue.Reference; value | +| 44 | Summary: ::into_boxed_path; Argument[self]; ReturnValue.Field[alloc::boxed::Box(0)]; taint | +| 45 | Summary: ::into_os_string; Argument[self].Field[std::path::PathBuf::inner]; ReturnValue; value | edges | test.rs:12:13:12:18 | buffer | test.rs:13:14:13:19 | buffer | provenance | | | test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | Src:MaD:11 | @@ -72,23 +73,30 @@ edges | test.rs:30:22:30:25 | path | test.rs:30:20:30:27 | e.path() | provenance | Src:MaD:4 MaD:4 | | test.rs:31:14:31:17 | path | test.rs:31:14:31:25 | path.clone() | provenance | MaD:18 | | test.rs:32:14:32:17 | path | test.rs:32:14:32:25 | path.clone() | provenance | MaD:18 | -| test.rs:32:14:32:25 | path.clone() | test.rs:32:14:32:35 | ... .as_path() | provenance | MaD:42 | +| test.rs:32:14:32:25 | path.clone() | test.rs:32:14:32:35 | ... .as_path() | provenance | MaD:43 | | test.rs:33:14:33:17 | path | test.rs:33:14:33:25 | path.clone() | provenance | MaD:18 | -| test.rs:33:14:33:25 | path.clone() | test.rs:33:14:33:42 | ... .into_os_string() | provenance | MaD:44 | +| test.rs:33:14:33:25 | path.clone() | test.rs:33:14:33:42 | ... .into_os_string() | provenance | MaD:45 | | test.rs:34:39:34:42 | path | test.rs:34:39:34:50 | path.clone() | provenance | MaD:18 | -| test.rs:34:39:34:50 | path.clone() | test.rs:34:39:34:68 | ... .into_boxed_path() [Box(0)] | provenance | MaD:43 | +| test.rs:34:39:34:50 | path.clone() | test.rs:34:39:34:68 | ... .into_boxed_path() [Box(0)] | provenance | MaD:44 | | test.rs:34:39:34:68 | ... .into_boxed_path() [Box(0)] | test.rs:34:14:34:69 | ...::from(...) | provenance | MaD:41 | | test.rs:35:14:35:17 | path | test.rs:35:14:35:25 | path.clone() | provenance | MaD:18 | | test.rs:35:14:35:25 | path.clone() | test.rs:35:14:35:37 | ... .as_os_str() | provenance | MaD:19 | +| test.rs:35:14:35:25 | path.clone() | test.rs:35:14:35:37 | ... .as_os_str() | provenance | MaD:42 | | test.rs:36:14:36:17 | path | test.rs:36:14:36:25 | path.clone() | provenance | MaD:18 | | test.rs:36:14:36:25 | path.clone() | test.rs:36:14:36:41 | ... .as_mut_os_str() | provenance | MaD:19 | +| test.rs:36:14:36:25 | path.clone() | test.rs:36:14:36:41 | ... .as_mut_os_str() | provenance | MaD:42 | | test.rs:37:14:37:17 | path | test.rs:37:14:37:26 | path.to_str() | provenance | MaD:19 | +| test.rs:37:14:37:17 | path | test.rs:37:14:37:26 | path.to_str() | provenance | MaD:42 | | test.rs:38:14:38:17 | path | test.rs:38:14:38:31 | path.to_path_buf() | provenance | MaD:19 | +| test.rs:38:14:38:17 | path | test.rs:38:14:38:31 | path.to_path_buf() | provenance | MaD:42 | | test.rs:39:14:39:17 | path | test.rs:39:14:39:29 | path.file_name() [Some, &ref] | provenance | MaD:19 | +| test.rs:39:14:39:17 | path | test.rs:39:14:39:29 | path.file_name() [Some, &ref] | provenance | MaD:42 | | test.rs:39:14:39:29 | path.file_name() [Some, &ref] | test.rs:39:14:39:38 | ... .unwrap() | provenance | MaD:38 | | test.rs:40:14:40:17 | path | test.rs:40:14:40:29 | path.extension() [Some, &ref] | provenance | MaD:19 | +| test.rs:40:14:40:17 | path | test.rs:40:14:40:29 | path.extension() [Some, &ref] | provenance | MaD:42 | | test.rs:40:14:40:29 | path.extension() [Some, &ref] | test.rs:40:14:40:38 | ... .unwrap() | provenance | MaD:38 | | test.rs:41:14:41:17 | path | test.rs:41:14:41:32 | path.canonicalize() [Ok] | provenance | MaD:19 | +| test.rs:41:14:41:17 | path | test.rs:41:14:41:32 | path.canonicalize() [Ok] | provenance | MaD:42 | | test.rs:41:14:41:32 | path.canonicalize() [Ok] | test.rs:41:14:41:41 | ... .unwrap() | provenance | MaD:39 | | test.rs:44:13:44:21 | file_name | test.rs:45:14:45:22 | file_name | provenance | | | test.rs:44:13:44:21 | file_name | test.rs:46:14:46:22 | file_name | provenance | | diff --git a/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected b/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected index 86f7d8f0bc0..3c95a70e2d8 100644 --- a/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected +++ b/rust/ql/test/library-tests/dataflow/strings/inline-taint-flow.expected @@ -3,12 +3,11 @@ models | 2 | Summary: <_ as core::convert::From>::from; Argument[0]; ReturnValue; taint | | 3 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | | 4 | Summary: ::from; Argument[0].Field[alloc::borrow::Cow::Owned(0)]; ReturnValue; value | -| 5 | Summary: ::from; Argument[0].Reference; ReturnValue; value | -| 6 | Summary: ::add; Argument[0].Reference; ReturnValue; taint | -| 7 | Summary: ::add; Argument[self]; ReturnValue; taint | -| 8 | Summary: ::as_str; Argument[self].Reference; ReturnValue.Reference; taint | -| 9 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | -| 10 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 5 | Summary: ::add; Argument[0].Reference; ReturnValue; taint | +| 6 | Summary: ::add; Argument[self]; ReturnValue; taint | +| 7 | Summary: ::as_str; Argument[self].Reference; ReturnValue.Reference; taint | +| 8 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 9 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | edges | main.rs:26:9:26:9 | s | main.rs:27:19:27:19 | s | provenance | | | main.rs:26:9:26:9 | s | main.rs:27:19:27:25 | s[...] | provenance | | @@ -20,11 +19,11 @@ edges | main.rs:32:9:32:10 | s1 | main.rs:35:14:35:15 | s1 | provenance | | | main.rs:32:14:32:23 | source(...) | main.rs:32:9:32:10 | s1 | provenance | | | main.rs:35:9:35:10 | s4 | main.rs:38:10:38:11 | s4 | provenance | | -| main.rs:35:14:35:15 | s1 | main.rs:35:14:35:20 | ... + ... | provenance | MaD:7 | +| main.rs:35:14:35:15 | s1 | main.rs:35:14:35:20 | ... + ... | provenance | MaD:6 | | main.rs:35:14:35:20 | ... + ... | main.rs:35:9:35:10 | s4 | provenance | | | main.rs:43:9:43:10 | s1 | main.rs:46:34:46:35 | s1 | provenance | | | main.rs:43:14:43:23 | source(...) | main.rs:43:9:43:10 | s1 | provenance | | -| main.rs:46:33:46:35 | &s1 [&ref] | main.rs:46:10:46:35 | ... + ... | provenance | MaD:6 | +| main.rs:46:33:46:35 | &s1 [&ref] | main.rs:46:10:46:35 | ... + ... | provenance | MaD:5 | | main.rs:46:34:46:35 | s1 | main.rs:46:33:46:35 | &s1 [&ref] | provenance | | | main.rs:51:9:51:10 | s1 | main.rs:52:27:52:28 | s1 | provenance | | | main.rs:51:14:51:29 | source_slice(...) | main.rs:51:9:51:10 | s1 | provenance | | @@ -32,7 +31,6 @@ edges | main.rs:52:14:52:29 | ...::from(...) | main.rs:52:9:52:10 | s2 | provenance | | | main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:2 | | main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:4 | -| main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:5 | | main.rs:57:9:57:10 | s1 | main.rs:58:14:58:15 | s1 | provenance | | | main.rs:57:14:57:29 | source_slice(...) | main.rs:57:9:57:10 | s1 | provenance | | | main.rs:58:9:58:10 | s2 | main.rs:59:10:59:11 | s2 | provenance | | @@ -40,32 +38,32 @@ edges | main.rs:58:14:58:27 | s1.to_string() | main.rs:58:9:58:10 | s2 | provenance | | | main.rs:63:9:63:9 | s | main.rs:64:16:64:16 | s | provenance | | | main.rs:63:13:63:22 | source(...) | main.rs:63:9:63:9 | s | provenance | | -| main.rs:64:16:64:16 | s | main.rs:64:16:64:25 | s.as_str() | provenance | MaD:8 | +| main.rs:64:16:64:16 | s | main.rs:64:16:64:25 | s.as_str() | provenance | MaD:7 | | main.rs:68:9:68:9 | s | main.rs:70:34:70:61 | MacroExpr | provenance | | | main.rs:68:9:68:9 | s | main.rs:73:34:73:59 | MacroExpr | provenance | | | main.rs:68:13:68:22 | source(...) | main.rs:68:9:68:9 | s | provenance | | | main.rs:70:9:70:18 | formatted1 | main.rs:71:10:71:19 | formatted1 | provenance | | | main.rs:70:22:70:62 | ...::format(...) | main.rs:70:9:70:18 | formatted1 | provenance | | -| main.rs:70:34:70:61 | MacroExpr | main.rs:70:22:70:62 | ...::format(...) | provenance | MaD:9 | +| main.rs:70:34:70:61 | MacroExpr | main.rs:70:22:70:62 | ...::format(...) | provenance | MaD:8 | | main.rs:73:9:73:18 | formatted2 | main.rs:74:10:74:19 | formatted2 | provenance | | | main.rs:73:22:73:60 | ...::format(...) | main.rs:73:9:73:18 | formatted2 | provenance | | -| main.rs:73:34:73:59 | MacroExpr | main.rs:73:22:73:60 | ...::format(...) | provenance | MaD:9 | +| main.rs:73:34:73:59 | MacroExpr | main.rs:73:22:73:60 | ...::format(...) | provenance | MaD:8 | | main.rs:76:9:76:13 | width | main.rs:77:34:77:74 | MacroExpr | provenance | | | main.rs:76:17:76:32 | source_usize(...) | main.rs:76:9:76:13 | width | provenance | | | main.rs:77:9:77:18 | formatted3 | main.rs:78:10:78:19 | formatted3 | provenance | | | main.rs:77:22:77:75 | ...::format(...) | main.rs:77:9:77:18 | formatted3 | provenance | | -| main.rs:77:34:77:74 | MacroExpr | main.rs:77:22:77:75 | ...::format(...) | provenance | MaD:9 | +| main.rs:77:34:77:74 | MacroExpr | main.rs:77:22:77:75 | ...::format(...) | provenance | MaD:8 | | main.rs:82:9:82:10 | s1 | main.rs:86:18:86:25 | MacroExpr | provenance | | | main.rs:82:9:82:10 | s1 | main.rs:87:18:87:32 | MacroExpr | provenance | | | main.rs:82:14:82:23 | source(...) | main.rs:82:9:82:10 | s1 | provenance | | | main.rs:86:18:86:25 | ...::format(...) | main.rs:86:18:86:25 | { ... } | provenance | | | main.rs:86:18:86:25 | ...::must_use(...) | main.rs:86:10:86:26 | MacroExpr | provenance | | -| main.rs:86:18:86:25 | MacroExpr | main.rs:86:18:86:25 | ...::format(...) | provenance | MaD:9 | -| main.rs:86:18:86:25 | { ... } | main.rs:86:18:86:25 | ...::must_use(...) | provenance | MaD:10 | +| main.rs:86:18:86:25 | MacroExpr | main.rs:86:18:86:25 | ...::format(...) | provenance | MaD:8 | +| main.rs:86:18:86:25 | { ... } | main.rs:86:18:86:25 | ...::must_use(...) | provenance | MaD:9 | | main.rs:87:18:87:32 | ...::format(...) | main.rs:87:18:87:32 | { ... } | provenance | | | main.rs:87:18:87:32 | ...::must_use(...) | main.rs:87:10:87:33 | MacroExpr | provenance | | -| main.rs:87:18:87:32 | MacroExpr | main.rs:87:18:87:32 | ...::format(...) | provenance | MaD:9 | -| main.rs:87:18:87:32 | { ... } | main.rs:87:18:87:32 | ...::must_use(...) | provenance | MaD:10 | +| main.rs:87:18:87:32 | MacroExpr | main.rs:87:18:87:32 | ...::format(...) | provenance | MaD:8 | +| main.rs:87:18:87:32 | { ... } | main.rs:87:18:87:32 | ...::must_use(...) | provenance | MaD:9 | nodes | main.rs:26:9:26:9 | s | semmle.label | s | | main.rs:26:13:26:22 | source(...) | semmle.label | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected b/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected index 49d8e4abb19..53a6a4e01a0 100644 --- a/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected +++ b/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected @@ -5,7 +5,6 @@ models | 4 | Summary: <_ as core::ops::arith::AddAssign>::add_assign; Argument[self].Reference; Argument[self].Reference; taint | | 5 | Summary: <_ as core::ops::arith::Neg>::neg; Argument[self]; ReturnValue; taint | | 6 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | -| 7 | Summary: ::neg; Argument[self]; ReturnValue; taint | edges | main.rs:12:9:12:9 | a | main.rs:13:10:13:10 | a | provenance | | | main.rs:12:13:12:22 | source(...) | main.rs:12:9:12:9 | a | provenance | | @@ -18,7 +17,6 @@ edges | main.rs:25:9:25:9 | a | main.rs:26:11:26:11 | a | provenance | | | main.rs:25:13:25:22 | source(...) | main.rs:25:9:25:9 | a | provenance | | | main.rs:26:11:26:11 | a | main.rs:26:10:26:11 | - ... | provenance | MaD:5 | -| main.rs:26:11:26:11 | a | main.rs:26:10:26:11 | - ... | provenance | MaD:7 | | main.rs:30:9:30:9 | a | main.rs:31:9:31:9 | b | provenance | | | main.rs:30:13:30:22 | source(...) | main.rs:30:9:30:9 | a | provenance | | | main.rs:31:9:31:9 | b | main.rs:32:10:32:17 | b as i64 | provenance | | diff --git a/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected b/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected index 5f74cb457c9..a47e37ae2e7 100644 --- a/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected +++ b/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected @@ -21,7 +21,6 @@ edges | src/main.rs:9:21:9:44 | ...::from(...) | src/main.rs:9:9:9:17 | file_path | provenance | | | src/main.rs:9:35:9:43 | file_name | src/main.rs:9:21:9:44 | ...::from(...) | provenance | MaD:9 | | src/main.rs:9:35:9:43 | file_name | src/main.rs:9:21:9:44 | ...::from(...) | provenance | MaD:16 | -| src/main.rs:9:35:9:43 | file_name | src/main.rs:9:21:9:44 | ...::from(...) | provenance | MaD:17 | | src/main.rs:11:24:11:32 | file_path | src/main.rs:11:5:11:22 | ...::read_to_string | provenance | MaD:6 Sink:MaD:6 | | src/main.rs:38:11:38:19 | file_path | src/main.rs:41:52:41:60 | file_path | provenance | | | src/main.rs:41:9:41:17 | file_path | src/main.rs:46:24:46:32 | file_path | provenance | | @@ -29,7 +28,6 @@ edges | src/main.rs:41:38:41:61 | ...::from(...) | src/main.rs:41:21:41:62 | public_path.join(...) | provenance | MaD:14 | | src/main.rs:41:52:41:60 | file_path | src/main.rs:41:38:41:61 | ...::from(...) | provenance | MaD:9 | | src/main.rs:41:52:41:60 | file_path | src/main.rs:41:38:41:61 | ...::from(...) | provenance | MaD:16 | -| src/main.rs:41:52:41:60 | file_path | src/main.rs:41:38:41:61 | ...::from(...) | provenance | MaD:17 | | src/main.rs:46:24:46:32 | file_path | src/main.rs:46:5:46:22 | ...::read_to_string | provenance | MaD:6 Sink:MaD:6 | | src/main.rs:63:11:63:19 | file_path | src/main.rs:66:32:66:40 | file_path | provenance | | | src/main.rs:66:9:66:17 | file_path [&ref] | src/main.rs:71:24:71:32 | file_path [&ref] | provenance | | @@ -43,9 +41,9 @@ edges | src/main.rs:79:38:79:61 | ...::from(...) | src/main.rs:79:21:79:62 | public_path.join(...) | provenance | MaD:14 | | src/main.rs:79:52:79:60 | file_path | src/main.rs:79:38:79:61 | ...::from(...) | provenance | MaD:9 | | src/main.rs:79:52:79:60 | file_path | src/main.rs:79:38:79:61 | ...::from(...) | provenance | MaD:16 | -| src/main.rs:79:52:79:60 | file_path | src/main.rs:79:38:79:61 | ...::from(...) | provenance | MaD:17 | | src/main.rs:80:9:80:17 | file_path | src/main.rs:85:24:85:32 | file_path | provenance | | | src/main.rs:80:21:80:29 | file_path | src/main.rs:80:21:80:44 | file_path.canonicalize() [Ok] | provenance | MaD:11 | +| src/main.rs:80:21:80:29 | file_path | src/main.rs:80:21:80:44 | file_path.canonicalize() [Ok] | provenance | MaD:17 | | src/main.rs:80:21:80:44 | file_path.canonicalize() [Ok] | src/main.rs:80:21:80:53 | ... .unwrap() | provenance | MaD:13 | | src/main.rs:80:21:80:53 | ... .unwrap() | src/main.rs:80:9:80:17 | file_path | provenance | | | src/main.rs:85:24:85:32 | file_path | src/main.rs:85:5:85:22 | ...::read_to_string | provenance | MaD:6 Sink:MaD:6 | @@ -140,7 +138,7 @@ models | 14 | Summary: ::join; Argument[0]; ReturnValue; taint | | 15 | Summary: ::new; Argument[0].Reference; ReturnValue.Reference; value | | 16 | Summary: ::from; Argument[0].Field[alloc::borrow::Cow::Owned(0)]; ReturnValue; value | -| 17 | Summary: ::from; Argument[0]; ReturnValue; taint | +| 17 | Summary: ::deref; Argument[self].Reference.Field[std::path::PathBuf::inner]; ReturnValue.Reference; value | nodes | src/main.rs:7:11:7:19 | file_name | semmle.label | file_name | | src/main.rs:9:9:9:17 | file_path | semmle.label | file_path | diff --git a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected index b820daa0511..a38f1b82f36 100644 --- a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected +++ b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected @@ -33,13 +33,11 @@ | main.rs:177:13:177:29 | ...::alloc | main.rs:320:13:320:26 | ...::args | main.rs:177:13:177:29 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:193:32:193:36 | alloc | main.rs:320:13:320:26 | ...::args | main.rs:193:32:193:36 | alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:194:32:194:43 | alloc_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:194:32:194:43 | alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | -| main.rs:194:32:194:43 | alloc_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:194:32:194:43 | alloc_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:195:32:195:39 | allocate | main.rs:320:13:320:26 | ...::args | main.rs:195:32:195:39 | allocate | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:196:32:196:46 | allocate_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:196:32:196:46 | allocate_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:197:32:197:39 | allocate | main.rs:320:13:320:26 | ...::args | main.rs:197:32:197:39 | allocate | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:198:32:198:46 | allocate_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:198:32:198:46 | allocate_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:202:32:202:38 | realloc | main.rs:320:13:320:26 | ...::args | main.rs:202:32:202:38 | realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | -| main.rs:202:32:202:38 | realloc | main.rs:320:13:320:26 | ...::args | main.rs:202:32:202:38 | realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:208:40:208:43 | grow | main.rs:320:13:320:26 | ...::args | main.rs:208:40:208:43 | grow | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:210:40:210:50 | grow_zeroed | main.rs:320:13:320:26 | ...::args | main.rs:210:40:210:50 | grow_zeroed | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:213:36:213:41 | shrink | main.rs:320:13:320:26 | ...::args | main.rs:213:36:213:41 | shrink | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | @@ -48,6 +46,8 @@ | main.rs:222:13:222:24 | ...::calloc | main.rs:320:13:320:26 | ...::args | main.rs:222:13:222:24 | ...::calloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:223:13:223:24 | ...::calloc | main.rs:320:13:320:26 | ...::args | main.rs:223:13:223:24 | ...::calloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:224:13:224:25 | ...::realloc | main.rs:320:13:320:26 | ...::args | main.rs:224:13:224:25 | ...::realloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:228:13:228:41 | ...::try_with_capacity | main.rs:320:13:320:26 | ...::args | main.rs:228:13:228:41 | ...::try_with_capacity | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | +| main.rs:229:13:229:37 | ...::with_capacity | main.rs:320:13:320:26 | ...::args | main.rs:229:13:229:37 | ...::with_capacity | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:230:13:230:44 | ...::try_with_capacity_in | main.rs:320:13:320:26 | ...::args | main.rs:230:13:230:44 | ...::try_with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:231:13:231:40 | ...::with_capacity_in | main.rs:320:13:320:26 | ...::args | main.rs:231:13:231:40 | ...::with_capacity_in | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:320:13:320:26 | ...::args | user-provided value | | main.rs:287:22:287:38 | ...::alloc | main.rs:311:25:311:38 | ...::args | main.rs:287:22:287:38 | ...::alloc | This allocation size is derived from a $@ and could allocate arbitrary amounts of memory. | main.rs:311:25:311:38 | ...::args | user-provided value | @@ -81,7 +81,6 @@ edges | main.rs:32:9:32:10 | l5 | main.rs:33:31:33:32 | l5 | provenance | | | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | main.rs:32:9:32:10 | l5 | provenance | | | main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:27 | -| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:46 | | main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:37 | | main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:35:9:35:10 | s6 | main.rs:36:60:36:61 | s6 | provenance | | @@ -89,7 +88,6 @@ edges | main.rs:35:15:35:49 | ... * ... | main.rs:35:14:35:54 | ... + ... | provenance | MaD:24 | | main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:26 | | main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:25 | -| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:45 | | main.rs:36:9:36:10 | l6 | main.rs:37:31:37:32 | l6 | provenance | | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | main.rs:36:9:36:10 | l6 | provenance | | | main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:37 | @@ -200,13 +198,13 @@ edges | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:44 | | main.rs:151:15:151:78 | ... .unwrap() | main.rs:151:9:151:11 | l10 | provenance | | | main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:31 | -| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:48 | +| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:46 | | main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:154:9:154:11 | l11 | main.rs:155:31:155:33 | l11 | provenance | | | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:44 | | main.rs:154:15:154:78 | ... .unwrap() | main.rs:154:9:154:11 | l11 | provenance | | | main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:31 | -| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:47 | +| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:45 | | main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:15 Sink:MaD:15 | | main.rs:161:13:161:15 | l13 | main.rs:162:35:162:37 | l13 | provenance | | | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:44 | @@ -222,14 +220,13 @@ edges | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:44 | | main.rs:192:14:192:56 | ... .unwrap() | main.rs:192:9:192:10 | l2 | provenance | | | main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:31 | -| main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:10 Sink:MaD:10 | +| main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:12 Sink:MaD:12 | | main.rs:193:38:193:39 | l2 | main.rs:194:45:194:46 | l2 | provenance | | -| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:11 Sink:MaD:11 | -| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:12 Sink:MaD:12 | +| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:13 Sink:MaD:13 | | main.rs:194:45:194:46 | l2 | main.rs:195:41:195:42 | l2 | provenance | | -| main.rs:195:41:195:42 | l2 | main.rs:195:32:195:39 | allocate | provenance | MaD:5 Sink:MaD:5 | +| main.rs:195:41:195:42 | l2 | main.rs:195:32:195:39 | allocate | provenance | MaD:7 Sink:MaD:7 | | main.rs:195:41:195:42 | l2 | main.rs:196:48:196:49 | l2 | provenance | | -| main.rs:196:48:196:49 | l2 | main.rs:196:32:196:46 | allocate_zeroed | provenance | MaD:6 Sink:MaD:6 | +| main.rs:196:48:196:49 | l2 | main.rs:196:32:196:46 | allocate_zeroed | provenance | MaD:8 Sink:MaD:8 | | main.rs:196:48:196:49 | l2 | main.rs:197:41:197:42 | l2 | provenance | | | main.rs:197:41:197:42 | l2 | main.rs:197:32:197:39 | allocate | provenance | MaD:1 Sink:MaD:1 | | main.rs:197:41:197:42 | l2 | main.rs:198:48:198:49 | l2 | provenance | | @@ -237,11 +234,10 @@ edges | main.rs:198:48:198:49 | l2 | main.rs:208:53:208:54 | l2 | provenance | | | main.rs:198:48:198:49 | l2 | main.rs:210:60:210:61 | l2 | provenance | | | main.rs:198:48:198:49 | l2 | main.rs:213:51:213:52 | l2 | provenance | | -| main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:13 Sink:MaD:13 | | main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:14 Sink:MaD:14 | -| main.rs:208:53:208:54 | l2 | main.rs:208:40:208:43 | grow | provenance | MaD:7 Sink:MaD:7 | -| main.rs:210:60:210:61 | l2 | main.rs:210:40:210:50 | grow_zeroed | provenance | MaD:8 Sink:MaD:8 | -| main.rs:213:51:213:52 | l2 | main.rs:213:36:213:41 | shrink | provenance | MaD:9 Sink:MaD:9 | +| main.rs:208:53:208:54 | l2 | main.rs:208:40:208:43 | grow | provenance | MaD:9 Sink:MaD:9 | +| main.rs:210:60:210:61 | l2 | main.rs:210:40:210:50 | grow_zeroed | provenance | MaD:10 Sink:MaD:10 | +| main.rs:213:51:213:52 | l2 | main.rs:213:36:213:41 | shrink | provenance | MaD:11 Sink:MaD:11 | | main.rs:217:27:217:34 | ...: usize | main.rs:219:26:219:26 | v | provenance | | | main.rs:219:26:219:26 | v | main.rs:219:13:219:24 | ...::malloc | provenance | MaD:20 Sink:MaD:20 | | main.rs:219:26:219:26 | v | main.rs:220:36:220:36 | v | provenance | | @@ -252,17 +248,20 @@ edges | main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:19 Sink:MaD:19 | | main.rs:223:26:223:26 | v | main.rs:224:31:224:31 | v | provenance | | | main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:21 Sink:MaD:21 | -| main.rs:227:24:227:31 | ...: usize | main.rs:230:46:230:46 | v | provenance | | -| main.rs:230:46:230:46 | v | main.rs:230:13:230:44 | ...::try_with_capacity_in | provenance | MaD:3 Sink:MaD:3 | +| main.rs:227:24:227:31 | ...: usize | main.rs:228:43:228:43 | v | provenance | | +| main.rs:228:43:228:43 | v | main.rs:228:13:228:41 | ...::try_with_capacity | provenance | MaD:3 Sink:MaD:3 | +| main.rs:228:43:228:43 | v | main.rs:229:39:229:39 | v | provenance | | +| main.rs:229:39:229:39 | v | main.rs:229:13:229:37 | ...::with_capacity | provenance | MaD:5 Sink:MaD:5 | +| main.rs:229:39:229:39 | v | main.rs:230:46:230:46 | v | provenance | | +| main.rs:230:46:230:46 | v | main.rs:230:13:230:44 | ...::try_with_capacity_in | provenance | MaD:4 Sink:MaD:4 | | main.rs:230:46:230:46 | v | main.rs:231:42:231:42 | v | provenance | | -| main.rs:231:42:231:42 | v | main.rs:231:13:231:40 | ...::with_capacity_in | provenance | MaD:4 Sink:MaD:4 | +| main.rs:231:42:231:42 | v | main.rs:231:13:231:40 | ...::with_capacity_in | provenance | MaD:6 Sink:MaD:6 | | main.rs:282:24:282:41 | ...: String | main.rs:283:21:283:30 | user_input | provenance | | | main.rs:283:9:283:17 | num_bytes | main.rs:285:54:285:62 | num_bytes | provenance | | | main.rs:283:21:283:30 | user_input | main.rs:283:21:283:47 | user_input.parse() [Ok] | provenance | MaD:28 | | main.rs:283:21:283:30 | user_input | main.rs:283:21:283:47 | user_input.parse() [Ok] | provenance | MaD:29 | | main.rs:283:21:283:47 | user_input.parse() [Ok] | main.rs:283:21:283:48 | TryExpr | provenance | | | main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:27 | -| main.rs:283:21:283:48 | TryExpr | main.rs:283:21:283:77 | ... * ... | provenance | MaD:46 | | main.rs:283:21:283:77 | ... * ... | main.rs:283:9:283:17 | num_bytes | provenance | | | main.rs:285:9:285:14 | layout | main.rs:287:40:287:45 | layout | provenance | | | main.rs:285:18:285:66 | ...::from_size_align(...) [Ok] | main.rs:285:18:285:75 | ... .unwrap() | provenance | MaD:44 | @@ -295,17 +294,17 @@ edges models | 1 | Sink: ::allocate; Argument[0]; alloc-layout | | 2 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | -| 3 | Sink: ::try_with_capacity_in; Argument[0]; alloc-layout | -| 4 | Sink: ::with_capacity_in; Argument[0]; alloc-layout | -| 5 | Sink: ::allocate; Argument[0]; alloc-layout | -| 6 | Sink: ::allocate_zeroed; Argument[0]; alloc-layout | -| 7 | Sink: ::grow; Argument[2]; alloc-layout | -| 8 | Sink: ::grow_zeroed; Argument[2]; alloc-layout | -| 9 | Sink: ::shrink; Argument[2]; alloc-layout | -| 10 | Sink: ::alloc; Argument[0]; alloc-size | -| 11 | Sink: ::alloc_zeroed; Argument[0]; alloc-layout | -| 12 | Sink: ::alloc_zeroed; Argument[0]; alloc-size | -| 13 | Sink: ::realloc; Argument[2]; alloc-layout | +| 3 | Sink: ::try_with_capacity; Argument[0]; alloc-layout | +| 4 | Sink: ::try_with_capacity_in; Argument[0]; alloc-layout | +| 5 | Sink: ::with_capacity; Argument[0]; alloc-layout | +| 6 | Sink: ::with_capacity_in; Argument[0]; alloc-layout | +| 7 | Sink: ::allocate; Argument[0]; alloc-size | +| 8 | Sink: ::allocate_zeroed; Argument[0]; alloc-size | +| 9 | Sink: ::grow; Argument[2]; alloc-size | +| 10 | Sink: ::grow_zeroed; Argument[2]; alloc-size | +| 11 | Sink: ::shrink; Argument[2]; alloc-size | +| 12 | Sink: ::alloc; Argument[0]; alloc-size | +| 13 | Sink: ::alloc_zeroed; Argument[0]; alloc-size | | 14 | Sink: ::realloc; Argument[2]; alloc-size | | 15 | Sink: alloc::alloc::alloc; Argument[0]; alloc-layout | | 16 | Sink: alloc::alloc::alloc_zeroed; Argument[0]; alloc-layout | @@ -337,10 +336,8 @@ models | 42 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | | 43 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | | 44 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 45 | Summary: ::mul; Argument[0]; ReturnValue; taint | -| 46 | Summary: ::mul; Argument[self]; ReturnValue; taint | -| 47 | Summary: core::cmp::max; Argument[0]; ReturnValue; value | -| 48 | Summary: core::cmp::min; Argument[0]; ReturnValue; value | +| 45 | Summary: core::cmp::max; Argument[0]; ReturnValue; value | +| 46 | Summary: core::cmp::min; Argument[0]; ReturnValue; value | nodes | main.rs:12:36:12:43 | ...: usize | semmle.label | ...: usize | | main.rs:18:13:18:31 | ...::realloc | semmle.label | ...::realloc | @@ -511,7 +508,6 @@ nodes | main.rs:193:32:193:36 | alloc | semmle.label | alloc | | main.rs:193:38:193:39 | l2 | semmle.label | l2 | | main.rs:194:32:194:43 | alloc_zeroed | semmle.label | alloc_zeroed | -| main.rs:194:32:194:43 | alloc_zeroed | semmle.label | alloc_zeroed | | main.rs:194:45:194:46 | l2 | semmle.label | l2 | | main.rs:195:32:195:39 | allocate | semmle.label | allocate | | main.rs:195:41:195:42 | l2 | semmle.label | l2 | @@ -522,7 +518,6 @@ nodes | main.rs:198:32:198:46 | allocate_zeroed | semmle.label | allocate_zeroed | | main.rs:198:48:198:49 | l2 | semmle.label | l2 | | main.rs:202:32:202:38 | realloc | semmle.label | realloc | -| main.rs:202:32:202:38 | realloc | semmle.label | realloc | | main.rs:202:48:202:48 | v | semmle.label | v | | main.rs:208:40:208:43 | grow | semmle.label | grow | | main.rs:208:53:208:54 | l2 | semmle.label | l2 | @@ -542,6 +537,10 @@ nodes | main.rs:224:13:224:25 | ...::realloc | semmle.label | ...::realloc | | main.rs:224:31:224:31 | v | semmle.label | v | | main.rs:227:24:227:31 | ...: usize | semmle.label | ...: usize | +| main.rs:228:13:228:41 | ...::try_with_capacity | semmle.label | ...::try_with_capacity | +| main.rs:228:43:228:43 | v | semmle.label | v | +| main.rs:229:13:229:37 | ...::with_capacity | semmle.label | ...::with_capacity | +| main.rs:229:39:229:39 | v | semmle.label | v | | main.rs:230:13:230:44 | ...::try_with_capacity_in | semmle.label | ...::try_with_capacity_in | | main.rs:230:46:230:46 | v | semmle.label | v | | main.rs:231:13:231:40 | ...::with_capacity_in | semmle.label | ...::with_capacity_in | diff --git a/rust/ql/test/query-tests/security/CWE-770/main.rs b/rust/ql/test/query-tests/security/CWE-770/main.rs index 1b3a5fc4e93..916bc55ad7d 100644 --- a/rust/ql/test/query-tests/security/CWE-770/main.rs +++ b/rust/ql/test/query-tests/security/CWE-770/main.rs @@ -225,8 +225,8 @@ unsafe fn test_libc_alloc(v: usize) { } unsafe fn test_vectors(v: usize) { - let _ = Vec::::try_with_capacity(v).unwrap(); // $ MISSING: Alert[rust/uncontrolled-allocation-size] - let _ = Vec::::with_capacity(v); // $ MISSING: Alert[rust/uncontrolled-allocation-size] + let _ = Vec::::try_with_capacity(v).unwrap(); // $ Alert[rust/uncontrolled-allocation-size]=arg1 + let _ = Vec::::with_capacity(v); // $ Alert[rust/uncontrolled-allocation-size]=arg1 let _ = Vec::::try_with_capacity_in(v, std::alloc::Global).unwrap(); // $ Alert[rust/uncontrolled-allocation-size]=arg1 let _ = Vec::::with_capacity_in(v, std::alloc::Global); // $ Alert[rust/uncontrolled-allocation-size]=arg1 diff --git a/rust/ql/test/query-tests/security/CWE-798/HardcodedCryptographicValue.expected b/rust/ql/test/query-tests/security/CWE-798/HardcodedCryptographicValue.expected index 381615208f0..1d9837feafe 100644 --- a/rust/ql/test/query-tests/security/CWE-798/HardcodedCryptographicValue.expected +++ b/rust/ql/test/query-tests/security/CWE-798/HardcodedCryptographicValue.expected @@ -23,32 +23,32 @@ edges | test_cipher.rs:18:28:18:36 | &... [&ref] | test_cipher.rs:18:9:18:14 | const1 [&ref] | provenance | | | test_cipher.rs:18:29:18:36 | [0u8; 16] | test_cipher.rs:18:28:18:36 | &... [&ref] | provenance | | | test_cipher.rs:19:49:19:79 | ...::from_slice(...) [&ref] | test_cipher.rs:19:30:19:47 | ...::new | provenance | MaD:3 Sink:MaD:3 | -| test_cipher.rs:19:73:19:78 | const1 [&ref] | test_cipher.rs:19:49:19:79 | ...::from_slice(...) [&ref] | provenance | MaD:24 | +| test_cipher.rs:19:73:19:78 | const1 [&ref] | test_cipher.rs:19:49:19:79 | ...::from_slice(...) [&ref] | provenance | MaD:23 | | test_cipher.rs:25:9:25:14 | const4 [&ref] | test_cipher.rs:26:66:26:71 | const4 [&ref] | provenance | | | test_cipher.rs:25:28:25:36 | &... [&ref] | test_cipher.rs:25:9:25:14 | const4 [&ref] | provenance | | | test_cipher.rs:25:29:25:36 | [0u8; 16] | test_cipher.rs:25:28:25:36 | &... [&ref] | provenance | | | test_cipher.rs:26:42:26:72 | ...::from_slice(...) [&ref] | test_cipher.rs:26:30:26:40 | ...::new | provenance | MaD:4 Sink:MaD:4 | -| test_cipher.rs:26:66:26:71 | const4 [&ref] | test_cipher.rs:26:42:26:72 | ...::from_slice(...) [&ref] | provenance | MaD:24 | +| test_cipher.rs:26:66:26:71 | const4 [&ref] | test_cipher.rs:26:42:26:72 | ...::from_slice(...) [&ref] | provenance | MaD:23 | | test_cipher.rs:29:9:29:14 | const5 [&ref] | test_cipher.rs:30:95:30:100 | const5 [&ref] | provenance | | | test_cipher.rs:29:28:29:36 | &... [&ref] | test_cipher.rs:29:9:29:14 | const5 [&ref] | provenance | | | test_cipher.rs:29:29:29:36 | [0u8; 16] | test_cipher.rs:29:28:29:36 | &... [&ref] | provenance | | | test_cipher.rs:30:72:30:101 | ...::from_slice(...) [&ref] | test_cipher.rs:30:30:30:40 | ...::new | provenance | MaD:5 Sink:MaD:5 | -| test_cipher.rs:30:95:30:100 | const5 [&ref] | test_cipher.rs:30:72:30:101 | ...::from_slice(...) [&ref] | provenance | MaD:24 | +| test_cipher.rs:30:95:30:100 | const5 [&ref] | test_cipher.rs:30:72:30:101 | ...::from_slice(...) [&ref] | provenance | MaD:23 | | test_cipher.rs:37:9:37:14 | const7 | test_cipher.rs:38:74:38:79 | const7 | provenance | | | test_cipher.rs:37:27:37:74 | [...] | test_cipher.rs:37:9:37:14 | const7 | provenance | | | test_cipher.rs:38:49:38:80 | ...::from_slice(...) [&ref] | test_cipher.rs:38:30:38:47 | ...::new | provenance | MaD:3 Sink:MaD:3 | -| test_cipher.rs:38:73:38:79 | &const7 [&ref] | test_cipher.rs:38:49:38:80 | ...::from_slice(...) [&ref] | provenance | MaD:24 | +| test_cipher.rs:38:73:38:79 | &const7 [&ref] | test_cipher.rs:38:49:38:80 | ...::from_slice(...) [&ref] | provenance | MaD:23 | | test_cipher.rs:38:74:38:79 | const7 | test_cipher.rs:38:73:38:79 | &const7 [&ref] | provenance | | | test_cipher.rs:41:9:41:14 | const8 [&ref] | test_cipher.rs:42:73:42:78 | const8 [&ref] | provenance | | | test_cipher.rs:41:28:41:76 | &... [&ref] | test_cipher.rs:41:9:41:14 | const8 [&ref] | provenance | | | test_cipher.rs:41:29:41:76 | [...] | test_cipher.rs:41:28:41:76 | &... [&ref] | provenance | | | test_cipher.rs:42:49:42:79 | ...::from_slice(...) [&ref] | test_cipher.rs:42:30:42:47 | ...::new | provenance | MaD:3 Sink:MaD:3 | -| test_cipher.rs:42:73:42:78 | const8 [&ref] | test_cipher.rs:42:49:42:79 | ...::from_slice(...) [&ref] | provenance | MaD:24 | +| test_cipher.rs:42:73:42:78 | const8 [&ref] | test_cipher.rs:42:49:42:79 | ...::from_slice(...) [&ref] | provenance | MaD:23 | | test_cipher.rs:50:9:50:15 | const10 [element] | test_cipher.rs:51:75:51:81 | const10 [element] | provenance | | | test_cipher.rs:50:37:50:52 | ...::zeroed | test_cipher.rs:50:37:50:54 | ...::zeroed(...) [element] | provenance | Src:MaD:7 | | test_cipher.rs:50:37:50:54 | ...::zeroed(...) [element] | test_cipher.rs:50:9:50:15 | const10 [element] | provenance | | | test_cipher.rs:51:50:51:82 | ...::from_slice(...) [&ref, element] | test_cipher.rs:51:31:51:48 | ...::new | provenance | MaD:3 Sink:MaD:3 Sink:MaD:3 | -| test_cipher.rs:51:74:51:81 | &const10 [&ref, element] | test_cipher.rs:51:50:51:82 | ...::from_slice(...) [&ref, element] | provenance | MaD:24 | +| test_cipher.rs:51:74:51:81 | &const10 [&ref, element] | test_cipher.rs:51:50:51:82 | ...::from_slice(...) [&ref, element] | provenance | MaD:23 | | test_cipher.rs:51:75:51:81 | const10 [element] | test_cipher.rs:51:74:51:81 | &const10 [&ref, element] | provenance | | | test_cipher.rs:73:9:73:14 | const2 [&ref] | test_cipher.rs:74:46:74:51 | const2 [&ref] | provenance | | | test_cipher.rs:73:18:73:26 | &... [&ref] | test_cipher.rs:73:9:73:14 | const2 [&ref] | provenance | | @@ -72,7 +72,7 @@ edges | test_cookie.rs:38:28:38:36 | [0u8; 64] | test_cookie.rs:38:18:38:37 | ...::from(...) | provenance | MaD:22 | | test_cookie.rs:42:34:42:39 | array2 | test_cookie.rs:42:14:42:32 | ...::from | provenance | MaD:2 Sink:MaD:2 | | test_cookie.rs:49:9:49:14 | array3 [element] | test_cookie.rs:53:34:53:39 | array3 [element] | provenance | | -| test_cookie.rs:49:23:49:25 | 0u8 | test_cookie.rs:49:23:49:29 | ...::from_elem(...) [element] | provenance | MaD:25 | +| test_cookie.rs:49:23:49:25 | 0u8 | test_cookie.rs:49:23:49:29 | ...::from_elem(...) [element] | provenance | MaD:24 | | test_cookie.rs:49:23:49:29 | ...::from_elem(...) [element] | test_cookie.rs:49:9:49:14 | array3 [element] | provenance | | | test_cookie.rs:53:34:53:39 | array3 [element] | test_cookie.rs:53:14:53:32 | ...::from | provenance | MaD:2 Sink:MaD:2 | | test_heuristic.rs:44:9:44:16 | const_iv [&ref] | test_heuristic.rs:45:41:45:48 | const_iv | provenance | | @@ -85,7 +85,6 @@ edges | test_heuristic.rs:70:23:70:35 | ... << ... | test_heuristic.rs:70:22:70:62 | ... ^ ... | provenance | MaD:15 | | test_heuristic.rs:70:34:70:35 | 32 | test_heuristic.rs:70:23:70:35 | ... << ... | provenance | MaD:17 | | test_heuristic.rs:70:34:70:35 | 32 | test_heuristic.rs:70:23:70:35 | ... << ... | provenance | MaD:16 | -| test_heuristic.rs:70:34:70:35 | 32 | test_heuristic.rs:70:23:70:35 | ... << ... | provenance | MaD:23 | | test_heuristic.rs:70:41:70:61 | ... & ... | test_heuristic.rs:70:22:70:62 | ... ^ ... | provenance | MaD:14 | | test_heuristic.rs:70:41:70:61 | ... & ... | test_heuristic.rs:70:22:70:62 | ... ^ ... | provenance | MaD:13 | | test_heuristic.rs:70:52:70:61 | 0xFFFFFFFF | test_heuristic.rs:70:41:70:61 | ... & ... | provenance | MaD:12 | @@ -108,14 +107,13 @@ models | 15 | Summary: <_ as core::ops::bit::BitXor>::bitxor; Argument[self]; ReturnValue; taint | | 16 | Summary: <_ as core::ops::bit::Shl>::shl; Argument[0].Reference; ReturnValue; taint | | 17 | Summary: <_ as core::ops::bit::Shl>::shl; Argument[0]; ReturnValue; taint | -| 18 | Summary: ::from; Argument[0].Field[0]; ReturnValue; value | -| 19 | Summary: ::from; Argument[0].Field[alloc::borrow::Cow::Owned(0)]; ReturnValue; value | -| 20 | Summary: ::from; Argument[0].Field[alloc::bstr::ByteString(0)]; ReturnValue; value | -| 21 | Summary: ::from; Argument[0].Field[alloc::collections::binary_heap::BinaryHeap::data]; ReturnValue; value | -| 22 | Summary: ::from; Argument[0].Field[alloc::string::String::vec]; ReturnValue; value | -| 23 | Summary: ::shl; Argument[0]; ReturnValue; taint | -| 24 | Summary: ::from_slice; Argument[0].Reference; ReturnValue.Reference; value | -| 25 | Summary: alloc::vec::from_elem; Argument[0]; ReturnValue.Element; value | +| 18 | Summary: ::from; Argument[0].Field[alloc::borrow::Cow::Owned(0)]; ReturnValue; value | +| 19 | Summary: ::from; Argument[0].Field[alloc::bstr::ByteString(0)]; ReturnValue; value | +| 20 | Summary: ::from; Argument[0].Field[alloc::collections::binary_heap::BinaryHeap::data]; ReturnValue; value | +| 21 | Summary: ::from; Argument[0].Field[alloc::string::String::vec]; ReturnValue; value | +| 22 | Summary: ::from; Argument[0]; ReturnValue; taint | +| 23 | Summary: ::from_slice; Argument[0].Reference; ReturnValue.Reference; value | +| 24 | Summary: alloc::vec::from_elem; Argument[0]; ReturnValue.Element; value | nodes | test_cipher.rs:18:9:18:14 | const1 [&ref] | semmle.label | const1 [&ref] | | test_cipher.rs:18:28:18:36 | &... [&ref] | semmle.label | &... [&ref] | diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected index 69573c73857..92e11e895cd 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected @@ -137,7 +137,7 @@ edges | lifetime.rs:443:6:443:7 | p1 | lifetime.rs:446:13:446:14 | p1 | provenance | | | lifetime.rs:443:6:443:7 | p1 | lifetime.rs:450:2:450:10 | return p1 | provenance | | | lifetime.rs:443:23:443:44 | ...::from_ref(...) | lifetime.rs:443:6:443:7 | p1 | provenance | | -| lifetime.rs:443:42:443:43 | r1 | lifetime.rs:443:23:443:44 | ...::from_ref(...) | provenance | MaD:3 | +| lifetime.rs:443:42:443:43 | r1 | lifetime.rs:443:23:443:44 | ...::from_ref(...) | provenance | MaD:5 | | lifetime.rs:450:2:450:10 | return p1 | lifetime.rs:454:11:454:29 | get_ptr_from_ref(...) | provenance | | | lifetime.rs:450:2:450:10 | return p1 | lifetime.rs:460:13:460:31 | get_ptr_from_ref(...) | provenance | | | lifetime.rs:454:6:454:7 | p1 | lifetime.rs:459:13:459:14 | p1 | provenance | | @@ -158,18 +158,23 @@ edges | main.rs:18:9:18:10 | p1 [&ref] | main.rs:21:19:21:20 | p1 | provenance | | | main.rs:18:9:18:10 | p1 [&ref] | main.rs:29:19:29:20 | p1 | provenance | | | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | main.rs:18:9:18:10 | p1 [&ref] | provenance | | -| main.rs:18:26:18:28 | &b1 | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | provenance | MaD:2 | +| main.rs:18:26:18:28 | &b1 | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | provenance | MaD:3 | +| main.rs:18:26:18:28 | &b1 | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | provenance | MaD:4 | | main.rs:44:9:44:10 | p2 [&ref] | main.rs:51:23:51:24 | p2 | provenance | | | main.rs:44:9:44:10 | p2 [&ref] | main.rs:64:23:64:24 | p2 | provenance | | | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | main.rs:44:9:44:10 | p2 [&ref] | provenance | | -| main.rs:44:26:44:28 | &b2 | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | provenance | MaD:2 | +| main.rs:44:26:44:28 | &b2 | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | provenance | MaD:3 | +| main.rs:44:26:44:28 | &b2 | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | provenance | MaD:4 | | main.rs:47:9:47:10 | p3 [&ref] | main.rs:52:23:52:24 | p3 | provenance | | | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | main.rs:47:9:47:10 | p3 [&ref] | provenance | | | main.rs:47:30:47:36 | &mut b3 | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | provenance | MaD:1 | +| main.rs:47:30:47:36 | &mut b3 | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | provenance | MaD:2 | models -| 1 | Summary: ::as_mut_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | -| 2 | Summary: ::as_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | -| 3 | Summary: core::ptr::from_ref; Argument[0]; ReturnValue; value | +| 1 | Summary: ::as_mut_ptr; Argument[0].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 2 | Summary: ::as_mut_ptr; Argument[0].Reference.Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 3 | Summary: ::as_ptr; Argument[0].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 4 | Summary: ::as_ptr; Argument[0].Reference.Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 5 | Summary: core::ptr::from_ref; Argument[0]; ReturnValue; value | nodes | deallocation.rs:242:6:242:7 | p1 | semmle.label | p1 | | deallocation.rs:242:30:242:38 | &raw const my_buffer | semmle.label | &raw const my_buffer | From d20cd68a055a1039f491da38af873d2ec6e63079 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 Jan 2026 20:24:01 +0100 Subject: [PATCH 139/263] C++: Update expected test results after extractor changes --- cpp/ql/test/library-tests/builtins/types/types.c | 5 ----- .../test/library-tests/builtins/types/types.expected | 7 ------- cpp/ql/test/library-tests/builtins/types/types.ql | 5 ----- cpp/ql/test/library-tests/literals/literals/literals.c | 2 -- .../library-tests/literals/literals/literals.expected | 10 ++++------ .../templates/type_instantiations/types.expected | 3 --- .../test/library-tests/type_sizes/type_sizes.expected | 3 --- .../unspecified_type/types/unspecified_type.expected | 3 --- .../library-tests/variables/variables/types.expected | 3 --- 9 files changed, 4 insertions(+), 37 deletions(-) delete mode 100644 cpp/ql/test/library-tests/builtins/types/types.c delete mode 100644 cpp/ql/test/library-tests/builtins/types/types.expected delete mode 100644 cpp/ql/test/library-tests/builtins/types/types.ql diff --git a/cpp/ql/test/library-tests/builtins/types/types.c b/cpp/ql/test/library-tests/builtins/types/types.c deleted file mode 100644 index c4246f2273d..00000000000 --- a/cpp/ql/test/library-tests/builtins/types/types.c +++ /dev/null @@ -1,5 +0,0 @@ - -_Decimal32 d32; -_Decimal64 d64; -_Decimal128 d128; - diff --git a/cpp/ql/test/library-tests/builtins/types/types.expected b/cpp/ql/test/library-tests/builtins/types/types.expected deleted file mode 100644 index deaca8e4c28..00000000000 --- a/cpp/ql/test/library-tests/builtins/types/types.expected +++ /dev/null @@ -1,7 +0,0 @@ -| file://:0:0:0:0 | fp_offset | file://:0:0:0:0 | unsigned int | -| file://:0:0:0:0 | gp_offset | file://:0:0:0:0 | unsigned int | -| file://:0:0:0:0 | overflow_arg_area | file://:0:0:0:0 | void * | -| file://:0:0:0:0 | reg_save_area | file://:0:0:0:0 | void * | -| types.c:2:12:2:14 | d32 | file://:0:0:0:0 | _Decimal32 | -| types.c:3:12:3:14 | d64 | file://:0:0:0:0 | _Decimal64 | -| types.c:4:13:4:16 | d128 | file://:0:0:0:0 | _Decimal128 | diff --git a/cpp/ql/test/library-tests/builtins/types/types.ql b/cpp/ql/test/library-tests/builtins/types/types.ql deleted file mode 100644 index 560d1a66fb1..00000000000 --- a/cpp/ql/test/library-tests/builtins/types/types.ql +++ /dev/null @@ -1,5 +0,0 @@ -import cpp - -from Variable v, Type t -where t = v.getType() -select v, t diff --git a/cpp/ql/test/library-tests/literals/literals/literals.c b/cpp/ql/test/library-tests/literals/literals/literals.c index 70a98a98608..1fc8e990343 100644 --- a/cpp/ql/test/library-tests/literals/literals/literals.c +++ b/cpp/ql/test/library-tests/literals/literals/literals.c @@ -1,6 +1,4 @@ -double dd = 1.0d; -double dD = 1.0D; double df = 1.0f; double dF = 1.0F; double di = 1.0i; diff --git a/cpp/ql/test/library-tests/literals/literals/literals.expected b/cpp/ql/test/library-tests/literals/literals/literals.expected index a3fd43a7f04..4be96d5964b 100644 --- a/cpp/ql/test/library-tests/literals/literals/literals.expected +++ b/cpp/ql/test/library-tests/literals/literals/literals.expected @@ -1,14 +1,12 @@ | literals.c:2:13:2:16 | 1.0 | | literals.c:3:13:3:16 | 1.0 | -| literals.c:4:13:4:16 | 1.0 | -| literals.c:5:13:5:16 | 1.0 | +| literals.c:4:13:4:16 | (0.0,1.0i) | +| literals.c:5:13:5:16 | (0.0,1.0i) | | literals.c:6:13:6:16 | (0.0,1.0i) | | literals.c:7:13:7:16 | (0.0,1.0i) | -| literals.c:8:13:8:16 | (0.0,1.0i) | -| literals.c:9:13:9:16 | (0.0,1.0i) | +| literals.c:8:13:8:16 | 1.0 | +| literals.c:9:13:9:16 | 1.0 | | literals.c:10:13:10:16 | 1.0 | | literals.c:11:13:11:16 | 1.0 | | literals.c:12:13:12:16 | 1.0 | | literals.c:13:13:13:16 | 1.0 | -| literals.c:14:13:14:16 | 1.0 | -| literals.c:15:13:15:16 | 1.0 | diff --git a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected index e6c8b1d9406..0f2c2b91917 100644 --- a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected +++ b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected @@ -12,9 +12,6 @@ | file://:0:0:0:0 | _Complex float | | file://:0:0:0:0 | _Complex long double | | file://:0:0:0:0 | _Complex std::float16_t | -| file://:0:0:0:0 | _Decimal32 | -| file://:0:0:0:0 | _Decimal64 | -| file://:0:0:0:0 | _Decimal128 | | file://:0:0:0:0 | _Float16 | | file://:0:0:0:0 | _Float32 | | file://:0:0:0:0 | _Float32x | diff --git a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected index ac1344753e9..63d2b2715ea 100644 --- a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected +++ b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected @@ -32,9 +32,6 @@ | file://:0:0:0:0 | _Complex float | 8 | | file://:0:0:0:0 | _Complex long double | 32 | | file://:0:0:0:0 | _Complex std::float16_t | 4 | -| file://:0:0:0:0 | _Decimal32 | 4 | -| file://:0:0:0:0 | _Decimal64 | 8 | -| file://:0:0:0:0 | _Decimal128 | 16 | | file://:0:0:0:0 | _Float16 | 2 | | file://:0:0:0:0 | _Float32 | 4 | | file://:0:0:0:0 | _Float32x | 8 | diff --git a/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected b/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected index 3f22b9f98f5..b335bfcf178 100644 --- a/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected +++ b/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected @@ -14,9 +14,6 @@ | file://:0:0:0:0 | _Complex float | _Complex float | | file://:0:0:0:0 | _Complex long double | _Complex long double | | file://:0:0:0:0 | _Complex std::float16_t | _Complex std::float16_t | -| file://:0:0:0:0 | _Decimal32 | _Decimal32 | -| file://:0:0:0:0 | _Decimal64 | _Decimal64 | -| file://:0:0:0:0 | _Decimal128 | _Decimal128 | | file://:0:0:0:0 | _Float16 | _Float16 | | file://:0:0:0:0 | _Float32 | _Float32 | | file://:0:0:0:0 | _Float32x | _Float32x | diff --git a/cpp/ql/test/library-tests/variables/variables/types.expected b/cpp/ql/test/library-tests/variables/variables/types.expected index 5d8cec1cff8..3968d7205d5 100644 --- a/cpp/ql/test/library-tests/variables/variables/types.expected +++ b/cpp/ql/test/library-tests/variables/variables/types.expected @@ -13,9 +13,6 @@ | _Complex float | BinaryFloatingPointType, ComplexNumberType, GuardConditionImpl | | | | | | _Complex long double | BinaryFloatingPointType, ComplexNumberType, GuardConditionImpl | | | | | | _Complex std::float16_t | BinaryFloatingPointType, ComplexNumberType, GuardConditionImpl | | | | | -| _Decimal32 | Decimal32Type, GuardConditionImpl | | | | | -| _Decimal64 | Decimal64Type, GuardConditionImpl | | | | | -| _Decimal128 | Decimal128Type, GuardConditionImpl | | | | | | _Float16 | BinaryFloatingPointType, GuardConditionImpl, RealNumberType | | | | | | _Float32 | BinaryFloatingPointType, GuardConditionImpl, RealNumberType | | | | | | _Float32x | BinaryFloatingPointType, GuardConditionImpl, RealNumberType | | | | | From a20f0a11e8152f10820c9e78287d48b39b8c690c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 Jan 2026 20:39:44 +0100 Subject: [PATCH 140/263] C++: No longer expose `_Decimal{32,64,128}` --- cpp/ql/lib/semmle/code/cpp/Type.qll | 50 ++--------------------------- 1 file changed, 2 insertions(+), 48 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/Type.qll b/cpp/ql/lib/semmle/code/cpp/Type.qll index d9a61865c96..fa2d2d605d8 100644 --- a/cpp/ql/lib/semmle/code/cpp/Type.qll +++ b/cpp/ql/lib/semmle/code/cpp/Type.qll @@ -802,15 +802,6 @@ private predicate floatingPointTypeMapping( // _Complex __float128 kind = 39 and base = 2 and domain = TComplexDomain() and realKind = 38 and extended = false or - // _Decimal32 - kind = 40 and base = 10 and domain = TRealDomain() and realKind = 40 and extended = false - or - // _Decimal64 - kind = 41 and base = 10 and domain = TRealDomain() and realKind = 41 and extended = false - or - // _Decimal128 - kind = 42 and base = 10 and domain = TRealDomain() and realKind = 42 and extended = false - or // _Float32 kind = 45 and base = 2 and domain = TRealDomain() and realKind = 45 and extended = false or @@ -871,9 +862,8 @@ private predicate floatingPointTypeMapping( /** * The C/C++ floating point types. See 4.5. This includes `float`, `double` and `long double`, the - * fixed-size floating-point types like `_Float32`, the extended-precision floating-point types like - * `_Float64x`, and the decimal floating-point types like `_Decimal32`. It also includes the complex - * and imaginary versions of all of these types. + * fixed-size floating-point types like `_Float32`, and the extended-precision floating-point types + * like `_Float64x`. It also includes the complex and imaginary versions of all of these types. */ class FloatingPointType extends ArithmeticType { final int base; @@ -991,42 +981,6 @@ class Float128Type extends RealNumberType, BinaryFloatingPointType { override string getAPrimaryQlClass() { result = "Float128Type" } } -/** - * The GNU C `_Decimal32` primitive type. This is not standard C/C++. - * ``` - * _Decimal32 d32; - * ``` - */ -class Decimal32Type extends RealNumberType, DecimalFloatingPointType { - Decimal32Type() { builtintypes(underlyingElement(this), _, 40, _, _, _) } - - override string getAPrimaryQlClass() { result = "Decimal32Type" } -} - -/** - * The GNU C `_Decimal64` primitive type. This is not standard C/C++. - * ``` - * _Decimal64 d64; - * ``` - */ -class Decimal64Type extends RealNumberType, DecimalFloatingPointType { - Decimal64Type() { builtintypes(underlyingElement(this), _, 41, _, _, _) } - - override string getAPrimaryQlClass() { result = "Decimal64Type" } -} - -/** - * The GNU C `_Decimal128` primitive type. This is not standard C/C++. - * ``` - * _Decimal128 d128; - * ``` - */ -class Decimal128Type extends RealNumberType, DecimalFloatingPointType { - Decimal128Type() { builtintypes(underlyingElement(this), _, 42, _, _, _) } - - override string getAPrimaryQlClass() { result = "Decimal128Type" } -} - /** * The C/C++ `void` type. See 4.7. * ``` From 273f517a37909fe2047095f7c08f5b7d2840f002 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 Jan 2026 20:47:26 +0100 Subject: [PATCH 141/263] C++: Remove decimal types from the dbscheme --- .../old.dbscheme | 2469 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2469 +++++++++++++++++ .../upgrade.properties | 2 + cpp/ql/lib/semmlecode.cpp.dbscheme | 6 +- .../builtintypes.ql | 11 + .../old.dbscheme | 2469 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2469 +++++++++++++++++ .../upgrade.properties | 3 + 8 files changed, 9895 insertions(+), 3 deletions(-) create mode 100644 cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme create mode 100644 cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/builtintypes.ql create mode 100644 cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties diff --git a/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme new file mode 100644 index 00000000000..d2d611b3fdc --- /dev/null +++ b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..a42ce5fc943 --- /dev/null +++ b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties new file mode 100644 index 00000000000..233ff863eca --- /dev/null +++ b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties @@ -0,0 +1,2 @@ +description: Remove _Decimal{32,64,128} types +compatibility: full diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index a42ce5fc943..d2d611b3fdc 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -617,9 +617,9 @@ case @builtintype.kind of | 37 = @signed_int128 // signed __int128 | 38 = @float128 // __float128 | 39 = @complex_float128 // _Complex __float128 -| 40 = @decimal32 // _Decimal32 -| 41 = @decimal64 // _Decimal64 -| 42 = @decimal128 // _Decimal128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 | 43 = @char16_t | 44 = @char32_t | 45 = @std_float32 // _Float32 diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/builtintypes.ql b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/builtintypes.ql new file mode 100644 index 00000000000..86f807fba3b --- /dev/null +++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/builtintypes.ql @@ -0,0 +1,11 @@ +class BuiltinType extends @builtintype { + string toString() { none() } +} + +predicate isDecimalBuiltinType(BuiltinType type) { builtintypes(type, _, [40, 41, 42], _, _, _) } + +from BuiltinType type, string name, int kind, int kind_new, int size, int sign, int alignment +where + builtintypes(type, name, kind, size, sign, alignment) and + if isDecimalBuiltinType(type) then kind_new = 1 else kind_new = kind +select type, name, kind_new, size, sign, alignment diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/old.dbscheme b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/old.dbscheme new file mode 100644 index 00000000000..a42ce5fc943 --- /dev/null +++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/old.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +| 40 = @decimal32 // _Decimal32 +| 41 = @decimal64 // _Decimal64 +| 42 = @decimal128 // _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..d2d611b3fdc --- /dev/null +++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.cpp.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties new file mode 100644 index 00000000000..57a5118125d --- /dev/null +++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties @@ -0,0 +1,3 @@ +description: Remove _Decimal{32,64,128} types +compatibility: partial +builtintypes.rel: run builtintypes.qlo From ffdd6f7d9163384beec81b91006df52d6dda95d4 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 Jan 2026 21:56:43 +0100 Subject: [PATCH 142/263] C++: Add change note --- cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md diff --git a/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md b/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md new file mode 100644 index 00000000000..09c36751262 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `_Decimal32`, `_Decimal64`, and `_Decimal128` types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases. From 9ba73ba4f0148d8a7578aa76601ccf97125d8ee0 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 Jan 2026 22:40:46 +0100 Subject: [PATCH 143/263] C++: Update stats file --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 7573 +++++++++++----------- 1 file changed, 3773 insertions(+), 3800 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index 4ff7d2dd67b..541a5f64b77 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,7 +2,7 @@ @compilation - 12641 + 12592 @externalDataElement @@ -10,35 +10,35 @@ @file - 65204 + 64949 @folder - 12388 + 12339 @diagnostic - 359 - - - @pch - 249 + 357 @location_default - 46943825 + 46837418 + + + @pch + 248 @macro_expansion - 40272429 + 40306114 @other_macro_reference - 300698 + 300641 @normal_function - 2737949 + 2734630 @unknown_function @@ -46,51 +46,51 @@ @constructor - 698692 + 694355 @destructor - 86200 + 85993 @conversion_function - 10354 + 10329 @operator - 652427 + 650865 @user_defined_literal - 997 + 995 @deduction_guide - 5863 + 5849 @fun_decl - 4202854 + 4193414 @var_decl - 9383101 + 9367981 @type_decl - 1633438 + 1629528 @namespace_decl - 407918 + 407977 @using_declaration - 268041 + 266984 @using_directive - 6472 + 6431 @using_enum_declaration @@ -98,27 +98,27 @@ @static_assert - 172982 + 172749 @parameter - 7019643 + 7011799 @membervariable - 1499494 + 1500528 @globalvariable - 488384 + 492566 @localvariable - 726016 + 724687 @enumconstant - 347930 + 347955 @errortype @@ -260,18 +260,6 @@ @complex_float128 124 - - @decimal32 - 124 - - - @decimal64 - 124 - - - @decimal128 - 124 - @char16_t 124 @@ -366,35 +354,35 @@ @pointer - 452457 + 451498 @type_with_specifiers - 693219 + 691560 @array - 90316 + 90100 @routineptr - 684282 + 679868 @reference - 967288 + 964973 @gnu_vector - 675 + 673 @routinereference - 374 + 372 @rvalue_reference - 291034 + 290338 @block @@ -406,15 +394,15 @@ @decltype - 102350 + 101757 @typeof - 816 + 811 @underlying_type - 623 + 622 @bases @@ -458,7 +446,7 @@ @remove_cv - 2062 + 2059 @remove_cvref @@ -486,27 +474,27 @@ @remove_reference - 5715 + 5706 @struct - 979799 + 976646 @union - 20957 + 20907 @enum - 41551 + 41554 @template_parameter - 866985 + 864462 @alias - 1762169 + 1755835 @unknown_usertype @@ -514,55 +502,55 @@ @class - 324966 + 324188 @template_template_parameter - 6114 + 6091 @proxy_class - 48433 + 48244 @scoped_enum - 11601 + 11573 @template_struct - 212057 + 211187 @template_class - 29315 + 29245 @template_union - 1372 + 1368 @mangledname - 6364346 + 6349608 @type_mention - 5907630 + 5911108 @concept_template - 3609 + 3603 @routinetype - 604495 + 600596 @ptrtomember - 9726 + 9678 @specifier - 7734 + 7715 @gnuattribute @@ -570,11 +558,11 @@ @stdattribute - 352784 + 351940 @declspec - 330286 + 330310 @msattribute @@ -582,19 +570,19 @@ @alignas - 2164 + 2160 @attribute_arg_token - 16693 + 16585 @attribute_arg_constant_expr - 71889 + 71524 @attribute_arg_expr - 1404 + 1587 @attribute_arg_empty @@ -606,23 +594,23 @@ @attribute_arg_type - 460 + 459 @derivation - 476878 + 473802 @frienddecl - 700430 + 695912 @comment - 11233100 + 11208574 @namespace - 8649 + 8615 @specialnamequalifyingelement @@ -630,15 +618,15 @@ @namequalifier - 3037638 + 3042587 @value - 13474772 + 13541399 @initialiser - 2247637 + 2244826 @address_of @@ -646,131 +634,131 @@ @indirect - 404158 + 402174 @array_to_pointer - 1953767 + 1953951 @parexpr - 4915249 + 4915710 @arithnegexpr - 586539 + 586594 @unaryplusexpr - 4068 + 4060 @complementexpr - 38200 + 38188 @notexpr - 355767 + 355800 @postincrexpr - 84572 + 84579 @postdecrexpr - 57395 + 57400 @preincrexpr - 96715 + 96724 @predecrexpr - 35821 + 35824 @conditionalexpr - 897887 + 897971 @addexpr - 571560 + 580446 @subexpr - 466803 + 466847 @mulexpr - 435798 + 445092 @divexpr - 52388 + 52392 @remexpr - 16011 + 15908 @paddexpr - 118671 + 118632 @psubexpr - 68017 + 68022 @pdiffexpr - 43910 + 43805 @lshiftexpr - 551703 + 552166 @rshiftexpr - 200557 + 201276 @andexpr - 481224 + 483234 @orexpr - 194058 + 193911 @xorexpr - 73953 + 73958 @eqexpr - 643380 + 643439 @neexpr - 411874 + 411912 @gtexpr - 111150 + 111161 @ltexpr - 139430 + 139443 @geexpr - 81359 + 81365 @leexpr - 292039 + 291944 @assignexpr - 1281160 + 1281279 @assignaddexpr @@ -778,11 +766,11 @@ @assignsubexpr - 15307 + 15309 @assignmulexpr - 11184 + 11140 @assigndivexpr @@ -790,7 +778,7 @@ @assignremexpr - 873 + 871 @assignlshiftexpr @@ -806,15 +794,15 @@ @assignorexpr - 19607 + 19609 @assignxorexpr - 29910 + 29900 @assignpaddexpr - 18628 + 18630 @assignpsubexpr @@ -822,27 +810,27 @@ @andlogicalexpr - 346593 + 346625 @orlogicalexpr - 1103536 + 1103652 @commaexpr - 168283 + 167880 @subscriptexpr - 435148 + 435188 @callexpr - 239767 + 238864 @vastartexpr - 4970 + 4964 @vaargexpr @@ -854,75 +842,75 @@ @vacopyexpr - 136 + 135 @varaccess - 8254733 + 8255500 @runtime_sizeof - 402052 + 401408 @runtime_alignof - 49874 + 49553 @expr_stmt - 148366 + 147518 @routineexpr - 5729912 + 5726205 @type_operand - 1405380 + 1405527 @offsetofexpr - 149026 + 148427 @typescompexpr - 701943 + 702016 @literal - 7966268 + 7984513 @aggregateliteral - 1397522 + 1397523 @c_style_cast - 6026987 + 6027719 @temp_init - 990622 + 980435 @errorexpr - 45480 + 45186 @reference_to - 1903214 + 1880596 @ref_indirect - 2107218 + 2094134 @vacuous_destructor_call - 7835 + 7785 @assume - 4143 + 4138 @conjugation @@ -974,35 +962,35 @@ @thisaccess - 1555764 + 1553672 @new_expr - 46195 + 45897 @delete_expr - 11480 + 11406 @throw_expr - 24214 + 23891 @condition_decl - 408340 + 407684 @braced_init_list - 2146 + 2125 @type_id - 47899 + 47590 @sizeof_pack - 1737 + 1726 @hasassignexpr @@ -1046,7 +1034,7 @@ @isabstractexpr - 68 + 67 @isbaseofexpr @@ -1054,23 +1042,23 @@ @isclassexpr - 2384 + 2380 @isconvtoexpr - 249 + 248 @isemptyexpr - 8857 + 8835 @isenumexpr - 2993 + 2986 @ispodexpr - 834 + 831 @ispolyexpr @@ -1086,75 +1074,75 @@ @hastrivialdestructor - 2793 + 2775 @uuidof - 26695 + 26691 @delete_array_expr - 1246 + 1241 @new_array_expr - 6641 + 6632 @foldexpr - 1246 + 1244 @ctordirectinit - 112831 + 112104 @ctorvirtualinit - 4019 + 3994 @ctorfieldinit - 206206 + 205713 @ctordelegatinginit - 3617 + 3609 @dtordirectdestruct - 39450 + 39195 @dtorvirtualdestruct - 3985 + 3960 @dtorfielddestruct - 39825 + 39568 @static_cast - 348044 + 347211 @reinterpret_cast - 40018 + 39964 @const_cast - 24460 + 24302 @dynamic_cast - 792 + 788 @lambdaexpr - 19023 + 18998 @param_ref - 163867 + 162117 @noopexpr @@ -1162,7 +1150,7 @@ @istriviallyconstructibleexpr - 3742 + 3733 @isdestructibleexpr @@ -1174,19 +1162,19 @@ @istriviallydestructibleexpr - 997 + 995 @istriviallyassignableexpr - 3742 + 3733 @isnothrowassignableexpr - 5114 + 5102 @istrivialexpr - 3375 + 3327 @isstandardlayoutexpr @@ -1194,7 +1182,7 @@ @istriviallycopyableexpr - 1372 + 1368 @isliteraltypeexpr @@ -1214,11 +1202,11 @@ @isconstructibleexpr - 3617 + 3609 @isnothrowconstructibleexpr - 20708 + 20658 @hasfinalizerexpr @@ -1254,11 +1242,11 @@ @isfinalexpr - 9402 + 9342 @noexceptexpr - 28463 + 28127 @builtinshufflevector @@ -1266,11 +1254,11 @@ @builtinchooseexpr - 20701 + 20593 @builtinaddressof - 15468 + 15431 @vec_fill @@ -1286,7 +1274,7 @@ @spaceshipexpr - 1310 + 1308 @co_await @@ -1298,7 +1286,7 @@ @isassignable - 408 + 407 @isaggregate @@ -1310,11 +1298,11 @@ @builtinbitcast - 249 + 248 @builtinshuffle - 612 + 610 @blockassignexpr @@ -1322,7 +1310,7 @@ @issame - 4533 + 4526 @isfunction @@ -1430,7 +1418,7 @@ @reuseexpr - 845836 + 844479 @istriviallycopyassignable @@ -1526,95 +1514,95 @@ @c11_generic - 30117 + 29943 @requires_expr - 16479 + 16453 @nested_requirement - 687 + 686 @compound_requirement - 10936 + 10918 @concept_id - 90305 + 90160 @lambdacapture - 31909 + 31866 @stmt_expr - 2031639 + 2031828 @stmt_if - 990227 + 990318 @stmt_while - 39648 + 39652 @stmt_goto - 157889 + 157272 @stmt_label - 78015 + 77731 @stmt_return - 1241800 + 1238182 @stmt_block - 1728620 + 1724482 @stmt_end_test_while - 233644 + 232290 @stmt_for - 84390 + 84398 @stmt_switch_case - 834964 + 833624 @stmt_switch - 411283 + 410623 @stmt_asm - 64199 + 63827 @stmt_decl - 771066 + 770029 @stmt_empty - 428794 + 428127 @stmt_continue - 28091 + 28094 @stmt_break - 137691 + 137506 @stmt_try_block - 26771 + 26422 @stmt_microsoft_try @@ -1630,19 +1618,19 @@ @stmt_assigned_goto - 12427 + 12423 @stmt_range_based_for - 6372 + 6308 @stmt_handler - 43779 + 43261 @stmt_constexpr_if - 106035 + 105781 @stmt_co_return @@ -1662,51 +1650,51 @@ @ppd_if - 590926 + 589512 @ppd_ifdef - 214366 + 214386 @ppd_ifndef - 160378 + 160444 @ppd_elif - 21914 + 21828 @ppd_else - 234898 + 234336 @ppd_endif - 888947 + 886819 @ppd_plain_include - 318524 + 317280 @ppd_define - 2750049 + 2743341 @ppd_undef - 100421 + 100181 @ppd_pragma - 406176 + 405204 @ppd_include_next - 170 + 169 @ppd_line - 18805 + 18770 @ppd_error @@ -1762,60 +1750,13 @@ - - databaseMetadata - 1 - - - metadataKey - 1 - - - value - 1 - - - - - metadataKey - value - - - 12 - - - - - - value - metadataKey - - - 12 - - - - - - - - overlayChangedFiles - 50 - - - path - 50 - - - - compilations - 12641 + 12592 id - 12641 + 12592 cwd @@ -1833,7 +1774,7 @@ 1 2 - 12641 + 12592 @@ -1859,19 +1800,19 @@ compilation_args - 1012084 + 1008133 id - 12641 + 12592 num - 1467 + 1462 arg - 29264 + 29150 @@ -1885,77 +1826,77 @@ 36 42 - 1003 + 999 42 43 - 1098 + 1094 43 44 - 718 + 715 44 45 - 506 + 504 45 51 - 950 + 946 51 70 - 485 + 483 71 72 - 707 + 704 72 90 - 897 + 894 94 96 - 390 + 389 98 99 - 1341 + 1336 100 102 - 95 + 94 103 104 - 1996 + 1988 104 119 - 1066 + 1062 120 138 - 929 + 925 139 140 - 454 + 452 @@ -1971,67 +1912,67 @@ 34 38 - 591 + 589 38 39 - 1499 + 1493 39 40 - 982 + 978 40 42 - 1087 + 1083 42 53 - 601 + 599 53 54 - 707 + 704 54 63 - 897 + 894 64 67 - 401 + 399 67 68 - 1404 + 1399 68 70 - 971 + 967 70 71 - 1404 + 1399 73 79 - 950 + 946 79 89 - 1130 + 1125 89 @@ -2057,7 +1998,7 @@ 90 108 - 116 + 115 108 @@ -2067,7 +2008,7 @@ 198 422 - 116 + 115 422 @@ -2082,17 +2023,17 @@ 605 749 - 116 + 115 750 778 - 116 + 115 781 883 - 116 + 115 930 @@ -2102,7 +2043,7 @@ 1197 1198 - 380 + 378 @@ -2123,7 +2064,7 @@ 5 7 - 116 + 115 9 @@ -2133,17 +2074,17 @@ 12 15 - 116 + 115 15 18 - 95 + 94 18 22 - 116 + 115 22 @@ -2158,7 +2099,7 @@ 29 34 - 116 + 115 34 @@ -2168,17 +2109,17 @@ 45 63 - 116 + 115 67 94 - 116 + 115 94 164 - 116 + 115 171 @@ -2199,22 +2140,22 @@ 1 2 - 13402 + 13349 2 3 - 12683 + 12634 3 103 - 2196 + 2188 104 1198 - 982 + 978 @@ -2230,17 +2171,17 @@ 1 2 - 19379 + 19304 2 3 - 8723 + 8689 3 62 - 1161 + 1157 @@ -2250,19 +2191,19 @@ compilation_expanded_args - 1012084 + 1008133 id - 12641 + 12592 num - 1467 + 1462 arg - 29264 + 29150 @@ -2276,77 +2217,77 @@ 36 42 - 1003 + 999 42 43 - 1098 + 1094 43 44 - 718 + 715 44 45 - 506 + 504 45 51 - 950 + 946 51 70 - 485 + 483 71 72 - 707 + 704 72 90 - 897 + 894 94 96 - 390 + 389 98 99 - 1341 + 1336 100 102 - 95 + 94 103 104 - 1996 + 1988 104 119 - 1066 + 1062 120 138 - 929 + 925 139 140 - 454 + 452 @@ -2362,67 +2303,67 @@ 34 38 - 591 + 589 38 39 - 1499 + 1493 39 40 - 982 + 978 40 42 - 1087 + 1083 42 53 - 601 + 599 53 54 - 707 + 704 54 63 - 897 + 894 64 67 - 401 + 399 67 68 - 1404 + 1399 68 70 - 971 + 967 70 71 - 1404 + 1399 73 79 - 950 + 946 79 89 - 1130 + 1125 89 @@ -2448,7 +2389,7 @@ 90 108 - 116 + 115 108 @@ -2458,7 +2399,7 @@ 198 422 - 116 + 115 422 @@ -2473,17 +2414,17 @@ 605 749 - 116 + 115 750 778 - 116 + 115 781 883 - 116 + 115 930 @@ -2493,7 +2434,7 @@ 1197 1198 - 380 + 378 @@ -2514,7 +2455,7 @@ 5 7 - 116 + 115 9 @@ -2524,17 +2465,17 @@ 12 15 - 116 + 115 15 18 - 95 + 94 18 22 - 116 + 115 22 @@ -2549,7 +2490,7 @@ 29 34 - 116 + 115 34 @@ -2559,17 +2500,17 @@ 45 63 - 116 + 115 67 94 - 116 + 115 94 164 - 116 + 115 171 @@ -2590,22 +2531,22 @@ 1 2 - 13402 + 13349 2 3 - 12683 + 12634 3 103 - 2196 + 2188 104 1198 - 982 + 978 @@ -2621,17 +2562,17 @@ 1 2 - 19379 + 19304 2 3 - 8723 + 8689 3 62 - 1161 + 1157 @@ -2689,19 +2630,19 @@ compilation_compiling_files - 15738 + 15739 id - 2722 + 2723 num - 4519 + 4520 file - 13668 + 13669 @@ -2889,7 +2830,7 @@ 1 2 - 12307 + 12308 2 @@ -2915,7 +2856,7 @@ 1 2 - 12525 + 12526 2 @@ -2935,15 +2876,15 @@ compilation_time - 62953 + 62957 id - 2722 + 2723 num - 4519 + 4520 kind @@ -2951,7 +2892,7 @@ seconds - 18352 + 20423 @@ -3016,7 +2957,7 @@ 4 5 - 2722 + 2723 @@ -3032,52 +2973,47 @@ 3 4 - 653 + 925 4 5 - 707 + 435 - 6 - 9 + 5 + 8 217 - 9 + 8 10 108 10 11 - 163 + 272 11 - 12 - 217 - - - 15 - 17 + 14 163 - 17 - 21 + 16 + 18 217 - 21 - 51 + 18 + 26 217 - 118 - 119 - 54 + 45 + 128 + 163 @@ -3129,7 +3065,7 @@ 4 5 - 4519 + 4520 @@ -3142,55 +3078,45 @@ 12 - - 2 - 3 - 54 - 3 4 - 1252 + 1524 4 5 - 1089 + 871 5 6 - 163 + 108 6 7 - 544 + 599 7 - 8 - 272 - - - 8 9 - 326 + 381 9 - 17 + 10 381 - 23 - 53 + 11 + 27 381 - 98 - 99 - 54 + 30 + 96 + 272 @@ -3238,21 +3164,16 @@ 4 5 + 108 + + + 210 + 211 54 - 5 - 6 - 54 - - - 195 - 196 - 54 - - - 197 - 198 + 214 + 215 54 @@ -3269,22 +3190,22 @@ 1 2 - 12198 + 15249 2 3 - 4084 + 3376 3 - 4 - 1415 + 6 + 1579 - 4 - 44 - 653 + 10 + 39 + 217 @@ -3300,12 +3221,12 @@ 1 2 - 10891 + 14486 2 3 - 4465 + 2995 3 @@ -3314,8 +3235,8 @@ 4 - 71 - 1415 + 64 + 1361 @@ -3331,12 +3252,12 @@ 1 2 - 14866 + 17318 2 3 - 3485 + 3104 @@ -3346,15 +3267,15 @@ diagnostic_for - 506 + 504 diagnostic - 359 + 357 compilation - 190 + 189 file_number @@ -3376,7 +3297,7 @@ 1 2 - 211 + 210 2 @@ -3397,7 +3318,7 @@ 1 2 - 359 + 357 @@ -3413,7 +3334,7 @@ 1 2 - 359 + 357 @@ -3455,7 +3376,7 @@ 1 2 - 190 + 189 @@ -3612,19 +3533,19 @@ compilation_finished - 12641 + 12592 id - 12641 + 12592 cpu_seconds - 9409 + 9509 elapsed_seconds - 200 + 220 @@ -3638,7 +3559,7 @@ 1 2 - 12641 + 12592 @@ -3654,7 +3575,7 @@ 1 2 - 12641 + 12592 @@ -3670,17 +3591,17 @@ 1 2 - 7846 + 8047 2 3 - 1130 + 1115 3 - 35 - 433 + 34 + 347 @@ -3696,12 +3617,12 @@ 1 2 - 8744 + 8868 2 3 - 665 + 641 @@ -3717,81 +3638,61 @@ 1 2 - 42 + 52 2 3 - 10 + 21 - 3 - 4 - 10 - - - 4 - 5 + 5 + 6 10 9 10 + 52 + + + 15 + 16 10 - 10 - 11 + 16 + 17 10 - 11 - 12 + 33 + 34 10 - 12 - 13 + 62 + 63 10 - 14 - 15 + 185 + 186 10 - 19 - 20 + 220 + 221 10 - 32 - 33 + 283 + 284 10 - 57 - 58 - 10 - - - 154 - 155 - 10 - - - 251 - 252 - 10 - - - 306 - 307 - 10 - - - 309 - 310 + 324 + 325 10 @@ -3808,81 +3709,61 @@ 1 2 - 42 + 52 2 3 - 10 + 21 - 3 - 4 - 10 - - - 4 - 5 + 5 + 6 10 9 10 + 52 + + + 15 + 16 10 - 10 - 11 + 16 + 17 10 - 11 - 12 + 33 + 34 10 - 12 - 13 + 60 + 61 10 - 14 - 15 + 166 + 167 10 - 18 - 19 + 174 + 175 10 - 29 - 30 + 208 + 209 10 - 54 - 55 - 10 - - - 149 - 150 - 10 - - - 152 - 153 - 10 - - - 228 - 229 - 10 - - - 255 - 256 + 234 + 235 10 @@ -4120,31 +4001,31 @@ locations_default - 46943825 + 46837418 id - 46943825 + 46837418 file - 40917 + 40819 beginLine - 7500418 + 7483209 beginColumn - 21955 + 21902 endLine - 7501541 + 7484205 endColumn - 53391 + 53263 @@ -4158,7 +4039,7 @@ 1 2 - 46943825 + 46837418 @@ -4174,7 +4055,7 @@ 1 2 - 46943825 + 46837418 @@ -4190,7 +4071,7 @@ 1 2 - 46943825 + 46837418 @@ -4206,7 +4087,7 @@ 1 2 - 46943825 + 46837418 @@ -4222,7 +4103,7 @@ 1 2 - 46943825 + 46837418 @@ -4238,67 +4119,67 @@ 1 15 - 3118 + 3111 15 41 - 3118 + 3111 42 72 - 3118 + 3111 72 114 - 3368 + 3360 114 142 - 3118 + 3111 143 211 - 3118 + 3111 213 307 - 3118 + 3111 310 430 - 3118 + 3111 437 596 - 3118 + 3111 607 - 827 - 3118 + 829 + 3111 839 1298 - 3118 + 3111 - 1300 + 1303 2855 - 3118 + 3111 3114 30788 - 3118 + 3111 57880 @@ -4319,67 +4200,67 @@ 1 13 - 3368 + 3360 13 31 - 3368 + 3360 31 47 - 3118 + 3111 47 64 - 3118 + 3111 64 84 - 3118 + 3111 85 115 - 3118 + 3111 116 160 - 3243 + 3235 160 206 - 3118 + 3111 206 291 - 3118 + 3111 298 388 - 3118 + 3111 395 527 - 3118 + 3111 561 1339 - 3118 + 3111 1375 57764 - 2869 + 2862 @@ -4395,67 +4276,67 @@ 1 5 - 3742 + 3733 5 9 - 3118 + 3111 9 15 - 3243 + 3235 15 20 - 3243 + 3235 20 28 - 3243 + 3235 28 36 - 3243 + 3235 36 42 - 3118 + 3111 42 53 - 3368 + 3360 53 62 - 3243 + 3235 62 81 - 3118 + 3111 81 95 - 3118 + 3111 95 111 - 3118 + 3111 112 156 - 1995 + 1991 @@ -4471,67 +4352,67 @@ 1 13 - 3368 + 3360 13 31 - 3368 + 3360 31 46 - 3118 + 3111 46 63 - 3118 + 3111 63 84 - 3118 + 3111 84 114 - 3118 + 3111 118 160 - 3243 + 3235 160 206 - 3118 + 3111 207 291 - 3118 + 3111 300 390 - 3118 + 3111 395 562 - 3118 + 3111 564 1350 - 3118 + 3111 1420 57764 - 2869 + 2862 @@ -4547,67 +4428,67 @@ 1 12 - 3368 + 3360 13 26 - 3492 + 3484 26 34 - 3243 + 3235 34 42 - 3243 + 3235 42 50 - 3243 + 3235 50 61 - 3118 + 3111 61 67 - 3243 + 3235 67 76 - 3492 + 3484 76 88 - 3243 + 3235 89 102 - 3118 + 3111 102 116 - 3492 + 3484 116 133 - 3118 + 3111 136 363 - 1496 + 1493 @@ -4623,32 +4504,32 @@ 1 2 - 4957324 + 4945830 2 3 - 779045 + 778673 3 4 - 543897 + 542719 4 12 - 570343 + 566862 12 - 97 - 563357 + 96 + 561386 - 97 - 637 - 86449 + 96 + 638 + 87736 @@ -4664,27 +4545,27 @@ 1 2 - 5019323 + 5008054 2 3 - 1221273 + 1216856 3 6 - 639952 + 638669 6 - 57 - 563233 + 56 + 562133 - 57 + 56 329 - 56635 + 57495 @@ -4700,27 +4581,27 @@ 1 2 - 5641187 + 5629550 2 3 - 483145 + 483108 3 7 - 582069 + 577316 7 25 - 565229 + 564995 25 94 - 228786 + 228238 @@ -4736,12 +4617,12 @@ 1 2 - 7034363 + 7018145 2 85 - 466055 + 465063 @@ -4757,32 +4638,32 @@ 1 2 - 5026309 + 5014276 2 3 - 739375 + 741090 3 4 - 539780 + 535377 4 12 - 586935 + 584783 12 - 72 - 564106 + 71 + 561760 - 72 + 71 250 - 43910 + 45921 @@ -4798,67 +4679,67 @@ 1 2 - 1746 + 1742 2 6 - 1995 + 1991 6 12 - 1871 + 1866 12 40 - 1746 + 1742 49 128 - 1746 + 1742 129 253 - 1746 + 1742 316 707 - 1746 + 1742 791 1267 - 1746 + 1742 - 1281 + 1280 1943 - 1746 + 1742 - 2017 - 2398 - 1746 + 2016 + 2400 + 1742 - 2493 + 2483 3212 - 1746 + 1742 - 3260 - 7915 - 1746 + 3264 + 8088 + 1742 11053 - 121029 - 623 + 121030 + 622 @@ -4874,67 +4755,67 @@ 1 2 - 1995 + 1991 2 4 - 1746 + 1742 4 7 - 1746 + 1742 7 18 - 1871 + 1866 19 43 - 1746 + 1742 44 60 - 1746 + 1742 66 93 - 1746 + 1742 96 117 - 1746 + 1742 117 150 - 1746 + 1742 150 169 - 1746 + 1742 169 181 - 1746 + 1742 182 217 - 1871 + 1866 243 329 - 498 + 497 @@ -4950,67 +4831,67 @@ 1 2 - 1871 + 1866 2 5 - 1871 + 1866 5 11 - 1746 + 1742 11 36 - 1746 + 1742 36 101 - 1746 + 1742 108 - 217 - 1746 + 218 + 1742 - 225 + 226 543 - 1746 + 1742 - 633 - 1059 - 1746 + 634 + 1057 + 1742 - 1071 - 1410 - 1746 + 1074 + 1407 + 1742 - 1414 - 1610 - 1746 + 1408 + 1603 + 1742 - 1613 - 1807 - 1746 + 1611 + 1810 + 1742 - 1834 - 3791 - 1746 + 1835 + 3794 + 1742 - 3837 - 59554 - 748 + 3838 + 59550 + 746 @@ -5026,67 +4907,67 @@ 1 2 - 1871 + 1866 2 5 - 1871 + 1866 5 11 - 1746 + 1742 11 36 - 1746 + 1742 36 102 - 1746 + 1742 109 - 218 - 1746 + 219 + 1742 - 224 + 225 545 - 1746 + 1742 - 631 - 1057 - 1746 + 632 + 1056 + 1742 - 1073 - 1407 - 1746 + 1076 + 1404 + 1742 - 1423 - 1609 - 1746 + 1417 + 1602 + 1742 - 1612 - 1805 - 1746 + 1610 + 1808 + 1742 - 1835 - 3774 - 1746 + 1836 + 3771 + 1742 - 3830 - 59562 - 748 + 3831 + 59557 + 746 @@ -5102,67 +4983,67 @@ 1 2 - 2120 + 2115 2 5 - 1496 + 1493 5 8 - 1621 + 1617 8 13 - 1746 + 1742 13 23 - 1995 + 1991 23 33 - 1871 + 1866 34 44 - 1746 + 1742 45 57 - 1746 + 1742 58 - 73 - 1496 + 74 + 1991 - 73 - 83 - 1746 + 74 + 86 + 1866 - 83 - 92 - 1746 + 86 + 99 + 1866 - 92 - 144 - 1746 + 100 + 259 + 1742 - 147 + 298 299 - 873 + 124 @@ -5178,32 +5059,32 @@ 1 2 - 4955203 + 4943590 2 3 - 781540 + 782034 3 4 - 544770 + 541973 4 12 - 567848 + 565493 12 95 - 563482 + 562382 95 - 620 - 88695 + 621 + 88731 @@ -5219,27 +5100,27 @@ 1 2 - 5016454 + 5005067 2 3 - 1223768 + 1220465 3 6 - 633340 + 631078 6 - 52 - 564106 + 51 + 562009 - 52 + 51 329 - 63870 + 65584 @@ -5255,12 +5136,12 @@ 1 2 - 7051453 + 7035319 2 15 - 450087 + 448885 @@ -5276,27 +5157,27 @@ 1 2 - 5640314 + 5628181 2 3 - 480525 + 481615 3 7 - 587059 + 581547 7 25 - 568846 + 568356 25 89 - 224794 + 224505 @@ -5312,32 +5193,32 @@ 1 2 - 5024937 + 5012783 2 3 - 743742 + 746317 3 4 - 539531 + 533759 4 12 - 587558 + 586774 12 72 - 562734 + 561635 72 250 - 43037 + 42934 @@ -5353,52 +5234,52 @@ 1 2 - 15718 + 15680 2 3 - 5613 + 5600 3 7 - 4241 + 4231 7 17 - 4116 + 4106 17 33 - 4116 + 4106 33 106 - 4116 + 4106 114 689 - 4116 + 4106 - 721 - 2460 - 4116 + 722 + 2461 + 4106 2595 - 4737 - 4116 + 4749 + 4106 4759 33780 - 3118 + 3111 @@ -5414,52 +5295,52 @@ 1 2 - 18587 + 18542 2 3 - 5613 + 5600 3 5 - 3617 + 3609 5 7 - 3742 + 3733 7 16 - 4366 + 4231 16 - 80 - 4116 + 75 + 4106 - 81 - 152 - 4241 + 79 + 142 + 4106 - 158 - 212 - 4241 + 151 + 208 + 4106 - 212 - 265 - 4116 + 210 + 262 + 4231 - 265 + 262 329 - 748 + 995 @@ -5475,52 +5356,52 @@ 1 2 - 15967 + 15929 2 3 - 5987 + 5973 3 8 - 4241 + 4231 8 18 - 4366 + 4355 18 - 42 - 4116 + 40 + 4106 - 43 - 218 - 4116 + 41 + 217 + 4106 - 234 + 235 758 - 4116 + 4106 - 767 - 2176 - 4116 + 768 + 2172 + 4106 2206 - 2882 - 4116 + 2884 + 4106 - 2890 + 2887 30763 - 2245 + 2240 @@ -5536,52 +5417,52 @@ 1 2 - 17215 + 17173 2 3 - 6237 + 6222 3 4 - 3243 + 3235 4 7 - 4241 + 4231 7 14 - 4241 + 4231 14 28 - 4490 + 4480 28 46 - 4116 + 4106 46 70 - 4116 + 4106 70 82 - 4241 + 4231 82 117 - 1247 + 1244 @@ -5597,52 +5478,52 @@ 1 2 - 15967 + 15929 2 3 - 5987 + 5973 3 8 - 4241 + 4231 8 18 - 4366 + 4355 18 - 41 - 4116 + 40 + 4106 - 43 - 217 - 4116 + 40 + 216 + 4106 - 232 + 233 755 - 4116 + 4106 - 768 - 2176 - 4116 + 769 + 2172 + 4106 2206 2862 - 4116 + 4106 - 2867 + 2864 30757 - 2245 + 2240 @@ -5652,15 +5533,15 @@ files - 65204 + 64949 id - 65204 + 64949 name - 65204 + 64949 @@ -5674,7 +5555,7 @@ 1 2 - 65204 + 64949 @@ -5690,7 +5571,7 @@ 1 2 - 65204 + 64949 @@ -5700,15 +5581,15 @@ folders - 12388 + 12339 id - 12388 + 12339 name - 12388 + 12339 @@ -5722,7 +5603,7 @@ 1 2 - 12388 + 12339 @@ -5738,7 +5619,7 @@ 1 2 - 12388 + 12339 @@ -5748,15 +5629,15 @@ containerparent - 77571 + 77268 parent - 12388 + 12339 child - 77571 + 77268 @@ -5770,42 +5651,42 @@ 1 2 - 6030 + 6006 2 3 - 1520 + 1514 3 4 - 665 + 662 4 6 - 1003 + 999 6 10 - 971 + 967 10 16 - 1003 + 999 16 44 - 929 + 925 44 151 - 264 + 262 @@ -5821,7 +5702,7 @@ 1 2 - 77571 + 77268 @@ -5831,23 +5712,23 @@ numlines - 807862 + 805928 element_id - 806739 + 804808 num_lines - 39420 + 39325 num_code - 34055 + 33974 num_comment - 18337 + 18293 @@ -5861,12 +5742,12 @@ 1 2 - 805616 + 803688 2 3 - 1122 + 1120 @@ -5882,12 +5763,12 @@ 1 2 - 805616 + 803688 2 3 - 1122 + 1120 @@ -5903,12 +5784,12 @@ 1 2 - 806489 + 804559 2 3 - 249 + 248 @@ -5924,27 +5805,27 @@ 1 2 - 26695 + 26631 2 3 - 3742 + 3733 3 5 - 3368 + 3360 5 35 - 2993 + 2986 39 1983 - 2619 + 2613 @@ -5960,27 +5841,27 @@ 1 2 - 27194 + 27129 2 3 - 4116 + 4106 3 4 - 2494 + 2488 4 7 - 3492 + 3484 7 12 - 2120 + 2115 @@ -5996,27 +5877,27 @@ 1 2 - 26820 + 26756 2 3 - 4116 + 4106 3 4 - 2370 + 2364 4 6 - 3243 + 3235 6 10 - 2869 + 2862 @@ -6032,32 +5913,32 @@ 1 2 - 21830 + 21778 2 3 - 3617 + 3609 3 4 - 2370 + 2364 4 13 - 2869 + 2862 14 198 - 2619 + 2613 204 2092 - 748 + 746 @@ -6073,32 +5954,32 @@ 1 2 - 22204 + 22151 2 3 - 3617 + 3609 3 4 - 2120 + 2115 4 6 - 1871 + 1866 6 9 - 2744 + 2737 9 13 - 1496 + 1493 @@ -6114,27 +5995,27 @@ 1 2 - 21955 + 21902 2 3 - 4241 + 4231 3 5 - 2869 + 2862 5 8 - 3118 + 3111 8 12 - 1871 + 1866 @@ -6150,32 +6031,32 @@ 1 2 - 11351 + 11324 2 3 - 1995 + 1991 3 4 - 1122 + 1120 4 7 - 1496 + 1493 8 22 - 1496 + 1493 42 3651 - 873 + 871 @@ -6191,32 +6072,32 @@ 1 2 - 11351 + 11324 2 3 - 1995 + 1991 3 4 - 1122 + 1120 4 7 - 1621 + 1617 8 27 - 1496 + 1493 30 48 - 748 + 746 @@ -6232,32 +6113,32 @@ 1 2 - 11351 + 11324 2 3 - 1995 + 1991 3 4 - 1372 + 1368 4 8 - 1496 + 1493 8 31 - 1496 + 1493 35 42 - 623 + 622 @@ -6267,11 +6148,11 @@ diagnostics - 359 + 357 id - 359 + 357 severity @@ -6287,11 +6168,11 @@ full_error_message - 179 + 178 location - 179 + 178 @@ -6305,7 +6186,7 @@ 1 2 - 359 + 357 @@ -6321,7 +6202,7 @@ 1 2 - 359 + 357 @@ -6337,7 +6218,7 @@ 1 2 - 359 + 357 @@ -6353,7 +6234,7 @@ 1 2 - 359 + 357 @@ -6369,7 +6250,7 @@ 1 2 - 359 + 357 @@ -6673,7 +6554,7 @@ 1 2 - 116 + 115 2 @@ -6694,7 +6575,7 @@ 1 2 - 116 + 115 2 @@ -6736,7 +6617,7 @@ 1 2 - 179 + 178 @@ -6752,7 +6633,7 @@ 1 2 - 179 + 178 @@ -6768,7 +6649,7 @@ 1 2 - 179 + 178 @@ -6784,7 +6665,7 @@ 1 2 - 179 + 178 @@ -6821,7 +6702,7 @@ 1 2 - 179 + 178 @@ -6837,7 +6718,7 @@ 1 2 - 179 + 178 @@ -6853,7 +6734,7 @@ 1 2 - 179 + 178 @@ -6869,7 +6750,7 @@ 1 2 - 179 + 178 @@ -6927,19 +6808,19 @@ pch_uses - 4127 + 4121 pch - 162 + 161 compilation - 4127 + 4121 id - 4127 + 4121 @@ -7135,7 +7016,7 @@ 1 2 - 4127 + 4121 @@ -7151,7 +7032,7 @@ 1 2 - 4127 + 4121 @@ -7167,7 +7048,7 @@ 1 2 - 4127 + 4121 @@ -7183,7 +7064,7 @@ 1 2 - 4127 + 4121 @@ -7193,19 +7074,19 @@ pch_creations - 249 + 248 pch - 249 + 248 compilation - 249 + 248 from - 249 + 248 @@ -7219,7 +7100,7 @@ 1 2 - 249 + 248 @@ -7235,7 +7116,7 @@ 1 2 - 249 + 248 @@ -7251,7 +7132,7 @@ 1 2 - 249 + 248 @@ -7267,7 +7148,7 @@ 1 2 - 249 + 248 @@ -7283,7 +7164,7 @@ 1 2 - 249 + 248 @@ -7299,7 +7180,7 @@ 1 2 - 249 + 248 @@ -7309,11 +7190,11 @@ fileannotations - 4200019 + 4183618 id - 5766 + 5743 kind @@ -7321,11 +7202,11 @@ name - 58709 + 58480 value - 39509 + 39354 @@ -7339,12 +7220,12 @@ 1 2 - 200 + 199 2 3 - 5565 + 5543 @@ -7360,62 +7241,62 @@ 1 86 - 433 + 431 88 206 - 433 + 431 212 291 - 443 + 441 291 359 - 433 + 431 362 401 - 433 + 431 402 479 - 433 + 431 480 549 - 253 + 252 550 551 - 1330 + 1325 553 628 - 433 + 431 631 753 - 454 + 452 753 1231 - 443 + 441 1234 2155 - 242 + 241 @@ -7431,32 +7312,32 @@ 1 98 - 433 + 431 102 244 - 433 + 431 244 351 - 433 + 431 352 434 - 443 + 441 434 490 - 443 + 441 490 628 - 433 + 431 632 @@ -7466,27 +7347,27 @@ 706 707 - 1330 + 1325 710 939 - 433 + 431 939 1038 - 433 + 431 1066 1853 - 433 + 431 1853 3292 - 433 + 431 3423 @@ -7570,62 +7451,62 @@ 1 2 - 11025 + 10982 2 3 - 4361 + 4344 3 5 - 5058 + 5039 5 7 - 4097 + 4081 7 9 - 4594 + 4576 9 16 - 4330 + 4313 16 19 - 4889 + 4870 19 27 - 4256 + 4239 27 47 - 4837 + 4818 47 128 - 4921 + 4902 128 459 - 4625 + 4607 459 546 - 1710 + 1704 @@ -7641,7 +7522,7 @@ 1 2 - 58709 + 58480 @@ -7657,57 +7538,57 @@ 1 2 - 11585 + 11540 2 3 - 7688 + 7658 3 4 - 4097 + 4081 4 6 - 4066 + 4050 6 8 - 3421 + 3408 8 11 - 4741 + 4723 11 17 - 5396 + 5375 17 23 - 4699 + 4681 23 41 - 4678 + 4660 41 95 - 4467 + 4449 95 1726 - 3865 + 3850 @@ -7723,72 +7604,72 @@ 1 2 - 3358 + 3345 2 4 - 1636 + 1630 4 5 - 3189 + 3177 5 8 - 2460 + 2451 8 14 - 2967 + 2956 14 17 - 1932 + 1925 17 24 - 3041 + 3029 24 51 - 3537 + 3524 51 58 - 3031 + 3019 58 80 - 2978 + 2966 81 151 - 3083 + 3071 151 334 - 2978 + 2966 334 473 - 2999 + 2987 473 547 - 2312 + 2303 @@ -7804,7 +7685,7 @@ 1 2 - 39498 + 39344 2 @@ -7825,72 +7706,72 @@ 1 2 - 3400 + 3387 2 4 - 1911 + 1904 4 5 - 3052 + 3040 5 8 - 2481 + 2472 8 14 - 3485 + 3471 14 18 - 3453 + 3440 18 28 - 3200 + 3187 28 34 - 3147 + 3134 34 41 - 3200 + 3187 41 66 - 2988 + 2977 66 92 - 3073 + 3061 92 113 - 2988 + 2977 113 145 - 3031 + 3019 145 172 - 95 + 94 @@ -7900,15 +7781,15 @@ inmacroexpansion - 149997296 + 150011383 id - 24671176 + 24673494 inv - 3705372 + 3705720 @@ -7922,37 +7803,37 @@ 1 3 - 2209512 + 2209721 3 5 - 1474990 + 1475128 5 6 - 1620382 + 1620535 6 7 - 6582599 + 6583218 7 8 - 8719073 + 8719891 8 9 - 3557078 + 3557412 9 22 - 507539 + 507586 @@ -7968,32 +7849,32 @@ 1 2 - 531711 + 531761 2 3 - 743239 + 743308 3 4 - 481516 + 481561 4 7 - 275305 + 275331 7 8 - 282155 + 282181 8 9 - 330249 + 330280 9 @@ -8003,22 +7884,22 @@ 10 11 - 444654 + 444695 11 337 - 307801 + 307829 339 423 - 281757 + 281784 423 7616 - 23935 + 23937 @@ -8028,15 +7909,15 @@ affectedbymacroexpansion - 48736245 + 48740821 id - 7044800 + 7045462 inv - 3803153 + 3803510 @@ -8050,37 +7931,37 @@ 1 2 - 3846743 + 3847104 2 3 - 766311 + 766383 3 4 - 361844 + 361878 4 5 - 772743 + 772815 5 12 - 535164 + 535215 12 50 - 556272 + 556324 50 9900 - 205721 + 205740 @@ -8096,67 +7977,67 @@ 1 4 - 313251 + 313280 4 7 - 316610 + 316639 7 9 - 301090 + 301118 9 12 - 342941 + 342973 12 13 - 456008 + 456051 13 14 - 226101 + 226122 14 15 - 408042 + 408080 15 16 - 166430 + 166446 16 17 - 377681 + 377716 17 18 - 200638 + 200657 18 20 - 344258 + 344290 20 25 - 285395 + 285422 25 207 - 64702 + 64709 @@ -8166,19 +8047,19 @@ macroinvocations - 40354061 + 40387480 id - 40354061 + 40387480 macro_id - 182487 + 182555 location - 5919829 + 5925540 kind @@ -8196,7 +8077,7 @@ 1 2 - 40354061 + 40387480 @@ -8212,7 +8093,7 @@ 1 2 - 40354061 + 40387480 @@ -8228,7 +8109,7 @@ 1 2 - 40354061 + 40387480 @@ -8244,17 +8125,17 @@ 1 2 - 61156 + 61106 2 3 - 27610 + 27666 3 4 - 17971 + 17972 4 @@ -8264,27 +8145,27 @@ 5 7 - 13777 + 13833 7 13 - 14703 + 14704 13 33 - 13777 + 13724 33 182 - 13723 + 13724 185 - 72152 - 9747 + 72208 + 9803 @@ -8300,42 +8181,42 @@ 1 2 - 77656 + 77607 2 3 - 30605 + 30661 3 4 - 14322 + 14377 4 5 - 10292 + 10293 5 8 - 14104 + 14051 8 18 - 14213 + 14214 18 90 - 13723 + 13778 90 - 12187 - 7569 + 12205 + 7570 @@ -8351,12 +8232,12 @@ 1 2 - 177859 + 178035 2 3 - 4628 + 4520 @@ -8372,17 +8253,17 @@ 1 2 - 5256860 + 5261598 2 4 - 428528 + 429484 4 - 72152 - 234440 + 72208 + 234457 @@ -8398,12 +8279,12 @@ 1 2 - 5897665 + 5903374 2 37 - 22164 + 22165 @@ -8419,7 +8300,7 @@ 1 2 - 5919829 + 5925540 @@ -8433,13 +8314,13 @@ 12 - 1499 - 1500 + 1494 + 1495 54 - 739517 - 739518 + 740082 + 740083 54 @@ -8454,13 +8335,13 @@ 12 - 291 - 292 + 289 + 290 54 - 3145 - 3146 + 3146 + 3147 54 @@ -8475,13 +8356,13 @@ 12 - 1078 - 1079 + 1076 + 1077 54 - 107627 - 107628 + 107726 + 107727 54 @@ -8492,15 +8373,15 @@ macroparent - 33658318 + 33684444 id - 33658318 + 33684444 parent_id - 15929108 + 15941262 @@ -8514,7 +8395,7 @@ 1 2 - 33658318 + 33684444 @@ -8530,27 +8411,27 @@ 1 2 - 7809240 + 7815088 2 3 - 1595503 + 1595836 3 4 - 4703025 + 4707395 4 5 - 1295331 + 1296896 5 205 - 526007 + 526045 @@ -8560,15 +8441,15 @@ macrolocationbind - 6033959 + 6022278 id - 4217710 + 4208237 location - 2276069 + 2272394 @@ -8582,27 +8463,27 @@ 1 2 - 3292783 + 3284816 2 3 - 490566 + 489028 3 4 - 7885 + 8602 4 5 - 413303 + 412639 5 17 - 13170 + 13149 @@ -8618,27 +8499,27 @@ 1 2 - 1335114 + 1332220 2 3 - 481456 + 481413 3 4 - 7799 + 7786 4 5 - 427613 + 426926 5 522 - 24085 + 24047 @@ -8648,19 +8529,19 @@ macro_argument_unexpanded - 82486758 + 82172786 invocation - 26280952 + 26182328 argument_index - 697 + 694 text - 343226 + 341886 @@ -8674,22 +8555,22 @@ 1 2 - 9680186 + 9642934 2 3 - 9769396 + 9734025 3 4 - 5001631 + 4982774 4 67 - 1829739 + 1822594 @@ -8705,22 +8586,22 @@ 1 2 - 9862798 + 9824833 2 3 - 9786938 + 9751541 3 4 - 4844988 + 4826700 4 67 - 1786227 + 1779252 @@ -8736,7 +8617,7 @@ 46457 46458 - 612 + 610 46659 @@ -8744,8 +8625,8 @@ 52 - 646840 - 2488458 + 646904 + 2488838 31 @@ -8762,7 +8643,7 @@ 2 3 - 612 + 610 13 @@ -8788,57 +8669,57 @@ 1 2 - 39699 + 39544 2 3 - 62321 + 62077 3 4 - 21027 + 20934 4 5 - 34577 + 34442 5 6 - 39245 + 39091 6 9 - 30870 + 30749 9 15 - 28979 + 28877 15 26 - 25885 + 25773 26 57 - 27142 + 27025 57 517 - 25990 + 25910 518 - 486610 - 7487 + 486643 + 7458 @@ -8854,17 +8735,17 @@ 1 2 - 243149 + 242199 2 3 - 89864 + 89513 3 9 - 10212 + 10172 @@ -8874,19 +8755,19 @@ macro_argument_expanded - 82486758 + 82172786 invocation - 26280952 + 26182328 argument_index - 697 + 694 text - 207906 + 207063 @@ -8900,22 +8781,22 @@ 1 2 - 9680186 + 9642934 2 3 - 9769396 + 9734025 3 4 - 5001631 + 4982774 4 67 - 1829739 + 1822594 @@ -8931,22 +8812,22 @@ 1 2 - 12638489 + 12590853 2 3 - 8427402 + 8396588 3 4 - 4224795 + 4208487 4 9 - 990265 + 986398 @@ -8962,7 +8843,7 @@ 46457 46458 - 612 + 610 46659 @@ -8970,8 +8851,8 @@ 52 - 646840 - 2488458 + 646904 + 2488838 31 @@ -8988,7 +8869,7 @@ 1 2 - 601 + 599 2 @@ -8997,7 +8878,7 @@ 950 - 16176 + 16173 42 @@ -9014,57 +8895,57 @@ 1 2 - 21829 + 21744 2 3 - 26856 + 26752 3 4 - 43490 + 43299 4 5 - 15905 + 15842 5 6 - 3263 + 3250 6 7 - 18397 + 18325 7 10 - 18967 + 18883 10 19 - 18323 + 18252 19 51 - 15778 + 15695 51 - 252 - 15598 + 251 + 15548 - 252 - 1169361 - 9494 + 251 + 1169569 + 9467 @@ -9080,17 +8961,17 @@ 1 2 - 105072 + 104630 2 3 - 88903 + 88556 3 66 - 13930 + 13875 @@ -9100,19 +8981,19 @@ functions - 4049290 + 4043205 id - 4049290 + 4043205 name - 1693316 + 1689263 kind - 873 + 871 @@ -9126,7 +9007,7 @@ 1 2 - 4049290 + 4043205 @@ -9142,7 +9023,7 @@ 1 2 - 4049290 + 4043205 @@ -9158,17 +9039,17 @@ 1 2 - 1447190 + 1441361 2 4 - 138968 + 140377 4 3162 - 107157 + 107523 @@ -9184,12 +9065,12 @@ 1 2 - 1690447 + 1686400 2 3 - 2869 + 2862 @@ -9223,8 +9104,8 @@ 124 - 4453 - 4454 + 4456 + 4457 124 @@ -9233,8 +9114,8 @@ 124 - 21948 - 21949 + 21974 + 21975 124 @@ -9291,26 +9172,26 @@ builtin_functions - 30923 + 30802 id - 30923 + 30802 function_entry_point - 1141776 + 1134682 id - 1138028 + 1130959 entry_point - 1141776 + 1134682 @@ -9324,12 +9205,12 @@ 1 2 - 1134826 + 1127777 2 17 - 3202 + 3181 @@ -9345,7 +9226,7 @@ 1 2 - 1141776 + 1134682 @@ -9355,15 +9236,15 @@ function_return_type - 4066754 + 4060504 id - 4049290 + 4043205 return_type - 619244 + 617762 @@ -9377,12 +9258,12 @@ 1 2 - 4031825 + 4025907 2 3 - 17464 + 17298 @@ -9398,27 +9279,27 @@ 1 2 - 309871 + 309005 2 3 - 213691 + 213180 3 5 - 48027 + 48037 5 365 - 46530 + 46419 432 - 9944 - 1122 + 9958 + 1120 @@ -9698,59 +9579,59 @@ purefunctions - 131626 + 131546 id - 131626 + 131546 function_deleted - 87963 + 87800 id - 87963 + 87800 function_defaulted - 51609 + 51526 id - 51609 + 51526 function_prototyped - 4047793 + 4041712 id - 4047793 + 4041712 deduction_guide_for_class - 5863 + 5849 id - 5863 + 5849 class_template - 2245 + 2240 @@ -9764,7 +9645,7 @@ 1 2 - 5863 + 5849 @@ -9780,12 +9661,12 @@ 1 2 - 1122 + 1120 2 3 - 374 + 373 3 @@ -9795,7 +9676,7 @@ 4 5 - 249 + 248 5 @@ -9805,7 +9686,7 @@ 8 9 - 249 + 248 @@ -9815,15 +9696,15 @@ member_function_this_type - 674133 + 672519 id - 674133 + 672519 this_type - 176018 + 175596 @@ -9837,7 +9718,7 @@ 1 2 - 674133 + 672519 @@ -9853,37 +9734,37 @@ 1 2 - 47154 + 47041 2 3 - 36925 + 36836 3 4 - 32683 + 32605 4 5 - 20084 + 20036 5 6 - 12848 + 12818 6 10 - 14470 + 14436 10 65 - 11850 + 11822 @@ -9893,27 +9774,27 @@ fun_decls - 4208841 + 4199388 id - 4202854 + 4193414 function - 4024715 + 4018689 type_id - 611260 + 609797 name - 1691819 + 1687769 location - 2813171 + 2806436 @@ -9927,7 +9808,7 @@ 1 2 - 4202854 + 4193414 @@ -9943,12 +9824,12 @@ 1 2 - 4196866 + 4187441 2 3 - 5987 + 5973 @@ -9964,7 +9845,7 @@ 1 2 - 4202854 + 4193414 @@ -9980,7 +9861,7 @@ 1 2 - 4202854 + 4193414 @@ -9996,12 +9877,12 @@ 1 2 - 3861171 + 3858524 2 5 - 163543 + 160165 @@ -10017,12 +9898,12 @@ 1 2 - 4006252 + 4000395 2 3 - 18462 + 18293 @@ -10038,7 +9919,7 @@ 1 2 - 4024715 + 4018689 @@ -10054,12 +9935,12 @@ 1 2 - 3881630 + 3878435 2 4 - 143084 + 140253 @@ -10075,27 +9956,27 @@ 1 2 - 295151 + 294445 2 3 - 220552 + 220024 3 5 - 48401 + 48285 5 364 - 45906 + 45797 364 - 10292 - 1247 + 10294 + 1244 @@ -10111,27 +9992,27 @@ 1 2 - 305256 + 304400 2 3 - 211820 + 211313 3 5 - 48027 + 48037 5 1163 - 45906 + 45797 - 1483 - 9893 - 249 + 1485 + 9907 + 248 @@ -10147,22 +10028,22 @@ 1 2 - 491503 + 490326 2 3 - 52892 + 52766 3 7 - 50148 + 50028 7 2238 - 16716 + 16676 @@ -10178,22 +10059,22 @@ 1 2 - 454952 + 453863 2 3 - 69484 + 69317 3 6 - 56011 + 55877 6 4756 - 30812 + 30738 @@ -10209,22 +10090,22 @@ 1 2 - 1331300 + 1328362 2 3 - 194480 + 193392 3 11 - 129487 + 129550 11 3169 - 36550 + 36463 @@ -10240,17 +10121,17 @@ 1 2 - 1446691 + 1440864 2 4 - 139467 + 140875 4 3162 - 105660 + 106030 @@ -10266,12 +10147,12 @@ 1 2 - 1602002 + 1598166 2 1596 - 89817 + 89602 @@ -10287,17 +10168,17 @@ 1 2 - 1367228 + 1363955 2 3 - 208327 + 207828 3 1592 - 116264 + 115985 @@ -10313,17 +10194,17 @@ 1 2 - 2420218 + 2413304 2 3 - 251490 + 252008 3 211 - 141463 + 141124 @@ -10339,17 +10220,17 @@ 1 2 - 2438930 + 2431971 2 3 - 233277 + 233838 3 211 - 140964 + 140626 @@ -10365,12 +10246,12 @@ 1 2 - 2698778 + 2692317 2 211 - 114393 + 114119 @@ -10386,12 +10267,12 @@ 1 2 - 2774000 + 2767360 2 8 - 39170 + 39076 @@ -10401,22 +10282,22 @@ fun_def - 1422241 + 1418836 id - 1422241 + 1418836 fun_specialized - 7922 + 7911 id - 7922 + 7911 @@ -10434,15 +10315,15 @@ fun_decl_specifiers - 4279573 + 4269577 id - 1748205 + 1744269 name - 1372 + 1368 @@ -10456,22 +10337,22 @@ 1 2 - 362889 + 362269 2 3 - 262218 + 261590 3 4 - 1100144 + 1097510 4 5 - 22953 + 22898 @@ -10515,8 +10396,8 @@ 124 - 1032 - 1033 + 1034 + 1035 124 @@ -10668,26 +10549,26 @@ fun_decl_empty_throws - 421168 + 420764 fun_decl - 421168 + 420764 fun_decl_noexcept - 141823 + 140908 fun_decl - 141823 + 140908 constant - 141346 + 140468 @@ -10701,7 +10582,7 @@ 1 2 - 141823 + 140908 @@ -10717,12 +10598,12 @@ 1 2 - 140903 + 140028 2 - 4 - 442 + 3 + 440 @@ -10732,26 +10613,26 @@ fun_decl_empty_noexcept - 1163640 + 1160855 fun_decl - 1163640 + 1160855 fun_decl_typedef_type - 2760 + 2755 fun_decl - 2760 + 2755 typedeftype_id - 124 + 123 @@ -10765,7 +10646,7 @@ 1 2 - 2760 + 2755 @@ -10781,57 +10662,57 @@ 1 2 - 40 + 39 2 3 - 12 + 11 3 4 - 12 + 11 5 13 - 8 + 7 16 17 - 12 + 11 17 18 - 4 + 3 21 22 - 8 + 7 25 43 - 8 + 7 46 55 - 8 + 7 89 128 - 8 + 7 158 159 - 4 + 3 @@ -10841,11 +10722,11 @@ fun_requires - 29070 + 29023 id - 10098 + 10082 kind @@ -10853,7 +10734,7 @@ constraint - 28834 + 28787 @@ -10867,7 +10748,7 @@ 1 2 - 10033 + 10017 2 @@ -10888,27 +10769,27 @@ 1 2 - 7262 + 7250 2 3 - 494 + 493 3 6 - 859 + 858 6 13 - 322 + 321 13 14 - 1138 + 1136 19 @@ -10971,12 +10852,12 @@ 1 2 - 28597 + 28551 2 3 - 236 + 235 @@ -10992,7 +10873,7 @@ 1 2 - 28834 + 28787 @@ -11002,19 +10883,19 @@ param_decl_bind - 7310179 + 7294670 id - 7310179 + 7294670 index - 7983 + 7964 fun_decl - 3531589 + 3524006 @@ -11028,7 +10909,7 @@ 1 2 - 7310179 + 7294670 @@ -11044,7 +10925,7 @@ 1 2 - 7310179 + 7294670 @@ -11060,31 +10941,31 @@ 2 3 - 3991 + 3982 6 7 - 1995 + 1991 16 20 - 623 + 622 25 147 - 623 + 622 343 - 16215 - 623 + 16218 + 622 - 28310 - 28311 + 28317 + 28318 124 @@ -11101,31 +10982,31 @@ 2 3 - 3991 + 3982 6 7 - 1995 + 1991 16 20 - 623 + 622 25 147 - 623 + 622 343 - 16215 - 623 + 16218 + 622 - 28310 - 28311 + 28317 + 28318 124 @@ -11142,27 +11023,27 @@ 1 2 - 1508940 + 1505826 2 3 - 976270 + 973933 3 4 - 602029 + 600712 4 5 - 290660 + 290089 5 65 - 153688 + 153444 @@ -11178,27 +11059,27 @@ 1 2 - 1508940 + 1505826 2 3 - 976270 + 973933 3 4 - 602029 + 600712 4 5 - 290660 + 290089 5 65 - 153688 + 153444 @@ -11208,27 +11089,27 @@ var_decls - 9389962 + 9374452 id - 9383101 + 9367981 variable - 9034682 + 9027366 type_id - 1456422 + 1452935 name - 852521 + 850480 location - 6274404 + 6259508 @@ -11242,7 +11123,7 @@ 1 2 - 9383101 + 9367981 @@ -11258,12 +11139,12 @@ 1 2 - 9376240 + 9361510 2 3 - 6861 + 6471 @@ -11279,7 +11160,7 @@ 1 2 - 9383101 + 9367981 @@ -11295,7 +11176,7 @@ 1 2 - 9383101 + 9367981 @@ -11311,12 +11192,12 @@ 1 2 - 8703728 + 8704173 2 5 - 330954 + 323192 @@ -11332,12 +11213,12 @@ 1 2 - 8981166 + 8974351 2 3 - 53516 + 53015 @@ -11353,12 +11234,12 @@ 1 2 - 8929271 + 8922207 2 4 - 105411 + 105158 @@ -11374,12 +11255,12 @@ 1 2 - 8783068 + 8783073 2 4 - 251614 + 244292 @@ -11395,27 +11276,27 @@ 1 2 - 849901 + 847867 2 3 - 284049 + 283244 3 5 - 127366 + 127186 5 11 - 113145 + 112874 11 - 2944 - 81958 + 2949 + 81762 @@ -11431,27 +11312,27 @@ 1 2 - 870734 + 868525 2 3 - 269079 + 268435 3 5 - 122751 + 122581 5 11 - 113020 + 112501 11 - 2860 - 80836 + 2872 + 80891 @@ -11467,22 +11348,22 @@ 1 2 - 1119480 + 1116800 2 3 - 192609 + 192148 3 7 - 115266 + 114990 7 1038 - 29066 + 28996 @@ -11498,27 +11379,27 @@ 1 2 - 985377 + 983018 2 3 - 219055 + 218531 3 6 - 133604 + 133284 6 95 - 109278 + 109016 97 2622 - 9106 + 9084 @@ -11534,32 +11415,32 @@ 1 2 - 465930 + 464690 2 3 - 165788 + 164894 3 4 - 59629 + 59361 4 7 - 65866 + 66206 7 25 - 64120 + 64090 25 - 27139 - 31186 + 27137 + 31236 @@ -11575,32 +11456,32 @@ 1 2 - 478904 + 475766 2 3 - 165040 + 164894 3 4 - 54639 + 55130 4 8 - 71604 + 72180 8 - 45 - 64244 + 44 + 63842 - 45 + 44 26704 - 18088 + 18667 @@ -11616,22 +11497,22 @@ 1 2 - 654672 + 653105 2 3 - 110775 + 110510 3 11 - 65492 + 65335 11 3463 - 21581 + 21529 @@ -11647,27 +11528,27 @@ 1 2 - 493748 + 492442 2 3 - 183253 + 182939 3 4 - 51645 + 51521 4 8 - 64993 + 64837 8 22619 - 58880 + 58739 @@ -11683,17 +11564,17 @@ 1 2 - 5774667 + 5758603 2 - 21 - 472292 + 20 + 470788 - 21 - 2943 - 27444 + 20 + 2941 + 30116 @@ -11709,12 +11590,12 @@ 1 2 - 5855503 + 5839245 2 2935 - 418900 + 420262 @@ -11730,12 +11611,12 @@ 1 2 - 5975884 + 5961703 2 2555 - 298519 + 297805 @@ -11751,12 +11632,12 @@ 1 2 - 6262054 + 6247187 2 5 - 12349 + 12320 @@ -11766,37 +11647,37 @@ var_def - 3766862 + 3763196 id - 3766862 + 3763196 var_specialized - 644 + 643 id - 644 + 643 var_decl_specifiers - 489881 + 488709 id - 489881 + 488709 name - 498 + 497 @@ -11810,7 +11691,7 @@ 1 2 - 489881 + 488709 @@ -11851,11 +11732,11 @@ is_structured_binding - 945 + 943 id - 945 + 943 @@ -11920,19 +11801,19 @@ type_decls - 1633438 + 1629528 id - 1633438 + 1629528 type_id - 1614476 + 1610611 location - 1547362 + 1543658 @@ -11946,7 +11827,7 @@ 1 2 - 1633438 + 1629528 @@ -11962,7 +11843,7 @@ 1 2 - 1633438 + 1629528 @@ -11978,12 +11859,12 @@ 1 2 - 1598134 + 1594309 2 10 - 16341 + 16302 @@ -11999,12 +11880,12 @@ 1 2 - 1598259 + 1594433 2 10 - 16217 + 16178 @@ -12020,12 +11901,12 @@ 1 2 - 1525282 + 1521631 2 64 - 22080 + 22027 @@ -12041,12 +11922,12 @@ 1 2 - 1525407 + 1521755 2 64 - 21955 + 21902 @@ -12056,37 +11937,37 @@ type_def - 1095528 + 1092906 id - 1095528 + 1092906 type_decl_top - 675276 + 675760 type_decl - 675276 + 675760 type_requires - 7670 + 7658 id - 2041 + 2037 constraint - 7648 + 7636 @@ -12100,7 +11981,7 @@ 1 2 - 1009 + 1008 2 @@ -12110,7 +11991,7 @@ 5 6 - 601 + 600 6 @@ -12136,7 +12017,7 @@ 1 2 - 7627 + 7615 2 @@ -12151,23 +12032,23 @@ namespace_decls - 407918 + 407977 id - 407918 + 407977 namespace_id - 1840 + 1838 location - 407918 + 407977 bodylocation - 407918 + 407977 @@ -12181,7 +12062,7 @@ 1 2 - 407918 + 407977 @@ -12197,7 +12078,7 @@ 1 2 - 407918 + 407977 @@ -12213,7 +12094,7 @@ 1 2 - 407918 + 407977 @@ -12229,7 +12110,7 @@ 1 2 - 389 + 388 2 @@ -12244,7 +12125,7 @@ 6 15 - 154 + 153 15 @@ -12264,22 +12145,22 @@ 86 144 - 162 + 153 - 151 - 264 + 153 + 232 145 - 270 - 1870 + 263 + 1509 145 - 2205 - 12488 - 32 + 1882 + 12507 + 40 @@ -12295,7 +12176,7 @@ 1 2 - 389 + 388 2 @@ -12310,7 +12191,7 @@ 6 15 - 154 + 153 15 @@ -12330,22 +12211,22 @@ 86 144 - 162 + 153 - 151 - 264 + 153 + 232 145 - 270 - 1870 + 263 + 1509 145 - 2205 - 12488 - 32 + 1882 + 12507 + 40 @@ -12361,7 +12242,7 @@ 1 2 - 389 + 388 2 @@ -12376,7 +12257,7 @@ 6 15 - 154 + 153 15 @@ -12396,22 +12277,22 @@ 86 144 - 162 + 153 - 151 - 264 + 153 + 232 145 - 270 - 1870 + 263 + 1509 145 - 2205 - 12488 - 32 + 1882 + 12507 + 40 @@ -12427,7 +12308,7 @@ 1 2 - 407918 + 407977 @@ -12443,7 +12324,7 @@ 1 2 - 407918 + 407977 @@ -12459,7 +12340,7 @@ 1 2 - 407918 + 407977 @@ -12475,7 +12356,7 @@ 1 2 - 407918 + 407977 @@ -12491,7 +12372,7 @@ 1 2 - 407918 + 407977 @@ -12507,7 +12388,7 @@ 1 2 - 407918 + 407977 @@ -12517,19 +12398,19 @@ usings - 272192 + 271118 id - 272192 + 271118 element_id - 59184 + 58943 location - 26846 + 26741 kind @@ -12547,7 +12428,7 @@ 1 2 - 272192 + 271118 @@ -12563,7 +12444,7 @@ 1 2 - 272192 + 271118 @@ -12579,7 +12460,7 @@ 1 2 - 272192 + 271118 @@ -12595,17 +12476,17 @@ 1 2 - 51453 + 51242 2 5 - 5386 + 5365 5 134 - 2344 + 2335 @@ -12621,17 +12502,17 @@ 1 2 - 51453 + 51242 2 5 - 5386 + 5365 5 134 - 2344 + 2335 @@ -12647,7 +12528,7 @@ 1 2 - 59184 + 58943 @@ -12663,22 +12544,22 @@ 1 2 - 21175 + 21092 2 4 - 2291 + 2293 4 132 - 1953 + 1935 145 371 - 1425 + 1420 @@ -12694,22 +12575,22 @@ 1 2 - 21175 + 21092 2 4 - 2291 + 2293 4 132 - 1953 + 1935 145 371 - 1425 + 1420 @@ -12725,7 +12606,7 @@ 1 2 - 26846 + 26741 @@ -12744,8 +12625,8 @@ 10 - 25380 - 25381 + 25379 + 25380 10 @@ -12765,8 +12646,8 @@ 10 - 5390 - 5391 + 5389 + 5390 10 @@ -12798,15 +12679,15 @@ using_container - 580229 + 577953 parent - 21914 + 21828 child - 272192 + 271118 @@ -12820,42 +12701,42 @@ 1 2 - 10371 + 10330 2 3 - 1615 + 1609 3 6 - 1858 + 1851 6 7 - 2312 + 2303 7 28 - 1668 + 1662 28 136 - 781 + 778 145 146 - 2619 + 2608 146 437 - 686 + 683 @@ -12871,27 +12752,27 @@ 1 2 - 96729 + 96341 2 3 - 120270 + 119800 3 4 - 20097 + 20019 4 5 - 26709 + 26604 5 65 - 8385 + 8352 @@ -12901,27 +12782,27 @@ static_asserts - 172982 + 172749 id - 172982 + 172749 condition - 172982 + 172749 message - 38704 + 38652 location - 22616 + 22585 enclosing - 6819 + 6810 @@ -12935,7 +12816,7 @@ 1 2 - 172982 + 172749 @@ -12951,7 +12832,7 @@ 1 2 - 172982 + 172749 @@ -12967,7 +12848,7 @@ 1 2 - 172982 + 172749 @@ -12983,7 +12864,7 @@ 1 2 - 172982 + 172749 @@ -12999,7 +12880,7 @@ 1 2 - 172982 + 172749 @@ -13015,7 +12896,7 @@ 1 2 - 172982 + 172749 @@ -13031,7 +12912,7 @@ 1 2 - 172982 + 172749 @@ -13047,7 +12928,7 @@ 1 2 - 172982 + 172749 @@ -13063,32 +12944,32 @@ 1 2 - 28454 + 28416 2 3 - 640 + 639 3 4 - 3624 + 3619 4 12 - 2084 + 2081 12 17 - 3130 + 3125 17 513 - 770 + 769 @@ -13104,32 +12985,32 @@ 1 2 - 28454 + 28416 2 3 - 640 + 639 3 4 - 3624 + 3619 4 12 - 2084 + 2081 12 17 - 3130 + 3125 17 513 - 770 + 769 @@ -13145,12 +13026,12 @@ 1 2 - 35866 + 35818 2 33 - 2838 + 2834 @@ -13166,7 +13047,7 @@ 1 2 - 30263 + 30222 2 @@ -13176,17 +13057,17 @@ 3 4 - 3389 + 3385 4 12 - 1905 + 1903 12 43 - 2797 + 2793 @@ -13202,17 +13083,17 @@ 1 2 - 4273 + 4267 2 3 - 3722 + 3717 3 4 - 1743 + 1741 4 @@ -13222,7 +13103,7 @@ 5 6 - 4727 + 4721 6 @@ -13232,7 +13113,7 @@ 14 15 - 2643 + 2640 16 @@ -13242,7 +13123,7 @@ 17 18 - 4387 + 4381 19 @@ -13263,17 +13144,17 @@ 1 2 - 4273 + 4267 2 3 - 3722 + 3717 3 4 - 1743 + 1741 4 @@ -13283,7 +13164,7 @@ 5 6 - 4727 + 4721 6 @@ -13293,7 +13174,7 @@ 14 15 - 2643 + 2640 16 @@ -13303,7 +13184,7 @@ 17 18 - 4387 + 4381 19 @@ -13324,22 +13205,22 @@ 1 2 - 6949 + 6940 2 3 - 7663 + 7652 3 4 - 7768 + 7758 4 7 - 235 + 234 @@ -13355,32 +13236,32 @@ 1 2 - 5060 + 5053 2 3 - 8084 + 8073 3 4 - 1483 + 1481 4 5 - 4751 + 4745 5 13 - 494 + 493 13 14 - 2643 + 2640 16 @@ -13401,17 +13282,17 @@ 1 2 - 5716 + 5709 2 3 - 527 + 526 3 228 - 527 + 526 229 @@ -13432,17 +13313,17 @@ 1 2 - 5716 + 5709 2 3 - 527 + 526 3 228 - 527 + 526 229 @@ -13463,7 +13344,7 @@ 1 2 - 5870 + 5863 2 @@ -13489,12 +13370,12 @@ 1 2 - 5854 + 5846 2 3 - 535 + 534 3 @@ -13509,23 +13390,23 @@ params - 7060560 + 7052244 id - 7019643 + 7011799 function - 3404846 + 3400305 index - 7983 + 7964 type_id - 1220275 + 1217354 @@ -13539,7 +13420,7 @@ 1 2 - 7019643 + 7011799 @@ -13555,7 +13436,7 @@ 1 2 - 7019643 + 7011799 @@ -13571,12 +13452,12 @@ 1 2 - 6978726 + 6971353 2 3 - 40917 + 40445 @@ -13592,27 +13473,27 @@ 1 2 - 1473138 + 1470856 2 3 - 926247 + 924776 3 4 - 578701 + 578187 4 5 - 280805 + 280506 5 65 - 145954 + 145978 @@ -13628,27 +13509,27 @@ 1 2 - 1473138 + 1470856 2 3 - 926247 + 924776 3 4 - 578701 + 578187 4 5 - 280805 + 280506 5 65 - 145954 + 145978 @@ -13664,22 +13545,22 @@ 1 2 - 1781637 + 1778617 2 3 - 1030660 + 1029313 3 4 - 437488 + 437436 4 11 - 155060 + 154938 @@ -13695,31 +13576,31 @@ 2 3 - 3991 + 3982 6 7 - 1995 + 1991 14 18 - 623 + 622 23 138 - 623 + 622 - 320 - 15486 - 623 + 322 + 15505 + 622 - 27294 - 27295 + 27323 + 27324 124 @@ -13736,31 +13617,31 @@ 2 3 - 3991 + 3982 6 7 - 1995 + 1991 14 18 - 623 + 622 23 138 - 623 + 622 - 320 - 15486 - 623 + 322 + 15505 + 622 - 27294 - 27295 + 27323 + 27324 124 @@ -13777,27 +13658,27 @@ 1 2 - 3991 + 3982 2 3 - 1995 + 1991 4 7 - 623 + 622 9 55 - 623 + 622 116 2703 - 623 + 622 7497 @@ -13818,27 +13699,27 @@ 1 2 - 737504 + 735614 2 3 - 240387 + 239687 3 5 - 93186 + 93087 5 13 - 93809 + 93709 13 2574 - 55387 + 55255 @@ -13854,27 +13735,27 @@ 1 2 - 819588 + 817501 2 3 - 179635 + 179081 3 6 - 106159 + 106154 6 27 - 92188 + 91967 27 2562 - 22703 + 22649 @@ -13890,17 +13771,17 @@ 1 2 - 995107 + 992725 2 3 - 166786 + 166387 3 65 - 58381 + 58241 @@ -13910,15 +13791,15 @@ overrides - 159497 + 159153 new - 150804 + 150382 old - 17961 + 17799 @@ -13932,12 +13813,12 @@ 1 2 - 142119 + 141620 2 4 - 8684 + 8762 @@ -13953,32 +13834,32 @@ 1 2 - 9828 + 9685 2 3 - 2432 + 2405 3 4 - 1629 + 1643 4 6 - 1483 + 1481 6 - 18 - 1354 + 17 + 1336 - 18 + 17 230 - 1232 + 1247 @@ -13988,19 +13869,19 @@ membervariables - 1501944 + 1502979 id - 1499494 + 1500528 type_id - 457553 + 457641 name - 642220 + 642756 @@ -14014,7 +13895,7 @@ 1 2 - 1497152 + 1498186 2 @@ -14035,7 +13916,7 @@ 1 2 - 1499494 + 1500528 @@ -14051,17 +13932,17 @@ 1 2 - 339380 + 339459 2 3 - 72592 + 72597 3 10 - 35451 + 35454 10 @@ -14082,17 +13963,17 @@ 1 2 - 356970 + 357050 2 3 - 64750 + 64754 3 57 - 34362 + 34365 60 @@ -14113,22 +13994,22 @@ 1 2 - 421557 + 422023 2 3 - 122421 + 122484 3 5 - 58051 + 58056 5 664 - 40189 + 40192 @@ -14144,17 +14025,17 @@ 1 2 - 524482 + 525010 2 3 - 73191 + 73196 3 668 - 44546 + 44549 @@ -14164,19 +14045,19 @@ globalvariables - 488384 + 492566 id - 488384 + 492566 type_id - 10354 + 10329 name - 112521 + 112252 @@ -14190,7 +14071,7 @@ 1 2 - 488384 + 492566 @@ -14206,7 +14087,7 @@ 1 2 - 488384 + 492566 @@ -14222,32 +14103,32 @@ 1 2 - 6985 + 6969 2 3 - 374 + 373 3 5 - 748 + 746 5 20 - 873 + 871 20 - 74 - 873 + 80 + 871 152 2216 - 498 + 497 @@ -14263,32 +14144,32 @@ 1 2 - 7110 + 7093 2 3 - 374 + 373 3 5 - 748 + 746 5 20 - 748 + 746 20 74 - 873 + 871 125 228 - 498 + 497 @@ -14304,17 +14185,17 @@ 1 2 - 95306 + 94954 2 7 - 8857 + 8835 7 604 - 8358 + 8462 @@ -14330,17 +14211,17 @@ 1 2 - 96928 + 96696 2 3 - 15343 + 15307 3 4 - 249 + 248 @@ -14350,19 +14231,19 @@ localvariables - 726016 + 724687 id - 726016 + 724687 type_id - 53423 + 53297 name - 101594 + 101408 @@ -14376,7 +14257,7 @@ 1 2 - 726016 + 724687 @@ -14392,7 +14273,7 @@ 1 2 - 726016 + 724687 @@ -14408,37 +14289,37 @@ 1 2 - 28857 + 28788 2 3 - 7840 + 7806 3 4 - 4028 + 4020 4 6 - 4064 + 4060 6 12 - 4132 + 4128 12 162 - 4008 + 4000 162 19347 - 492 + 491 @@ -14454,7 +14335,7 @@ 1 2 - 38358 + 38248 2 @@ -14464,12 +14345,12 @@ 3 5 - 4476 + 4468 5 3509 - 3884 + 3877 @@ -14485,32 +14366,32 @@ 1 2 - 62515 + 62401 2 3 - 16032 + 16003 3 4 - 6528 + 6516 4 8 - 8144 + 8129 8 134 - 7620 + 7606 134 7549 - 752 + 750 @@ -14526,22 +14407,22 @@ 1 2 - 84553 + 84398 2 3 - 8408 + 8393 3 15 - 7680 + 7666 15 1509 - 952 + 950 @@ -14551,15 +14432,15 @@ autoderivation - 229160 + 228611 var - 229160 + 228611 derivation_type - 623 + 622 @@ -14573,7 +14454,7 @@ 1 2 - 229160 + 228611 @@ -14619,15 +14500,15 @@ orphaned_variables - 44321 + 44036 var - 44321 + 44036 function - 41051 + 40786 @@ -14641,7 +14522,7 @@ 1 2 - 44321 + 44036 @@ -14657,12 +14538,12 @@ 1 2 - 40199 + 39940 2 47 - 851 + 846 @@ -14672,19 +14553,19 @@ enumconstants - 347930 + 347955 id - 347930 + 347955 parent - 41551 + 41554 index - 13941 + 13942 type_id @@ -14692,11 +14573,11 @@ name - 347549 + 347574 location - 320538 + 320561 @@ -14710,7 +14591,7 @@ 1 2 - 347930 + 347955 @@ -14726,7 +14607,7 @@ 1 2 - 347930 + 347955 @@ -14742,7 +14623,7 @@ 1 2 - 347930 + 347955 @@ -14758,7 +14639,7 @@ 1 2 - 347930 + 347955 @@ -14774,7 +14655,7 @@ 1 2 - 347930 + 347955 @@ -14805,7 +14686,7 @@ 4 5 - 5554 + 5555 5 @@ -14830,7 +14711,7 @@ 10 15 - 3430 + 3431 15 @@ -14840,7 +14721,7 @@ 33 257 - 1306 + 1307 @@ -14871,7 +14752,7 @@ 4 5 - 5554 + 5555 5 @@ -14896,7 +14777,7 @@ 10 15 - 3430 + 3431 15 @@ -14906,7 +14787,7 @@ 33 257 - 1306 + 1307 @@ -14922,7 +14803,7 @@ 1 2 - 41551 + 41554 @@ -14953,7 +14834,7 @@ 4 5 - 5554 + 5555 5 @@ -14978,7 +14859,7 @@ 10 15 - 3430 + 3431 15 @@ -14988,7 +14869,7 @@ 33 257 - 1306 + 1307 @@ -15004,7 +14885,7 @@ 1 2 - 2123 + 2124 2 @@ -15014,7 +14895,7 @@ 3 4 - 8767 + 8768 4 @@ -15182,7 +15063,7 @@ 1 2 - 13941 + 13942 @@ -15390,7 +15271,7 @@ 1 2 - 347168 + 347193 2 @@ -15411,7 +15292,7 @@ 1 2 - 347168 + 347193 2 @@ -15432,7 +15313,7 @@ 1 2 - 347549 + 347574 @@ -15448,7 +15329,7 @@ 1 2 - 347549 + 347574 @@ -15464,7 +15345,7 @@ 1 2 - 347168 + 347193 2 @@ -15485,7 +15366,7 @@ 1 2 - 319503 + 319526 2 @@ -15506,7 +15387,7 @@ 1 2 - 320538 + 320561 @@ -15522,7 +15403,7 @@ 1 2 - 319503 + 319526 2 @@ -15543,7 +15424,7 @@ 1 2 - 320538 + 320561 @@ -15559,7 +15440,7 @@ 1 2 - 319503 + 319526 2 @@ -15574,31 +15455,31 @@ builtintypes - 7609 + 7218 id - 7609 + 7218 name - 7609 + 7218 kind - 7609 + 7218 size - 873 + 871 sign - 374 + 373 alignment - 623 + 622 @@ -15612,7 +15493,7 @@ 1 2 - 7609 + 7218 @@ -15628,7 +15509,7 @@ 1 2 - 7609 + 7218 @@ -15644,7 +15525,7 @@ 1 2 - 7609 + 7218 @@ -15660,7 +15541,7 @@ 1 2 - 7609 + 7218 @@ -15676,7 +15557,7 @@ 1 2 - 7609 + 7218 @@ -15692,7 +15573,7 @@ 1 2 - 7609 + 7218 @@ -15708,7 +15589,7 @@ 1 2 - 7609 + 7218 @@ -15724,7 +15605,7 @@ 1 2 - 7609 + 7218 @@ -15740,7 +15621,7 @@ 1 2 - 7609 + 7218 @@ -15756,7 +15637,7 @@ 1 2 - 7609 + 7218 @@ -15772,7 +15653,7 @@ 1 2 - 7609 + 7218 @@ -15788,7 +15669,7 @@ 1 2 - 7609 + 7218 @@ -15804,7 +15685,7 @@ 1 2 - 7609 + 7218 @@ -15820,7 +15701,7 @@ 1 2 - 7609 + 7218 @@ -15836,7 +15717,7 @@ 1 2 - 7609 + 7218 @@ -15852,7 +15733,7 @@ 2 3 - 249 + 248 8 @@ -15865,8 +15746,13 @@ 124 - 11 - 12 + 10 + 11 + 124 + + + 13 + 14 124 @@ -15874,11 +15760,6 @@ 15 124 - - 15 - 16 - 124 - @@ -15893,7 +15774,7 @@ 2 3 - 249 + 248 8 @@ -15906,8 +15787,13 @@ 124 - 11 - 12 + 10 + 11 + 124 + + + 13 + 14 124 @@ -15915,11 +15801,6 @@ 15 124 - - 15 - 16 - 124 - @@ -15934,7 +15815,7 @@ 2 3 - 249 + 248 8 @@ -15947,8 +15828,13 @@ 124 - 11 - 12 + 10 + 11 + 124 + + + 13 + 14 124 @@ -15956,11 +15842,6 @@ 15 124 - - 15 - 16 - 124 - @@ -15975,12 +15856,12 @@ 1 2 - 249 + 248 3 4 - 623 + 622 @@ -15996,12 +15877,12 @@ 1 2 - 498 + 497 2 3 - 374 + 373 @@ -16025,8 +15906,8 @@ 124 - 43 - 44 + 40 + 41 124 @@ -16051,8 +15932,8 @@ 124 - 43 - 44 + 40 + 41 124 @@ -16077,8 +15958,8 @@ 124 - 43 - 44 + 40 + 41 124 @@ -16095,7 +15976,7 @@ 5 6 - 249 + 248 7 @@ -16116,7 +15997,7 @@ 5 6 - 374 + 373 @@ -16130,8 +16011,8 @@ 12 - 8 - 9 + 7 + 8 124 @@ -16140,13 +16021,18 @@ 124 - 13 - 14 - 249 + 12 + 13 + 124 - 17 - 18 + 13 + 14 + 124 + + + 16 + 17 124 @@ -16161,8 +16047,8 @@ 12 - 8 - 9 + 7 + 8 124 @@ -16171,13 +16057,18 @@ 124 - 13 - 14 - 249 + 12 + 13 + 124 - 17 - 18 + 13 + 14 + 124 + + + 16 + 17 124 @@ -16192,8 +16083,8 @@ 12 - 8 - 9 + 7 + 8 124 @@ -16202,13 +16093,18 @@ 124 - 13 - 14 - 249 + 12 + 13 + 124 - 17 - 18 + 13 + 14 + 124 + + + 16 + 17 124 @@ -16225,7 +16121,7 @@ 2 3 - 623 + 622 @@ -16241,7 +16137,7 @@ 3 4 - 623 + 622 @@ -16251,23 +16147,23 @@ derivedtypes - 3030855 + 3023723 id - 3030855 + 3023723 name - 1460538 + 1457166 kind - 748 + 746 type_id - 1946678 + 1942142 @@ -16281,7 +16177,7 @@ 1 2 - 3030855 + 3023723 @@ -16297,7 +16193,7 @@ 1 2 - 3030855 + 3023723 @@ -16313,7 +16209,7 @@ 1 2 - 3030855 + 3023723 @@ -16329,17 +16225,17 @@ 1 2 - 1344025 + 1340932 2 28 - 109902 + 109639 29 4302 - 6611 + 6595 @@ -16355,7 +16251,7 @@ 1 2 - 1460538 + 1457166 @@ -16371,17 +16267,17 @@ 1 2 - 1344149 + 1341056 2 28 - 109777 + 109514 29 4302 - 6611 + 6595 @@ -16405,8 +16301,8 @@ 124 - 3627 - 3628 + 3628 + 3629 124 @@ -16456,8 +16352,8 @@ 124 - 2654 - 2655 + 2655 + 2656 124 @@ -16487,8 +16383,8 @@ 124 - 3623 - 3624 + 3624 + 3625 124 @@ -16520,22 +16416,22 @@ 1 2 - 1317453 + 1314424 2 3 - 375862 + 374963 3 4 - 123250 + 122955 4 137 - 130111 + 129799 @@ -16551,22 +16447,22 @@ 1 2 - 1318950 + 1315917 2 3 - 375862 + 374963 3 4 - 121753 + 121461 4 137 - 130111 + 129799 @@ -16582,22 +16478,22 @@ 1 2 - 1319325 + 1316291 2 3 - 376486 + 375585 3 4 - 123499 + 123203 4 6 - 127366 + 127061 @@ -16607,19 +16503,19 @@ pointerishsize - 2247318 + 2242063 id - 2247318 + 2242063 size - 249 + 248 alignment - 249 + 248 @@ -16633,7 +16529,7 @@ 1 2 - 2247318 + 2242063 @@ -16649,7 +16545,7 @@ 1 2 - 2247318 + 2242063 @@ -16668,8 +16564,8 @@ 124 - 18012 - 18013 + 18013 + 18014 124 @@ -16686,7 +16582,7 @@ 1 2 - 249 + 248 @@ -16705,8 +16601,8 @@ 124 - 18012 - 18013 + 18013 + 18014 124 @@ -16723,7 +16619,7 @@ 1 2 - 249 + 248 @@ -16733,23 +16629,23 @@ arraysizes - 80586 + 80393 id - 80586 + 80393 num_elements - 17838 + 17796 bytesize - 20209 + 20160 alignment - 623 + 622 @@ -16763,7 +16659,7 @@ 1 2 - 80586 + 80393 @@ -16779,7 +16675,7 @@ 1 2 - 80586 + 80393 @@ -16795,7 +16691,7 @@ 1 2 - 80586 + 80393 @@ -16811,32 +16707,32 @@ 1 2 - 249 + 248 2 3 - 10852 + 10827 3 4 - 249 + 248 4 5 - 3492 + 3484 5 9 - 1496 + 1493 9 42 - 1372 + 1368 56 @@ -16857,22 +16753,22 @@ 1 2 - 11726 + 11698 2 3 - 3991 + 3982 3 5 - 997 + 995 5 11 - 1122 + 1120 @@ -16888,22 +16784,22 @@ 1 2 - 11726 + 11698 2 3 - 3991 + 3982 3 4 - 748 + 746 4 6 - 1372 + 1368 @@ -16919,37 +16815,37 @@ 1 2 - 623 + 622 2 3 - 12724 + 12693 3 4 - 498 + 497 4 5 - 2744 + 2737 5 7 - 1496 + 1493 7 17 - 1621 + 1617 24 45 - 498 + 497 @@ -16965,17 +16861,17 @@ 1 2 - 14595 + 14560 2 3 - 3617 + 3609 3 6 - 1871 + 1866 6 @@ -16996,22 +16892,22 @@ 1 2 - 14844 + 14809 2 3 - 3368 + 3360 3 5 - 1621 + 1617 5 6 - 374 + 373 @@ -17068,7 +16964,7 @@ 16 17 - 249 + 248 48 @@ -17172,15 +17068,15 @@ typedefbase - 1762169 + 1755835 id - 1762169 + 1755835 type_id - 837952 + 834260 @@ -17194,7 +17090,7 @@ 1 2 - 1762169 + 1755835 @@ -17210,22 +17106,22 @@ 1 2 - 662479 + 659366 2 3 - 80940 + 80761 3 6 - 64169 + 63918 6 - 4526 - 30363 + 4525 + 30213 @@ -17235,15 +17131,15 @@ decltypes - 814486 + 814571 id - 27564 + 27567 expr - 814486 + 814571 kind @@ -17269,17 +17165,17 @@ 1 2 - 9737 + 9738 2 3 - 3648 + 3649 4 5 - 3626 + 3627 6 @@ -17325,7 +17221,7 @@ 1 2 - 27564 + 27567 @@ -17341,7 +17237,7 @@ 1 2 - 27564 + 27567 @@ -17357,7 +17253,7 @@ 1 2 - 27564 + 27567 @@ -17373,7 +17269,7 @@ 1 2 - 814486 + 814571 @@ -17389,7 +17285,7 @@ 1 2 - 814486 + 814571 @@ -17405,7 +17301,7 @@ 1 2 - 814486 + 814571 @@ -17421,7 +17317,7 @@ 1 2 - 814486 + 814571 @@ -17501,7 +17397,7 @@ 1 2 - 1208 + 1209 2 @@ -17547,7 +17443,7 @@ 1 2 - 1164 + 1165 2 @@ -17683,15 +17579,15 @@ type_operators - 7949 + 7937 id - 7949 + 7937 arg_type - 7176 + 7164 kind @@ -17699,7 +17595,7 @@ base_type - 5242 + 5234 @@ -17713,7 +17609,7 @@ 1 2 - 7949 + 7937 @@ -17729,7 +17625,7 @@ 1 2 - 7949 + 7937 @@ -17745,7 +17641,7 @@ 1 2 - 7949 + 7937 @@ -17761,12 +17657,12 @@ 1 2 - 6402 + 6392 2 3 - 773 + 772 @@ -17782,12 +17678,12 @@ 1 2 - 6402 + 6392 2 3 - 773 + 772 @@ -17803,7 +17699,7 @@ 1 2 - 7154 + 7143 2 @@ -17917,12 +17813,12 @@ 1 2 - 3631 + 3625 2 3 - 902 + 900 3 @@ -17932,7 +17828,7 @@ 4 6 - 365 + 364 @@ -17948,17 +17844,17 @@ 1 2 - 3781 + 3775 2 3 - 988 + 986 3 4 - 451 + 450 4 @@ -17979,12 +17875,12 @@ 1 2 - 4082 + 4075 2 3 - 1138 + 1136 3 @@ -17999,15 +17895,15 @@ usertypes - 4151247 + 4137720 id - 4151247 + 4137720 name - 918449 + 915379 kind @@ -18025,7 +17921,7 @@ 1 2 - 4151247 + 4137720 @@ -18041,7 +17937,7 @@ 1 2 - 4151247 + 4137720 @@ -18057,22 +17953,22 @@ 1 2 - 654210 + 652086 2 3 - 158649 + 158093 3 8 - 70559 + 70346 8 - 32672 - 35031 + 32667 + 34852 @@ -18088,12 +17984,12 @@ 1 2 - 866710 + 863841 2 10 - 51739 + 51537 @@ -18127,8 +18023,8 @@ 10 - 1595 - 1596 + 1656 + 1657 10 @@ -18142,8 +18038,8 @@ 10 - 20079 - 20080 + 20075 + 20076 10 @@ -18152,18 +18048,18 @@ 10 - 82092 - 82093 + 82174 + 82175 10 - 92774 - 92775 + 92838 + 92839 10 - 166854 - 166855 + 166906 + 166907 10 @@ -18218,8 +18114,8 @@ 10 - 5589 - 5590 + 5586 + 5587 10 @@ -18228,13 +18124,13 @@ 10 - 12189 - 12190 + 12187 + 12188 10 - 57611 - 57612 + 57664 + 57665 10 @@ -18245,15 +18141,15 @@ usertypesize - 1363676 + 1359666 id - 1363676 + 1359666 size - 1478 + 1472 alignment @@ -18271,7 +18167,7 @@ 1 2 - 1363676 + 1359666 @@ -18287,7 +18183,7 @@ 1 2 - 1363676 + 1359666 @@ -18303,51 +18199,51 @@ 1 2 - 464 + 462 2 3 - 190 + 189 3 4 - 95 + 94 4 6 - 95 + 94 6 9 - 116 + 115 9 19 - 116 + 115 19 30 - 116 + 115 30 115 - 116 + 115 118 1735 - 116 + 115 1839 - 99777 + 99841 52 @@ -18364,17 +18260,17 @@ 1 2 - 1203 + 1199 2 3 - 179 + 178 3 6 - 95 + 94 @@ -18413,8 +18309,8 @@ 10 - 2080 - 2081 + 2141 + 2142 10 @@ -18423,8 +18319,8 @@ 10 - 114972 - 114973 + 115036 + 115037 10 @@ -18481,26 +18377,26 @@ usertype_final - 11476 + 11449 id - 11476 + 11449 usertype_uuid - 47827 + 47795 id - 47827 + 47795 uuid - 47283 + 47252 @@ -18514,7 +18410,7 @@ 1 2 - 47827 + 47795 @@ -18530,12 +18426,12 @@ 1 2 - 46740 + 46710 2 3 - 543 + 542 @@ -18545,11 +18441,11 @@ usertype_alias_kind - 1762169 + 1755835 id - 1762169 + 1755835 alias_kind @@ -18567,7 +18463,7 @@ 1 2 - 1762169 + 1755835 @@ -18581,13 +18477,13 @@ 12 - 36907 - 36908 + 36914 + 36915 10 - 129947 - 129948 + 129992 + 129993 10 @@ -18598,26 +18494,26 @@ nontype_template_parameters - 766248 + 761306 id - 766248 + 761306 type_template_type_constraint - 27115 + 27071 id - 13364 + 13342 constraint - 25976 + 25934 @@ -18631,22 +18527,22 @@ 1 2 - 10205 + 10189 2 3 - 902 + 900 3 5 - 1031 + 1029 5 14 - 1117 + 1115 14 @@ -18667,12 +18563,12 @@ 1 2 - 24837 + 24797 2 3 - 1138 + 1136 @@ -18682,19 +18578,19 @@ mangled_name - 7853951 + 7910441 id - 7853951 + 7910441 mangled_name - 6364346 + 6349608 is_complete - 249 + 248 @@ -18708,7 +18604,7 @@ 1 2 - 7853951 + 7910441 @@ -18724,7 +18620,7 @@ 1 2 - 7853951 + 7910441 @@ -18740,12 +18636,12 @@ 1 2 - 6036261 + 6016211 2 1120 - 328084 + 333397 @@ -18761,7 +18657,7 @@ 1 2 - 6364346 + 6349608 @@ -18780,8 +18676,8 @@ 124 - 62953 - 62954 + 63558 + 63559 124 @@ -18801,8 +18697,8 @@ 124 - 51012 - 51013 + 51016 + 51017 124 @@ -18813,59 +18709,59 @@ is_pod_class - 593798 + 590984 id - 593798 + 590984 is_standard_layout_class - 1124307 + 1120590 id - 1124307 + 1120590 is_complete - 1346155 + 1341571 id - 1346155 + 1341571 is_class_template - 232144 + 231195 id - 232144 + 231195 class_instantiation - 1125965 + 1122200 to - 1122924 + 1119212 from - 71794 + 71524 @@ -18879,12 +18775,12 @@ 1 2 - 1120790 + 1117129 2 8 - 2133 + 2082 @@ -18900,47 +18796,47 @@ 1 2 - 20499 + 20387 2 3 - 12884 + 12834 3 4 - 7107 + 7111 4 5 - 4657 + 4639 5 7 - 6072 + 6059 7 10 - 5713 + 5680 10 17 - 5903 + 5901 17 - 51 + 52 5396 - 51 + 52 4223 - 3559 + 3513 @@ -18950,19 +18846,19 @@ class_template_argument - 2898347 + 2887503 type_id - 1366971 + 1362264 index - 1182 + 1178 arg_type - 822016 + 818795 @@ -18976,27 +18872,27 @@ 1 2 - 579310 + 577753 2 3 - 410247 + 408656 3 4 - 251017 + 249952 4 7 - 103087 + 102684 7 113 - 23308 + 23217 @@ -19012,22 +18908,22 @@ 1 2 - 607846 + 606188 2 3 - 424251 + 422595 3 4 - 251851 + 250784 4 113 - 83021 + 82696 @@ -19048,31 +18944,31 @@ 4 5 - 749 + 746 5 30 - 95 + 94 33 90 - 95 + 94 95 453 - 95 + 94 643 7128 - 95 + 94 11968 - 129432 + 129492 42 @@ -19094,7 +18990,7 @@ 4 5 - 749 + 746 5 @@ -19104,20 +19000,20 @@ 16 35 - 95 + 94 37 155 - 95 + 94 196 3263 - 95 + 94 - 10413 + 10412 44535 31 @@ -19135,27 +19031,27 @@ 1 2 - 513672 + 511582 2 3 - 167626 + 166898 3 5 - 75079 + 74922 5 - 47 - 61729 + 46 + 61415 - 47 - 12619 - 3907 + 46 + 12620 + 3976 @@ -19171,17 +19067,17 @@ 1 2 - 723744 + 720908 2 3 - 79905 + 79593 3 22 - 18365 + 18294 @@ -19191,19 +19087,19 @@ class_template_argument_value - 510060 + 506804 type_id - 205802 + 204508 index - 306 + 304 arg_value - 509924 + 506668 @@ -19217,17 +19113,17 @@ 1 2 - 155791 + 154820 2 3 - 43368 + 43088 3 8 - 6643 + 6600 @@ -19243,22 +19139,22 @@ 1 2 - 147921 + 147001 2 3 - 40472 + 40211 3 45 - 15534 + 15434 45 154 - 1873 + 1861 @@ -19274,47 +19170,47 @@ 2 3 - 34 + 33 20 21 - 34 + 33 49 50 - 34 + 33 84 85 - 34 + 33 105 106 - 34 + 33 278 279 - 34 + 33 981 982 - 34 + 33 - 2471 - 2472 - 34 + 2472 + 2473 + 33 3753 3754 - 34 + 33 @@ -19330,47 +19226,47 @@ 3 4 - 34 + 33 74 75 - 34 + 33 105 106 - 34 + 33 273 274 - 34 + 33 336 337 - 34 + 33 892 893 - 34 + 33 2433 2434 - 34 + 33 - 4801 - 4802 - 34 + 4802 + 4803 + 33 6051 6052 - 34 + 33 @@ -19386,12 +19282,12 @@ 1 2 - 509787 + 506533 2 3 - 136 + 135 @@ -19407,7 +19303,7 @@ 1 2 - 509924 + 506668 @@ -19417,15 +19313,15 @@ is_proxy_class_for - 48433 + 48244 id - 48433 + 48244 templ_param_id - 45761 + 45582 @@ -19439,7 +19335,7 @@ 1 2 - 48433 + 48244 @@ -19455,12 +19351,12 @@ 1 2 - 45043 + 44867 2 79 - 718 + 715 @@ -19470,19 +19366,19 @@ type_mentions - 5907630 + 5911108 id - 5907630 + 5911108 type_id - 277788 + 277863 location - 5851321 + 5854794 kind @@ -19500,7 +19396,7 @@ 1 2 - 5907630 + 5911108 @@ -19516,7 +19412,7 @@ 1 2 - 5907630 + 5911108 @@ -19532,7 +19428,7 @@ 1 2 - 5907630 + 5911108 @@ -19548,42 +19444,42 @@ 1 2 - 137233 + 137297 2 3 - 31204 + 31206 3 4 - 11653 + 11654 4 5 - 14975 + 14976 5 7 - 19931 + 19932 7 12 - 21837 + 21839 12 28 - 21075 + 21022 28 8941 - 19877 + 19932 @@ -19599,42 +19495,42 @@ 1 2 - 137233 + 137297 2 3 - 31204 + 31206 3 4 - 11653 + 11654 4 5 - 14975 + 14976 5 7 - 19931 + 19932 7 12 - 21837 + 21839 12 28 - 21075 + 21022 28 8941 - 19877 + 19932 @@ -19650,7 +19546,7 @@ 1 2 - 277788 + 277863 @@ -19666,12 +19562,12 @@ 1 2 - 5805631 + 5809101 2 4 - 45690 + 45693 @@ -19687,12 +19583,12 @@ 1 2 - 5805631 + 5809101 2 4 - 45690 + 45693 @@ -19708,7 +19604,7 @@ 1 2 - 5851321 + 5854794 @@ -19722,8 +19618,8 @@ 12 - 108481 - 108482 + 108537 + 108538 54 @@ -19738,8 +19634,8 @@ 12 - 5101 - 5102 + 5102 + 5103 54 @@ -19754,8 +19650,8 @@ 12 - 107447 - 107448 + 107503 + 107504 54 @@ -19766,26 +19662,26 @@ is_function_template - 1331300 + 1328113 id - 1331300 + 1328113 function_instantiation - 973788 + 967609 to - 973788 + 967609 from - 182704 + 181526 @@ -19799,7 +19695,7 @@ 1 2 - 973788 + 967609 @@ -19815,27 +19711,27 @@ 1 2 - 110583 + 109836 2 3 - 42788 + 42546 3 9 - 14444 + 14351 9 104 - 13729 + 13640 119 1532 - 1158 + 1150 @@ -19845,19 +19741,19 @@ function_template_argument - 2484687 + 2468763 function_id - 1453222 + 1443916 index - 476 + 473 arg_type - 297989 + 296067 @@ -19871,22 +19767,22 @@ 1 2 - 782976 + 777959 2 3 - 413137 + 410507 3 4 - 171802 + 170694 4 15 - 85305 + 84755 @@ -19902,22 +19798,22 @@ 1 2 - 802122 + 796982 2 3 - 411230 + 408611 3 4 - 169622 + 168528 4 9 - 70247 + 69794 @@ -19933,52 +19829,52 @@ 1 2 - 170 + 169 7 8 - 34 + 33 45 46 - 34 + 33 77 78 - 34 + 33 138 139 - 34 + 33 280 281 - 34 + 33 2504 2505 - 34 + 33 7547 7548 - 34 + 33 - 19674 - 19675 - 34 + 19675 + 19676 + 33 - 42657 - 42658 - 34 + 42659 + 42660 + 33 @@ -19994,52 +19890,52 @@ 1 2 - 170 + 169 4 5 - 34 + 33 17 18 - 34 + 33 27 28 - 34 + 33 52 53 - 34 + 33 112 113 - 34 + 33 315 316 - 34 + 33 972 973 - 34 + 33 2754 2755 - 34 + 33 6081 6082 - 34 + 33 @@ -20055,37 +19951,37 @@ 1 2 - 174766 + 173639 2 3 - 26334 + 26164 3 4 - 19997 + 19868 4 6 - 22654 + 22508 6 11 - 23234 + 23084 11 76 - 23370 + 23219 79 2452 - 7631 + 7581 @@ -20101,17 +19997,17 @@ 1 2 - 256801 + 255145 2 3 - 32125 + 31918 3 15 - 9061 + 9003 @@ -20121,19 +20017,19 @@ function_template_argument_value - 452758 + 449838 function_id - 196774 + 195505 index - 476 + 473 arg_value - 450067 + 447164 @@ -20147,17 +20043,17 @@ 1 2 - 151396 + 150420 2 3 - 42891 + 42614 3 8 - 2486 + 2470 @@ -20173,22 +20069,22 @@ 1 2 - 144480 + 143548 2 3 - 36690 + 36454 3 54 - 14853 + 14757 54 113 - 749 + 744 @@ -20204,52 +20100,52 @@ 1 2 - 170 + 169 2 3 - 34 + 33 3 4 - 34 + 33 4 5 - 34 + 33 15 16 - 34 + 33 27 28 - 34 + 33 1345 1346 - 34 + 33 1388 1389 - 34 + 33 1850 1851 - 34 + 33 2547 2548 - 34 + 33 @@ -20265,52 +20161,52 @@ 1 2 - 170 + 169 2 3 - 34 + 33 3 4 - 34 + 33 4 5 - 34 + 33 51 52 - 34 + 33 63 64 - 34 + 33 1906 1907 - 34 + 33 3295 3296 - 34 + 33 3702 3703 - 34 + 33 4180 4181 - 34 + 33 @@ -20326,12 +20222,12 @@ 1 2 - 447375 + 444490 2 3 - 2691 + 2673 @@ -20347,7 +20243,7 @@ 1 2 - 450067 + 447164 @@ -20357,26 +20253,26 @@ is_variable_template - 58631 + 58490 id - 58631 + 58490 variable_instantiation - 423017 + 427355 to - 423017 + 427355 from - 35303 + 35343 @@ -20390,7 +20286,7 @@ 1 2 - 423017 + 427355 @@ -20406,42 +20302,47 @@ 1 2 - 15219 + 15182 2 3 - 3867 + 3857 3 4 - 2370 + 2364 4 6 - 2993 + 2986 6 8 - 2245 + 2240 8 12 - 3118 + 3111 12 31 - 2744 + 2737 32 + 390 + 2737 + + + 545 546 - 2744 + 124 @@ -20451,19 +20352,19 @@ variable_template_argument - 768941 + 772451 variable_id - 401186 + 405577 index - 1995 + 1991 arg_type - 256355 + 255741 @@ -20477,22 +20378,22 @@ 1 2 - 156557 + 161534 2 3 - 189989 + 189534 3 4 - 36426 + 36338 4 17 - 18213 + 18169 @@ -20508,22 +20409,22 @@ 1 2 - 171402 + 176343 2 3 - 180259 + 179828 3 4 - 33681 + 33601 4 17 - 15842 + 15804 @@ -20539,12 +20440,12 @@ 28 29 - 873 + 871 34 35 - 374 + 373 37 @@ -20572,8 +20473,8 @@ 124 - 3216 - 3217 + 3259 + 3260 124 @@ -20590,12 +20491,12 @@ 1 2 - 873 + 871 2 3 - 374 + 373 5 @@ -20623,8 +20524,8 @@ 124 - 1325 - 1326 + 1327 + 1328 124 @@ -20641,22 +20542,22 @@ 1 2 - 175519 + 173481 2 3 - 44784 + 46294 3 6 - 21581 + 21529 6 206 - 14470 + 14436 @@ -20672,17 +20573,17 @@ 1 2 - 228037 + 227491 2 3 - 24699 + 24640 3 7 - 3617 + 3609 @@ -20692,19 +20593,19 @@ variable_template_argument_value - 19959 + 19911 variable_id - 14844 + 14809 index - 498 + 497 arg_value - 19959 + 19911 @@ -20718,12 +20619,12 @@ 1 2 - 13347 + 13315 2 3 - 1496 + 1493 @@ -20739,17 +20640,17 @@ 1 2 - 10478 + 10453 2 3 - 3991 + 3982 4 5 - 374 + 373 @@ -20827,7 +20728,7 @@ 1 2 - 19959 + 19911 @@ -20843,7 +20744,7 @@ 1 2 - 19959 + 19911 @@ -20853,15 +20754,15 @@ template_template_instantiation - 6362 + 6346 to - 4989 + 4977 from - 1122 + 1120 @@ -20875,12 +20776,12 @@ 1 2 - 3617 + 3609 2 3 - 1372 + 1368 @@ -20896,7 +20797,7 @@ 1 2 - 748 + 746 2 @@ -20921,11 +20822,11 @@ template_template_argument - 9674 + 9636 type_id - 6114 + 6091 index @@ -20933,7 +20834,7 @@ arg_type - 9082 + 9047 @@ -20947,17 +20848,17 @@ 1 2 - 5016 + 4996 2 3 - 422 + 420 3 8 - 506 + 504 8 @@ -20978,17 +20879,17 @@ 1 2 - 5037 + 5017 2 4 - 559 + 557 4 10 - 464 + 462 10 @@ -21131,7 +21032,7 @@ 1 2 - 9050 + 9015 3 @@ -21152,7 +21053,7 @@ 1 2 - 9061 + 9026 2 @@ -21167,19 +21068,19 @@ template_template_argument_value - 623 + 746 type_id - 528 + 124 index - 21 + 124 arg_value - 623 + 746 @@ -21193,7 +21094,7 @@ 1 2 - 528 + 124 @@ -21207,19 +21108,9 @@ 12 - 1 - 2 - 454 - - - 2 - 3 - 52 - - - 3 - 4 - 21 + 6 + 7 + 124 @@ -21233,14 +21124,9 @@ 12 - 8 - 9 - 10 - - - 42 - 43 - 10 + 1 + 2 + 124 @@ -21254,14 +21140,9 @@ 12 - 17 - 18 - 10 - - - 42 - 43 - 10 + 6 + 7 + 124 @@ -21277,7 +21158,7 @@ 1 2 - 623 + 746 @@ -21293,7 +21174,7 @@ 1 2 - 623 + 746 @@ -21303,19 +21184,19 @@ concept_templates - 3609 + 3603 concept_id - 3609 + 3603 name - 3609 + 3603 location - 3609 + 3603 @@ -21329,7 +21210,7 @@ 1 2 - 3609 + 3603 @@ -21345,7 +21226,7 @@ 1 2 - 3609 + 3603 @@ -21361,7 +21242,7 @@ 1 2 - 3609 + 3603 @@ -21377,7 +21258,7 @@ 1 2 - 3609 + 3603 @@ -21393,7 +21274,7 @@ 1 2 - 3609 + 3603 @@ -21409,7 +21290,7 @@ 1 2 - 3609 + 3603 @@ -21419,15 +21300,15 @@ concept_instantiation - 90305 + 90160 to - 90305 + 90160 from - 3437 + 3432 @@ -21441,7 +21322,7 @@ 1 2 - 90305 + 90160 @@ -21457,7 +21338,7 @@ 1 2 - 236 + 235 2 @@ -21467,7 +21348,7 @@ 3 4 - 365 + 364 4 @@ -21482,7 +21363,7 @@ 6 8 - 236 + 235 8 @@ -21492,7 +21373,7 @@ 10 12 - 279 + 278 12 @@ -21537,22 +21418,22 @@ is_type_constraint - 36848 + 36789 concept_id - 36848 + 36789 concept_template_argument - 112887 + 112705 concept_id - 76275 + 76152 index @@ -21560,7 +21441,7 @@ arg_type - 21399 + 21365 @@ -21574,17 +21455,17 @@ 1 2 - 46409 + 46335 2 3 - 24644 + 24604 3 7 - 5221 + 5212 @@ -21600,17 +21481,17 @@ 1 2 - 50019 + 49938 2 3 - 22345 + 22309 3 7 - 3910 + 3904 @@ -21708,42 +21589,42 @@ 1 2 - 10377 + 10361 2 3 - 2965 + 2960 3 4 - 1052 + 1051 4 5 - 1353 + 1351 5 6 - 1160 + 1158 6 9 - 1611 + 1608 9 14 - 1976 + 1973 14 259 - 902 + 900 @@ -21759,12 +21640,12 @@ 1 2 - 18005 + 17976 2 3 - 3265 + 3260 3 @@ -21779,11 +21660,11 @@ concept_template_argument_value - 106 + 105 concept_id - 83 + 82 index @@ -21791,7 +21672,7 @@ arg_value - 106 + 105 @@ -21805,7 +21686,7 @@ 1 2 - 83 + 82 @@ -21884,7 +21765,7 @@ 1 2 - 106 + 105 @@ -21900,7 +21781,7 @@ 1 2 - 106 + 105 @@ -21910,15 +21791,15 @@ routinetypes - 604495 + 600596 id - 604495 + 600596 return_type - 283851 + 282020 @@ -21932,7 +21813,7 @@ 1 2 - 604495 + 600596 @@ -21948,17 +21829,17 @@ 1 2 - 234078 + 232568 2 3 - 35225 + 34998 3 4677 - 14546 + 14453 @@ -21968,11 +21849,11 @@ routinetypeargs - 1178520 + 1178605 routine - 416002 + 416032 index @@ -21980,7 +21861,7 @@ type_id - 112074 + 112082 @@ -21994,32 +21875,32 @@ 1 2 - 82939 + 82945 2 3 - 126069 + 126078 3 4 - 107880 + 107888 4 5 - 49284 + 49287 5 7 - 33164 + 33167 7 19 - 16664 + 16665 @@ -22035,27 +21916,27 @@ 1 2 - 88929 + 88935 2 3 - 138703 + 138713 3 4 - 114633 + 114641 4 5 - 40734 + 40737 5 10 - 32892 + 32894 10 @@ -22253,32 +22134,32 @@ 1 2 - 33273 + 33276 2 3 - 15574 + 15576 3 4 - 13287 + 13288 4 5 - 9802 + 9803 5 6 - 6371 + 6372 6 8 - 9475 + 9476 8 @@ -22288,7 +22169,7 @@ 13 26 - 8658 + 8659 26 @@ -22309,22 +22190,22 @@ 1 2 - 79399 + 79405 2 3 - 17535 + 17536 3 5 - 9475 + 9476 5 17 - 5663 + 5664 @@ -22334,19 +22215,19 @@ ptrtomembers - 9726 + 9678 id - 9726 + 9678 type_id - 7973 + 7942 class_id - 4868 + 4849 @@ -22360,7 +22241,7 @@ 1 2 - 9726 + 9678 @@ -22376,7 +22257,7 @@ 1 2 - 9726 + 9678 @@ -22392,12 +22273,12 @@ 1 2 - 7751 + 7732 2 84 - 221 + 210 @@ -22413,12 +22294,12 @@ 1 2 - 7751 + 7732 2 84 - 221 + 210 @@ -22434,17 +22315,17 @@ 1 2 - 3897 + 3892 2 3 - 528 + 515 8 9 - 401 + 399 10 @@ -22465,17 +22346,17 @@ 1 2 - 3897 + 3892 2 3 - 528 + 515 8 9 - 401 + 399 10 @@ -22490,15 +22371,15 @@ specifiers - 7734 + 7715 id - 7734 + 7715 str - 7734 + 7715 @@ -22512,7 +22393,7 @@ 1 2 - 7734 + 7715 @@ -22528,7 +22409,7 @@ 1 2 - 7734 + 7715 @@ -22538,15 +22419,15 @@ typespecifiers - 854164 + 852347 type_id - 849020 + 844880 spec_id - 95 + 1617 @@ -22560,12 +22441,12 @@ 1 2 - 843877 + 837413 2 3 - 5143 + 7466 @@ -22579,49 +22460,69 @@ 12 - 168 - 169 - 10 + 1 + 2 + 124 - 215 - 216 - 10 + 2 + 3 + 124 - 225 - 226 - 10 + 16 + 17 + 124 - 533 - 534 - 10 + 17 + 18 + 124 - 821 - 822 - 10 + 24 + 25 + 124 - 1568 - 1569 - 10 + 44 + 45 + 124 - 4195 - 4196 - 10 + 49 + 50 + 124 - 18295 - 18296 - 10 + 51 + 52 + 124 - 54858 - 54859 - 10 + 112 + 113 + 124 + + + 199 + 200 + 124 + + + 325 + 326 + 124 + + + 547 + 548 + 124 + + + 5462 + 5463 + 124 @@ -22631,15 +22532,15 @@ funspecifiers - 9714180 + 9694783 func_id - 4008747 + 4002635 spec_id - 2370 + 2364 @@ -22653,27 +22554,27 @@ 1 2 - 1527029 + 1526111 2 3 - 506223 + 506131 3 4 - 1036897 + 1034042 4 5 - 692845 + 691186 5 8 - 245751 + 245163 @@ -22717,8 +22618,8 @@ 124 - 355 - 356 + 356 + 357 124 @@ -22727,8 +22628,8 @@ 124 - 767 - 768 + 769 + 770 124 @@ -22737,8 +22638,8 @@ 124 - 1095 - 1096 + 1096 + 1097 124 @@ -22747,13 +22648,13 @@ 124 - 1663 - 1664 + 1670 + 1671 124 - 3301 - 3302 + 3304 + 3305 124 @@ -22767,8 +22668,8 @@ 124 - 15121 - 15122 + 15137 + 15138 124 @@ -22777,8 +22678,8 @@ 124 - 22777 - 22778 + 22778 + 22779 124 @@ -22789,15 +22690,15 @@ varspecifiers - 3075514 + 3078854 var_id - 2315056 + 2314865 spec_id - 1122 + 1120 @@ -22811,17 +22712,17 @@ 1 2 - 1658263 + 1654293 2 3 - 553627 + 557653 3 5 - 103165 + 102918 @@ -22860,13 +22761,13 @@ 124 - 2773 - 2774 + 2816 + 2817 124 - 3449 - 3450 + 3492 + 3493 124 @@ -22887,15 +22788,15 @@ explicit_specifier_exprs - 41291 + 41192 func_id - 41291 + 41192 constant - 41291 + 41192 @@ -22909,7 +22810,7 @@ 1 2 - 41291 + 41192 @@ -22925,7 +22826,7 @@ 1 2 - 41291 + 41192 @@ -22935,27 +22836,27 @@ attributes - 653799 + 652234 id - 653799 + 652234 kind - 374 + 373 name - 2120 + 2115 name_space - 249 + 248 location - 647686 + 646136 @@ -22969,7 +22870,7 @@ 1 2 - 653799 + 652234 @@ -22985,7 +22886,7 @@ 1 2 - 653799 + 652234 @@ -23001,7 +22902,7 @@ 1 2 - 653799 + 652234 @@ -23017,7 +22918,7 @@ 1 2 - 653799 + 652234 @@ -23085,7 +22986,7 @@ 1 2 - 249 + 248 2 @@ -23132,7 +23033,7 @@ 1 2 - 249 + 248 3 @@ -23147,12 +23048,12 @@ 7 8 - 249 + 248 10 11 - 249 + 248 14 @@ -23213,12 +23114,12 @@ 1 2 - 1871 + 1866 2 3 - 249 + 248 @@ -23234,7 +23135,7 @@ 1 2 - 2120 + 2115 @@ -23250,7 +23151,7 @@ 1 2 - 249 + 248 3 @@ -23275,7 +23176,7 @@ 10 11 - 249 + 248 14 @@ -23420,12 +23321,12 @@ 1 2 - 641823 + 640287 2 5 - 5863 + 5849 @@ -23441,7 +23342,7 @@ 1 2 - 647686 + 646136 @@ -23457,12 +23358,12 @@ 1 2 - 642572 + 641033 2 3 - 5114 + 5102 @@ -23478,7 +23379,7 @@ 1 2 - 647686 + 646136 @@ -23488,11 +23389,11 @@ attribute_args - 82563 + 82085 id - 82563 + 82085 kind @@ -23500,7 +23401,7 @@ attribute - 71260 + 70847 index @@ -23508,7 +23409,7 @@ location - 57185 + 56854 @@ -23522,7 +23423,7 @@ 1 2 - 82563 + 82085 @@ -23538,7 +23439,7 @@ 1 2 - 82563 + 82085 @@ -23554,7 +23455,7 @@ 1 2 - 82563 + 82085 @@ -23570,7 +23471,7 @@ 1 2 - 82563 + 82085 @@ -23690,17 +23591,17 @@ 1 2 - 65791 + 65410 2 7 - 5347 + 5316 7 25 - 121 + 120 @@ -23716,12 +23617,12 @@ 1 2 - 69744 + 69340 2 3 - 1516 + 1507 @@ -23737,12 +23638,12 @@ 1 2 - 68216 + 67821 2 8 - 3044 + 3026 @@ -23758,12 +23659,12 @@ 1 2 - 68748 + 68350 2 6 - 2511 + 2497 @@ -23943,17 +23844,17 @@ 1 2 - 41507 + 41266 2 3 - 11858 + 11789 3 25 - 3819 + 3797 @@ -23969,12 +23870,12 @@ 1 2 - 47653 + 47377 2 3 - 9531 + 9476 @@ -23990,17 +23891,17 @@ 1 2 - 42861 + 42613 2 3 - 12298 + 12227 3 11 - 2025 + 2013 @@ -24016,12 +23917,12 @@ 1 2 - 56936 + 56606 2 8 - 248 + 247 @@ -24031,15 +23932,15 @@ attribute_arg_value - 16693 + 16585 arg - 16693 + 16585 value - 511 + 507 @@ -24053,7 +23954,7 @@ 1 2 - 16693 + 16585 @@ -24069,52 +23970,52 @@ 1 2 - 204 + 203 5 6 - 34 + 33 6 7 - 34 + 33 15 16 - 34 + 33 25 26 - 34 + 33 51 52 - 34 + 33 52 53 - 34 + 33 71 72 - 34 + 33 76 77 - 34 + 33 183 184 - 34 + 33 @@ -24124,15 +24025,15 @@ attribute_arg_type - 460 + 459 arg - 460 + 459 type_id - 84 + 83 @@ -24146,7 +24047,7 @@ 1 2 - 460 + 459 @@ -24162,22 +24063,22 @@ 1 2 - 72 + 71 2 3 - 4 + 3 35 36 - 4 + 3 60 61 - 4 + 3 @@ -24187,15 +24088,15 @@ attribute_arg_constant - 71889 + 71524 arg - 71889 + 71524 constant - 71889 + 71524 @@ -24209,7 +24110,7 @@ 1 2 - 71889 + 71524 @@ -24225,7 +24126,7 @@ 1 2 - 71889 + 71524 @@ -24235,15 +24136,15 @@ attribute_arg_expr - 1404 + 1587 arg - 1404 + 1587 expr - 1404 + 1587 @@ -24257,7 +24158,7 @@ 1 2 - 1404 + 1587 @@ -24273,7 +24174,7 @@ 1 2 - 1404 + 1587 @@ -24336,15 +24237,15 @@ typeattributes - 96304 + 96074 type_id - 94558 + 94331 spec_id - 32434 + 32356 @@ -24358,12 +24259,12 @@ 1 2 - 92811 + 92589 2 3 - 1746 + 1742 @@ -24379,17 +24280,17 @@ 1 2 - 27943 + 27876 2 9 - 2494 + 2488 11 58 - 1995 + 1991 @@ -24399,15 +24300,15 @@ funcattributes - 843539 + 841520 func_id - 799005 + 797092 spec_id - 616749 + 615273 @@ -24421,12 +24322,12 @@ 1 2 - 758961 + 757144 2 7 - 40043 + 39947 @@ -24442,12 +24343,12 @@ 1 2 - 571715 + 570347 2 213 - 45033 + 44925 @@ -24520,15 +24421,15 @@ namespaceattributes - 5995 + 5957 namespace_id - 136 + 135 spec_id - 5995 + 5957 @@ -24542,17 +24443,17 @@ 1 2 - 68 + 67 11 12 - 34 + 33 163 164 - 34 + 33 @@ -24568,7 +24469,7 @@ 1 2 - 5995 + 5957 @@ -24578,15 +24479,15 @@ stmtattributes - 2213 + 2230 stmt_id - 2213 + 2230 spec_id - 558 + 579 @@ -24600,7 +24501,7 @@ 1 2 - 2213 + 2230 @@ -24616,7 +24517,7 @@ 1 2 - 214 + 235 2 @@ -24646,15 +24547,15 @@ unspecifiedtype - 7174204 + 7228463 type_id - 7174204 + 7228463 unspecified_type_id - 3962840 + 3955718 @@ -24668,7 +24569,7 @@ 1 2 - 7174204 + 7228463 @@ -24684,22 +24585,22 @@ 1 2 - 2481094 + 2475279 2 3 - 1116611 + 1114435 3 7 - 302636 + 304027 7 - 537 - 62498 + 892 + 61975 @@ -24709,19 +24610,19 @@ member - 4189506 + 4182339 parent - 543273 + 541973 index - 29689 + 29618 child - 4184890 + 4177734 @@ -24735,57 +24636,57 @@ 1 2 - 128988 + 128679 2 3 - 83331 + 83131 3 4 - 32434 + 32356 4 5 - 44908 + 44801 5 6 - 42414 + 42312 6 7 - 33931 + 33849 7 9 - 42289 + 42188 9 13 - 41166 + 41067 13 18 - 41291 + 41192 18 42 - 40792 + 40694 42 239 - 11726 + 11698 @@ -24801,57 +24702,57 @@ 1 2 - 128738 + 128430 2 3 - 83455 + 83256 3 4 - 32184 + 32107 4 5 - 45033 + 44925 5 6 - 42538 + 42436 6 7 - 32808 + 32729 7 9 - 42663 + 42561 9 13 - 41540 + 41441 13 18 - 41416 + 41316 18 42 - 40917 + 40694 42 265 - 11975 + 12071 @@ -24867,57 +24768,57 @@ 1 2 - 6486 + 6471 2 3 - 2619 + 2613 3 8 - 1871 + 1866 9 10 - 2869 + 2862 10 19 - 2245 + 2240 19 26 - 2245 + 2240 26 36 - 2494 + 2488 36 50 - 2245 + 2240 54 141 - 2245 + 2240 150 468 - 2245 + 2240 480 4310 - 2120 + 2115 @@ -24933,57 +24834,57 @@ 1 2 - 5488 + 5475 2 3 - 3617 + 3609 3 9 - 1871 + 1866 9 10 - 2869 + 2862 10 20 - 2370 + 2240 20 - 28 - 2370 + 27 + 2240 - 28 + 27 37 - 2370 + 2613 37 56 - 2370 + 2364 58 156 - 2245 + 2240 - 163 - 527 - 2245 + 164 + 528 + 2240 - 547 - 4330 - 1871 + 548 + 4332 + 1866 @@ -24999,7 +24900,7 @@ 1 2 - 4184890 + 4177734 @@ -25015,12 +24916,12 @@ 1 2 - 4180274 + 4173129 2 3 - 4615 + 4604 @@ -25030,15 +24931,15 @@ enclosingfunction - 114807 + 114982 child - 114807 + 114982 parent - 71337 + 69094 @@ -25052,7 +24953,7 @@ 1 2 - 114807 + 114982 @@ -25068,22 +24969,22 @@ 1 2 - 49329 + 37471 2 3 - 4633 + 24479 3 - 4 - 15364 + 5 + 6059 - 4 - 37 - 2009 + 5 + 45 + 1083 @@ -25093,27 +24994,27 @@ derivations - 476878 + 473802 derivation - 476878 + 473802 sub - 455143 + 452207 index - 238 + 236 super - 235543 + 234024 location - 35396 + 35167 @@ -25127,7 +25028,7 @@ 1 2 - 476878 + 473802 @@ -25143,7 +25044,7 @@ 1 2 - 476878 + 473802 @@ -25159,7 +25060,7 @@ 1 2 - 476878 + 473802 @@ -25175,7 +25076,7 @@ 1 2 - 476878 + 473802 @@ -25191,12 +25092,12 @@ 1 2 - 438620 + 435791 2 9 - 16522 + 16416 @@ -25212,12 +25113,12 @@ 1 2 - 438620 + 435791 2 8 - 16522 + 16416 @@ -25233,12 +25134,12 @@ 1 2 - 438620 + 435791 2 9 - 16522 + 16416 @@ -25254,12 +25155,12 @@ 1 2 - 438620 + 435791 2 8 - 16522 + 16416 @@ -25275,27 +25176,27 @@ 25 26 - 102 + 101 26 27 - 34 + 33 52 53 - 34 + 33 485 486 - 34 + 33 13360 13361 - 34 + 33 @@ -25311,22 +25212,22 @@ 25 26 - 136 + 135 52 53 - 34 + 33 485 486 - 34 + 33 13360 13361 - 34 + 33 @@ -25342,32 +25243,32 @@ 23 24 - 34 + 33 24 25 - 34 + 33 25 26 - 68 + 67 32 33 - 34 + 33 289 290 - 34 + 33 6510 6511 - 34 + 33 @@ -25383,22 +25284,22 @@ 1 2 - 136 + 135 7 8 - 34 + 33 65 66 - 34 + 33 963 964 - 34 + 33 @@ -25414,12 +25315,12 @@ 1 2 - 225732 + 224276 2 1655 - 9811 + 9748 @@ -25435,12 +25336,12 @@ 1 2 - 225732 + 224276 2 1655 - 9811 + 9748 @@ -25456,12 +25357,12 @@ 1 2 - 235100 + 233584 2 4 - 442 + 440 @@ -25477,12 +25378,12 @@ 1 2 - 230194 + 228710 2 81 - 5348 + 5314 @@ -25498,27 +25399,27 @@ 1 2 - 26504 + 26333 2 5 - 3134 + 3114 5 22 - 2759 + 2741 22 383 - 2691 + 2673 388 928 - 306 + 304 @@ -25534,27 +25435,27 @@ 1 2 - 26504 + 26333 2 5 - 3134 + 3114 5 22 - 2759 + 2741 22 383 - 2691 + 2673 388 928 - 306 + 304 @@ -25570,7 +25471,7 @@ 1 2 - 35396 + 35167 @@ -25586,22 +25487,22 @@ 1 2 - 28718 + 28533 2 4 - 2623 + 2606 4 26 - 2827 + 2809 26 928 - 1226 + 1218 @@ -25611,15 +25512,15 @@ derspecifiers - 478649 + 475562 der_id - 476435 + 473362 spec_id - 136 + 135 @@ -25633,12 +25534,12 @@ 1 2 - 474221 + 471162 2 3 - 2214 + 2200 @@ -25654,22 +25555,22 @@ 65 66 - 34 + 33 92 93 - 34 + 33 1104 1105 - 34 + 33 12789 12790 - 34 + 33 @@ -25679,15 +25580,15 @@ direct_base_offsets - 449965 + 447062 der_id - 449965 + 447062 offset - 511 + 507 @@ -25701,7 +25602,7 @@ 1 2 - 449965 + 447062 @@ -25717,42 +25618,42 @@ 1 2 - 102 + 101 2 3 - 136 + 135 3 4 - 102 + 101 4 5 - 34 + 33 7 8 - 34 + 33 9 10 - 34 + 33 110 111 - 34 + 33 13058 13059 - 34 + 33 @@ -25762,19 +25663,19 @@ virtual_base_offsets - 5825 + 5787 sub - 5825 + 5787 super - 102 + 101 offset - 340 + 338 @@ -25788,7 +25689,7 @@ 1 2 - 5825 + 5787 @@ -25804,7 +25705,7 @@ 1 2 - 5825 + 5787 @@ -25820,12 +25721,12 @@ 9 10 - 68 + 67 153 154 - 34 + 33 @@ -25841,12 +25742,12 @@ 1 2 - 34 + 33 9 10 - 68 + 67 @@ -25862,12 +25763,12 @@ 2 3 - 306 + 304 153 154 - 34 + 33 @@ -25883,12 +25784,12 @@ 1 2 - 34 + 33 2 3 - 306 + 304 @@ -25898,23 +25799,23 @@ frienddecls - 700430 + 695912 id - 700430 + 695912 type_id - 42414 + 42140 decl_id - 77742 + 77240 location - 6098 + 6058 @@ -25928,7 +25829,7 @@ 1 2 - 700430 + 695912 @@ -25944,7 +25845,7 @@ 1 2 - 700430 + 695912 @@ -25960,7 +25861,7 @@ 1 2 - 700430 + 695912 @@ -25976,47 +25877,47 @@ 1 2 - 6166 + 6126 2 3 - 13967 + 13877 3 7 - 3577 + 3554 7 12 - 3440 + 3418 12 20 - 3645 + 3621 20 32 - 3304 + 3283 33 50 - 3781 + 3757 50 80 - 3781 + 3757 101 120 - 749 + 744 @@ -26032,47 +25933,47 @@ 1 2 - 6166 + 6126 2 3 - 13967 + 13877 3 7 - 3577 + 3554 7 12 - 3440 + 3418 12 20 - 3645 + 3621 20 32 - 3304 + 3283 33 50 - 3781 + 3757 50 80 - 3781 + 3757 101 120 - 749 + 744 @@ -26088,12 +25989,12 @@ 1 2 - 41051 + 40786 2 13 - 1362 + 1353 @@ -26109,32 +26010,32 @@ 1 2 - 47864 + 47556 2 3 - 6064 + 6024 3 8 - 5995 + 5957 8 15 - 6064 + 6024 15 40 - 6064 + 6024 40 164 - 5689 + 5652 @@ -26150,32 +26051,32 @@ 1 2 - 47864 + 47556 2 3 - 6064 + 6024 3 8 - 5995 + 5957 8 15 - 6064 + 6024 15 40 - 6064 + 6024 40 164 - 5689 + 5652 @@ -26191,12 +26092,12 @@ 1 2 - 77060 + 76563 2 5 - 681 + 676 @@ -26212,12 +26113,12 @@ 1 2 - 5723 + 5686 2 20371 - 374 + 372 @@ -26233,12 +26134,12 @@ 1 2 - 5961 + 5923 2 1148 - 136 + 135 @@ -26254,12 +26155,12 @@ 1 2 - 5757 + 5720 2 2129 - 340 + 338 @@ -26269,19 +26170,19 @@ comments - 11233100 + 11208574 id - 11233100 + 11208574 contents - 4303524 + 4294964 location - 11233100 + 11208574 @@ -26295,7 +26196,7 @@ 1 2 - 11233100 + 11208574 @@ -26311,7 +26212,7 @@ 1 2 - 11233100 + 11208574 @@ -26327,17 +26228,17 @@ 1 2 - 3928784 + 3920499 2 6 - 322970 + 322819 6 34447 - 51770 + 51646 @@ -26353,17 +26254,17 @@ 1 2 - 3928784 + 3920499 2 6 - 322970 + 322819 6 34447 - 51770 + 51646 @@ -26379,7 +26280,7 @@ 1 2 - 11233100 + 11208574 @@ -26395,7 +26296,7 @@ 1 2 - 11233100 + 11208574 @@ -26405,15 +26306,15 @@ commentbinding - 3914688 + 3905316 id - 3350706 + 3342685 element - 3749148 + 3740173 @@ -26427,12 +26328,12 @@ 1 2 - 3289081 + 3281207 2 1706 - 61625 + 61477 @@ -26448,12 +26349,12 @@ 1 2 - 3583609 + 3575030 2 3 - 165539 + 165143 @@ -26463,15 +26364,15 @@ exprconv - 9633168 + 9634072 converted - 9633062 + 9633966 conversion - 9633168 + 9634072 @@ -26485,7 +26386,7 @@ 1 2 - 9632957 + 9633861 2 @@ -26506,7 +26407,7 @@ 1 2 - 9633168 + 9634072 @@ -26516,22 +26417,22 @@ compgenerated - 9895967 + 9923989 id - 9895967 + 9923989 synthetic_destructor_call - 1669328 + 1666648 element - 1243197 + 1241202 i @@ -26539,7 +26440,7 @@ destructor_call - 1669328 + 1666648 @@ -26553,17 +26454,17 @@ 1 2 - 827509 + 826180 2 3 - 408898 + 408242 3 19 - 6789 + 6778 @@ -26579,17 +26480,17 @@ 1 2 - 827509 + 826180 2 3 - 408898 + 408242 3 19 - 6789 + 6778 @@ -26737,7 +26638,7 @@ 1 2 - 1669328 + 1666648 @@ -26753,7 +26654,7 @@ 1 2 - 1669328 + 1666648 @@ -26763,15 +26664,15 @@ namespaces - 8649 + 8615 id - 8649 + 8615 name - 4572 + 4555 @@ -26785,7 +26686,7 @@ 1 2 - 8649 + 8615 @@ -26801,17 +26702,17 @@ 1 2 - 3738 + 3724 2 3 - 528 + 525 3 149 - 306 + 305 @@ -26821,26 +26722,26 @@ namespace_inline - 498 + 497 id - 498 + 497 namespacembrs - 2038492 + 2110396 parentid - 3991 + 3982 memberid - 2038492 + 2110396 @@ -26854,66 +26755,66 @@ 1 2 - 498 + 497 2 3 - 249 + 248 3 4 - 498 + 497 4 5 - 623 + 622 - 5 + 7 10 - 249 + 248 10 12 - 249 + 248 12 18 - 249 + 248 19 21 - 249 + 248 23 24 - 249 + 248 25 29 - 249 + 248 70 83 - 249 + 248 165 170 - 249 + 248 - 15613 - 15614 + 16228 + 16229 124 @@ -26930,7 +26831,7 @@ 1 2 - 2038492 + 2110396 @@ -26940,19 +26841,19 @@ exprparents - 19454457 + 19456291 expr_id - 19454457 + 19456291 child_index - 20035 + 20037 parent_id - 12940148 + 12941377 @@ -26966,7 +26867,7 @@ 1 2 - 19454457 + 19456291 @@ -26982,7 +26883,7 @@ 1 2 - 19454457 + 19456291 @@ -27013,7 +26914,7 @@ 4 5 - 8976 + 8977 5 @@ -27032,7 +26933,7 @@ 56 - 354800 + 354801 506 @@ -27064,7 +26965,7 @@ 4 5 - 8976 + 8977 5 @@ -27083,7 +26984,7 @@ 56 - 354800 + 354801 506 @@ -27100,17 +27001,17 @@ 1 2 - 7394848 + 7395563 2 3 - 5082743 + 5083215 3 712 - 462556 + 462599 @@ -27126,17 +27027,17 @@ 1 2 - 7394848 + 7395563 2 3 - 5082743 + 5083215 3 712 - 462556 + 462599 @@ -27146,22 +27047,22 @@ expr_isload - 6899311 + 6898014 expr_id - 6899311 + 6898014 conversionkinds - 6050443 + 6051175 expr_id - 6050443 + 6051175 kind @@ -27179,7 +27080,7 @@ 1 2 - 6050443 + 6051175 @@ -27208,23 +27109,23 @@ 1 - 40988 - 40989 + 40984 + 40985 1 - 71409 - 71410 + 71408 + 71409 1 - 93247 - 93248 + 93454 + 93455 1 - 5831535 - 5831536 + 5832065 + 5832066 1 @@ -27235,11 +27136,11 @@ iscall - 5800192 + 5790817 caller - 5800192 + 5790817 kind @@ -27257,7 +27158,7 @@ 1 2 - 5800192 + 5790817 @@ -27276,13 +27177,13 @@ 21 - 1408 - 1409 + 1409 + 1410 21 - 268315 - 268316 + 268311 + 268312 21 @@ -27293,15 +27194,15 @@ numtemplatearguments - 627727 + 640909 expr_id - 627727 + 640909 num - 374 + 995 @@ -27315,7 +27216,7 @@ 1 2 - 627727 + 640909 @@ -27329,18 +27230,38 @@ 12 - 7 - 8 + 1 + 2 124 - 1266 - 1267 + 6 + 7 124 - 3759 - 3760 + 28 + 29 + 248 + + + 61 + 62 + 124 + + + 219 + 220 + 124 + + + 1573 + 1574 + 124 + + + 3234 + 3235 124 @@ -27399,23 +27320,23 @@ namequalifiers - 3037638 + 3042587 id - 3037638 + 3042587 qualifiableelement - 3037638 + 3042587 qualifyingelement - 47419 + 47729 location - 551672 + 554605 @@ -27429,7 +27350,7 @@ 1 2 - 3037638 + 3042587 @@ -27445,7 +27366,7 @@ 1 2 - 3037638 + 3042587 @@ -27461,7 +27382,7 @@ 1 2 - 3037638 + 3042587 @@ -27477,7 +27398,7 @@ 1 2 - 3037638 + 3042587 @@ -27493,7 +27414,7 @@ 1 2 - 3037638 + 3042587 @@ -27509,7 +27430,7 @@ 1 2 - 3037638 + 3042587 @@ -27525,27 +27446,27 @@ 1 2 - 31498 + 31447 2 3 - 8164 + 8173 3 5 - 4103 + 4140 5 - 6810 - 3566 + 86 + 3582 - 19018 + 88 41956 - 85 + 386 @@ -27561,27 +27482,27 @@ 1 2 - 31498 + 31447 2 3 - 8164 + 8173 3 5 - 4103 + 4140 5 - 6810 - 3566 + 86 + 3582 - 19018 + 88 41956 - 85 + 386 @@ -27597,22 +27518,22 @@ 1 2 - 34356 + 34665 2 3 - 7348 + 7336 3 6 - 3566 + 3582 6 20057 - 2148 + 2145 @@ -27628,22 +27549,22 @@ 1 2 - 79046 + 79413 2 6 - 38030 + 41015 6 7 - 398435 + 397795 7 192 - 36160 + 36381 @@ -27659,22 +27580,22 @@ 1 2 - 79046 + 79413 2 6 - 38030 + 41015 6 7 - 398435 + 397795 7 192 - 36160 + 36381 @@ -27690,22 +27611,22 @@ 1 2 - 111383 + 114958 2 4 - 13278 + 13321 4 5 - 414721 + 414055 5 33 - 12289 + 12270 @@ -27715,15 +27636,15 @@ varbind - 8254733 + 8255500 expr - 8254733 + 8255500 var - 1050389 + 1050486 @@ -27737,7 +27658,7 @@ 1 2 - 8254733 + 8255500 @@ -27753,52 +27674,52 @@ 1 2 - 171538 + 171553 2 3 - 188703 + 188720 3 4 - 145649 + 145663 4 5 - 116637 + 116648 5 6 - 83152 + 83159 6 7 - 65818 + 65824 7 9 - 80816 + 80823 9 13 - 81576 + 81583 13 27 - 79128 + 79135 27 5137 - 37369 + 37372 @@ -27808,15 +27729,15 @@ funbind - 5809904 + 5805683 expr - 5807433 + 5803624 fun - 275686 + 275028 @@ -27830,12 +27751,12 @@ 1 2 - 5804962 + 5801564 2 3 - 2470 + 2059 @@ -27851,27 +27772,27 @@ 1 2 - 181298 + 180900 2 3 - 38782 + 38269 3 4 - 17167 + 16882 4 8 - 22710 + 22910 8 37798 - 15727 + 16067 @@ -27881,19 +27802,19 @@ expr_allocator - 45241 + 44949 expr - 45241 + 44949 func - 102 + 101 form - 34 + 33 @@ -27907,7 +27828,7 @@ 1 2 - 45241 + 44949 @@ -27923,7 +27844,7 @@ 1 2 - 45241 + 44949 @@ -27939,17 +27860,17 @@ 1 2 - 34 + 33 591 592 - 34 + 33 736 737 - 34 + 33 @@ -27965,7 +27886,7 @@ 1 2 - 102 + 101 @@ -27981,7 +27902,7 @@ 1328 1329 - 34 + 33 @@ -27997,7 +27918,7 @@ 3 4 - 34 + 33 @@ -28007,19 +27928,19 @@ expr_deallocator - 53826 + 53479 expr - 53826 + 53479 func - 102 + 101 form - 68 + 67 @@ -28033,7 +27954,7 @@ 1 2 - 53826 + 53479 @@ -28049,7 +27970,7 @@ 1 2 - 53826 + 53479 @@ -28065,17 +27986,17 @@ 1 2 - 34 + 33 723 724 - 34 + 33 856 857 - 34 + 33 @@ -28091,7 +28012,7 @@ 1 2 - 102 + 101 @@ -28107,12 +28028,12 @@ 723 724 - 34 + 33 857 858 - 34 + 33 @@ -28128,12 +28049,12 @@ 1 2 - 34 + 33 2 3 - 34 + 33 @@ -28143,26 +28064,26 @@ expr_cond_two_operand - 653 + 650 cond - 653 + 650 expr_cond_guard - 897887 + 897971 cond - 897887 + 897971 guard - 897887 + 897971 @@ -28176,7 +28097,7 @@ 1 2 - 897887 + 897971 @@ -28192,7 +28113,7 @@ 1 2 - 897887 + 897971 @@ -28202,15 +28123,15 @@ expr_cond_true - 897883 + 897968 cond - 897883 + 897968 true - 897883 + 897968 @@ -28224,7 +28145,7 @@ 1 2 - 897883 + 897968 @@ -28240,7 +28161,7 @@ 1 2 - 897883 + 897968 @@ -28250,15 +28171,15 @@ expr_cond_false - 897887 + 897971 cond - 897887 + 897971 false - 897887 + 897971 @@ -28272,7 +28193,7 @@ 1 2 - 897887 + 897971 @@ -28288,7 +28209,7 @@ 1 2 - 897887 + 897971 @@ -28298,15 +28219,15 @@ values - 13474772 + 13541399 id - 13474772 + 13541399 str - 114567 + 113909 @@ -28320,7 +28241,7 @@ 1 2 - 13474772 + 13541399 @@ -28336,27 +28257,27 @@ 1 2 - 78303 + 77855 2 3 - 15301 + 15207 3 6 - 8895 + 8837 6 52 - 8629 + 8579 52 - 674264 - 3437 + 682255 + 3429 @@ -28366,15 +28287,15 @@ valuetext - 6647555 + 6637514 id - 6647555 + 6637514 text - 1095412 + 1095316 @@ -28388,7 +28309,7 @@ 1 2 - 6647555 + 6637514 @@ -28404,22 +28325,22 @@ 1 2 - 833985 + 833959 2 3 - 146940 + 146911 3 7 - 86537 + 86574 7 - 593553 - 27950 + 593717 + 27872 @@ -28429,15 +28350,15 @@ valuebind - 13583356 + 13649549 val - 13474772 + 13541399 expr - 13583356 + 13649549 @@ -28451,12 +28372,12 @@ 1 2 - 13384216 + 13451241 2 6 - 90555 + 90157 @@ -28472,7 +28393,7 @@ 1 2 - 13583356 + 13649549 @@ -28482,15 +28403,15 @@ fieldoffsets - 1499494 + 1500528 id - 1499494 + 1500528 byteoffset - 31367 + 31369 bitoffset @@ -28508,7 +28429,7 @@ 1 2 - 1499494 + 1500528 @@ -28524,7 +28445,7 @@ 1 2 - 1499494 + 1500528 @@ -28540,7 +28461,7 @@ 1 2 - 17698 + 17700 2 @@ -28555,7 +28476,7 @@ 5 12 - 2613 + 2614 12 @@ -28569,7 +28490,7 @@ 250 - 5966 + 5971 1089 @@ -28586,12 +28507,12 @@ 1 2 - 30387 + 30335 2 9 - 980 + 1034 @@ -28615,8 +28536,8 @@ 54 - 44 - 45 + 45 + 46 54 @@ -28630,18 +28551,18 @@ 54 - 64 - 65 + 65 + 66 54 - 81 - 82 + 82 + 83 54 - 27179 - 27180 + 27193 + 27194 54 @@ -28663,11 +28584,16 @@ 13 14 - 108 + 54 14 15 + 54 + + + 15 + 16 108 @@ -28683,19 +28609,19 @@ bitfield - 30313 + 30240 id - 30313 + 30240 bits - 3492 + 3484 declared_bits - 3492 + 3484 @@ -28709,7 +28635,7 @@ 1 2 - 30313 + 30240 @@ -28725,7 +28651,7 @@ 1 2 - 30313 + 30240 @@ -28741,42 +28667,42 @@ 1 2 - 997 + 995 2 3 - 748 + 746 3 4 - 249 + 248 4 5 - 498 + 497 5 7 - 249 + 248 8 9 - 249 + 248 9 11 - 249 + 248 13 143 - 249 + 248 @@ -28792,7 +28718,7 @@ 1 2 - 3492 + 3484 @@ -28808,42 +28734,42 @@ 1 2 - 997 + 995 2 3 - 748 + 746 3 4 - 249 + 248 4 5 - 498 + 497 5 7 - 249 + 248 8 9 - 249 + 248 9 11 - 249 + 248 13 143 - 249 + 248 @@ -28859,7 +28785,7 @@ 1 2 - 3492 + 3484 @@ -28869,23 +28795,23 @@ initialisers - 2247637 + 2244826 init - 2247637 + 2244826 var - 979696 + 978849 expr - 2247637 + 2244826 location - 516295 + 515723 @@ -28899,7 +28825,7 @@ 1 2 - 2247637 + 2244826 @@ -28915,7 +28841,7 @@ 1 2 - 2247637 + 2244826 @@ -28931,7 +28857,7 @@ 1 2 - 2247637 + 2244826 @@ -28947,17 +28873,17 @@ 1 2 - 869453 + 868819 2 15 - 37398 + 37292 16 25 - 72843 + 72737 @@ -28973,17 +28899,17 @@ 1 2 - 869453 + 868819 2 15 - 37398 + 37292 16 25 - 72843 + 72737 @@ -28999,7 +28925,7 @@ 1 2 - 979688 + 978841 2 @@ -29020,7 +28946,7 @@ 1 2 - 2247637 + 2244826 @@ -29036,7 +28962,7 @@ 1 2 - 2247637 + 2244826 @@ -29052,7 +28978,7 @@ 1 2 - 2247637 + 2244826 @@ -29068,22 +28994,22 @@ 1 2 - 414608 + 414196 2 3 - 33555 + 33502 3 13 - 42013 + 41940 13 111925 - 26119 + 26084 @@ -29099,17 +29025,17 @@ 1 2 - 443873 + 443422 2 3 - 34463 + 34409 3 - 12238 - 37958 + 12247 + 37891 @@ -29125,22 +29051,22 @@ 1 2 - 414608 + 414196 2 3 - 33555 + 33502 3 13 - 42013 + 41940 13 111925 - 26119 + 26084 @@ -29150,26 +29076,26 @@ braced_initialisers - 68305 + 67626 init - 68305 + 67626 expr_ancestor - 1675301 + 1672612 exp - 1675301 + 1672612 ancestor - 838467 + 837121 @@ -29183,7 +29109,7 @@ 1 2 - 1675301 + 1672612 @@ -29199,17 +29125,17 @@ 1 2 - 17059 + 17032 2 3 - 811351 + 810049 3 19 - 10055 + 10039 @@ -29219,11 +29145,11 @@ exprs - 25210887 + 25213256 id - 25210887 + 25213256 kind @@ -29231,7 +29157,7 @@ location - 10585988 + 10586808 @@ -29245,7 +29171,7 @@ 1 2 - 25210887 + 25213256 @@ -29261,7 +29187,7 @@ 1 2 - 25210887 + 25213256 @@ -29336,7 +29262,7 @@ 63936 - 144106 + 144093 109 @@ -29439,22 +29365,22 @@ 1 2 - 8903998 + 8904642 2 3 - 820618 + 820704 3 16 - 797208 + 797292 16 71733 - 64162 + 64169 @@ -29470,17 +29396,17 @@ 1 2 - 9043402 + 9044060 2 3 - 774282 + 774363 3 32 - 768303 + 768384 @@ -29490,15 +29416,15 @@ expr_reuse - 845836 + 844479 reuse - 845836 + 844479 original - 845836 + 844479 value_category @@ -29516,7 +29442,7 @@ 1 2 - 845836 + 844479 @@ -29532,7 +29458,7 @@ 1 2 - 845836 + 844479 @@ -29548,7 +29474,7 @@ 1 2 - 845836 + 844479 @@ -29564,7 +29490,7 @@ 1 2 - 845836 + 844479 @@ -29616,15 +29542,15 @@ expr_types - 25210887 + 25213256 id - 25210887 + 25213256 typeid - 214205 + 214227 value_category @@ -29642,7 +29568,7 @@ 1 2 - 25210887 + 25213256 @@ -29658,7 +29584,7 @@ 1 2 - 25210887 + 25213256 @@ -29674,52 +29600,52 @@ 1 2 - 52512 + 52518 2 3 - 35191 + 35195 3 4 - 14507 + 14509 4 5 - 14529 + 14530 5 8 - 17562 + 17564 8 14 - 17387 + 17388 14 24 - 16441 + 16443 24 49 - 16068 + 16069 49 134 - 16178 + 16179 134 - 441505 - 13826 + 441492 + 13827 @@ -29735,12 +29661,12 @@ 1 2 - 185915 + 185935 2 3 - 28289 + 28292 @@ -29759,8 +29685,8 @@ 21 - 993192 - 993193 + 993180 + 993181 21 @@ -29803,15 +29729,15 @@ new_allocated_type - 46195 + 45897 expr - 46195 + 45897 type_id - 27390 + 27213 @@ -29825,7 +29751,7 @@ 1 2 - 46195 + 45897 @@ -29841,17 +29767,17 @@ 1 2 - 11514 + 11440 2 3 - 14478 + 14385 3 19 - 1396 + 1387 @@ -29861,15 +29787,15 @@ new_array_allocated_type - 6641 + 6632 expr - 6641 + 6632 type_id - 2838 + 2834 @@ -29883,7 +29809,7 @@ 1 2 - 6641 + 6632 @@ -29904,7 +29830,7 @@ 2 3 - 2505 + 2502 3 @@ -29924,19 +29850,19 @@ aggregate_field_init - 5717381 + 5717382 aggregate - 1243069 + 1243070 initializer - 5717203 + 5717204 field - 3228 + 3229 position @@ -29958,7 +29884,7 @@ 1 2 - 19691 + 19692 2 @@ -30009,7 +29935,7 @@ 1 2 - 19687 + 19688 2 @@ -30060,7 +29986,7 @@ 1 2 - 19691 + 19692 2 @@ -30111,7 +30037,7 @@ 1 2 - 1242987 + 1242988 2 @@ -30132,7 +30058,7 @@ 1 2 - 5717203 + 5717204 @@ -30148,7 +30074,7 @@ 1 2 - 5717025 + 5717026 2 @@ -30169,7 +30095,7 @@ 1 2 - 5717203 + 5717204 @@ -30185,7 +30111,7 @@ 1 2 - 5717203 + 5717204 @@ -30201,7 +30127,7 @@ 1 2 - 1434 + 1435 2 @@ -30257,7 +30183,7 @@ 1 2 - 1434 + 1435 2 @@ -30313,7 +30239,7 @@ 1 2 - 3214 + 3215 2 @@ -30334,7 +30260,7 @@ 1 2 - 3202 + 3203 2 @@ -30408,8 +30334,8 @@ 2 - 1243069 - 1243070 + 1243070 + 1243071 1 @@ -30479,8 +30405,8 @@ 2 - 1243069 - 1243070 + 1243070 + 1243071 1 @@ -30550,8 +30476,8 @@ 2 - 1284 - 1285 + 1285 + 1286 1 @@ -30592,8 +30518,8 @@ 1 - 1242671 - 1242672 + 1242672 + 1242673 1 @@ -30613,8 +30539,8 @@ 1 - 5716493 - 5716494 + 5716494 + 5716495 1 @@ -30634,8 +30560,8 @@ 1 - 3036 - 3037 + 3037 + 3038 1 @@ -31260,15 +31186,15 @@ condition_decl_bind - 408340 + 407684 expr - 408340 + 407684 decl - 408340 + 407684 @@ -31282,7 +31208,7 @@ 1 2 - 408340 + 407684 @@ -31298,7 +31224,7 @@ 1 2 - 408340 + 407684 @@ -31308,15 +31234,15 @@ typeid_bind - 47899 + 47590 expr - 47899 + 47590 type_id - 15943 + 15840 @@ -31330,7 +31256,7 @@ 1 2 - 47899 + 47590 @@ -31346,17 +31272,17 @@ 1 2 - 2963 + 2944 2 3 - 12570 + 12489 3 328 - 408 + 406 @@ -31366,15 +31292,15 @@ uuidof_bind - 26695 + 26691 expr - 26695 + 26691 type_id - 26443 + 26440 @@ -31388,7 +31314,7 @@ 1 2 - 26695 + 26691 @@ -31404,7 +31330,7 @@ 1 2 - 26232 + 26229 2 @@ -31419,15 +31345,15 @@ sizeof_bind - 242030 + 241830 expr - 242030 + 241830 type_id - 11210 + 11145 @@ -31441,7 +31367,7 @@ 1 2 - 242030 + 241830 @@ -31457,42 +31383,42 @@ 1 2 - 3877 + 3855 2 3 - 2783 + 2750 3 4 - 1024 + 1018 4 5 - 1140 + 1104 5 6 - 295 + 281 6 7 - 1064 + 1116 7 - 40 - 856 + 42 + 851 - 40 + 42 6061 - 167 + 166 @@ -31550,11 +31476,11 @@ lambdas - 19023 + 18998 expr - 19023 + 18998 default_capture @@ -31580,7 +31506,7 @@ 1 2 - 19023 + 18998 @@ -31596,7 +31522,7 @@ 1 2 - 19023 + 18998 @@ -31612,7 +31538,7 @@ 1 2 - 19023 + 18998 @@ -31796,15 +31722,15 @@ lambda_capture - 31909 + 31866 id - 31909 + 31866 lambda - 15463 + 15443 index @@ -31812,7 +31738,7 @@ field - 31909 + 31866 captured_by_reference @@ -31824,7 +31750,7 @@ location - 17912 + 17888 @@ -31838,7 +31764,7 @@ 1 2 - 31909 + 31866 @@ -31854,7 +31780,7 @@ 1 2 - 31909 + 31866 @@ -31870,7 +31796,7 @@ 1 2 - 31909 + 31866 @@ -31886,7 +31812,7 @@ 1 2 - 31909 + 31866 @@ -31902,7 +31828,7 @@ 1 2 - 31909 + 31866 @@ -31918,7 +31844,7 @@ 1 2 - 31909 + 31866 @@ -31934,27 +31860,27 @@ 1 2 - 8198 + 8187 2 3 - 3535 + 3530 3 4 - 1654 + 1652 4 6 - 1256 + 1255 6 18 - 819 + 817 @@ -31970,27 +31896,27 @@ 1 2 - 8198 + 8187 2 3 - 3535 + 3530 3 4 - 1654 + 1652 4 6 - 1256 + 1255 6 18 - 819 + 817 @@ -32006,27 +31932,27 @@ 1 2 - 8198 + 8187 2 3 - 3535 + 3530 3 4 - 1654 + 1652 4 6 - 1256 + 1255 6 18 - 819 + 817 @@ -32042,12 +31968,12 @@ 1 2 - 14223 + 14204 2 3 - 1240 + 1239 @@ -32063,7 +31989,7 @@ 1 2 - 15342 + 15321 2 @@ -32084,27 +32010,27 @@ 1 2 - 8790 + 8778 2 3 - 3689 + 3684 3 4 - 1386 + 1384 4 7 - 1289 + 1287 7 18 - 308 + 307 @@ -32429,7 +32355,7 @@ 1 2 - 81 + 80 2 @@ -32546,7 +32472,7 @@ 1 2 - 31909 + 31866 @@ -32562,7 +32488,7 @@ 1 2 - 31909 + 31866 @@ -32578,7 +32504,7 @@ 1 2 - 31909 + 31866 @@ -32594,7 +32520,7 @@ 1 2 - 31909 + 31866 @@ -32610,7 +32536,7 @@ 1 2 - 31909 + 31866 @@ -32626,7 +32552,7 @@ 1 2 - 31909 + 31866 @@ -32884,17 +32810,17 @@ 1 2 - 15666 + 15645 2 6 - 1435 + 1433 6 68 - 810 + 809 @@ -32910,12 +32836,12 @@ 1 2 - 16242 + 16220 2 13 - 1467 + 1465 13 @@ -32936,12 +32862,12 @@ 1 2 - 17223 + 17200 2 8 - 689 + 688 @@ -32957,17 +32883,17 @@ 1 2 - 15666 + 15645 2 6 - 1435 + 1433 6 68 - 810 + 809 @@ -32983,7 +32909,7 @@ 1 2 - 17888 + 17864 2 @@ -33004,7 +32930,7 @@ 1 2 - 17912 + 17888 @@ -33014,11 +32940,11 @@ fold - 1246 + 1244 expr - 1246 + 1244 operator @@ -33040,7 +32966,7 @@ 1 2 - 1246 + 1244 @@ -33056,7 +32982,7 @@ 1 2 - 1246 + 1244 @@ -33140,19 +33066,19 @@ stmts - 6358201 + 6349655 id - 6358201 + 6349655 kind - 162 + 161 location - 2679769 + 2676167 @@ -33166,7 +33092,7 @@ 1 2 - 6358201 + 6349655 @@ -33182,7 +33108,7 @@ 1 2 - 6358201 + 6349655 @@ -33420,22 +33346,22 @@ 1 2 - 2221080 + 2218094 2 3 - 181910 + 181666 3 10 - 201818 + 201547 10 1789 - 74960 + 74859 @@ -33451,12 +33377,12 @@ 1 2 - 2596951 + 2593460 2 10 - 82817 + 82706 @@ -33573,15 +33499,15 @@ if_initialization - 374 + 373 if_stmt - 374 + 373 init_id - 374 + 373 @@ -33595,7 +33521,7 @@ 1 2 - 374 + 373 @@ -33611,7 +33537,7 @@ 1 2 - 374 + 373 @@ -33621,15 +33547,15 @@ if_then - 990227 + 990318 if_stmt - 990227 + 990318 then_id - 990227 + 990318 @@ -33643,7 +33569,7 @@ 1 2 - 990227 + 990318 @@ -33659,7 +33585,7 @@ 1 2 - 990227 + 990318 @@ -33669,15 +33595,15 @@ if_else - 436486 + 435786 if_stmt - 436486 + 435786 else_id - 436486 + 435786 @@ -33691,7 +33617,7 @@ 1 2 - 436486 + 435786 @@ -33707,7 +33633,7 @@ 1 2 - 436486 + 435786 @@ -33765,15 +33691,15 @@ constexpr_if_then - 106035 + 105781 constexpr_if_stmt - 106035 + 105781 then_id - 106035 + 105781 @@ -33787,7 +33713,7 @@ 1 2 - 106035 + 105781 @@ -33803,7 +33729,7 @@ 1 2 - 106035 + 105781 @@ -33813,15 +33739,15 @@ constexpr_if_else - 76095 + 75913 constexpr_if_stmt - 76095 + 75913 else_id - 76095 + 75913 @@ -33835,7 +33761,7 @@ 1 2 - 76095 + 75913 @@ -33851,7 +33777,7 @@ 1 2 - 76095 + 75913 @@ -33957,15 +33883,15 @@ while_body - 39648 + 39652 while_stmt - 39648 + 39652 body_id - 39648 + 39652 @@ -33979,7 +33905,7 @@ 1 2 - 39648 + 39652 @@ -33995,7 +33921,7 @@ 1 2 - 39648 + 39652 @@ -34005,15 +33931,15 @@ do_body - 233644 + 232290 do_stmt - 233644 + 232290 body_id - 233644 + 232290 @@ -34027,7 +33953,7 @@ 1 2 - 233644 + 232290 @@ -34043,7 +33969,7 @@ 1 2 - 233644 + 232290 @@ -34101,11 +34027,11 @@ switch_case - 834964 + 833624 switch_stmt - 411283 + 410623 index @@ -34113,7 +34039,7 @@ case_id - 834964 + 833624 @@ -34132,12 +34058,12 @@ 2 3 - 408404 + 407749 3 19 - 2857 + 2853 @@ -34158,12 +34084,12 @@ 2 3 - 408404 + 407749 3 19 - 2857 + 2853 @@ -34321,7 +34247,7 @@ 1 2 - 834964 + 833624 @@ -34337,7 +34263,7 @@ 1 2 - 834964 + 833624 @@ -34347,15 +34273,15 @@ switch_body - 411283 + 410623 switch_stmt - 411283 + 410623 body_id - 411283 + 410623 @@ -34369,7 +34295,7 @@ 1 2 - 411283 + 410623 @@ -34385,7 +34311,7 @@ 1 2 - 411283 + 410623 @@ -34395,15 +34321,15 @@ for_initialization - 73246 + 73253 for_stmt - 73246 + 73253 init_id - 73246 + 73253 @@ -34417,7 +34343,7 @@ 1 2 - 73246 + 73253 @@ -34433,7 +34359,7 @@ 1 2 - 73246 + 73253 @@ -34443,15 +34369,15 @@ for_condition - 76342 + 76349 for_stmt - 76342 + 76349 condition_id - 76342 + 76349 @@ -34465,7 +34391,7 @@ 1 2 - 76342 + 76349 @@ -34481,7 +34407,7 @@ 1 2 - 76342 + 76349 @@ -34491,15 +34417,15 @@ for_update - 73387 + 73394 for_stmt - 73387 + 73394 update_id - 73387 + 73394 @@ -34513,7 +34439,7 @@ 1 2 - 73387 + 73394 @@ -34529,7 +34455,7 @@ 1 2 - 73387 + 73394 @@ -34539,15 +34465,15 @@ for_body - 84390 + 84398 for_stmt - 84390 + 84398 body_id - 84390 + 84398 @@ -34561,7 +34487,7 @@ 1 2 - 84390 + 84398 @@ -34577,7 +34503,7 @@ 1 2 - 84390 + 84398 @@ -34587,19 +34513,19 @@ stmtparents - 5618647 + 5611095 id - 5618647 + 5611095 index - 15747 + 15726 parent - 2377536 + 2374340 @@ -34613,7 +34539,7 @@ 1 2 - 5618647 + 5611095 @@ -34629,7 +34555,7 @@ 1 2 - 5618647 + 5611095 @@ -34645,12 +34571,12 @@ 1 2 - 5173 + 5166 2 3 - 1289 + 1287 3 @@ -34660,37 +34586,37 @@ 4 5 - 2002 + 2000 7 8 - 1313 + 1311 8 12 - 1021 + 1020 12 29 - 1386 + 1384 29 39 - 1183 + 1182 42 78 - 1192 + 1190 78 209703 - 900 + 898 @@ -34706,12 +34632,12 @@ 1 2 - 5173 + 5166 2 3 - 1289 + 1287 3 @@ -34721,37 +34647,37 @@ 4 5 - 2002 + 2000 7 8 - 1313 + 1311 8 12 - 1021 + 1020 12 29 - 1386 + 1384 29 39 - 1183 + 1182 42 78 - 1192 + 1190 78 209703 - 900 + 898 @@ -34767,32 +34693,32 @@ 1 2 - 1356881 + 1355057 2 3 - 516458 + 515763 3 4 - 151250 + 151046 4 6 - 155450 + 155241 6 16 - 178553 + 178313 16 1943 - 18942 + 18917 @@ -34808,32 +34734,32 @@ 1 2 - 1356881 + 1355057 2 3 - 516458 + 515763 3 4 - 151250 + 151046 4 6 - 155450 + 155241 6 16 - 178553 + 178313 16 1943 - 18942 + 18917 @@ -34843,22 +34769,22 @@ ishandler - 43779 + 43261 block - 43779 + 43261 stmt_decl_bind - 724593 + 723619 stmt - 714043 + 713083 num @@ -34866,7 +34792,7 @@ decl - 724593 + 723619 @@ -34880,12 +34806,12 @@ 1 2 - 706591 + 705641 2 10 - 7452 + 7442 @@ -34901,12 +34827,12 @@ 1 2 - 706591 + 705641 2 10 - 7452 + 7442 @@ -35034,7 +34960,7 @@ 1 2 - 724593 + 723619 @@ -35050,7 +34976,7 @@ 1 2 - 724593 + 723619 @@ -35060,11 +34986,11 @@ stmt_decl_entry_bind - 724593 + 723619 stmt - 714043 + 713083 num @@ -35072,7 +34998,7 @@ decl_entry - 724593 + 723619 @@ -35086,12 +35012,12 @@ 1 2 - 706591 + 705641 2 10 - 7452 + 7442 @@ -35107,12 +35033,12 @@ 1 2 - 706591 + 705641 2 10 - 7452 + 7442 @@ -35240,7 +35166,7 @@ 1 2 - 724593 + 723619 @@ -35256,7 +35182,7 @@ 1 2 - 724593 + 723619 @@ -35266,15 +35192,15 @@ blockscope - 1644291 + 1640355 block - 1644291 + 1640355 enclosing - 1427106 + 1423690 @@ -35288,7 +35214,7 @@ 1 2 - 1644291 + 1640355 @@ -35304,17 +35230,17 @@ 1 2 - 1294500 + 1291401 2 4 - 117262 + 116981 4 29 - 15343 + 15307 @@ -35324,19 +35250,19 @@ jumpinfo - 348325 + 348211 id - 348325 + 348211 str - 28949 + 28939 target - 72707 + 72683 @@ -35350,7 +35276,7 @@ 1 2 - 348325 + 348211 @@ -35366,7 +35292,7 @@ 1 2 - 348325 + 348211 @@ -35382,17 +35308,17 @@ 2 3 - 13597 + 13592 3 4 - 6058 + 6056 4 5 - 2014 + 2013 5 @@ -35407,7 +35333,7 @@ 10 25 - 2189 + 2188 25 @@ -35428,17 +35354,17 @@ 1 2 - 23191 + 23183 2 3 - 3626 + 3625 3 3321 - 2131 + 2130 @@ -35459,27 +35385,27 @@ 2 3 - 36211 + 36199 3 4 - 17633 + 17627 4 5 - 7379 + 7376 5 8 - 6418 + 6416 8 2124 - 5030 + 5029 @@ -35495,7 +35421,7 @@ 1 2 - 72707 + 72683 @@ -35505,19 +35431,19 @@ preprocdirects - 5408285 + 5395213 id - 5408285 + 5395213 kind - 1372 + 1368 location - 5405041 + 5392102 @@ -35531,7 +35457,7 @@ 1 2 - 5408285 + 5395213 @@ -35547,7 +35473,7 @@ 1 2 - 5408285 + 5395213 @@ -35611,8 +35537,8 @@ 124 - 22045 - 22046 + 22044 + 22045 124 @@ -35695,11 +35621,11 @@ 1 2 - 5404916 + 5391977 - 27 - 28 + 26 + 27 124 @@ -35716,7 +35642,7 @@ 1 2 - 5405041 + 5392102 @@ -35726,15 +35652,15 @@ preprocpair - 1141186 + 1138454 begin - 888947 + 886819 elseelifend - 1141186 + 1138454 @@ -35748,17 +35674,17 @@ 1 2 - 649558 + 648003 2 3 - 230407 + 229856 3 9 - 8981 + 8960 @@ -35774,7 +35700,7 @@ 1 2 - 1141186 + 1138454 @@ -35784,41 +35710,41 @@ preproctrue - 439359 + 438182 branch - 439359 + 438182 preprocfalse - 285296 + 284613 branch - 285296 + 284613 preproctext - 4352301 + 4341757 id - 4352301 + 4341757 head - 2955008 + 2947934 body - 1683337 + 1679307 @@ -35832,7 +35758,7 @@ 1 2 - 4352301 + 4341757 @@ -35848,7 +35774,7 @@ 1 2 - 4352301 + 4341757 @@ -35864,12 +35790,12 @@ 1 2 - 2756411 + 2749812 2 798 - 198597 + 198121 @@ -35885,12 +35811,12 @@ 1 2 - 2873798 + 2866918 2 5 - 81210 + 81015 @@ -35906,17 +35832,17 @@ 1 2 - 1535137 + 1531462 2 10 - 127242 + 126937 10 - 13606 - 20957 + 13605 + 20907 @@ -35932,17 +35858,17 @@ 1 2 - 1539379 + 1535693 2 12 - 126867 + 126564 12 3246 - 17090 + 17049 @@ -35952,15 +35878,15 @@ includes - 318598 + 317353 id - 318598 + 317353 included - 58688 + 58459 @@ -35974,7 +35900,7 @@ 1 2 - 318598 + 317353 @@ -35990,37 +35916,37 @@ 1 2 - 29043 + 28929 2 3 - 9441 + 9404 3 4 - 4953 + 4933 4 6 - 5354 + 5333 6 11 - 4520 + 4502 11 47 - 4403 + 4386 47 793 - 971 + 967 @@ -36078,15 +36004,15 @@ link_parent - 30401054 + 30225687 element - 3866469 + 3843833 link_target - 340 + 338 @@ -36100,17 +36026,17 @@ 1 2 - 530500 + 527079 2 9 - 26947 + 26773 9 10 - 3309021 + 3289980 @@ -36126,52 +36052,52 @@ 3 4 - 34 + 33 - 97389 - 97390 - 34 + 97457 + 97458 + 33 - 97508 - 97509 - 34 + 97576 + 97577 + 33 - 97561 - 97562 - 34 + 97629 + 97630 + 33 - 97588 - 97589 - 34 + 97656 + 97657 + 33 - 97610 - 97611 - 34 + 97678 + 97679 + 33 - 97642 - 97643 - 34 + 97710 + 97711 + 33 - 99649 - 99650 - 34 + 99717 + 99718 + 33 - 103029 - 103030 - 34 + 103097 + 103098 + 33 - 104395 - 104396 - 34 + 104463 + 104464 + 33 @@ -36179,6 +36105,53 @@ + + databaseMetadata + 1 + + + metadataKey + 1 + + + value + 1 + + + + + metadataKey + value + + + 12 + + + + + + value + metadataKey + + + 12 + + + + + + + + overlayChangedFiles + 50 + + + path + 50 + + + + xmlEncoding 39724 From f4980bede3e34b391996c4808b8dcda26cdff4ff Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:49:18 +0100 Subject: [PATCH 144/263] Update cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md --- cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md b/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md index 09c36751262..19d0d545576 100644 --- a/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md +++ b/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md @@ -1,4 +1,4 @@ --- -category: minorAnalysis +category: breaking --- * The `_Decimal32`, `_Decimal64`, and `_Decimal128` types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases. From 76a1e22ddc99eb25060524f970499c0b34855ffd Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 13 Jan 2026 16:11:18 +0100 Subject: [PATCH 145/263] Rust: Remove manual models that are now generated --- rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml index 2a57b38ace5..7532a06a178 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml @@ -63,8 +63,6 @@ extensions: - ["::new", "Argument[0].Reference", "ReturnValue.Reference", "value", "manual"] - ["::join", "Argument[self].Reference", "ReturnValue", "taint", "manual"] - ["::join", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["::as_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "manual"] - - ["::as_mut_os_str", "Argument[self].Reference.Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "manual"] - ["::canonicalize", "Argument[self].Reference.OptionalStep[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::canonicalize", "Argument[self].Reference.OptionalBarrier[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::extension", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "taint", "manual"] From 55d49027514a29d61c6fbfde5b4a24cb31967ae4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 Jan 2026 14:39:03 +0100 Subject: [PATCH 146/263] Rust: Restrict `ImplicitDerefBorrowNode` to nodes with enclosing CFG scope --- .../rust/dataflow/internal/DataFlowImpl.qll | 22 ++++---- .../codeql/rust/dataflow/internal/Node.qll | 56 ++++++++++--------- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index c21c053b173..3052703eb4e 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -62,8 +62,8 @@ final class DataFlowCall extends TDataFlowCall { /** Gets the underlying call, if any. */ Call asCall() { this = TCall(result) } - predicate isImplicitDerefCall(AstNode n, DerefChain derefChain, int i, Function target) { - this = TImplicitDerefCall(n, derefChain, i, target) + predicate isImplicitDerefCall(Expr e, DerefChain derefChain, int i, Function target) { + this = TImplicitDerefCall(e, derefChain, i, target) } predicate isSummaryCall( @@ -75,8 +75,7 @@ final class DataFlowCall extends TDataFlowCall { DataFlowCallable getEnclosingCallable() { result.asCfgScope() = this.asCall().getEnclosingCfgScope() or - result.asCfgScope() = - any(AstNode n | this.isImplicitDerefCall(n, _, _, _)).getEnclosingCfgScope() + result.asCfgScope() = any(Expr e | this.isImplicitDerefCall(e, _, _, _)).getEnclosingCfgScope() or this.isSummaryCall(result.asSummarizedCallable(), _) } @@ -84,9 +83,9 @@ final class DataFlowCall extends TDataFlowCall { string toString() { result = this.asCall().toString() or - exists(AstNode n, DerefChain derefChain, int i | - this.isImplicitDerefCall(n, derefChain, i, _) and - result = "[implicit deref call " + i + " in " + derefChain.toString() + "] " + n + exists(Expr e, DerefChain derefChain, int i | + this.isImplicitDerefCall(e, derefChain, i, _) and + result = "[implicit deref call " + i + " in " + derefChain.toString() + "] " + e ) or exists( @@ -100,7 +99,7 @@ final class DataFlowCall extends TDataFlowCall { Location getLocation() { result = this.asCall().getLocation() or - result = any(AstNode n | this.isImplicitDerefCall(n, _, _, _)).getLocation() + result = any(Expr e | this.isImplicitDerefCall(e, _, _, _)).getLocation() } } @@ -1082,9 +1081,10 @@ private module Cached { Stages::DataFlowStage::ref() and call.hasEnclosingCfgScope() } or - TImplicitDerefCall(AstNode n, DerefChain derefChain, int i, Function target) { - TypeInference::implicitDerefChainBorrow(n, derefChain, _) and - target = derefChain.getElement(i).getDerefFunction() + TImplicitDerefCall(Expr e, DerefChain derefChain, int i, Function target) { + TypeInference::implicitDerefChainBorrow(e, derefChain, _) and + target = derefChain.getElement(i).getDerefFunction() and + e.hasEnclosingCfgScope() } or TSummaryCall( FlowSummaryImpl::Public::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll index b8bfddf8adb..d186e5aa4dd 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll @@ -277,11 +277,11 @@ abstract class ImplicitDerefBorrowNode extends Node { */ abstract Node getBorrowInputNode(); - abstract AstNode getUnderlyingAstNode(); + abstract Expr getExpr(); - override CfgScope getCfgScope() { result = this.getUnderlyingAstNode().getEnclosingCfgScope() } + override CfgScope getCfgScope() { result = this.getExpr().getEnclosingCfgScope() } - override Location getLocation() { result = this.getUnderlyingAstNode().getLocation() } + override Location getLocation() { result = this.getExpr().getLocation() } } /** @@ -292,24 +292,24 @@ abstract class ImplicitDerefBorrowNode extends Node { * is in. */ class ImplicitDerefNode extends ImplicitDerefBorrowNode, TImplicitDerefNode { - AstNode n; + Expr e; DerefChain derefChain; ImplicitDerefNodeState state; int i; - ImplicitDerefNode() { this = TImplicitDerefNode(n, derefChain, state, i, false) } + ImplicitDerefNode() { this = TImplicitDerefNode(e, derefChain, state, i, false) } - override AstNode getUnderlyingAstNode() { result = n } + override Expr getExpr() { result = e } private predicate isBuiltinDeref() { derefChain.isBuiltinDeref(i) } private Node getInputNode() { // The first implicit deref has the underlying AST node as input i = 0 and - result.(AstNodeNode).getAstNode() = n + result.asExpr() = e or // Subsequent implicit derefs have the previous implicit deref as input - result = TImplicitDerefNode(n, derefChain, TImplicitDerefNodeAfterDerefState(), i - 1, false) + result = TImplicitDerefNode(e, derefChain, TImplicitDerefNodeAfterDerefState(), i - 1, false) } /** @@ -334,19 +334,19 @@ class ImplicitDerefNode extends ImplicitDerefBorrowNode, TImplicitDerefNode { */ Node getDerefOutputNode() { state = TImplicitDerefNodeBeforeDerefState() and - result = TImplicitDerefNode(n, derefChain, TImplicitDerefNodeAfterDerefState(), i, false) + result = TImplicitDerefNode(e, derefChain, TImplicitDerefNodeAfterDerefState(), i, false) } /** * Holds if this node represents the last implicit deref in the underlying chain. */ - predicate isLast(AstNode node) { - node = n and + predicate isLast(Expr expr) { + expr = e and state = TImplicitDerefNodeAfterDerefState() and i = derefChain.length() - 1 } - override string toString() { result = n + " [implicit deref " + i + " in state " + state + "]" } + override string toString() { result = e + " [implicit deref " + i + " in state " + state + "]" } } final class ImplicitDerefArgNode extends ImplicitDerefNode, ArgumentNode { @@ -356,12 +356,12 @@ final class ImplicitDerefArgNode extends ImplicitDerefNode, ArgumentNode { ImplicitDerefArgNode() { not derefChain.isBuiltinDeref(i) and state = TImplicitDerefNodeAfterBorrowState() and - call_.isImplicitDerefCall(n, derefChain, i, _) and + call_.isImplicitDerefCall(e, derefChain, i, _) and pos_.isSelf() or this.isLast(_) and - TypeInference::implicitDerefChainBorrow(n, derefChain, false) and - isArgumentForCall(n, call_.asCall(), pos_) + TypeInference::implicitDerefChainBorrow(e, derefChain, false) and + isArgumentForCall(e, call_.asCall(), pos_) } override predicate isArgumentOf(DataFlowCall call, RustDataFlow::ArgumentPosition pos) { @@ -378,7 +378,7 @@ private class ImplicitDerefOutNode extends ImplicitDerefNode, OutNode { } override DataFlowCall getCall(ReturnKind kind) { - result.isImplicitDerefCall(n, derefChain, i, _) and + result.isImplicitDerefCall(e, derefChain, i, _) and kind = TNormalReturnKind() } } @@ -387,30 +387,30 @@ private class ImplicitDerefOutNode extends ImplicitDerefNode, OutNode { * A node that represents the value of an expression _after_ implicit borrowing. */ class ImplicitBorrowNode extends ImplicitDerefBorrowNode, TImplicitBorrowNode { - AstNode n; + Expr e; DerefChain derefChain; - ImplicitBorrowNode() { this = TImplicitBorrowNode(n, derefChain, false) } + ImplicitBorrowNode() { this = TImplicitBorrowNode(e, derefChain, false) } - override AstNode getUnderlyingAstNode() { result = n } + override Expr getExpr() { result = e } override Node getBorrowInputNode() { result = - TImplicitDerefNode(n, derefChain, TImplicitDerefNodeAfterDerefState(), + TImplicitDerefNode(e, derefChain, TImplicitDerefNodeAfterDerefState(), derefChain.length() - 1, false) or derefChain.isEmpty() and - result.(AstNodeNode).getAstNode() = n + result.(AstNodeNode).getAstNode() = e } - override string toString() { result = n + " [implicit borrow]" } + override string toString() { result = e + " [implicit borrow]" } } final class ImplicitBorrowArgNode extends ImplicitBorrowNode, ArgumentNode { private DataFlowCall call_; private RustDataFlow::ArgumentPosition pos_; - ImplicitBorrowArgNode() { isArgumentForCall(n, call_.asCall(), pos_) } + ImplicitBorrowArgNode() { isArgumentForCall(e, call_.asCall(), pos_) } override predicate isArgumentOf(DataFlowCall call, RustDataFlow::ArgumentPosition pos) { call = call_ and pos = pos_ @@ -736,13 +736,15 @@ newtype TNode = ) } or TImplicitDerefNode( - AstNode n, DerefChain derefChain, ImplicitDerefNodeState state, int i, Boolean isPost + Expr e, DerefChain derefChain, ImplicitDerefNodeState state, int i, Boolean isPost ) { - TypeInference::implicitDerefChainBorrow(n, derefChain, _) and + e.hasEnclosingCfgScope() and + TypeInference::implicitDerefChainBorrow(e, derefChain, _) and i in [0 .. derefChain.length() - 1] } or - TImplicitBorrowNode(AstNode n, DerefChain derefChain, Boolean isPost) { - TypeInference::implicitDerefChainBorrow(n, derefChain, true) + TImplicitBorrowNode(Expr e, DerefChain derefChain, Boolean isPost) { + e.hasEnclosingCfgScope() and + TypeInference::implicitDerefChainBorrow(e, derefChain, true) } or TDerefOutNode(DerefExpr de, Boolean isPost) or TIndexOutNode(IndexExpr ie, Boolean isPost) or From d335f039efeaa1d6d59f3e524225f448ec1b4cf2 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 21:48:43 +0100 Subject: [PATCH 147/263] Improve model for CWE-089 --- .../ext/com.couchbase.client.java.model.yml | 14 +- .../CWE-089/semmle/examples/CouchBase.java | 11 +- .../semmle/examples/SqlTainted.expected | 122 ++++++++++-------- .../tests/HardcodedCouchBaseCredentials.java | 20 ++- .../com/couchbase/client/java/Bucket.java | 15 --- .../com/couchbase/client/java/Cluster.java | 45 ++++--- .../com/couchbase/client/java/Collection.java | 50 ------- .../java/analytics/AnalyticsOptions.java | 3 + .../java/analytics/AnalyticsResult.java | 3 + .../client/java/json/JsonObject.java | 33 ----- .../couchbase/client/java/json/JsonValue.java | 19 --- .../client/java/query/QueryMetaData.java | 3 + .../client/java/query/QueryOptions.java | 3 + .../client/java/query/QueryResult.java | 16 --- .../couchbase/client/java/query/QueryRow.java | 3 + 15 files changed, 137 insertions(+), 223 deletions(-) delete mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java delete mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java delete mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java create mode 100644 java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java diff --git a/java/ql/lib/ext/com.couchbase.client.java.model.yml b/java/ql/lib/ext/com.couchbase.client.java.model.yml index 2a821e9f11a..c954e92f665 100644 --- a/java/ql/lib/ext/com.couchbase.client.java.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.java.model.yml @@ -10,19 +10,9 @@ extensions: - ["com.couchbase.client.java", "Cluster", true, "connect", "(String,String,String)", "", "Argument[2]", "credentials-password", "manual"] - ["com.couchbase.client.java", "ClusterOptions", true, "clusterOptions", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] # 'sql-injection' sinks - - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "analysticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analyticsQuery", "(String)", "", "Argument[0]", "sql-injection", "manual"] + - ["com.couchbase.client.java", "Cluster", true, "analyticsQuery", "(String,AnalyticsOptions)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "query", "(String)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "query", "(String,QueryOptions)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - ["com.couchbase.client.java", "Cluster", true, "queryStreaming", "(String,QueryOptions,Consumer)", "", "Argument[0]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery)", "", "Argument[1]", "sql-injection", "manual"] - - ["com.couchbase.client.java", "Cluster", true, "searchQuery", "(String,SearchQuery,SearchOptions)", "", "Argument[1]", "sql-injection", "manual"] - - - addsTo: - pack: codeql/java-all - extensible: summaryModel - data: - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[0]", "ReturnValue.MapKey", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "put", "", "", "Argument[1]", "ReturnValue.MapValue", "taint", "manual"] - - ["com.couchbase.client.java.json", "JsonObject", true, "putNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java index 8a817aa9c11..ee6c81cdc81 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/CouchBase.java @@ -2,17 +2,16 @@ package com.example; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.Cluster; -import com.couchbase.client.java.Collection; -import com.couchbase.client.java.json.JsonObject; public class CouchBase { public static void main(String[] args) { Cluster cluster = Cluster.connect("192.168.0.158", "Administrator", "Administrator"); Bucket bucket = cluster.bucket("travel-sample"); + cluster.analyticsQuery(args[1]); + cluster.analyticsQuery(args[1], null); cluster.query(args[1]); - - Collection collection = bucket.defaultCollection(); - collection.replace("airbnb_1", JsonObject.create().putNull(System.getenv("ITEM_CATEGORY"))); - collection.upsert("airbnb_1", JsonObject.create().put("country", args[1])); + cluster.query(args[1], null); + cluster.queryStreaming(args[1], null); + cluster.queryStreaming(args[1], null, null); } } diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected index 6f869c4b887..67f1e26697a 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTainted.expected @@ -29,7 +29,12 @@ | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | This query depends on a $@. | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args | user-provided value | -| CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:9:27:9:39 | args | user-provided value | +| CouchBase.java:10:28:10:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:10:28:10:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:11:28:11:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:11:28:11:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:12:19:12:25 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:13:19:13:25 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:13:19:13:25 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:14:28:14:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:14:28:14:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | +| CouchBase.java:15:28:15:34 | ...[...] | CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:15:28:15:34 | ...[...] | This query depends on a $@. | CouchBase.java:7:27:7:39 | args | user-provided value | | Mongo.java:17:45:17:67 | parse(...) | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:45:17:67 | parse(...) | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Mongo.java:21:49:21:52 | json | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | This query depends on a $@. | Mongo.java:10:29:10:41 | args | user-provided value | | Test.java:36:47:36:52 | query1 | Test.java:227:26:227:38 | args : String[] | Test.java:36:47:36:52 | query1 | This query depends on a $@. | Test.java:227:26:227:38 | args | user-provided value | @@ -49,21 +54,21 @@ edges | AllowListSanitizerWithJavaUtilList.java:51:13:51:16 | args : String[] | AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:54:23:54:26 | args : String[] | AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilList.java:55:14:55:17 | args : String[] | AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:5 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:88:66:88:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:94:66:94:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:100:66:100:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:106:66:106:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:58:39:58:51 | args : String[] | AllowListSanitizerWithJavaUtilList.java:118:66:118:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:149:67:149:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:169:67:169:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:187:67:187:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:207:67:207:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:231:67:231:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:132:32:132:44 | args : String[] | AllowListSanitizerWithJavaUtilList.java:242:67:242:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:260:67:260:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:269:67:269:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:247:42:247:54 | args : String[] | AllowListSanitizerWithJavaUtilList.java:278:67:278:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilList.java:283:33:283:45 | args : String[] | AllowListSanitizerWithJavaUtilList.java:293:67:293:71 | query | provenance | Sink:MaD:10 | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:49:20:49:23 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:47:26:47:38 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | provenance | | @@ -72,37 +77,42 @@ edges | AllowListSanitizerWithJavaUtilSet.java:50:13:50:16 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:53:23:53:26 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | provenance | | | AllowListSanitizerWithJavaUtilSet.java:54:14:54:17 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | provenance | | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:5 | -| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:5 | -| CouchBase.java:9:27:9:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:1 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:87:66:87:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:93:66:93:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:99:66:99:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:105:66:105:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:57:39:57:51 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:117:66:117:70 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:148:67:148:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:168:67:168:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:186:67:186:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:206:67:206:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:230:67:230:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:131:32:131:44 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:241:67:241:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:259:67:259:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:268:67:268:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:246:42:246:54 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | provenance | Sink:MaD:10 | +| AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | provenance | Sink:MaD:10 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:10:28:10:34 | ...[...] | provenance | Sink:MaD:1 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:11:28:11:34 | ...[...] | provenance | Sink:MaD:2 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:12:19:12:25 | ...[...] | provenance | Sink:MaD:3 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:13:19:13:25 | ...[...] | provenance | Sink:MaD:4 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:14:28:14:34 | ...[...] | provenance | Sink:MaD:5 | +| CouchBase.java:7:27:7:39 | args : String[] | CouchBase.java:15:28:15:34 | ...[...] | provenance | Sink:MaD:6 | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | provenance | | | Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | provenance | | | Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | provenance | Config | -| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:5 | -| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:2 | -| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:3 | +| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | Sink:MaD:10 | +| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | Sink:MaD:7 | +| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | Sink:MaD:8 | | Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | provenance | | -| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:6 | -| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:4 | +| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | Sink:MaD:11 | +| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | Sink:MaD:9 | | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | provenance | | -| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:7 | -| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:8 | -| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:5 | -| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:5 | -| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:5 | +| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | MaD:12 | +| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | MaD:13 | +| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | Sink:MaD:10 | +| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | Sink:MaD:10 | +| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | Sink:MaD:10 | | Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | provenance | | | Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | provenance | | @@ -110,14 +120,19 @@ edges | Test.java:232:14:232:17 | args : String[] | Test.java:183:33:183:45 | args : String[] | provenance | | | Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | provenance | | models -| 1 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | -| 2 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | -| 3 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | -| 4 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | -| 5 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | -| 6 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | -| 7 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | -| 8 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 1 | Sink: com.couchbase.client.java; Cluster; true; analyticsQuery; (String); ; Argument[0]; sql-injection; manual | +| 2 | Sink: com.couchbase.client.java; Cluster; true; analyticsQuery; (String,AnalyticsOptions); ; Argument[0]; sql-injection; manual | +| 3 | Sink: com.couchbase.client.java; Cluster; true; query; (String); ; Argument[0]; sql-injection; manual | +| 4 | Sink: com.couchbase.client.java; Cluster; true; query; (String,QueryOptions); ; Argument[0]; sql-injection; manual | +| 5 | Sink: com.couchbase.client.java; Cluster; true; queryStreaming; (String,Consumer); ; Argument[0]; sql-injection; manual | +| 6 | Sink: com.couchbase.client.java; Cluster; true; queryStreaming; (String,QueryOptions,Consumer); ; Argument[0]; sql-injection; manual | +| 7 | Sink: java.sql; Connection; true; prepareCall; ; ; Argument[0]; sql-injection; manual | +| 8 | Sink: java.sql; Connection; true; prepareStatement; ; ; Argument[0]; sql-injection; manual | +| 9 | Sink: java.sql; Statement; true; executeLargeUpdate; ; ; Argument[0]; sql-injection; manual | +| 10 | Sink: java.sql; Statement; true; executeQuery; ; ; Argument[0]; sql-injection; manual | +| 11 | Sink: java.sql; Statement; true; executeUpdate; ; ; Argument[0]; sql-injection; manual | +| 12 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 13 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | nodes | AllowListSanitizerWithJavaUtilList.java:48:26:48:38 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilList.java:50:20:50:23 | args : String[] | semmle.label | args : String[] | @@ -167,8 +182,13 @@ nodes | AllowListSanitizerWithJavaUtilSet.java:277:67:277:71 | query | semmle.label | query | | AllowListSanitizerWithJavaUtilSet.java:282:33:282:45 | args : String[] | semmle.label | args : String[] | | AllowListSanitizerWithJavaUtilSet.java:292:67:292:71 | query | semmle.label | query | -| CouchBase.java:9:27:9:39 | args : String[] | semmle.label | args : String[] | +| CouchBase.java:7:27:7:39 | args : String[] | semmle.label | args : String[] | +| CouchBase.java:10:28:10:34 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:11:28:11:34 | ...[...] | semmle.label | ...[...] | | CouchBase.java:12:19:12:25 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:13:19:13:25 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:14:28:14:34 | ...[...] | semmle.label | ...[...] | +| CouchBase.java:15:28:15:34 | ...[...] | semmle.label | ...[...] | | Mongo.java:10:29:10:41 | args : String[] | semmle.label | args : String[] | | Mongo.java:17:45:17:67 | parse(...) | semmle.label | parse(...) | | Mongo.java:17:56:17:66 | stringQuery : String | semmle.label | stringQuery : String | diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index decbd174783..552ed2aeb45 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -30,12 +30,22 @@ public class HardcodedCouchBaseCredentials { PasswordAuthenticator.builder() .username("Administrator") // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall .password("password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall - PasswordAuthenticator.builder((Supplier) new UsernameAndPassword( - "Administrator", // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall - "password")); // $ HardcodedCredentialsSourceCall$ MISSING: HardcodedCredentialsApiCall + PasswordAuthenticator.builder( + (Supplier) + new UsernameAndPassword( + "Administrator", // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall PasswordAuthenticator.builder() - .username((Supplier) () -> {return "Administrator";}) // $ MISSING: HardcodedCredentialsApiCall - .password((Supplier) () -> {return "password";}); // $ MISSING: HardcodedCredentialsApiCall + .username( + (Supplier) + () -> { + return "Administrator"; // $ MISSING: HardcodedCredentialsApiCall + }) + .password( + (Supplier) + () -> { + return "password"; // $ MISSING: HardcodedCredentialsApiCall + }); // com.couchbase.client.java.Cluster sinks Cluster.connect( diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java index 9edfff088bd..df9e69c50a1 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java @@ -1,18 +1,3 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ package com.couchbase.client.java; public class Bucket { diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java index a6201b42992..8f8cf3d0bec 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Cluster.java @@ -1,25 +1,15 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.couchbase.client.java; import com.couchbase.client.core.env.SeedNode; +import com.couchbase.client.java.analytics.AnalyticsOptions; +import com.couchbase.client.java.analytics.AnalyticsResult; +import com.couchbase.client.java.query.QueryMetaData; +import com.couchbase.client.java.query.QueryOptions; import com.couchbase.client.java.query.QueryResult; +import com.couchbase.client.java.query.QueryRow; import java.io.Closeable; import java.util.Set; +import java.util.function.Consumer; public class Cluster implements Closeable { @@ -40,10 +30,33 @@ public class Cluster implements Closeable { return null; } + public AnalyticsResult analyticsQuery(final String statement) { + return null; + } + + public AnalyticsResult analyticsQuery(final String statement, final AnalyticsOptions options) { + return null; + } + public QueryResult query(final String statement) { return null; } + public QueryResult query(final String statement, final QueryOptions options) { + return null; + } + + public QueryMetaData queryStreaming(String statement, Consumer rowAction) { + + return null; + } + + public QueryMetaData queryStreaming( + String statement, QueryOptions options, Consumer rowAction) { + + return null; + } + @Override public void close() {} } \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java deleted file mode 100644 index 7657c84703a..00000000000 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Collection.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2018 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.couchbase.client.java; - -import com.couchbase.client.java.kv.InsertOptions; -import com.couchbase.client.java.kv.MutationResult; -import com.couchbase.client.java.kv.ReplaceOptions; -import com.couchbase.client.java.kv.UpsertOptions; - -public class Collection { - - public MutationResult insert(final String id, final Object content) { - return null; - } - - public MutationResult insert(final String id, final Object content, final InsertOptions options) { - return null; - } - - public MutationResult upsert(final String id, final Object content) { - return null; - } - - public MutationResult upsert(final String id, final Object content, final UpsertOptions options) { - return null; - } - - public MutationResult replace(final String id, final Object content) { - return null; - } - - public MutationResult replace( - final String id, final Object content, final ReplaceOptions options) { - return null; - } -} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java new file mode 100644 index 00000000000..dc4ed56f54d --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsOptions.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.analytics; + +public class AnalyticsOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java new file mode 100644 index 00000000000..6299d6ba8c2 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/analytics/AnalyticsResult.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.analytics; + +public class AnalyticsResult {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java deleted file mode 100644 index ff88c595f9c..00000000000 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonObject.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.couchbase.client.java.json; - -import java.io.Serializable; - -public class JsonObject extends JsonValue implements Serializable { - - public static JsonObject create() { - return null; - } - - public JsonObject put(final String name, final Object value) { - return null; - } - - public JsonObject putNull(final String name) { - return null; - } -} \ No newline at end of file diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java deleted file mode 100644 index e6c664ca9db..00000000000 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/json/JsonValue.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (c) 2016 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.couchbase.client.java.json; - - -public abstract class JsonValue {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java new file mode 100644 index 00000000000..a8f33cb0008 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryMetaData.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.query; + +public class QueryMetaData {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java new file mode 100644 index 00000000000..9b4390f1f1e --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryOptions.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.query; + +public class QueryOptions {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java index 2796ffbb053..e86e0198d4d 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryResult.java @@ -1,19 +1,3 @@ -/* - * Copyright (c) 2019 Couchbase, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.couchbase.client.java.query; public class QueryResult {} diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java new file mode 100644 index 00000000000..2e30725bc41 --- /dev/null +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/query/QueryRow.java @@ -0,0 +1,3 @@ +package com.couchbase.client.java.query; + +public class QueryRow {} From 29f23ee192cb6c3fc2395deb5a1a64064eabdbfc Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 22:31:35 +0100 Subject: [PATCH 148/263] Fix extraction error --- .../couchbaseClient/com/couchbase/client/java/Bucket.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java index df9e69c50a1..e7342dc21ec 100644 --- a/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java +++ b/java/ql/test/stubs/couchbaseClient/com/couchbase/client/java/Bucket.java @@ -1,8 +1,3 @@ package com.couchbase.client.java; -public class Bucket { - - public Collection defaultCollection() { - return null; - } -} \ No newline at end of file +public class Bucket {} From 9efefa61207ec7c1ab0706b0e1e605ef42e925ec Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Tue, 13 Jan 2026 22:46:42 +0100 Subject: [PATCH 149/263] Fix test expectations --- .../CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index 552ed2aeb45..a273768fce8 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -57,7 +57,7 @@ public class HardcodedCouchBaseCredentials { Cluster.connect( "127.0.0.1", clusterOptions( - "Administrator", // $ HardcodedCredentialsApiCall - "password")); // $ HardcodedCredentialsApiCall + "Administrator", // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall + "password")); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall } } From 98c8b4c080df60127ebb135e70c5150f7f5a1068 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 13 Nov 2025 10:50:27 +0100 Subject: [PATCH 150/263] JS: Skip minified file if avg line length > 200 --- .../semmle/js/extractor/FileExtractor.java | 13 ++++++---- .../semmle/js/extractor/ParseResultInfo.java | 21 ++++++++++++++++ .../semmle/js/extractor/ScriptExtractor.java | 24 +++++++++++++++++++ 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java index 5ebd7374a77..42b4aa83c34 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java @@ -549,10 +549,15 @@ public class FileExtractor { new TextualExtractor( trapwriter, locationManager, source, config.getExtractLines(), metrics, extractedFile); ParseResultInfo loc = extractor.extract(textualExtractor); - int numLines = textualExtractor.isSnippet() ? 0 : textualExtractor.getNumLines(); - int linesOfCode = loc.getLinesOfCode(), linesOfComments = loc.getLinesOfComments(); - trapwriter.addTuple("numlines", fileLabel, numLines, linesOfCode, linesOfComments); - trapwriter.addTuple("filetype", fileLabel, fileType.toString()); + if (loc.getSkipReason() != null) { + System.err.println("Skipping file " + extractedFile + ": " + loc.getSkipReason()); + System.err.flush(); + } else{ + int numLines = textualExtractor.isSnippet() ? 0 : textualExtractor.getNumLines(); + int linesOfCode = loc.getLinesOfCode(), linesOfComments = loc.getLinesOfComments(); + trapwriter.addTuple("numlines", fileLabel, numLines, linesOfCode, linesOfComments); + trapwriter.addTuple("filetype", fileLabel, fileType.toString()); + } metrics.stopPhase(ExtractionPhase.FileExtractor_extractContents); metrics.writeTimingsToTrap(trapwriter); successful = true; diff --git a/javascript/extractor/src/com/semmle/js/extractor/ParseResultInfo.java b/javascript/extractor/src/com/semmle/js/extractor/ParseResultInfo.java index 6a1b14447ce..28b412207d4 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/ParseResultInfo.java +++ b/javascript/extractor/src/com/semmle/js/extractor/ParseResultInfo.java @@ -10,6 +10,7 @@ import java.util.List; public class ParseResultInfo { private int linesOfCode, linesOfComments; private List parseErrors; + private String skipReason; public ParseResultInfo(int linesOfCode, int linesOfComments, List parseErrors) { this.linesOfCode = linesOfCode; @@ -17,6 +18,19 @@ public class ParseResultInfo { this.parseErrors = new ArrayList<>(parseErrors); } + private ParseResultInfo() { + this.linesOfCode = 0; + this.linesOfComments = 0; + this.parseErrors = new ArrayList<>(); + this.skipReason = null; + } + + public static final ParseResultInfo skipped(String reason) { + ParseResultInfo info = new ParseResultInfo(); + info.skipReason = reason; + return info; + } + public void add(ParseResultInfo that) { this.linesOfCode += that.linesOfCode; this.linesOfComments += that.linesOfComments; @@ -41,4 +55,11 @@ public class ParseResultInfo { public List getParseErrors() { return parseErrors; } + + /** + * If extraction of this file was skipped, gets the reason for skipping it. + */ + public String getSkipReason() { + return skipReason; + } } diff --git a/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java index 7c539d70e63..6c9bfd2725c 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java @@ -38,10 +38,34 @@ public class ScriptExtractor implements IExtractor { return extension.equals(".cjs") || (extension.equals(".js") && "commonjs".equals(packageType)); } + private boolean isMinified(String source) { + // If the average line length is over 200 characters, consider the file minified. + int numberOfLineBreaks = 0; + for (int i = 0; i < source.length(); i++) { + char c = source.charAt(i); + if (c == '\n') { + numberOfLineBreaks++; + } else if (c == '\r') { + numberOfLineBreaks++; + if (i + 1 < source.length() && source.charAt(i + 1) == '\n') { + i++; // skip the next \n in case of \r\n + } + } + } + int averageLineLength = + numberOfLineBreaks == 0 ? source.length() : source.length() / numberOfLineBreaks; + return averageLineLength > 200; + } + @Override public ParseResultInfo extract(TextualExtractor textualExtractor) { LocationManager locationManager = textualExtractor.getLocationManager(); String source = textualExtractor.getSource(); + + if (isMinified(source)) { + return ParseResultInfo.skipped("File appears to be minified."); + } + String shebangLine = null, shebangLineTerm = null; if (source.startsWith("#!")) { From 84f6b6f67a5495f9008eb828620557a009cd908c Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 2 Dec 2025 11:38:51 +0100 Subject: [PATCH 151/263] JS: Accept test change due to file no longer being extracted --- .../query-tests/filters/ClassifyFiles/ClassifyFiles.expected | 1 - 1 file changed, 1 deletion(-) diff --git a/javascript/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected b/javascript/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected index 5b896e958c5..377a0e1ad29 100644 --- a/javascript/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected +++ b/javascript/ql/test/query-tests/filters/ClassifyFiles/ClassifyFiles.expected @@ -17,7 +17,6 @@ | jquery-datatables.js:0:0:0:0 | jquery-datatables.js | library | | jquery-jstree.js:0:0:0:0 | jquery-jstree.js | library | | jquery-snippet.js:0:0:0:0 | jquery-snippet.js | library | -| json-like.js:0:0:0:0 | json-like.js | generated | | jsx-old.js:0:0:0:0 | jsx-old.js | generated | | jsx.js:0:0:0:0 | jsx.js | generated | | multi-part-bundle.html:0:0:0:0 | multi-part-bundle.html | generated | From 2892ab61ae1404bb86830f86e15db9a60ce5ccc6 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 2 Dec 2025 11:42:14 +0100 Subject: [PATCH 152/263] JS: Make sure a file is not seen as minified --- .../Security/CWE-400/ReDoS/regexplib/dates.js | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/regexplib/dates.js b/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/regexplib/dates.js index 14468a51565..dc172e06b18 100644 --- a/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/regexplib/dates.js +++ b/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/regexplib/dates.js @@ -132,3 +132,103 @@ /^(([0-9])|([0-1][0-9])|([2][0-3])):?([0-5][0-9])$/g; /^[\w-\.]+@([\w-]+\.)+[\w-]{2,3}$/g; /(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26])))/g; +// +// Add some empty lines to lower the average line length so the file is not classified as minified. +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// From 7ab52a81a7941a5f819e9949d229dec828bc82e4 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 5 Dec 2025 10:22:31 +0100 Subject: [PATCH 153/263] JS: Add environment variable to opt out of the behaviour if needed --- .../src/com/semmle/js/extractor/AutoBuild.java | 7 +++++-- .../js/extractor/EnvironmentVariables.java | 8 ++++++++ .../semmle/js/extractor/ExtractorConfig.java | 17 +++++++++++++++++ .../semmle/js/extractor/ScriptExtractor.java | 2 +- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index 416fa237e97..d8889781921 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -408,8 +408,10 @@ public class AutoBuild { for (String extension : fileTypes.keySet()) patterns.add("**/*" + extension); // exclude files whose name strongly suggests they are minified - patterns.add("-**/*.min.js"); - patterns.add("-**/*-min.js"); + if (!EnvironmentVariables.allowMinifiedFiles()) { + patterns.add("-**/*.min.js"); + patterns.add("-**/*-min.js"); + } // exclude `node_modules` and `bower_components` patterns.add("-**/node_modules"); @@ -1074,6 +1076,7 @@ protected DependencyInstallationResult preparePackagesAndDependencies(Set config = config.withSourceType(getSourceType()); config = config.withVirtualSourceRoot(virtualSourceRoot); if (defaultEncoding != null) config = config.withDefaultEncoding(defaultEncoding); + config = config.withAllowMinified(EnvironmentVariables.allowMinifiedFiles()); return config; } diff --git a/javascript/extractor/src/com/semmle/js/extractor/EnvironmentVariables.java b/javascript/extractor/src/com/semmle/js/extractor/EnvironmentVariables.java index f2ac4227589..9d883960256 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/EnvironmentVariables.java +++ b/javascript/extractor/src/com/semmle/js/extractor/EnvironmentVariables.java @@ -101,4 +101,12 @@ public class EnvironmentVariables { public static boolean isActionsExtractor() { return Env.systemEnv().getNonEmpty(CODEQL_EXTRACTOR_ACTIONS_WIP_DATABASE_ENV_VAR) != null; } + + public static boolean allowMinifiedFiles() { + String env = Env.systemEnv().getNonEmpty("CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES"); + if (env == null) { + return false; // default is to not allow minified files + } + return Boolean.parseBoolean(env); + } } diff --git a/javascript/extractor/src/com/semmle/js/extractor/ExtractorConfig.java b/javascript/extractor/src/com/semmle/js/extractor/ExtractorConfig.java index 884d0744694..538ac1a4367 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/ExtractorConfig.java +++ b/javascript/extractor/src/com/semmle/js/extractor/ExtractorConfig.java @@ -205,6 +205,9 @@ public class ExtractorConfig { /** Should parse errors be reported as violations instead of aborting extraction? */ private boolean tolerateParseErrors; + /** Should minified files be allowed? */ + private boolean allowMinified; + /** How should HTML files be extracted? */ private HtmlPopulator.Config htmlHandling; @@ -236,6 +239,7 @@ public class ExtractorConfig { this.sourceType = SourceType.AUTO; this.htmlHandling = HtmlPopulator.Config.ELEMENTS; this.tolerateParseErrors = true; + this.allowMinified = false; if (experimental) { this.mozExtensions = true; this.jscript = true; @@ -258,6 +262,7 @@ public class ExtractorConfig { this.v8Extensions = that.v8Extensions; this.e4x = that.e4x; this.tolerateParseErrors = that.tolerateParseErrors; + this.allowMinified = that.allowMinified; this.fileType = that.fileType; this.sourceType = that.sourceType; this.htmlHandling = that.htmlHandling; @@ -357,6 +362,16 @@ public class ExtractorConfig { return res; } + public boolean isAllowMinified() { + return allowMinified; + } + + public ExtractorConfig withAllowMinified(boolean allowMinified) { + ExtractorConfig res = new ExtractorConfig(this); + res.allowMinified = allowMinified; + return res; + } + public boolean hasFileType() { return fileType != null; } @@ -467,6 +482,8 @@ public class ExtractorConfig { + e4x + ", tolerateParseErrors=" + tolerateParseErrors + + ", allowMinified=" + + allowMinified + ", htmlHandling=" + htmlHandling + ", fileType=" diff --git a/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java index 6c9bfd2725c..bff9ccddad6 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/ScriptExtractor.java @@ -62,7 +62,7 @@ public class ScriptExtractor implements IExtractor { LocationManager locationManager = textualExtractor.getLocationManager(); String source = textualExtractor.getSource(); - if (isMinified(source)) { + if (!config.isAllowMinified() && isMinified(source)) { return ParseResultInfo.skipped("File appears to be minified."); } From 739ed4b3bb33e8343b73e2065ec15a61f66e7d63 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 5 Dec 2025 10:24:14 +0100 Subject: [PATCH 154/263] JS: Change note --- .../ql/src/change-notes/2025-12-05-skip-minified-files.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md diff --git a/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md b/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md new file mode 100644 index 00000000000..ce202b35866 --- /dev/null +++ b/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md @@ -0,0 +1,6 @@ +--- +category: majorAnalysis +--- +* JavaScript files with an average line length greater than 200 are now considered minified and will no longer be analyzed. + For use-cases where minified files should be analyzed, the orginal behaviour can be restored by setting the environment variable + `CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true`. From 0eadebcabdf9174894a9eb74c01a7120f1ef524d Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 5 Dec 2025 11:14:59 +0100 Subject: [PATCH 155/263] Update javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../extractor/src/com/semmle/js/extractor/FileExtractor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java index 42b4aa83c34..9cf5c3b295c 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/FileExtractor.java @@ -552,7 +552,7 @@ public class FileExtractor { if (loc.getSkipReason() != null) { System.err.println("Skipping file " + extractedFile + ": " + loc.getSkipReason()); System.err.flush(); - } else{ + } else { int numLines = textualExtractor.isSnippet() ? 0 : textualExtractor.getNumLines(); int linesOfCode = loc.getLinesOfCode(), linesOfComments = loc.getLinesOfComments(); trapwriter.addTuple("numlines", fileLabel, numLines, linesOfCode, linesOfComments); From b47ae420cab1c57956ead12232e8c7da3eb386eb Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 5 Dec 2025 11:15:05 +0100 Subject: [PATCH 156/263] Update javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../ql/src/change-notes/2025-12-05-skip-minified-files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md b/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md index ce202b35866..140f6eb0813 100644 --- a/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md +++ b/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md @@ -2,5 +2,5 @@ category: majorAnalysis --- * JavaScript files with an average line length greater than 200 are now considered minified and will no longer be analyzed. - For use-cases where minified files should be analyzed, the orginal behaviour can be restored by setting the environment variable + For use-cases where minified files should be analyzed, the original behaviour can be restored by setting the environment variable `CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true`. From 06cc323aeeaeda3a378335170d124dc13744450c Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 5 Dec 2025 15:59:11 +0100 Subject: [PATCH 157/263] Update javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md Co-authored-by: Taus --- .../ql/src/change-notes/2025-12-05-skip-minified-files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md b/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md index 140f6eb0813..6d5309fa5c7 100644 --- a/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md +++ b/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md @@ -2,5 +2,5 @@ category: majorAnalysis --- * JavaScript files with an average line length greater than 200 are now considered minified and will no longer be analyzed. - For use-cases where minified files should be analyzed, the original behaviour can be restored by setting the environment variable + For use-cases where minified files should be analyzed, the original behavior can be restored by setting the environment variable `CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true`. From 5cef0376a964585e7d807660efa20be7c9f9237b Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 14 Jan 2026 11:50:52 +0100 Subject: [PATCH 158/263] Update java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com> --- .../CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java index a273768fce8..bad0d6de35b 100644 --- a/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java +++ b/java/ql/test/query-tests/security/CWE-798/semmle/tests/HardcodedCouchBaseCredentials.java @@ -32,7 +32,7 @@ public class HardcodedCouchBaseCredentials { .password("password"); // $ HardcodedCredentialsSourceCall $ HardcodedCredentialsApiCall PasswordAuthenticator.builder( (Supplier) - new UsernameAndPassword( + () -> new UsernameAndPassword( "Administrator", // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall "password")); // $ HardcodedCredentialsSourceCall $ MISSING: HardcodedCredentialsApiCall PasswordAuthenticator.builder() From 54f75653ba79005ac7323d9d31c76d0d39c5f9a5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Sat, 10 Jan 2026 12:35:46 +0100 Subject: [PATCH 159/263] C++: Update test expectations after extractor changes --- cpp/ql/test/library-tests/friends/loop/friends.expected | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/ql/test/library-tests/friends/loop/friends.expected b/cpp/ql/test/library-tests/friends/loop/friends.expected index a43c3f67c2e..a59c1f0c65c 100644 --- a/cpp/ql/test/library-tests/friends/loop/friends.expected +++ b/cpp/ql/test/library-tests/friends/loop/friends.expected @@ -1,9 +1,14 @@ | file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | +| file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | | file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | +| file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | | file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | +| file://:0:0:0:0 | E's friend | loop.cpp:5:26:5:26 | E | | file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | +| file://:0:0:0:0 | E's friend | loop.cpp:10:26:10:26 | F | | file://:0:0:0:0 | F's friend | loop.cpp:5:26:5:26 | E | | file://:0:0:0:0 | F's friend | loop.cpp:5:26:5:26 | E | +| file://:0:0:0:0 | F's friend | loop.cpp:5:26:5:26 | E | | loop.cpp:6:5:6:5 | E's friend | loop.cpp:5:26:5:26 | E | | loop.cpp:7:5:7:5 | E's friend | loop.cpp:7:36:7:36 | F | | loop.cpp:11:5:11:5 | F's friend | loop.cpp:11:36:11:36 | E | From f71b6c1bfd74a5b9018f7958726e00b7763aedd3 Mon Sep 17 00:00:00 2001 From: Mauro Baluda Date: Wed, 14 Jan 2026 12:32:42 +0100 Subject: [PATCH 160/263] Improved models for `Supplier` arguments --- java/ql/lib/ext/com.couchbase.client.core.env.model.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml index 09179f7589b..2182626653d 100644 --- a/java/ql/lib/ext/com.couchbase.client.core.env.model.yml +++ b/java/ql/lib/ext/com.couchbase.client.core.env.model.yml @@ -10,16 +10,16 @@ extensions: - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[1]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-password", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(String)", "", "Argument[0]", "credentials-password", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(Supplier)", "", "Argument[0]", "credentials-password", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "password", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-password", "manual"] # 'credentials-username' sinks - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "create", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "ldapCompatible", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(String,String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator", true, "builder", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-username", "manual"] - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(String)", "", "Argument[0]", "credentials-username", "manual"] - - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0]", "credentials-username", "manual"] + - ["com.couchbase.client.core.env", "PasswordAuthenticator$Builder", true, "username", "(Supplier)", "", "Argument[0].ReturnValue", "credentials-username", "manual"] - addsTo: pack: codeql/java-all From 9d5e5b0c8a63956e1b21385b0fa0bb94b048a335 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 16 Dec 2025 12:15:19 +0000 Subject: [PATCH 161/263] Add post-processing to Beego tests --- .../Beego/CleartextLogging.expected | 137 ++++++----- .../frameworks/Beego/CleartextLogging.qlref | 5 +- .../go/frameworks/Beego/OpenRedirect.expected | 6 +- .../go/frameworks/Beego/OpenRedirect.qlref | 5 +- .../go/frameworks/Beego/ReflectedXss.qlref | 4 +- .../go/frameworks/Beego/TaintedPath.qlref | 4 +- .../semmle/go/frameworks/Beego/test.go | 228 +++++++++--------- 7 files changed, 211 insertions(+), 178 deletions(-) diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected index 591d990be47..30a38580f78 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.expected @@ -1,3 +1,38 @@ +#select +| test.go:154:14:154:21 | password | test.go:153:17:153:24 | definition of password | test.go:154:14:154:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:155:17:155:24 | password | test.go:153:17:153:24 | definition of password | test.go:155:17:155:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:156:14:156:21 | password | test.go:153:17:153:24 | definition of password | test.go:156:14:156:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:157:18:157:25 | password | test.go:153:17:153:24 | definition of password | test.go:157:18:157:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:158:14:158:21 | password | test.go:153:17:153:24 | definition of password | test.go:158:14:158:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:159:13:159:20 | password | test.go:153:17:153:24 | definition of password | test.go:159:13:159:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:160:22:160:29 | password | test.go:153:17:153:24 | definition of password | test.go:160:22:160:29 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:161:15:161:22 | password | test.go:153:17:153:24 | definition of password | test.go:161:15:161:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:162:14:162:21 | password | test.go:153:17:153:24 | definition of password | test.go:162:14:162:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:163:13:163:20 | password | test.go:153:17:153:24 | definition of password | test.go:163:13:163:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:164:16:164:23 | password | test.go:153:17:153:24 | definition of password | test.go:164:16:164:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:165:13:165:20 | password | test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:166:16:166:23 | password | test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:167:13:167:20 | password | test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:168:17:168:24 | password | test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:169:13:169:20 | password | test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:170:12:170:19 | password | test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:171:21:171:28 | password | test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:172:14:172:21 | password | test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:173:13:173:20 | password | test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:174:12:174:19 | password | test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:175:15:175:22 | password | test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:176:15:176:22 | password | test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:177:18:177:25 | password | test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:178:15:178:22 | password | test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:179:19:179:26 | password | test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:180:15:180:22 | password | test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:181:14:181:21 | password | test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:182:23:182:30 | password | test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:183:16:183:23 | password | test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:184:15:184:22 | password | test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:185:14:185:21 | password | test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:186:17:186:24 | password | test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | +| test.go:187:16:187:23 | password | test.go:153:17:153:24 | definition of password | test.go:187:16:187:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | edges | test.go:153:17:153:24 | definition of password | test.go:154:14:154:21 | password | provenance | | | test.go:153:17:153:24 | definition of password | test.go:155:17:155:24 | password | provenance | | @@ -10,29 +45,52 @@ edges | test.go:153:17:153:24 | definition of password | test.go:162:14:162:21 | password | provenance | | | test.go:153:17:153:24 | definition of password | test.go:163:13:163:20 | password | provenance | | | test.go:153:17:153:24 | definition of password | test.go:164:16:164:23 | password | provenance | | -| test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | provenance | Sink:MaD:380 | -| test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | provenance | Sink:MaD:381 | -| test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | provenance | Sink:MaD:382 | -| test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | provenance | Sink:MaD:383 | -| test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | provenance | Sink:MaD:384 | -| test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | provenance | Sink:MaD:385 | -| test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | provenance | Sink:MaD:386 | -| test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | provenance | Sink:MaD:387 | -| test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | provenance | Sink:MaD:388 | -| test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | provenance | Sink:MaD:389 | -| test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | provenance | Sink:MaD:390 | -| test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | provenance | Sink:MaD:391 | -| test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | provenance | Sink:MaD:392 | -| test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | provenance | Sink:MaD:393 | -| test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | provenance | Sink:MaD:394 | -| test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | provenance | Sink:MaD:395 | -| test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | provenance | Sink:MaD:396 | -| test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | provenance | Sink:MaD:397 | -| test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | provenance | Sink:MaD:398 | -| test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | provenance | Sink:MaD:399 | -| test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | provenance | Sink:MaD:400 | -| test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | provenance | Sink:MaD:401 | +| test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | provenance | Sink:MaD:1 | +| test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | provenance | Sink:MaD:2 | +| test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | provenance | Sink:MaD:3 | +| test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | provenance | Sink:MaD:4 | +| test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | provenance | Sink:MaD:5 | +| test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | provenance | Sink:MaD:6 | +| test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | provenance | Sink:MaD:7 | +| test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | provenance | Sink:MaD:8 | +| test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | provenance | Sink:MaD:9 | +| test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | provenance | Sink:MaD:10 | +| test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | provenance | Sink:MaD:11 | +| test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | provenance | Sink:MaD:12 | +| test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | provenance | Sink:MaD:13 | +| test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | provenance | Sink:MaD:14 | +| test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | provenance | Sink:MaD:15 | +| test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | provenance | Sink:MaD:16 | +| test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | provenance | Sink:MaD:17 | +| test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | provenance | Sink:MaD:18 | +| test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | provenance | Sink:MaD:19 | +| test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | provenance | Sink:MaD:20 | +| test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | provenance | Sink:MaD:21 | +| test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | provenance | Sink:MaD:22 | | test.go:153:17:153:24 | definition of password | test.go:187:16:187:23 | password | provenance | | +models +| 1 | Sink: group:beego-logs; ; false; Alert; ; ; Argument[0..1]; log-injection; manual | +| 2 | Sink: group:beego-logs; ; false; Critical; ; ; Argument[0..1]; log-injection; manual | +| 3 | Sink: group:beego-logs; ; false; Debug; ; ; Argument[0..1]; log-injection; manual | +| 4 | Sink: group:beego-logs; ; false; Emergency; ; ; Argument[0..1]; log-injection; manual | +| 5 | Sink: group:beego-logs; ; false; Error; ; ; Argument[0..1]; log-injection; manual | +| 6 | Sink: group:beego-logs; ; false; Info; ; ; Argument[0..1]; log-injection; manual | +| 7 | Sink: group:beego-logs; ; false; Informational; ; ; Argument[0..1]; log-injection; manual | +| 8 | Sink: group:beego-logs; ; false; Notice; ; ; Argument[0..1]; log-injection; manual | +| 9 | Sink: group:beego-logs; ; false; Trace; ; ; Argument[0..1]; log-injection; manual | +| 10 | Sink: group:beego-logs; ; false; Warn; ; ; Argument[0..1]; log-injection; manual | +| 11 | Sink: group:beego-logs; ; false; Warning; ; ; Argument[0..1]; log-injection; manual | +| 12 | Sink: group:beego-logs; BeeLogger; true; Alert; ; ; Argument[0..1]; log-injection; manual | +| 13 | Sink: group:beego-logs; BeeLogger; true; Critical; ; ; Argument[0..1]; log-injection; manual | +| 14 | Sink: group:beego-logs; BeeLogger; true; Debug; ; ; Argument[0..1]; log-injection; manual | +| 15 | Sink: group:beego-logs; BeeLogger; true; Emergency; ; ; Argument[0..1]; log-injection; manual | +| 16 | Sink: group:beego-logs; BeeLogger; true; Error; ; ; Argument[0..1]; log-injection; manual | +| 17 | Sink: group:beego-logs; BeeLogger; true; Info; ; ; Argument[0..1]; log-injection; manual | +| 18 | Sink: group:beego-logs; BeeLogger; true; Informational; ; ; Argument[0..1]; log-injection; manual | +| 19 | Sink: group:beego-logs; BeeLogger; true; Notice; ; ; Argument[0..1]; log-injection; manual | +| 20 | Sink: group:beego-logs; BeeLogger; true; Trace; ; ; Argument[0..1]; log-injection; manual | +| 21 | Sink: group:beego-logs; BeeLogger; true; Warn; ; ; Argument[0..1]; log-injection; manual | +| 22 | Sink: group:beego-logs; BeeLogger; true; Warning; ; ; Argument[0..1]; log-injection; manual | nodes | test.go:153:17:153:24 | definition of password | semmle.label | definition of password | | test.go:154:14:154:21 | password | semmle.label | password | @@ -70,38 +128,3 @@ nodes | test.go:186:17:186:24 | password | semmle.label | password | | test.go:187:16:187:23 | password | semmle.label | password | subpaths -#select -| test.go:154:14:154:21 | password | test.go:153:17:153:24 | definition of password | test.go:154:14:154:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:155:17:155:24 | password | test.go:153:17:153:24 | definition of password | test.go:155:17:155:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:156:14:156:21 | password | test.go:153:17:153:24 | definition of password | test.go:156:14:156:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:157:18:157:25 | password | test.go:153:17:153:24 | definition of password | test.go:157:18:157:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:158:14:158:21 | password | test.go:153:17:153:24 | definition of password | test.go:158:14:158:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:159:13:159:20 | password | test.go:153:17:153:24 | definition of password | test.go:159:13:159:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:160:22:160:29 | password | test.go:153:17:153:24 | definition of password | test.go:160:22:160:29 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:161:15:161:22 | password | test.go:153:17:153:24 | definition of password | test.go:161:15:161:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:162:14:162:21 | password | test.go:153:17:153:24 | definition of password | test.go:162:14:162:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:163:13:163:20 | password | test.go:153:17:153:24 | definition of password | test.go:163:13:163:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:164:16:164:23 | password | test.go:153:17:153:24 | definition of password | test.go:164:16:164:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:165:13:165:20 | password | test.go:153:17:153:24 | definition of password | test.go:165:13:165:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:166:16:166:23 | password | test.go:153:17:153:24 | definition of password | test.go:166:16:166:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:167:13:167:20 | password | test.go:153:17:153:24 | definition of password | test.go:167:13:167:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:168:17:168:24 | password | test.go:153:17:153:24 | definition of password | test.go:168:17:168:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:169:13:169:20 | password | test.go:153:17:153:24 | definition of password | test.go:169:13:169:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:170:12:170:19 | password | test.go:153:17:153:24 | definition of password | test.go:170:12:170:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:171:21:171:28 | password | test.go:153:17:153:24 | definition of password | test.go:171:21:171:28 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:172:14:172:21 | password | test.go:153:17:153:24 | definition of password | test.go:172:14:172:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:173:13:173:20 | password | test.go:153:17:153:24 | definition of password | test.go:173:13:173:20 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:174:12:174:19 | password | test.go:153:17:153:24 | definition of password | test.go:174:12:174:19 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:175:15:175:22 | password | test.go:153:17:153:24 | definition of password | test.go:175:15:175:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:176:15:176:22 | password | test.go:153:17:153:24 | definition of password | test.go:176:15:176:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:177:18:177:25 | password | test.go:153:17:153:24 | definition of password | test.go:177:18:177:25 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:178:15:178:22 | password | test.go:153:17:153:24 | definition of password | test.go:178:15:178:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:179:19:179:26 | password | test.go:153:17:153:24 | definition of password | test.go:179:19:179:26 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:180:15:180:22 | password | test.go:153:17:153:24 | definition of password | test.go:180:15:180:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:181:14:181:21 | password | test.go:153:17:153:24 | definition of password | test.go:181:14:181:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:182:23:182:30 | password | test.go:153:17:153:24 | definition of password | test.go:182:23:182:30 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:183:16:183:23 | password | test.go:153:17:153:24 | definition of password | test.go:183:16:183:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:184:15:184:22 | password | test.go:153:17:153:24 | definition of password | test.go:184:15:184:22 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:185:14:185:21 | password | test.go:153:17:153:24 | definition of password | test.go:185:14:185:21 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:186:17:186:24 | password | test.go:153:17:153:24 | definition of password | test.go:186:17:186:24 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | -| test.go:187:16:187:23 | password | test.go:153:17:153:24 | definition of password | test.go:187:16:187:23 | password | $@ flows to a logging call. | test.go:153:17:153:24 | definition of password | Sensitive data returned by an access to password | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref index 21eebbd09be..693299c33a2 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CleartextLogging.qlref @@ -1 +1,4 @@ -Security/CWE-312/CleartextLogging.ql +query: Security/CWE-312/CleartextLogging.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected index c624f05d450..4dca9d050d7 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.expected @@ -1,3 +1,6 @@ +#select +| test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:253:13:253:34 | call to GetString | user-provided value | +| test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:254:20:254:41 | call to GetString | user-provided value | edges nodes | test.go:253:13:253:34 | call to GetString | semmle.label | call to GetString | @@ -5,6 +8,3 @@ nodes | test.go:317:13:317:27 | call to URI | semmle.label | call to URI | | test.go:318:20:318:34 | call to URL | semmle.label | call to URL | subpaths -#select -| test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | test.go:253:13:253:34 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:253:13:253:34 | call to GetString | user-provided value | -| test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | test.go:254:20:254:41 | call to GetString | This path to an untrusted URL redirection depends on a $@. | test.go:254:20:254:41 | call to GetString | user-provided value | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref index 0f1a7477825..13add930f51 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/OpenRedirect.qlref @@ -1 +1,4 @@ -Security/CWE-601/OpenUrlRedirect.ql +query: Security/CWE-601/OpenUrlRedirect.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref index 754513d72bb..e6b791f39fc 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.qlref @@ -1,2 +1,4 @@ query: Security/CWE-079/ReflectedXss.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref index 78ce25b1921..6eb2e94892f 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.qlref @@ -1,2 +1,4 @@ query: Security/CWE-022/TaintedPath.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go b/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go index d702f4a5445..38cb06691f8 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/test.go @@ -31,75 +31,75 @@ type bindMe struct { // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromBind(input *context.BeegoInput, sink http.ResponseWriter) { var bound bindMe - input.Bind(bound, "someKey") - sink.Write([]byte(bound.a[0])) - sink.Write([]byte(bound.b)) - sink.Write([]byte(bound.c.z)) + input.Bind(bound, "someKey") // $ Source[go/reflected-xss] + sink.Write([]byte(bound.a[0])) // $ Alert[go/reflected-xss] + sink.Write([]byte(bound.b)) // $ Alert[go/reflected-xss] + sink.Write([]byte(bound.c.z)) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromCookie(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Cookie("someKey"))) + sink.Write([]byte(input.Cookie("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromData(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Data()["someKey"].(string))) + sink.Write([]byte(input.Data()["someKey"].(string))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromGetData(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.GetData("someKey").(string))) + sink.Write([]byte(input.GetData("someKey").(string))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromHeader(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Header("someKey"))) + sink.Write([]byte(input.Header("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromParam(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Param("someKey"))) + sink.Write([]byte(input.Param("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromParams(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Params()["someKey"])) + sink.Write([]byte(input.Params()["someKey"])) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromQuery(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Query("someKey"))) + sink.Write([]byte(input.Query("someKey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromRefer(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Refer())) + sink.Write([]byte(input.Refer())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromReferer(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.Referer())) + sink.Write([]byte(input.Referer())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromURI(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.URI())) + sink.Write([]byte(input.URI())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromURL(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.URL())) + sink.Write([]byte(input.URL())) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data to an `http.ResponseWriter` func xssFromUserAgent(input *context.BeegoInput, sink http.ResponseWriter) { - sink.Write([]byte(input.UserAgent())) + sink.Write([]byte(input.UserAgent())) // $ Alert[go/reflected-xss] } // BAD: with no obvious ContentType call we assume this could be text/html. func echoToBodyNoContentType(input *context.BeegoInput, output *context.BeegoOutput) { - output.Body(input.Data()["someKey"].([]byte)) + output.Body(input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] } // OK: JSON can't (by itself) cause XSS @@ -111,7 +111,7 @@ func echoToBodyContentTypeJson(input *context.BeegoInput, output *context.BeegoO // BAD: echoing untrusted data with an HTML content type func echoToBodyContentTypeHtml(input *context.BeegoInput, output *context.BeegoOutput) { output.ContentType("text/html") - output.Body(input.Data()["someKey"].([]byte)) + output.Body(input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] } // OK: JSON can't (by itself) cause XSS @@ -123,7 +123,7 @@ func echoToBodyContentTypeJsonUsingHeader(input *context.BeegoInput, output *con // BAD: echoing untrusted data with an HTML content type func echoToBodyContentTypeHtmlUsingHeader(input *context.BeegoInput, output *context.BeegoOutput) { output.Header("content-type", "text/html") - output.Body(input.Data()["someKey"].([]byte)) + output.Body(input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] } // OK: JSON and other non-HTML formats can't (by themselves) cause XSS @@ -140,7 +140,7 @@ func echoToFixedContentTypeRoutines(input *context.BeegoInput, output *context.B func echoToBodyContentTypeHtmlUsingHandler() { beego.Post("", func(context *context.Context) { context.Output.Header("content-type", "text/html") - context.Output.Body(context.Input.Data()["someKey"].([]byte)) + context.Output.Body(context.Input.Data()["someKey"].([]byte)) // $ Alert[go/reflected-xss] }) } @@ -150,41 +150,41 @@ func echoToBodySanitized(input *context.BeegoInput, output *context.BeegoOutput) } // BAD: logging something named "password". -func loggerTest(password string, logger *logs.BeeLogger) { - beego.Alert(password) - beego.Critical(password) - beego.Debug(password) - beego.Emergency(password) - beego.Error(password) - beego.Info(password) - beego.Informational(password) - beego.Notice(password) - beego.Trace(password) - beego.Warn(password) - beego.Warning(password) - logs.Alert(password) - logs.Critical(password) - logs.Debug(password) - logs.Emergency(password) - logs.Error(password) - logs.Info(password) - logs.Informational(password) - logs.Notice(password) - logs.Trace(password) - logs.Warn(password) - logs.Warning(password) - logger.Alert(password) - logger.Critical(password) - logger.Debug(password) - logger.Emergency(password) - logger.Error(password) - logger.Info(password) - logger.Informational(password) - logger.Notice(password) - logger.Trace(password) - logger.Warn(password) - logger.Warning(password) - utils.Display(password) +func loggerTest(password string, logger *logs.BeeLogger) { // $ Source[go/clear-text-logging] + beego.Alert(password) // $ Alert[go/clear-text-logging] + beego.Critical(password) // $ Alert[go/clear-text-logging] + beego.Debug(password) // $ Alert[go/clear-text-logging] + beego.Emergency(password) // $ Alert[go/clear-text-logging] + beego.Error(password) // $ Alert[go/clear-text-logging] + beego.Info(password) // $ Alert[go/clear-text-logging] + beego.Informational(password) // $ Alert[go/clear-text-logging] + beego.Notice(password) // $ Alert[go/clear-text-logging] + beego.Trace(password) // $ Alert[go/clear-text-logging] + beego.Warn(password) // $ Alert[go/clear-text-logging] + beego.Warning(password) // $ Alert[go/clear-text-logging] + logs.Alert(password) // $ Alert[go/clear-text-logging] + logs.Critical(password) // $ Alert[go/clear-text-logging] + logs.Debug(password) // $ Alert[go/clear-text-logging] + logs.Emergency(password) // $ Alert[go/clear-text-logging] + logs.Error(password) // $ Alert[go/clear-text-logging] + logs.Info(password) // $ Alert[go/clear-text-logging] + logs.Informational(password) // $ Alert[go/clear-text-logging] + logs.Notice(password) // $ Alert[go/clear-text-logging] + logs.Trace(password) // $ Alert[go/clear-text-logging] + logs.Warn(password) // $ Alert[go/clear-text-logging] + logs.Warning(password) // $ Alert[go/clear-text-logging] + logger.Alert(password) // $ Alert[go/clear-text-logging] + logger.Critical(password) // $ Alert[go/clear-text-logging] + logger.Debug(password) // $ Alert[go/clear-text-logging] + logger.Emergency(password) // $ Alert[go/clear-text-logging] + logger.Error(password) // $ Alert[go/clear-text-logging] + logger.Info(password) // $ Alert[go/clear-text-logging] + logger.Informational(password) // $ Alert[go/clear-text-logging] + logger.Notice(password) // $ Alert[go/clear-text-logging] + logger.Trace(password) // $ Alert[go/clear-text-logging] + logger.Warn(password) // $ Alert[go/clear-text-logging] + logger.Warning(password) // $ Alert[go/clear-text-logging] + utils.Display(password) // $ Alert[go/clear-text-logging] } type myStruct struct { @@ -196,83 +196,83 @@ func sanitizersTest(ctx *context.Context) { input := ctx.Input output := ctx.Output - untrusted := input.Data()["someKey"] - output.Body([]byte(beego.HTML2str(untrusted.(string)))) - output.Body([]byte(beego.Htmlunquote(untrusted.(string)))) + untrusted := input.Data()["someKey"] // $ Source[go/reflected-xss] + output.Body([]byte(beego.HTML2str(untrusted.(string)))) // $ Alert[go/reflected-xss] + output.Body([]byte(beego.Htmlunquote(untrusted.(string)))) // $ Alert[go/reflected-xss] mapVal, _ := beego.MapGet(untrusted.(map[string][]byte), "somekey") - output.Body(mapVal.([]byte)) - output.Body([]byte(beego.Str2html(untrusted.(string)))) - output.Body([]byte(beego.Substr(untrusted.(string), 1, 2))) + output.Body(mapVal.([]byte)) // $ Alert[go/reflected-xss] + output.Body([]byte(beego.Str2html(untrusted.(string)))) // $ Alert[go/reflected-xss] + output.Body([]byte(beego.Substr(untrusted.(string), 1, 2))) // $ Alert[go/reflected-xss] var s myStruct - beego.ParseForm(ctx.Request.Form, s) - output.Body([]byte(s.field)) + beego.ParseForm(ctx.Request.Form, s) // $ Source[go/reflected-xss] + output.Body([]byte(s.field)) // $ Alert[go/reflected-xss] } // BAD: using user-provided data as paths in file-system operations func fsOpsTest(ctx *context.Context, c *beego.Controller, fs beego.FileSystem) { input := ctx.Input - untrusted := input.Data()["someKey"].(string) - beego.Walk(nil, untrusted, func(path string, info os.FileInfo, err error) error { return nil }) - fs.Open(untrusted) - c.SaveToFile("someReceviedFile", untrusted) + untrusted := input.Data()["someKey"].(string) // $ Source[go/path-injection] + beego.Walk(nil, untrusted, func(path string, info os.FileInfo, err error) error { return nil }) // $ Alert[go/path-injection] + fs.Open(untrusted) // $ Alert[go/path-injection] + c.SaveToFile("someReceviedFile", untrusted) // $ Alert[go/path-injection] } // BAD: echoing untrusted data, using various Controller sources func controllerSourceTest(c *beego.Controller, output *context.BeegoOutput) { - f, fh, _ := c.GetFile("somename") - output.Body([]byte(fh.Filename)) + f, fh, _ := c.GetFile("somename") // $ Source[go/reflected-xss] + output.Body([]byte(fh.Filename)) // $ Alert[go/reflected-xss] content, _ := ioutil.ReadAll(f) - output.Body(content) + output.Body(content) // $ Alert[go/reflected-xss] - files, _ := c.GetFiles("someothername") - output.Body([]byte(files[0].Filename)) + files, _ := c.GetFiles("someothername") // $ Source[go/reflected-xss] + output.Body([]byte(files[0].Filename)) // $ Alert[go/reflected-xss] - s := c.GetString("somekey") - output.Body([]byte(s)) + s := c.GetString("somekey") // $ Source[go/reflected-xss] + output.Body([]byte(s)) // $ Alert[go/reflected-xss] - ss := c.GetStrings("someotherkey") - output.Body([]byte(ss[0])) + ss := c.GetStrings("someotherkey") // $ Source[go/reflected-xss] + output.Body([]byte(ss[0])) // $ Alert[go/reflected-xss] - val := c.Input()["thirdkey"] - output.Body([]byte(val[0])) + val := c.Input()["thirdkey"] // $ Source[go/reflected-xss] + output.Body([]byte(val[0])) // $ Alert[go/reflected-xss] var str myStruct - c.ParseForm(str) - output.Body([]byte(str.field)) + c.ParseForm(str) // $ Source[go/reflected-xss] + output.Body([]byte(str.field)) // $ Alert[go/reflected-xss] } func controllerSinkTest(c *beego.Controller) { - untrusted := c.GetString("somekey") - c.SetData(untrusted) // GOOD: SetData always uses a non-html content-type, so no XSS risk + untrusted := c.GetString("somekey") // $ Source[go/reflected-xss] + c.SetData(untrusted) // GOOD: SetData always uses a non-html content-type, so no XSS risk - c.CustomAbort(500, untrusted) // BAD: CustomAbort doesn't set a content-type, so there is an XSS risk + c.CustomAbort(500, untrusted) // $ Alert[go/reflected-xss] // BAD: CustomAbort doesn't set a content-type, so there is an XSS risk } func redirectTest(c *beego.Controller, ctx *context.Context) { - c.Redirect(c.GetString("somekey"), 304) // BAD: User-controlled redirect - ctx.Redirect(304, c.GetString("somekey")) // BAD: User-controlled redirect + c.Redirect(c.GetString("somekey"), 304) // $ Alert[go/unvalidated-url-redirection] + ctx.Redirect(304, c.GetString("somekey")) // $ Alert[go/unvalidated-url-redirection] } // BAD: echoing untrusted data, using Context source func contextSourceTest(c *context.Context) { - c.Output.Body([]byte(c.GetCookie("somekey"))) + c.Output.Body([]byte(c.GetCookie("somekey"))) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data, using Context sinks func contextSinkTest(c *context.Context) { - c.WriteString(c.GetCookie("somekey")) - c.Abort(500, c.GetCookie("someOtherKey")) + c.WriteString(c.GetCookie("somekey")) // $ Alert[go/reflected-xss] + c.Abort(500, c.GetCookie("someOtherKey")) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data, using context.WriteBody as a propagator func contextWriteBodyTest(c *context.Context) { - context.WriteBody("some/encoding", c.ResponseWriter, []byte(c.GetCookie("someKey"))) + context.WriteBody("some/encoding", c.ResponseWriter, []byte(c.GetCookie("someKey"))) // $ Alert[go/reflected-xss] } // BAD unless otherwise noted: echoing untrusted data, using various utils methods as propagators func testUtilsPropagators(c *beego.Controller) { - files, _ := c.GetFiles("someothername") + files, _ := c.GetFiles("someothername") // $ Source[go/reflected-xss] genericFiles := make([]interface{}, len(files), len(files)) for i := range files { genericFiles[i] = files[i] @@ -280,36 +280,36 @@ func testUtilsPropagators(c *beego.Controller) { untainted := make([]interface{}, 1, 1) - c.CustomAbort(500, utils.GetDisplayString(files[0].Filename)) - c.CustomAbort(500, utils.SliceChunk(genericFiles, 1)[0][0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceDiff(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) + c.CustomAbort(500, utils.GetDisplayString(files[0].Filename)) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceChunk(genericFiles, 1)[0][0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceDiff(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] // GOOD: the tainted values are subtracted, so taint is not propagated c.CustomAbort(500, utils.SliceDiff(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) c.CustomAbort( 500, utils.SliceFilter( genericFiles, - func([]interface{}) bool { return true })[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceIntersect(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceIntersect(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceMerge(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceMerge(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SlicePad(untainted, 10, genericFiles[0])[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SlicePad(genericFiles, 10, untainted[0])[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceRand(genericFiles).(*multipart.FileHeader).Filename) + func([]interface{}) bool { return true })[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceIntersect(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceIntersect(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceMerge(genericFiles, untainted)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceMerge(untainted, genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SlicePad(untainted, 10, genericFiles[0])[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SlicePad(genericFiles, 10, untainted[0])[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceRand(genericFiles).(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] // Note this is misnamed -- it's a map operation, not a reduce - c.CustomAbort(500, utils.SliceReduce(genericFiles, func(x interface{}) interface{} { return x })[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceShuffle(genericFiles)[0].(*multipart.FileHeader).Filename) - c.CustomAbort(500, utils.SliceUnique(genericFiles)[0].(*multipart.FileHeader).Filename) + c.CustomAbort(500, utils.SliceReduce(genericFiles, func(x interface{}) interface{} { return x })[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceShuffle(genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] + c.CustomAbort(500, utils.SliceUnique(genericFiles)[0].(*multipart.FileHeader).Filename) // $ Alert[go/reflected-xss] } // BAD: echoing untrusted data, using BeeMap as an intermediary func testBeeMap(c *beego.Controller) { bMap := utils.NewBeeMap() - untrusted := c.GetString("someKey") + untrusted := c.GetString("someKey") // $ Source[go/reflected-xss] bMap.Set("someKey", untrusted) - c.CustomAbort(500, bMap.Get("someKey").(string)) - c.CustomAbort(500, bMap.Items()["someKey"].(string)) + c.CustomAbort(500, bMap.Get("someKey").(string)) // $ Alert[go/reflected-xss] + c.CustomAbort(500, bMap.Items()["someKey"].(string)) // $ Alert[go/reflected-xss] } // GOOD: using the input URL for a redirect operation @@ -321,25 +321,25 @@ func testSafeRedirects(c *beego.Controller, ctx *context.Context) { // BAD: using RequestBody data as path in a file-system operation func requestBodySourceTest(ctx *context.Context, c *beego.Controller) { var dat map[string]interface{} - json.Unmarshal(ctx.Input.RequestBody, &dat) + json.Unmarshal(ctx.Input.RequestBody, &dat) // $ Source[go/path-injection] untrusted := dat["filepath"].(string) - c.SaveToFile("someReceviedFile", untrusted) + c.SaveToFile("someReceviedFile", untrusted) // $ Alert[go/path-injection] } // BAD: using user-provided data as paths in file-system operations func fsOpsTest2(ctx *context.Context, c *beego.Controller, fs beego.FileSystem) { input := ctx.Input - untrusted := input.Data()["someKey"].(string) + untrusted := input.Data()["someKey"].(string) // $ Source[go/path-injection] beegoOutput := context.BeegoOutput{} - beegoOutput.Download(untrusted, "license.txt") + beegoOutput.Download(untrusted, "license.txt") // $ Alert[go/path-injection] } // BAD: using user-provided data as paths in file-system operations func fsOpsV2Test(ctx *Beegov2Context.Context, c *beegov2.Controller) { input := ctx.Input - untrusted := input.Data()["someKey"].(string) + untrusted := input.Data()["someKey"].(string) // $ Source[go/path-injection] buffer := make([]byte, 10) - _ = c.SaveToFileWithBuffer("filenameExistsInForm", untrusted, buffer) + _ = c.SaveToFileWithBuffer("filenameExistsInForm", untrusted, buffer) // $ Alert[go/path-injection] beegoOutput := Beegov2Context.BeegoOutput{} - beegoOutput.Download(untrusted, "license.txt") + beegoOutput.Download(untrusted, "license.txt") // $ Alert[go/path-injection] } From 1cd0698453d01ab9e0939785703da5eea09fe7bf Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 12 Dec 2025 07:14:34 +0000 Subject: [PATCH 162/263] Fix test for reflected xss sanitizer It used to pass even without ErrorSanitizer because `cookie` is already sanitized. --- .../Security/CWE-079/ReflectedXss.expected | 22 ++++++++++--------- .../Security/CWE-079/reflectedxsstest.go | 8 +++---- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected index 0e1265b5c1e..b95abaa47c5 100644 --- a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected +++ b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected @@ -6,8 +6,8 @@ | contenttype.go:79:11:79:14 | data | contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | Cross-site scripting vulnerability due to $@. | contenttype.go:73:10:73:28 | call to FormValue | user-provided value | contenttype.go:0:0:0:0 | contenttype.go | | | contenttype.go:91:4:91:7 | data | contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | Cross-site scripting vulnerability due to $@. | contenttype.go:88:10:88:28 | call to FormValue | user-provided value | contenttype.go:0:0:0:0 | contenttype.go | | | contenttype.go:114:50:114:53 | data | contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | Cross-site scripting vulnerability due to $@. | contenttype.go:113:10:113:28 | call to FormValue | user-provided value | contenttype.go:0:0:0:0 | contenttype.go | | -| reflectedxsstest.go:33:10:33:57 | type conversion | reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:33:10:33:57 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:31:2:31:44 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | -| reflectedxsstest.go:34:10:34:62 | type conversion | reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:10:34:62 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:31:2:31:44 | ... := ...[1] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | +| reflectedxsstest.go:33:10:33:57 | type conversion | reflectedxsstest.go:30:2:30:44 | ... := ...[0] | reflectedxsstest.go:33:10:33:57 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:30:2:30:44 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | +| reflectedxsstest.go:34:10:34:62 | type conversion | reflectedxsstest.go:30:2:30:44 | ... := ...[1] | reflectedxsstest.go:34:10:34:62 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:30:2:30:44 | ... := ...[1] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | | reflectedxsstest.go:44:10:44:55 | type conversion | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:44:10:44:55 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | | reflectedxsstest.go:45:10:45:18 | byteSlice | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:45:10:45:18 | byteSlice | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:38:2:38:35 | ... := ...[0] | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | | reflectedxsstest.go:54:11:54:21 | type conversion | reflectedxsstest.go:51:14:51:18 | selection of URL | reflectedxsstest.go:54:11:54:21 | type conversion | Cross-site scripting vulnerability due to $@. | reflectedxsstest.go:51:14:51:18 | selection of URL | user-provided value | reflectedxsstest.go:0:0:0:0 | reflectedxsstest.go | | @@ -30,10 +30,11 @@ edges | contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | provenance | Src:MaD:8 | | contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | provenance | Src:MaD:8 | | contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | provenance | Src:MaD:8 | -| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:32:30:32:33 | file | provenance | Src:MaD:7 | -| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | provenance | Src:MaD:7 | -| reflectedxsstest.go:32:2:32:34 | ... := ...[0] | reflectedxsstest.go:33:49:33:55 | content | provenance | | -| reflectedxsstest.go:32:30:32:33 | file | reflectedxsstest.go:32:2:32:34 | ... := ...[0] | provenance | MaD:13 | +| reflectedxsstest.go:30:2:30:44 | ... := ...[0] | reflectedxsstest.go:31:30:31:33 | file | provenance | Src:MaD:7 | +| reflectedxsstest.go:30:2:30:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | provenance | Src:MaD:7 | +| reflectedxsstest.go:31:2:31:34 | ... := ...[0] | reflectedxsstest.go:32:48:32:54 | content | provenance | | +| reflectedxsstest.go:31:30:31:33 | file | reflectedxsstest.go:31:2:31:34 | ... := ...[0] | provenance | MaD:13 | +| reflectedxsstest.go:32:48:32:54 | content | reflectedxsstest.go:33:49:33:55 | content | provenance | | | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | reflectedxsstest.go:33:17:33:56 | call to Sprintf | provenance | MaD:12 | | reflectedxsstest.go:33:17:33:56 | call to Sprintf | reflectedxsstest.go:33:10:33:57 | type conversion | provenance | | | reflectedxsstest.go:33:49:33:55 | content | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | provenance | | @@ -106,10 +107,11 @@ nodes | contenttype.go:91:4:91:7 | data | semmle.label | data | | contenttype.go:113:10:113:28 | call to FormValue | semmle.label | call to FormValue | | contenttype.go:114:50:114:53 | data | semmle.label | data | -| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | semmle.label | ... := ...[0] | -| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | semmle.label | ... := ...[1] | -| reflectedxsstest.go:32:2:32:34 | ... := ...[0] | semmle.label | ... := ...[0] | -| reflectedxsstest.go:32:30:32:33 | file | semmle.label | file | +| reflectedxsstest.go:30:2:30:44 | ... := ...[0] | semmle.label | ... := ...[0] | +| reflectedxsstest.go:30:2:30:44 | ... := ...[1] | semmle.label | ... := ...[1] | +| reflectedxsstest.go:31:2:31:34 | ... := ...[0] | semmle.label | ... := ...[0] | +| reflectedxsstest.go:31:30:31:33 | file | semmle.label | file | +| reflectedxsstest.go:32:48:32:54 | content | semmle.label | content | | reflectedxsstest.go:33:10:33:57 | type conversion | semmle.label | type conversion | | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | semmle.label | []type{args} [array] | | reflectedxsstest.go:33:17:33:56 | call to Sprintf | semmle.label | call to Sprintf | diff --git a/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go b/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go index b3ddc79535b..ce708a2c7d7 100644 --- a/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go +++ b/go/ql/test/query-tests/Security/CWE-079/reflectedxsstest.go @@ -25,11 +25,11 @@ func ServeJsonDirect(w http.ResponseWriter, r http.Request) { func ErrTest(w http.ResponseWriter, r http.Request) { cookie, err := r.Cookie("somecookie") - w.Write([]byte(fmt.Sprintf("Cookie result: %v", cookie))) // GOOD: Cookie's value is not user-controlled in reflected xss. - w.Write([]byte(fmt.Sprintf("Cookie check error: %v", err))) // GOOD: Cookie's err return is harmless - http.Error(w, fmt.Sprintf("Cookie result: %v", cookie), 500) // Good: only plain text is written. - file, header, err := r.FormFile("someFile") // $ Source[go/reflected-xss] + w.Write([]byte(fmt.Sprintf("Cookie result: %v", cookie))) // GOOD: Cookie's value is not user-controlled in reflected xss. + w.Write([]byte(fmt.Sprintf("Cookie check error: %v", err))) // GOOD: Cookie's err return is harmless + file, header, err := r.FormFile("someFile") // $ Source[go/reflected-xss] content, err2 := io.ReadAll(file) + http.Error(w, fmt.Sprintf("File content: %v", content), 500) // Good: only plain text is written. w.Write([]byte(fmt.Sprintf("File content: %v", content))) // $ Alert[go/reflected-xss] // BAD: file content is user-controlled w.Write([]byte(fmt.Sprintf("File name: %v", header.Filename))) // $ Alert[go/reflected-xss] // BAD: file header is user-controlled w.Write([]byte(fmt.Sprintf("FormFile error: %v", err))) // GOOD: FormFile's err return is harmless From 93d7c5c7efc2d550e3b1f3b827d507a7f7ad23c5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:21:45 +0000 Subject: [PATCH 163/263] Remove redundant supertypes --- go/ql/lib/semmle/go/frameworks/Revel.qll | 2 +- go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll | 2 +- go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll | 2 +- .../lib/semmle/go/security/CleartextLoggingCustomizations.qll | 4 ++-- .../lib/semmle/go/security/OpenUrlRedirectCustomizations.qll | 4 ++-- .../semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll | 4 ++-- go/ql/lib/semmle/go/security/Xss.qll | 2 +- go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll | 2 +- .../library-tests/semmle/go/frameworks/Encoding/jsoniter.ql | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go/ql/lib/semmle/go/frameworks/Revel.qll b/go/ql/lib/semmle/go/frameworks/Revel.qll index 547c7c6bdac..a1eff5e736e 100644 --- a/go/ql/lib/semmle/go/frameworks/Revel.qll +++ b/go/ql/lib/semmle/go/frameworks/Revel.qll @@ -140,7 +140,7 @@ module Revel { /** * A render of a template. */ - abstract class TemplateRender extends DataFlow::Node, TemplateInstantiation::Range { + abstract class TemplateRender extends TemplateInstantiation::Range { /** Gets the name of the file that is rendered. */ abstract File getRenderedFile(); diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll index e798d116352..c6adc5c5740 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll @@ -46,7 +46,7 @@ module NetHttp { } } - private class MapWrite extends Http::HeaderWrite::Range, DataFlow::Node { + private class MapWrite extends Http::HeaderWrite::Range { DataFlow::Node index; DataFlow::Node rhs; diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll index b8ab8cb9cd3..17cc0249908 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/Regexp.qll @@ -61,7 +61,7 @@ module Regexp { } } - private class ExternalRegexpMatchFunction extends RegexpMatchFunction::Range, Function { + private class ExternalRegexpMatchFunction extends RegexpMatchFunction::Range { int patArg; int strArg; diff --git a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll index 4abc9021268..c263c0bff9d 100644 --- a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll +++ b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll @@ -120,7 +120,7 @@ module CleartextLogging { * * This is a source since `log.Print(obj)` will often show the fields of `obj`. */ - private class StructPasswordFieldSource extends DataFlow::Node, Source { + private class StructPasswordFieldSource extends Source { string name; StructPasswordFieldSource() { @@ -137,7 +137,7 @@ module CleartextLogging { } /** An access to a variable or property that might contain a password. */ - private class ReadPasswordSource extends DataFlow::Node, Source { + private class ReadPasswordSource extends Source { string name; ReadPasswordSource() { diff --git a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll index 8dbcee8170d..6554372aa2e 100644 --- a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll +++ b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll @@ -61,7 +61,7 @@ module OpenUrlRedirect { /** * An HTTP redirect, considered as a sink for `Configuration`. */ - class RedirectSink extends Sink, DataFlow::Node { + class RedirectSink extends Sink { RedirectSink() { this = any(Http::Redirect redir).getUrl() } } @@ -69,7 +69,7 @@ module OpenUrlRedirect { * A definition of the HTTP "Location" header, considered as a sink for * `Configuration`. */ - class LocationHeaderSink extends Sink, DataFlow::Node { + class LocationHeaderSink extends Sink { LocationHeaderSink() { exists(Http::HeaderWrite hw | hw.getHeaderName() = "location" | this = hw.getValue()) } diff --git a/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll b/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll index 3fe37583331..1128cc85a00 100644 --- a/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll +++ b/go/ql/lib/semmle/go/security/UnsafeUnzipSymlinkCustomizations.qll @@ -126,7 +126,7 @@ module UnsafeUnzipSymlink { * An argument to a call to `os.Symlink` within a loop that extracts a zip or tar archive, * taken as a sink for unsafe unzipping of symlinks. */ - class OsSymlink extends DataFlow::Node, SymlinkSink { + class OsSymlink extends SymlinkSink { OsSymlink() { exists(DataFlow::CallNode n | n.asExpr() = getASymlinkCall() | this = n.getArgument([0, 1]) and @@ -139,7 +139,7 @@ module UnsafeUnzipSymlink { * An argument to `path/filepath.EvalSymlinks` or `os.Readlink`, taken as a sink for detecting target * paths that are likely safe to extract to. */ - class StdlibSymlinkResolvers extends DataFlow::Node, EvalSymlinksSink { + class StdlibSymlinkResolvers extends EvalSymlinksSink { StdlibSymlinkResolvers() { exists(DataFlow::CallNode n | n.getTarget().hasQualifiedName("path/filepath", "EvalSymlinks") diff --git a/go/ql/lib/semmle/go/security/Xss.qll b/go/ql/lib/semmle/go/security/Xss.qll index 6ab9f7321f6..2f171a36a10 100644 --- a/go/ql/lib/semmle/go/security/Xss.qll +++ b/go/ql/lib/semmle/go/security/Xss.qll @@ -139,7 +139,7 @@ module SharedXss { * A `Template` from `html/template` will HTML-escape data automatically * and therefore acts as a sanitizer for XSS vulnerabilities. */ - class HtmlTemplateSanitizer extends Sanitizer, DataFlow::Node { + class HtmlTemplateSanitizer extends Sanitizer { HtmlTemplateSanitizer() { exists(Method m, DataFlow::CallNode call | m = call.getCall().getTarget() | m.hasQualifiedName("html/template", "Template", "ExecuteTemplate") and diff --git a/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll b/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll index 980c601582e..29b107c1c1b 100644 --- a/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll +++ b/go/ql/lib/semmle/go/security/ZipSlipCustomizations.qll @@ -30,7 +30,7 @@ module ZipSlip { /** * A tar file header, as a source for zip slip. */ - class TarHeaderSource extends Source, DataFlow::Node { + class TarHeaderSource extends Source { TarHeaderSource() { this = any(DataFlow::MethodCallNode mcn | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql index b0247c0e533..cc8b6165312 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql @@ -9,7 +9,7 @@ class UntrustedFunction extends Function { UntrustedFunction() { this.getName() = ["getUntrustedString", "getUntrustedBytes"] } } -class RemoteSource extends DataFlow::Node, RemoteFlowSource::Range { +class RemoteSource extends RemoteFlowSource::Range { RemoteSource() { this = any(UntrustedFunction f).getACall().getResult() } } From 3850734a15897e2692a456f694d34b93dc5a69f5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:23:23 +0000 Subject: [PATCH 164/263] Use non-extending subtypes --- .../semmle/go/security/OpenUrlRedirectCustomizations.qll | 6 +++--- .../semmle/go/security/RequestForgeryCustomizations.qll | 7 ++++--- .../CWE-287/ImproperLdapAuthCustomizations.qll | 2 +- go/ql/src/experimental/CWE-918/SSRF.qll | 4 ++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll index 6554372aa2e..1b5e2d7eb00 100644 --- a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll +++ b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll @@ -99,20 +99,20 @@ module OpenUrlRedirect { * A call to a function called `isLocalUrl`, `isValidRedirect`, or similar, which is * considered a barrier guard for sanitizing untrusted URLs. */ - class RedirectCheckBarrierGuardAsBarrierGuard extends RedirectCheckBarrier, Barrier { } + class RedirectCheckBarrierGuardAsBarrierGuard extends Barrier instanceof RedirectCheckBarrier { } /** * A call to a regexp match function, considered as a barrier guard for sanitizing untrusted URLs. * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, Barrier { } + class RegexpCheckAsBarrierGuard extends Barrier instanceof RegexpCheckBarrier { } /** * A check against a constant value or the `Hostname` function, * considered a barrier guard for url flow. */ - class UrlCheckAsBarrierGuard extends UrlCheckBarrier, Barrier { } + class UrlCheckAsBarrierGuard extends Barrier instanceof UrlCheckBarrier { } } /** A sink for an open redirect, considered as a sink for safe URL flow. */ diff --git a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll index d80026aeed5..83224cefc4c 100644 --- a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll +++ b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll @@ -102,14 +102,15 @@ module RequestForgery { * A call to a function called `isLocalUrl`, `isValidRedirect`, or similar, which is * considered a barrier guard. */ - class RedirectCheckBarrierGuardAsBarrierGuard extends RedirectCheckBarrier, Sanitizer { } + class RedirectCheckBarrierGuardAsBarrierGuard extends Sanitizer instanceof RedirectCheckBarrier { + } /** * A call to a regexp match function, considered as a barrier guard for sanitizing untrusted URLs. * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, Sanitizer { } + class RegexpCheckAsBarrierGuard extends Sanitizer instanceof RegexpCheckBarrier { } /** * An equality check comparing a data-flow node against a constant string, considered as @@ -118,7 +119,7 @@ module RequestForgery { * Additionally, a check comparing `url.Hostname()` against a constant string is also * considered a barrier guard for `url`. */ - class UrlCheckAsBarrierGuard extends UrlCheckBarrier, Sanitizer { } + class UrlCheckAsBarrierGuard extends Sanitizer instanceof UrlCheckBarrier { } /** * A simple-typed node, considered a sanitizer for request forgery. diff --git a/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll b/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll index 0a2739eabc7..fceae1398d7 100644 --- a/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll +++ b/go/ql/src/experimental/CWE-287/ImproperLdapAuthCustomizations.qll @@ -29,7 +29,7 @@ module ImproperLdapAuth { * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, LdapSanitizer { } + class RegexpCheckAsBarrierGuard extends LdapSanitizer instanceof RegexpCheckBarrier { } /** * An empty string. diff --git a/go/ql/src/experimental/CWE-918/SSRF.qll b/go/ql/src/experimental/CWE-918/SSRF.qll index 998ce83ba74..436b657883e 100644 --- a/go/ql/src/experimental/CWE-918/SSRF.qll +++ b/go/ql/src/experimental/CWE-918/SSRF.qll @@ -113,7 +113,7 @@ module ServerSideRequestForgery { * * This is overapproximate: we do not attempt to reason about the correctness of the regexp. */ - class RegexpCheckAsBarrierGuard extends RegexpCheckBarrier, Sanitizer { } + class RegexpCheckAsBarrierGuard extends Sanitizer instanceof RegexpCheckBarrier { } private predicate equalityAsSanitizerGuard(DataFlow::Node g, Expr e, boolean outcome) { exists(DataFlow::Node url, DataFlow::EqualityTestNode eq | @@ -156,5 +156,5 @@ module ServerSideRequestForgery { * The method Var of package validator is a sanitizer guard only if the check * of the error binding exists, and the tag to check is one of "alpha", "alphanum", "alphaunicode", "alphanumunicode", "number", "numeric". */ - class ValidatorAsSanitizer extends Sanitizer, ValidatorVarCheckBarrier { } + class ValidatorAsSanitizer extends Sanitizer instanceof ValidatorVarCheckBarrier { } } From 94bc47ab15d3d6dbd1ae8244c33e69f753a7cf24 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:23:52 +0000 Subject: [PATCH 165/263] Swap order of supertypes --- .../frameworks/K8sIoApimachineryPkgRuntime.qll | 16 ++++++++-------- .../security/CleartextLoggingCustomizations.qll | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll b/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll index 5f1a45945e7..5c7481e5808 100644 --- a/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll +++ b/go/ql/lib/semmle/go/frameworks/K8sIoApimachineryPkgRuntime.qll @@ -50,7 +50,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class DecoderDecode extends Method, UnmarshalingFunction::Range { + private class DecoderDecode extends UnmarshalingFunction::Range, Method { DecoderDecode() { this.implements(packagePath(), "Decoder", "Decode") or this.hasQualifiedName(packagePath(), "WithoutVersionDecoder", "Decode") @@ -95,7 +95,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class ParameterCodecDecodeParameters extends Method, UnmarshalingFunction::Range { + private class ParameterCodecDecodeParameters extends UnmarshalingFunction::Range, Method { ParameterCodecDecodeParameters() { this.implements(packagePath(), "ParameterCodec", "DecodeParameters") } @@ -110,7 +110,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class ParameterCodecEncodeParameters extends Method, MarshalingFunction::Range { + private class ParameterCodecEncodeParameters extends MarshalingFunction::Range, Method { ParameterCodecEncodeParameters() { this.implements(packagePath(), "ParameterCodec", "EncodeParameters") } @@ -125,7 +125,7 @@ module K8sIoApimachineryPkgRuntime { } } - private class ProtobufMarshallerMarshalTo extends Method, MarshalingFunction::Range { + private class ProtobufMarshallerMarshalTo extends MarshalingFunction::Range, Method { ProtobufMarshallerMarshalTo() { this.implements(packagePath(), "ProtobufMarshaller", "MarshalTo") or this.implements(packagePath(), "ProtobufReverseMarshaller", "MarshalToSizedBuffer") @@ -138,7 +138,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class RawExtensionMarshal extends Method, MarshalingFunction::Range { + private class RawExtensionMarshal extends MarshalingFunction::Range, Method { RawExtensionMarshal() { this.hasQualifiedName(packagePath(), "RawExtension", "Marshal") } override DataFlow::FunctionInput getAnInput() { result.isReceiver() } @@ -148,7 +148,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class RawExtensionUnmarshal extends Method, UnmarshalingFunction::Range { + private class RawExtensionUnmarshal extends UnmarshalingFunction::Range, Method { RawExtensionUnmarshal() { this.hasQualifiedName(packagePath(), "RawExtension", "Unmarshal") } override DataFlow::FunctionInput getAnInput() { result.isReceiver() } @@ -158,7 +158,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class UnknownMarshal extends Method, MarshalingFunction::Range { + private class UnknownMarshal extends MarshalingFunction::Range, Method { string methodName; UnknownMarshal() { @@ -177,7 +177,7 @@ module K8sIoApimachineryPkgRuntime { override string getFormat() { result = "protobuf" } } - private class UnknownUnmarshal extends Method, UnmarshalingFunction::Range { + private class UnknownUnmarshal extends UnmarshalingFunction::Range, Method { UnknownUnmarshal() { this.hasQualifiedName(packagePath(), "Unknown", "Unmarshal") } override DataFlow::FunctionInput getAnInput() { result.isReceiver() } diff --git a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll index c263c0bff9d..05fb88977ac 100644 --- a/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll +++ b/go/ql/lib/semmle/go/security/CleartextLoggingCustomizations.qll @@ -162,7 +162,7 @@ module CleartextLogging { } /** A call that might return a password. */ - private class CallPasswordSource extends DataFlow::CallNode, Source { + private class CallPasswordSource extends Source, DataFlow::CallNode { string name; CallPasswordSource() { From b58e88291e57d27ad8970518cd9c72db0d25d223 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:24:12 +0000 Subject: [PATCH 166/263] Remove redundant import --- .../test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql | 1 - 1 file changed, 1 deletion(-) diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql index cc8b6165312..147f3bbb211 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql @@ -1,5 +1,4 @@ import go -import semmle.go.dataflow.ExternalFlow import ModelValidation import semmle.go.security.CommandInjection import codeql.dataflow.test.ProvenancePathGraph From 0dc47380a3c6d99bccefe35e723be9b729aa48cb Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:24:32 +0000 Subject: [PATCH 167/263] Swap order of equality for easier comprehension --- go/ql/lib/semmle/go/security/Xss.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/lib/semmle/go/security/Xss.qll b/go/ql/lib/semmle/go/security/Xss.qll index 2f171a36a10..e6e207216ca 100644 --- a/go/ql/lib/semmle/go/security/Xss.qll +++ b/go/ql/lib/semmle/go/security/Xss.qll @@ -143,10 +143,10 @@ module SharedXss { HtmlTemplateSanitizer() { exists(Method m, DataFlow::CallNode call | m = call.getCall().getTarget() | m.hasQualifiedName("html/template", "Template", "ExecuteTemplate") and - call.getArgument(2) = this + this = call.getArgument(2) or m.hasQualifiedName("html/template", "Template", "Execute") and - call.getArgument(1) = this + this = call.getArgument(1) ) } } From 76bba603837853b5f927cd9c0ef2b16a8af4ec5c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:26:41 +0000 Subject: [PATCH 168/263] Fix misspelling in comment --- go/ql/src/Security/CWE-209/StackTraceExposure.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/ql/src/Security/CWE-209/StackTraceExposure.ql b/go/ql/src/Security/CWE-209/StackTraceExposure.ql index 408e12b3c15..45d58f442c3 100644 --- a/go/ql/src/Security/CWE-209/StackTraceExposure.ql +++ b/go/ql/src/Security/CWE-209/StackTraceExposure.ql @@ -53,7 +53,7 @@ module StackTraceExposureConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof Http::ResponseBody } predicate isBarrier(DataFlow::Node node) { - // Sanitise everything controlled by an is-debug-mode check. + // Sanitize everything controlled by an is-debug-mode check. // Imprecision: I don't try to guess which arm of a branch is intended // to mean debug mode, and which is production mode. exists(ControlFlow::ConditionGuardNode cgn | From 16113e6550787af046ed3a078f0bbdaa73aa9514 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 6 Jan 2026 23:29:02 +0000 Subject: [PATCH 169/263] Use type cast to make QL more succinct --- go/ql/src/Security/CWE-352/ConstantOauth2State.ql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/go/ql/src/Security/CWE-352/ConstantOauth2State.ql b/go/ql/src/Security/CWE-352/ConstantOauth2State.ql index edbb41782b8..cc2a2e69718 100644 --- a/go/ql/src/Security/CWE-352/ConstantOauth2State.ql +++ b/go/ql/src/Security/CWE-352/ConstantOauth2State.ql @@ -140,9 +140,7 @@ predicate privateUrlFlowsToAuthCodeUrlCall(DataFlow::CallNode call) { module FlowToPrintConfig implements DataFlow::ConfigSig { additional predicate isSinkCall(DataFlow::Node sink, DataFlow::CallNode call) { - exists(LoggerCall logCall | call = logCall | - sink = logCall.getAValueFormattedMessageComponent() - ) + sink = call.(LoggerCall).getAValueFormattedMessageComponent() } predicate isSource(DataFlow::Node source) { source = any(AuthCodeUrl m).getACall().getResult() } From 3d959abdeb489e187532af72da0ccf7e1f3a24f9 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 13:31:23 +0100 Subject: [PATCH 170/263] C++: Support new builtin operations --- .../code/cpp/exprs/BuiltInOperations.qll | 58 +++++++++++++++++++ cpp/ql/lib/semmlecode.cpp.dbscheme | 6 ++ 2 files changed, 64 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll index dc55bcda9e6..2246a887b9c 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/BuiltInOperations.qll @@ -1941,3 +1941,61 @@ class BuiltInOperationIsTriviallyRelocatable extends BuiltInOperation, @istrivia override string getAPrimaryQlClass() { result = "BuiltInOperationIsTriviallyRelocatable" } } + +/** + * A C++ `__is_bitwise_cloneable` built-in operation. + * + * Returns `true` if an object of type `_Tp` is bitwise cloneable. + * + * ``` + * template + * struct is_bitwise_cloneable + * : public integral_constant + * {}; + * ``` + */ +class BuiltInOperationIsBitwiseCloneable extends BuiltInOperation, @isbitwisecloneable { + override string toString() { result = "__is_bitwise_cloneable" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsBitwiseCloneable" } +} + +/** + * A C++ `__is_invocable` built-in operation (used by some implementations + * of the `` header). + * + * Returns `true` if a function of type `_FTpn` can be invoked with arguments of + * type `_Tps`. + * + * ``` + * template + * struct is_invocable + * : public integral_constant + * {}; + * ``` + */ +class BuiltInOperationIsInvocable extends BuiltInOperation, @isinvocable { + override string toString() { result = "__is_invocable" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsInvocable" } +} + +/** + * A C++ `__is_nothrow_invocable` built-in operation (used by some implementations + * of the `` header). + * + * Returns `true` if a function of non-throwing type `_FTpn` can be invoked + * with arguments of type `_Tps`. + * + * ``` + * template + * struct is_nothrow_invocable + * : public integral_constant + * {}; + * ``` + */ +class BuiltInOperationIsNothrowInvocable extends BuiltInOperation, @isnothrowinvocable { + override string toString() { result = "__is_nothrow_invocable" } + + override string getAPrimaryQlClass() { result = "BuiltInOperationIsNothrowInvocable" } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index d2d611b3fdc..2f1916a4c9b 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -1902,6 +1902,9 @@ case @expr.kind of | 391 = @nested_requirement | 392 = @compound_requirement | 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable ; @var_args_expr = @vastartexpr @@ -2018,6 +2021,9 @@ case @expr.kind of | @istriviallyequalitycomparable | @isscopedenum | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable ; compound_requirement_is_noexcept( From 93535d1c864cecf1a2a394a44a1d287c262dae90 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 13:35:02 +0100 Subject: [PATCH 171/263] C++: Add tests for new builtin operations --- .../library-tests/builtins/type_traits/clang.cpp | 10 +++++++++- .../builtins/type_traits/expr.expected | 14 ++++++++++++++ .../library-tests/builtins/type_traits/gcc.cpp | 10 +++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp b/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp index 86008af19f7..3db47a824ed 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/clang.cpp @@ -1,4 +1,4 @@ -// semmle-extractor-options: --clang --clang_version 190000 +// semmle-extractor-options: --clang --clang_version 210000 struct S { void f() {} @@ -121,3 +121,11 @@ bool b_is_scoped_enum2 = __is_scoped_enum(int); bool b_is_trivially_relocatable1 = __is_trivially_relocatable(int); bool b_is_trivially_relocatable2 = __is_trivially_relocatable(void); + +struct S3{ + S3(S3 &); + S3& operator=(S3&); +}; + +bool bok_is_bitwise_cloneable1 = __is_bitwise_cloneable(int); +bool bok_is_bitwise_cloneable2 = __is_bitwise_cloneable(S3); diff --git a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected index 55bf0757a49..1728a48f423 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/expr.expected +++ b/cpp/ql/test/library-tests/builtins/type_traits/expr.expected @@ -165,6 +165,10 @@ | clang.cpp:122:36:122:66 | int | | | | clang.cpp:123:36:123:67 | __is_trivially_relocatable | void | 0 | | clang.cpp:123:36:123:67 | void | | | +| clang.cpp:130:34:130:60 | __is_bitwise_cloneable | int | 1 | +| clang.cpp:130:34:130:60 | int | | | +| clang.cpp:131:34:131:59 | S3 | | | +| clang.cpp:131:34:131:59 | __is_bitwise_cloneable | S3 | 0 | | file://:0:0:0:0 | 0 | | 0 | | file://:0:0:0:0 | 0 | | 0 | | file://:0:0:0:0 | 1 | | 1 | @@ -211,6 +215,16 @@ | gcc.cpp:29:45:29:93 | __reference_converts_from_temporary | int &&,int && | 0 | | gcc.cpp:29:45:29:93 | int && | | | | gcc.cpp:29:45:29:93 | int && | | | +| gcc.cpp:33:24:33:45 | __is_invocable | f_type | 1 | +| gcc.cpp:33:24:33:45 | f_type | | | +| gcc.cpp:34:24:34:51 | __is_invocable | f_type,bool | 0 | +| gcc.cpp:34:24:34:51 | bool | | | +| gcc.cpp:34:24:34:51 | f_type | | | +| gcc.cpp:36:32:36:61 | __is_nothrow_invocable | f_type | 1 | +| gcc.cpp:36:32:36:61 | f_type | | | +| gcc.cpp:37:32:37:67 | __is_nothrow_invocable | f_type,bool | 0 | +| gcc.cpp:37:32:37:67 | bool | | | +| gcc.cpp:37:32:37:67 | f_type | | | | ms.cpp:38:41:38:45 | 0 | | 0 | | ms.cpp:88:27:88:45 | __has_assign | empty | 0 | | ms.cpp:88:27:88:45 | empty | | | diff --git a/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp b/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp index 54224343e7e..15f59812d2e 100644 --- a/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp +++ b/cpp/ql/test/library-tests/builtins/type_traits/gcc.cpp @@ -1,4 +1,4 @@ -// semmle-extractor-options: --gnu_version 130000 +// semmle-extractor-options: --gnu_version 150000 __attribute__ ((aligned(8))) int v; bool b_has_attribute1 = __builtin_has_attribute(v, aligned); @@ -27,3 +27,11 @@ bool b_reference_constructs_from_temporary2 = __reference_constructs_from_tempor bool b_reference_converts_from_temporary1 = __reference_converts_from_temporary(int&&, int); bool b_reference_converts_from_temporary2 = __reference_converts_from_temporary(int&&, int&&); + +using f_type = void(*)() noexcept; + +bool b_is_invocable1 = __is_invocable(f_type); +bool b_is_invocable2 = __is_invocable(f_type, bool); + +bool b_is_nothrow_invocable1 = __is_nothrow_invocable(f_type); +bool b_is_nothrow_invocable2 = __is_nothrow_invocable(f_type, bool); From bb33ea383cc7c5e18bcd1d5f196439e1ab7ab486 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 13:37:46 +0100 Subject: [PATCH 172/263] C++: Add change note for new builtins --- cpp/ql/lib/change-notes/2026-01-09-builtins.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-09-builtins.md diff --git a/cpp/ql/lib/change-notes/2026-01-09-builtins.md b/cpp/ql/lib/change-notes/2026-01-09-builtins.md new file mode 100644 index 00000000000..ece5fba5de6 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-09-builtins.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added subclasses of `BuiltInOperations` for the `__is_bitwise_cloneable`, `__is_invocable`, and `__is_nothrow_invocable` builtin operations. From 047fa068ff84db39a1a8c70de025c367c914fc3e Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 14:07:57 +0100 Subject: [PATCH 173/263] C++: Add `isThisAccess` predicate to `ParamAccessForType` --- cpp/ql/lib/semmle/code/cpp/exprs/Access.qll | 5 +++++ cpp/ql/lib/semmlecode.cpp.dbscheme | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll index 333493e6f5d..d181299f2ff 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Access.qll @@ -394,6 +394,11 @@ class FunctionAccess extends Access, @routineexpr { */ class ParamAccessForType extends Expr, @param_ref { override string toString() { result = "param access" } + + /** + * Holds if the accessed parameter is implicit object parameter of the function. + */ + predicate isThisAccess() { param_ref_to_this(underlyingElement(this)) } } /** diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 2f1916a4c9b..1402ab319d2 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -2040,6 +2040,10 @@ new_array_allocated_type( int type_id: @type ref ); +param_ref_to_this( + int expr: @param_ref ref +) + /** * The field being initialized by an initializer expression within an aggregate * initializer for a class/struct/union. Position is used to sort repeated initializers. From f6b720b37b05cefe9e397ca65b73410b0f3d718e Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 14:10:37 +0100 Subject: [PATCH 174/263] C++: Add change note --- cpp/ql/lib/change-notes/2026-01-09-this-access.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-09-this-access.md diff --git a/cpp/ql/lib/change-notes/2026-01-09-this-access.md b/cpp/ql/lib/change-notes/2026-01-09-this-access.md new file mode 100644 index 00000000000..e0934d8926b --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-09-this-access.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added a `isThisAccess` predicate to `ParamAccessForType` that holds when the access is to the implicit object parameter. From 7a13cbae3f4c79e0a5a25f223be2f45db84ed752 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 14:18:05 +0100 Subject: [PATCH 175/263] C++: Add upgrade and downgrade scripts --- .../exprs.ql | 17 + .../old.dbscheme | 2479 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2469 ++++++++++++++++ .../upgrade.properties | 4 + .../old.dbscheme | 2469 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2479 +++++++++++++++++ .../upgrade.properties | 2 + 7 files changed, 9919 insertions(+) create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql new file mode 100644 index 00000000000..661e1680456 --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/exprs.ql @@ -0,0 +1,17 @@ +class Expr extends @expr { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +predicate isExprWithNewBuiltin(Expr expr) { + exists(int kind | exprs(expr, kind, _) | 394 <= kind and kind <= 396) +} + +from Expr expr, int kind, int kind_new, Location location +where + exprs(expr, kind, location) and + if isExprWithNewBuiltin(expr) then kind_new = 1 else kind_new = kind +select expr, kind_new, location diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme new file mode 100644 index 00000000000..1402ab319d2 --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme @@ -0,0 +1,2479 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..d2d611b3fdc --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties new file mode 100644 index 00000000000..08afc1981d7 --- /dev/null +++ b/cpp/downgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties @@ -0,0 +1,4 @@ +description: Add new builtin operations and this parameter access table +compatibility: partial +exprs.rel: run exprs.qlo +param_ref_to_this.rel: delete diff --git a/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme new file mode 100644 index 00000000000..d2d611b3fdc --- /dev/null +++ b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme @@ -0,0 +1,2469 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..1402ab319d2 --- /dev/null +++ b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme @@ -0,0 +1,2479 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties new file mode 100644 index 00000000000..3ebeff31683 --- /dev/null +++ b/cpp/ql/lib/upgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties @@ -0,0 +1,2 @@ +description: Add new builtin operations and this parameter access table +compatibility: backwards \ No newline at end of file From 1dacd83915f04f007eb90d9a5fd4b58b9b6e158f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 9 Jan 2026 16:12:25 +0100 Subject: [PATCH 176/263] C++: Update dbscheme stats file --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 1648 +++++++++++----------- 1 file changed, 853 insertions(+), 795 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index 541a5f64b77..eca8a306a7c 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -22,7 +22,7 @@ @location_default - 46837418 + 46837431 @pch @@ -30,7 +30,7 @@ @macro_expansion - 40306114 + 40306125 @other_macro_reference @@ -38,7 +38,7 @@ @normal_function - 2734630 + 2734631 @unknown_function @@ -46,7 +46,7 @@ @constructor - 694355 + 694346 @destructor @@ -70,11 +70,11 @@ @fun_decl - 4193414 + 4194038 @var_decl - 9367981 + 9368606 @type_decl @@ -86,7 +86,7 @@ @using_declaration - 266984 + 266867 @using_directive @@ -98,11 +98,11 @@ @static_assert - 172749 + 172750 @parameter - 7011799 + 7011800 @membervariable @@ -110,11 +110,11 @@ @globalvariable - 492566 + 492567 @localvariable - 724687 + 724728 @enumconstant @@ -354,7 +354,7 @@ @pointer - 451498 + 451499 @type_with_specifiers @@ -366,7 +366,7 @@ @routineptr - 679868 + 679859 @reference @@ -392,10 +392,6 @@ @scalable_vector 1 - - @decltype - 101757 - @typeof 811 @@ -476,9 +472,13 @@ @remove_reference 5706 + + @decltype + 101757 + @struct - 976646 + 976642 @union @@ -490,11 +490,11 @@ @template_parameter - 864462 + 864458 @alias - 1755835 + 1755826 @unknown_usertype @@ -506,7 +506,7 @@ @template_template_parameter - 6091 + 6090 @proxy_class @@ -518,7 +518,7 @@ @template_struct - 211187 + 211186 @template_class @@ -530,11 +530,11 @@ @mangledname - 6349608 + 6349610 @type_mention - 5911108 + 5911109 @concept_template @@ -542,7 +542,7 @@ @routinetype - 600596 + 600588 @ptrtomember @@ -578,7 +578,7 @@ @attribute_arg_constant_expr - 71524 + 71640 @attribute_arg_expr @@ -598,15 +598,15 @@ @derivation - 473802 + 473796 @frienddecl - 695912 + 695869 @comment - 11208574 + 11208577 @namespace @@ -622,11 +622,11 @@ @value - 13541399 + 13541403 @initialiser - 2244826 + 2244827 @address_of @@ -642,7 +642,7 @@ @parexpr - 4915710 + 4915712 @arithnegexpr @@ -650,7 +650,7 @@ @unaryplusexpr - 4060 + 4061 @complementexpr @@ -678,11 +678,11 @@ @conditionalexpr - 897971 + 897972 @addexpr - 580446 + 580447 @subexpr @@ -722,7 +722,7 @@ @andexpr - 483234 + 483235 @orexpr @@ -734,7 +734,7 @@ @eqexpr - 643439 + 643440 @neexpr @@ -758,7 +758,7 @@ @assignexpr - 1281279 + 1281280 @assignaddexpr @@ -818,7 +818,7 @@ @commaexpr - 167880 + 167881 @subscriptexpr @@ -826,7 +826,7 @@ @callexpr - 238864 + 238861 @vastartexpr @@ -846,7 +846,7 @@ @varaccess - 8255500 + 8255502 @runtime_sizeof @@ -854,7 +854,7 @@ @runtime_alignof - 49553 + 49552 @expr_stmt @@ -862,7 +862,7 @@ @routineexpr - 5726205 + 5726207 @type_operand @@ -878,7 +878,7 @@ @literal - 7984513 + 7984746 @aggregateliteral @@ -890,7 +890,7 @@ @temp_init - 980435 + 980663 @errorexpr @@ -898,15 +898,15 @@ @reference_to - 1880596 + 1880187 @ref_indirect - 2094134 + 2094107 @vacuous_destructor_call - 7785 + 7784 @assume @@ -962,7 +962,7 @@ @thisaccess - 1553672 + 1553673 @new_expr @@ -974,7 +974,7 @@ @throw_expr - 23891 + 23840 @condition_decl @@ -982,11 +982,11 @@ @braced_init_list - 2125 + 2126 @type_id - 47590 + 47589 @sizeof_pack @@ -1094,11 +1094,11 @@ @ctordirectinit - 112104 + 112102 @ctorvirtualinit - 3994 + 3993 @ctorfieldinit @@ -1118,7 +1118,7 @@ @dtorfielddestruct - 39568 + 39567 @static_cast @@ -1142,7 +1142,7 @@ @param_ref - 162117 + 162180 @noopexpr @@ -1174,7 +1174,7 @@ @istrivialexpr - 3327 + 3328 @isstandardlayoutexpr @@ -1242,11 +1242,11 @@ @isfinalexpr - 9342 + 9341 @noexceptexpr - 28127 + 28138 @builtinshufflevector @@ -1532,6 +1532,18 @@ @concept_id 90160 + + @isinvocable + 2 + + + @isnothrowinvocable + 2 + + + @isbitwisecloneable + 2 + @lambdacapture 31866 @@ -1542,7 +1554,7 @@ @stmt_if - 990318 + 990319 @stmt_while @@ -1550,7 +1562,7 @@ @stmt_goto - 157272 + 157271 @stmt_label @@ -1558,7 +1570,7 @@ @stmt_return - 1238182 + 1238155 @stmt_block @@ -1586,11 +1598,11 @@ @stmt_decl - 770029 + 770030 @stmt_empty - 428127 + 428128 @stmt_continue @@ -1602,7 +1614,7 @@ @stmt_try_block - 26422 + 26372 @stmt_microsoft_try @@ -1622,11 +1634,11 @@ @stmt_range_based_for - 6308 + 6311 @stmt_handler - 43261 + 43218 @stmt_constexpr_if @@ -1674,11 +1686,11 @@ @ppd_plain_include - 317280 + 317278 @ppd_define - 2743341 + 2743342 @ppd_undef @@ -1694,7 +1706,7 @@ @ppd_line - 18770 + 18771 @ppd_error @@ -1800,7 +1812,7 @@ compilation_args - 1008133 + 1008128 id @@ -2171,7 +2183,7 @@ 1 2 - 19304 + 19303 2 @@ -2191,7 +2203,7 @@ compilation_expanded_args - 1008133 + 1008128 id @@ -2562,7 +2574,7 @@ 1 2 - 19304 + 19303 2 @@ -2892,7 +2904,7 @@ seconds - 20423 + 19606 @@ -2970,50 +2982,55 @@ 12 + + 2 + 3 + 54 + 3 4 - 925 + 816 4 5 - 435 + 490 - 5 - 8 + 6 + 9 217 - 8 + 9 10 - 108 + 217 10 - 11 - 272 - - - 11 - 14 - 163 - - - 16 - 18 + 12 217 - 18 - 26 + 12 + 19 217 - 45 - 128 - 163 + 19 + 21 + 217 + + + 21 + 52 + 217 + + + 125 + 126 + 54 @@ -3081,41 +3098,41 @@ 3 4 - 1524 + 925 4 5 - 871 + 1470 5 6 - 108 + 326 6 7 - 599 + 435 7 - 9 - 381 + 8 + 326 - 9 + 8 10 381 11 - 27 + 28 381 30 - 96 + 98 272 @@ -3162,18 +3179,23 @@ 12 - 4 - 5 - 108 - - - 210 - 211 + 5 + 6 54 - 214 - 215 + 6 + 7 + 54 + + + 204 + 205 + 54 + + + 205 + 206 54 @@ -3190,22 +3212,22 @@ 1 2 - 15249 + 13452 2 3 - 3376 + 4574 3 - 6 - 1579 + 16 + 1470 - 10 - 39 - 217 + 33 + 38 + 108 @@ -3221,22 +3243,22 @@ 1 2 - 14486 + 12852 2 3 - 2995 + 3975 3 - 4 - 1579 + 5 + 1797 - 4 - 64 - 1361 + 5 + 66 + 980 @@ -3252,12 +3274,17 @@ 1 2 - 17318 + 16392 2 3 - 3104 + 3158 + + + 3 + 4 + 54 @@ -3541,7 +3568,7 @@ cpu_seconds - 9509 + 9373 elapsed_seconds @@ -3591,17 +3618,17 @@ 1 2 - 8047 + 7868 2 3 - 1115 + 1041 3 - 34 - 347 + 30 + 462 @@ -3617,12 +3644,12 @@ 1 2 - 8868 + 8741 2 3 - 641 + 631 @@ -3638,61 +3665,71 @@ 1 2 - 52 + 31 2 3 - 21 + 42 5 6 10 + + 7 + 8 + 21 + + + 8 + 9 + 10 + 9 10 - 52 - - - 15 - 16 10 - 16 - 17 + 14 + 15 10 - 33 - 34 + 19 + 20 + 21 + + + 28 + 29 10 - 62 - 63 + 76 + 77 10 - 185 - 186 + 180 + 181 10 - 220 - 221 + 215 + 216 10 - 283 - 284 + 299 + 300 10 - 324 - 325 + 300 + 301 10 @@ -3709,61 +3746,71 @@ 1 2 - 52 + 31 2 3 - 21 + 42 5 6 10 + + 7 + 8 + 21 + + + 8 + 9 + 10 + 9 10 - 52 - - - 15 - 16 10 - 16 - 17 + 14 + 15 10 - 33 - 34 + 19 + 20 + 21 + + + 28 + 29 10 - 60 - 61 + 72 + 73 10 - 166 - 167 + 148 + 149 10 - 174 - 175 + 169 + 170 10 - 208 - 209 + 195 + 196 10 - 234 - 235 + 240 + 241 10 @@ -4001,11 +4048,11 @@ locations_default - 46837418 + 46837431 id - 46837418 + 46837431 file @@ -4013,7 +4060,7 @@ beginLine - 7483209 + 7483211 beginColumn @@ -4021,7 +4068,7 @@ endLine - 7484205 + 7484207 endColumn @@ -4039,7 +4086,7 @@ 1 2 - 46837418 + 46837431 @@ -4055,7 +4102,7 @@ 1 2 - 46837418 + 46837431 @@ -4071,7 +4118,7 @@ 1 2 - 46837418 + 46837431 @@ -4087,7 +4134,7 @@ 1 2 - 46837418 + 46837431 @@ -4103,7 +4150,7 @@ 1 2 - 46837418 + 46837431 @@ -4504,12 +4551,12 @@ 1 2 - 4945830 + 4945831 2 3 - 778673 + 778674 3 @@ -4524,7 +4571,7 @@ 12 96 - 561386 + 561387 96 @@ -4545,12 +4592,12 @@ 1 2 - 5008054 + 5008055 2 3 - 1216856 + 1216857 3 @@ -4581,12 +4628,12 @@ 1 2 - 5629550 + 5629551 2 3 - 483108 + 483109 3 @@ -4596,7 +4643,7 @@ 7 25 - 564995 + 564996 25 @@ -4617,7 +4664,7 @@ 1 2 - 7018145 + 7018147 2 @@ -4638,7 +4685,7 @@ 1 2 - 5014276 + 5014278 2 @@ -5059,7 +5106,7 @@ 1 2 - 4943590 + 4943591 2 @@ -5100,12 +5147,12 @@ 1 2 - 5005067 + 5005069 2 3 - 1220465 + 1220466 3 @@ -5136,7 +5183,7 @@ 1 2 - 7035319 + 7035321 2 @@ -5157,7 +5204,7 @@ 1 2 - 5628181 + 5628182 2 @@ -5193,7 +5240,7 @@ 1 2 - 5012783 + 5012784 2 @@ -5213,7 +5260,7 @@ 12 72 - 561635 + 561636 72 @@ -7190,7 +7237,7 @@ fileannotations - 4183618 + 4183599 id @@ -7202,7 +7249,7 @@ name - 58480 + 58479 value @@ -7522,7 +7569,7 @@ 1 2 - 58480 + 58479 @@ -7614,7 +7661,7 @@ 4 5 - 3177 + 3176 5 @@ -7731,7 +7778,7 @@ 14 18 - 3440 + 3439 18 @@ -7781,15 +7828,15 @@ inmacroexpansion - 150011383 + 150011425 id - 24673494 + 24673501 inv - 3705720 + 3705721 @@ -7803,12 +7850,12 @@ 1 3 - 2209721 + 2209722 3 5 - 1475128 + 1475129 5 @@ -7818,17 +7865,17 @@ 6 7 - 6583218 + 6583219 7 8 - 8719891 + 8719894 8 9 - 3557412 + 3557413 9 @@ -7854,7 +7901,7 @@ 2 3 - 743308 + 743309 3 @@ -7884,12 +7931,12 @@ 10 11 - 444695 + 444696 11 337 - 307829 + 307830 339 @@ -7909,15 +7956,15 @@ affectedbymacroexpansion - 48740821 + 48740834 id - 7045462 + 7045464 inv - 3803510 + 3803511 @@ -7931,7 +7978,7 @@ 1 2 - 3847104 + 3847105 2 @@ -7982,7 +8029,7 @@ 4 7 - 316639 + 316640 7 @@ -7992,7 +8039,7 @@ 9 12 - 342973 + 342974 12 @@ -8047,11 +8094,11 @@ macroinvocations - 40387480 + 40387491 id - 40387480 + 40387491 macro_id @@ -8059,7 +8106,7 @@ location - 5925540 + 5925542 kind @@ -8077,7 +8124,7 @@ 1 2 - 40387480 + 40387491 @@ -8093,7 +8140,7 @@ 1 2 - 40387480 + 40387491 @@ -8109,7 +8156,7 @@ 1 2 - 40387480 + 40387491 @@ -8253,7 +8300,7 @@ 1 2 - 5261598 + 5261599 2 @@ -8279,7 +8326,7 @@ 1 2 - 5903374 + 5903376 2 @@ -8300,7 +8347,7 @@ 1 2 - 5925540 + 5925542 @@ -8373,15 +8420,15 @@ macroparent - 33684444 + 33684454 id - 33684444 + 33684454 parent_id - 15941262 + 15941267 @@ -8395,7 +8442,7 @@ 1 2 - 33684444 + 33684454 @@ -8411,7 +8458,7 @@ 1 2 - 7815088 + 7815090 2 @@ -8421,7 +8468,7 @@ 3 4 - 4707395 + 4707397 4 @@ -8441,15 +8488,15 @@ macrolocationbind - 6022278 + 6022280 id - 4208237 + 4208238 location - 2272394 + 2272395 @@ -8463,7 +8510,7 @@ 1 2 - 3284816 + 3284817 2 @@ -8478,7 +8525,7 @@ 4 5 - 412639 + 412640 5 @@ -8529,11 +8576,11 @@ macro_argument_unexpanded - 82172786 + 82172776 invocation - 26182328 + 26182583 argument_index @@ -8541,7 +8588,7 @@ text - 341886 + 341884 @@ -8555,22 +8602,22 @@ 1 2 - 9642934 + 9643267 2 3 - 9734025 + 9733979 3 4 - 4982774 + 4982750 4 67 - 1822594 + 1822585 @@ -8586,22 +8633,22 @@ 1 2 - 9824833 + 9825166 2 3 - 9751541 + 9751495 3 4 - 4826700 + 4826677 4 67 - 1779252 + 1779244 @@ -8626,7 +8673,7 @@ 646904 - 2488838 + 2488874 31 @@ -8735,7 +8782,7 @@ 1 2 - 242199 + 242198 2 @@ -8755,11 +8802,11 @@ macro_argument_expanded - 82172786 + 82172776 invocation - 26182328 + 26182583 argument_index @@ -8767,7 +8814,7 @@ text - 207063 + 207062 @@ -8781,22 +8828,22 @@ 1 2 - 9642934 + 9643267 2 3 - 9734025 + 9733979 3 4 - 4982774 + 4982750 4 67 - 1822594 + 1822585 @@ -8812,22 +8859,22 @@ 1 2 - 12590853 + 12591172 2 3 - 8396588 + 8396548 3 4 - 4208487 + 4208468 4 9 - 986398 + 986394 @@ -8852,7 +8899,7 @@ 646904 - 2488838 + 2488874 31 @@ -8900,7 +8947,7 @@ 2 3 - 26752 + 26751 3 @@ -8930,7 +8977,7 @@ 10 19 - 18252 + 18251 19 @@ -8944,7 +8991,7 @@ 251 - 1169569 + 1169605 9467 @@ -8981,11 +9028,11 @@ functions - 4043205 + 4043206 id - 4043205 + 4043206 name @@ -9007,7 +9054,7 @@ 1 2 - 4043205 + 4043206 @@ -9023,7 +9070,7 @@ 1 2 - 4043205 + 4043206 @@ -9039,7 +9086,7 @@ 1 2 - 1441361 + 1441362 2 @@ -9065,7 +9112,7 @@ 1 2 - 1686400 + 1686401 2 @@ -9183,15 +9230,15 @@ function_entry_point - 1134682 + 1134667 id - 1130959 + 1130944 entry_point - 1134682 + 1134667 @@ -9205,7 +9252,7 @@ 1 2 - 1127777 + 1127762 2 @@ -9226,7 +9273,7 @@ 1 2 - 1134682 + 1134667 @@ -9236,11 +9283,11 @@ function_return_type - 4060504 + 4060505 id - 4043205 + 4043206 return_type @@ -9258,7 +9305,7 @@ 1 2 - 4025907 + 4025908 2 @@ -9612,11 +9659,11 @@ function_prototyped - 4041712 + 4041713 id - 4041712 + 4041713 @@ -9774,15 +9821,15 @@ fun_decls - 4199388 + 4200011 id - 4193414 + 4194038 function - 4018689 + 4018690 type_id @@ -9790,11 +9837,11 @@ name - 1687769 + 1687770 location - 2806436 + 2806437 @@ -9808,7 +9855,7 @@ 1 2 - 4193414 + 4194038 @@ -9824,7 +9871,7 @@ 1 2 - 4187441 + 4188064 2 @@ -9845,7 +9892,7 @@ 1 2 - 4193414 + 4194038 @@ -9861,7 +9908,7 @@ 1 2 - 4193414 + 4194038 @@ -9877,12 +9924,12 @@ 1 2 - 3858524 + 3857903 2 5 - 160165 + 160787 @@ -9898,7 +9945,7 @@ 1 2 - 4000395 + 4000396 2 @@ -9919,7 +9966,7 @@ 1 2 - 4018689 + 4018690 @@ -9935,12 +9982,12 @@ 1 2 - 3878435 + 3878312 2 4 - 140253 + 140377 @@ -9966,7 +10013,7 @@ 3 5 - 48285 + 48286 5 @@ -9975,7 +10022,7 @@ 364 - 10294 + 10299 1244 @@ -10028,7 +10075,7 @@ 1 2 - 490326 + 490327 2 @@ -10090,22 +10137,22 @@ 1 2 - 1328362 + 1328114 2 3 - 193392 + 193641 3 11 - 129550 + 129426 11 3169 - 36463 + 36587 @@ -10147,7 +10194,7 @@ 1 2 - 1598166 + 1598167 2 @@ -10194,12 +10241,12 @@ 1 2 - 2413304 + 2413180 2 3 - 252008 + 252132 3 @@ -10220,12 +10267,12 @@ 1 2 - 2431971 + 2431847 2 3 - 233838 + 233963 3 @@ -10246,7 +10293,7 @@ 1 2 - 2692317 + 2692318 2 @@ -10282,11 +10329,11 @@ fun_def - 1418836 + 1418837 id - 1418836 + 1418837 @@ -10315,7 +10362,7 @@ fun_decl_specifiers - 4269577 + 4269578 id @@ -10347,7 +10394,7 @@ 3 4 - 1097510 + 1097511 4 @@ -10560,15 +10607,15 @@ fun_decl_noexcept - 140908 + 140906 fun_decl - 140908 + 140906 constant - 140468 + 140466 @@ -10582,7 +10629,7 @@ 1 2 - 140908 + 140906 @@ -10598,7 +10645,7 @@ 1 2 - 140028 + 140026 2 @@ -10613,11 +10660,11 @@ fun_decl_empty_noexcept - 1160855 + 1160979 fun_decl - 1160855 + 1160979 @@ -10883,11 +10930,11 @@ param_decl_bind - 7294670 + 7295294 id - 7294670 + 7295294 index @@ -10895,7 +10942,7 @@ fun_decl - 3524006 + 3524381 @@ -10909,7 +10956,7 @@ 1 2 - 7294670 + 7295294 @@ -10925,7 +10972,7 @@ 1 2 - 7294670 + 7295294 @@ -10960,12 +11007,12 @@ 343 - 16218 + 16219 622 - 28317 - 28318 + 28320 + 28321 124 @@ -11001,12 +11048,12 @@ 343 - 16218 + 16219 622 - 28317 - 28318 + 28320 + 28321 124 @@ -11023,7 +11070,7 @@ 1 2 - 1505826 + 1506075 2 @@ -11033,7 +11080,7 @@ 3 4 - 600712 + 600837 4 @@ -11059,7 +11106,7 @@ 1 2 - 1505826 + 1506075 2 @@ -11069,7 +11116,7 @@ 3 4 - 600712 + 600837 4 @@ -11089,19 +11136,19 @@ var_decls - 9374452 + 9375077 id - 9367981 + 9368606 variable - 9027366 + 9027368 type_id - 1452935 + 1452936 name @@ -11109,7 +11156,7 @@ location - 6259508 + 6259509 @@ -11123,7 +11170,7 @@ 1 2 - 9367981 + 9368606 @@ -11139,7 +11186,7 @@ 1 2 - 9361510 + 9362135 2 @@ -11160,7 +11207,7 @@ 1 2 - 9367981 + 9368606 @@ -11176,7 +11223,7 @@ 1 2 - 9367981 + 9368606 @@ -11192,12 +11239,12 @@ 1 2 - 8704173 + 8703553 2 5 - 323192 + 323814 @@ -11213,7 +11260,7 @@ 1 2 - 8974351 + 8974353 2 @@ -11234,7 +11281,7 @@ 1 2 - 8922207 + 8922209 2 @@ -11255,12 +11302,12 @@ 1 2 - 8783073 + 8782702 2 4 - 244292 + 244665 @@ -11439,7 +11486,7 @@ 25 - 27137 + 27139 31236 @@ -11564,16 +11611,16 @@ 1 2 - 5758603 + 5758231 2 20 - 470788 + 471161 20 - 2941 + 2943 30116 @@ -11590,12 +11637,12 @@ 1 2 - 5839245 + 5838874 2 2935 - 420262 + 420635 @@ -11611,7 +11658,7 @@ 1 2 - 5961703 + 5961704 2 @@ -11632,7 +11679,7 @@ 1 2 - 6247187 + 6247189 2 @@ -11647,11 +11694,11 @@ var_def - 3763196 + 3763197 id - 3763196 + 3763197 @@ -11809,11 +11856,11 @@ type_id - 1610611 + 1610612 location - 1543658 + 1543659 @@ -11922,7 +11969,7 @@ 1 2 - 1521755 + 1521756 2 @@ -12398,15 +12445,15 @@ usings - 271118 + 271001 id - 271118 + 271001 element_id - 58943 + 58827 location @@ -12428,7 +12475,7 @@ 1 2 - 271118 + 271001 @@ -12444,7 +12491,7 @@ 1 2 - 271118 + 271001 @@ -12460,7 +12507,7 @@ 1 2 - 271118 + 271001 @@ -12476,7 +12523,7 @@ 1 2 - 51242 + 51126 2 @@ -12502,7 +12549,7 @@ 1 2 - 51242 + 51126 2 @@ -12528,7 +12575,7 @@ 1 2 - 58943 + 58827 @@ -12549,16 +12596,16 @@ 2 4 - 2293 + 2282 4 132 - 1935 + 1946 145 - 371 + 367 1420 @@ -12580,16 +12627,16 @@ 2 4 - 2293 + 2282 4 132 - 1935 + 1946 145 - 371 + 367 1420 @@ -12625,8 +12672,8 @@ 10 - 25379 - 25380 + 25368 + 25369 10 @@ -12646,8 +12693,8 @@ 10 - 5389 - 5390 + 5378 + 5379 10 @@ -12679,15 +12726,15 @@ using_container - 577953 + 577834 parent - 21828 + 21807 child - 271118 + 271001 @@ -12716,7 +12763,7 @@ 6 7 - 2303 + 2282 7 @@ -12752,7 +12799,7 @@ 1 2 - 96341 + 96225 2 @@ -12782,15 +12829,15 @@ static_asserts - 172749 + 172750 id - 172749 + 172750 condition - 172749 + 172750 message @@ -12816,7 +12863,7 @@ 1 2 - 172749 + 172750 @@ -12832,7 +12879,7 @@ 1 2 - 172749 + 172750 @@ -12848,7 +12895,7 @@ 1 2 - 172749 + 172750 @@ -12864,7 +12911,7 @@ 1 2 - 172749 + 172750 @@ -12880,7 +12927,7 @@ 1 2 - 172749 + 172750 @@ -12896,7 +12943,7 @@ 1 2 - 172749 + 172750 @@ -12912,7 +12959,7 @@ 1 2 - 172749 + 172750 @@ -12928,7 +12975,7 @@ 1 2 - 172749 + 172750 @@ -13390,11 +13437,11 @@ params - 7052244 + 7052246 id - 7011799 + 7011800 function @@ -13406,7 +13453,7 @@ type_id - 1217354 + 1217355 @@ -13420,7 +13467,7 @@ 1 2 - 7011799 + 7011800 @@ -13436,7 +13483,7 @@ 1 2 - 7011799 + 7011800 @@ -13452,7 +13499,7 @@ 1 2 - 6971353 + 6971355 2 @@ -13735,7 +13782,7 @@ 1 2 - 817501 + 817502 2 @@ -13881,7 +13928,7 @@ name - 642756 + 642757 @@ -14045,11 +14092,11 @@ globalvariables - 492566 + 492567 id - 492566 + 492567 type_id @@ -14071,7 +14118,7 @@ 1 2 - 492566 + 492567 @@ -14087,7 +14134,7 @@ 1 2 - 492566 + 492567 @@ -14231,19 +14278,19 @@ localvariables - 724687 + 724728 id - 724687 + 724728 type_id - 53297 + 53300 name - 101408 + 101414 @@ -14257,7 +14304,7 @@ 1 2 - 724687 + 724728 @@ -14273,7 +14320,7 @@ 1 2 - 724687 + 724728 @@ -14289,7 +14336,7 @@ 1 2 - 28788 + 28790 2 @@ -14299,12 +14346,12 @@ 3 4 - 4020 + 4021 4 6 - 4060 + 4061 6 @@ -14314,7 +14361,7 @@ 12 162 - 4000 + 4001 162 @@ -14335,7 +14382,7 @@ 1 2 - 38248 + 38250 2 @@ -14366,12 +14413,12 @@ 1 2 - 62401 + 62404 2 3 - 16003 + 16004 3 @@ -14381,7 +14428,7 @@ 4 8 - 8129 + 8130 8 @@ -14407,7 +14454,7 @@ 1 2 - 84398 + 84403 2 @@ -14500,11 +14547,11 @@ orphaned_variables - 44036 + 44035 var - 44036 + 44035 function @@ -14522,7 +14569,7 @@ 1 2 - 44036 + 44035 @@ -14538,7 +14585,7 @@ 1 2 - 39940 + 39939 2 @@ -16147,15 +16194,15 @@ derivedtypes - 3023723 + 3023724 id - 3023723 + 3023724 name - 1457166 + 1457167 kind @@ -16163,7 +16210,7 @@ type_id - 1942142 + 1942143 @@ -16177,7 +16224,7 @@ 1 2 - 3023723 + 3023724 @@ -16193,7 +16240,7 @@ 1 2 - 3023723 + 3023724 @@ -16209,7 +16256,7 @@ 1 2 - 3023723 + 3023724 @@ -16251,7 +16298,7 @@ 1 2 - 1457166 + 1457167 @@ -16447,7 +16494,7 @@ 1 2 - 1315917 + 1315918 2 @@ -17068,15 +17115,15 @@ typedefbase - 1755835 + 1755826 id - 1755835 + 1755826 type_id - 834260 + 834256 @@ -17090,7 +17137,7 @@ 1 2 - 1755835 + 1755826 @@ -17106,12 +17153,12 @@ 1 2 - 659366 + 659363 2 3 - 80761 + 80760 3 @@ -17895,15 +17942,15 @@ usertypes - 4137720 + 4137700 id - 4137720 + 4137700 name - 915379 + 915395 kind @@ -17921,7 +17968,7 @@ 1 2 - 4137720 + 4137700 @@ -17937,7 +17984,7 @@ 1 2 - 4137720 + 4137700 @@ -17953,17 +18000,17 @@ 1 2 - 652086 + 652104 2 3 - 158093 + 158113 3 8 - 70346 + 70325 8 @@ -17984,12 +18031,12 @@ 1 2 - 863841 + 863858 2 10 - 51537 + 51536 @@ -18124,8 +18171,8 @@ 10 - 12187 - 12188 + 12189 + 12190 10 @@ -18141,11 +18188,11 @@ usertypesize - 1359666 + 1359659 id - 1359666 + 1359659 size @@ -18167,7 +18214,7 @@ 1 2 - 1359666 + 1359659 @@ -18183,7 +18230,7 @@ 1 2 - 1359666 + 1359659 @@ -18441,11 +18488,11 @@ usertype_alias_kind - 1755835 + 1755826 id - 1755835 + 1755826 alias_kind @@ -18463,7 +18510,7 @@ 1 2 - 1755835 + 1755826 @@ -18494,11 +18541,11 @@ nontype_template_parameters - 761306 + 761296 id - 761306 + 761296 @@ -18578,15 +18625,15 @@ mangled_name - 7910441 + 7910443 id - 7910441 + 7910443 mangled_name - 6349608 + 6349610 is_complete @@ -18604,7 +18651,7 @@ 1 2 - 7910441 + 7910443 @@ -18620,7 +18667,7 @@ 1 2 - 7910441 + 7910443 @@ -18636,7 +18683,7 @@ 1 2 - 6016211 + 6016213 2 @@ -18657,7 +18704,7 @@ 1 2 - 6349608 + 6349610 @@ -18709,55 +18756,55 @@ is_pod_class - 590984 + 590976 id - 590984 + 590976 is_standard_layout_class - 1120590 + 1120585 id - 1120590 + 1120585 is_complete - 1341571 + 1341565 id - 1341571 + 1341565 is_class_template - 231195 + 231194 id - 231195 + 231194 class_instantiation - 1122200 + 1122247 to - 1119212 + 1119207 from @@ -18775,12 +18822,12 @@ 1 2 - 1117129 + 1117071 2 8 - 2082 + 2135 @@ -18816,12 +18863,12 @@ 5 7 - 6059 + 6048 7 10 - 5680 + 5691 10 @@ -18846,11 +18893,11 @@ class_template_argument - 2887503 + 2887489 type_id - 1362264 + 1362258 index @@ -18858,7 +18905,7 @@ arg_type - 818795 + 818791 @@ -18872,17 +18919,17 @@ 1 2 - 577753 + 577750 2 3 - 408656 + 408654 3 4 - 249952 + 249951 4 @@ -18908,17 +18955,17 @@ 1 2 - 606188 + 606185 2 3 - 422595 + 422593 3 4 - 250784 + 250782 4 @@ -19031,12 +19078,12 @@ 1 2 - 511582 + 511580 2 3 - 166898 + 166897 3 @@ -19046,7 +19093,7 @@ 5 46 - 61415 + 61414 46 @@ -19067,7 +19114,7 @@ 1 2 - 720908 + 720904 2 @@ -19087,11 +19134,11 @@ class_template_argument_value - 506804 + 506797 type_id - 204508 + 204506 index @@ -19099,7 +19146,7 @@ arg_value - 506668 + 506662 @@ -19113,12 +19160,12 @@ 1 2 - 154820 + 154818 2 3 - 43088 + 43087 3 @@ -19139,12 +19186,12 @@ 1 2 - 147001 + 146999 2 3 - 40211 + 40210 3 @@ -19282,7 +19329,7 @@ 1 2 - 506533 + 506526 2 @@ -19303,7 +19350,7 @@ 1 2 - 506668 + 506662 @@ -19366,11 +19413,11 @@ type_mentions - 5911108 + 5911109 id - 5911108 + 5911109 type_id @@ -19378,7 +19425,7 @@ location - 5854794 + 5854796 kind @@ -19396,7 +19443,7 @@ 1 2 - 5911108 + 5911109 @@ -19412,7 +19459,7 @@ 1 2 - 5911108 + 5911109 @@ -19428,7 +19475,7 @@ 1 2 - 5911108 + 5911109 @@ -19562,7 +19609,7 @@ 1 2 - 5809101 + 5809103 2 @@ -19583,7 +19630,7 @@ 1 2 - 5809101 + 5809103 2 @@ -19604,7 +19651,7 @@ 1 2 - 5854794 + 5854796 @@ -19662,26 +19709,26 @@ is_function_template - 1328113 + 1328114 id - 1328113 + 1328114 function_instantiation - 967609 + 967596 to - 967609 + 967596 from - 181526 + 181523 @@ -19695,7 +19742,7 @@ 1 2 - 967609 + 967596 @@ -19711,7 +19758,7 @@ 1 2 - 109836 + 109834 2 @@ -19741,11 +19788,11 @@ function_template_argument - 2468763 + 2468730 function_id - 1443916 + 1443897 index @@ -19753,7 +19800,7 @@ arg_type - 296067 + 296063 @@ -19767,22 +19814,22 @@ 1 2 - 777959 + 777949 2 3 - 410507 + 410501 3 4 - 170694 + 170692 4 15 - 84755 + 84753 @@ -19798,22 +19845,22 @@ 1 2 - 796982 + 796971 2 3 - 408611 + 408606 3 4 - 168528 + 168526 4 9 - 69794 + 69793 @@ -19951,7 +19998,7 @@ 1 2 - 173639 + 173637 2 @@ -19971,7 +20018,7 @@ 6 11 - 23084 + 23083 11 @@ -19997,7 +20044,7 @@ 1 2 - 255145 + 255142 2 @@ -20017,11 +20064,11 @@ function_template_argument_value - 449838 + 449832 function_id - 195505 + 195502 index @@ -20029,7 +20076,7 @@ arg_value - 447164 + 447158 @@ -20043,12 +20090,12 @@ 1 2 - 150420 + 150418 2 3 - 42614 + 42613 3 @@ -20069,12 +20116,12 @@ 1 2 - 143548 + 143546 2 3 - 36454 + 36453 3 @@ -20222,7 +20269,7 @@ 1 2 - 444490 + 444484 2 @@ -20243,7 +20290,7 @@ 1 2 - 447164 + 447158 @@ -20264,11 +20311,11 @@ variable_instantiation - 427355 + 427356 to - 427355 + 427356 from @@ -20286,7 +20333,7 @@ 1 2 - 427355 + 427356 @@ -20383,7 +20430,7 @@ 2 3 - 189534 + 189535 3 @@ -20826,7 +20873,7 @@ type_id - 6091 + 6090 index @@ -21791,15 +21838,15 @@ routinetypes - 600596 + 600588 id - 600596 + 600588 return_type - 282020 + 282016 @@ -21813,7 +21860,7 @@ 1 2 - 600596 + 600588 @@ -21829,7 +21876,7 @@ 1 2 - 232568 + 232565 2 @@ -21839,7 +21886,7 @@ 3 4677 - 14453 + 14452 @@ -22532,11 +22579,11 @@ funspecifiers - 9694783 + 9694661 func_id - 4002635 + 4002014 spec_id @@ -22554,17 +22601,17 @@ 1 2 - 1526111 + 1525489 2 3 - 506131 + 505634 3 4 - 1034042 + 1034540 4 @@ -22678,8 +22725,8 @@ 124 - 22778 - 22779 + 22777 + 22778 124 @@ -22690,11 +22737,11 @@ varspecifiers - 3078854 + 3078855 var_id - 2314865 + 2314866 spec_id @@ -23358,7 +23405,7 @@ 1 2 - 641033 + 641034 2 @@ -24088,15 +24135,15 @@ attribute_arg_constant - 71524 + 71640 arg - 71524 + 71640 constant - 71524 + 71640 @@ -24110,7 +24157,7 @@ 1 2 - 71524 + 71640 @@ -24126,7 +24173,7 @@ 1 2 - 71524 + 71640 @@ -24547,15 +24594,15 @@ unspecifiedtype - 7228463 + 7228465 type_id - 7228463 + 7228465 unspecified_type_id - 3955718 + 3955719 @@ -24569,7 +24616,7 @@ 1 2 - 7228463 + 7228465 @@ -24585,12 +24632,12 @@ 1 2 - 2475279 + 2475280 2 3 - 1114435 + 1114436 3 @@ -24610,7 +24657,7 @@ member - 4182339 + 4182340 parent @@ -24622,7 +24669,7 @@ child - 4177734 + 4177735 @@ -24900,7 +24947,7 @@ 1 2 - 4177734 + 4177735 @@ -24916,7 +24963,7 @@ 1 2 - 4173129 + 4173131 2 @@ -24994,15 +25041,15 @@ derivations - 473802 + 473796 derivation - 473802 + 473796 sub - 452207 + 452201 index @@ -25010,7 +25057,7 @@ super - 234024 + 234021 location @@ -25028,7 +25075,7 @@ 1 2 - 473802 + 473796 @@ -25044,7 +25091,7 @@ 1 2 - 473802 + 473796 @@ -25060,7 +25107,7 @@ 1 2 - 473802 + 473796 @@ -25076,7 +25123,7 @@ 1 2 - 473802 + 473796 @@ -25092,7 +25139,7 @@ 1 2 - 435791 + 435785 2 @@ -25113,7 +25160,7 @@ 1 2 - 435791 + 435785 2 @@ -25134,7 +25181,7 @@ 1 2 - 435791 + 435785 2 @@ -25155,7 +25202,7 @@ 1 2 - 435791 + 435785 2 @@ -25315,7 +25362,7 @@ 1 2 - 224276 + 224273 2 @@ -25336,7 +25383,7 @@ 1 2 - 224276 + 224273 2 @@ -25357,7 +25404,7 @@ 1 2 - 233584 + 233581 2 @@ -25378,7 +25425,7 @@ 1 2 - 228710 + 228707 2 @@ -25404,7 +25451,7 @@ 2 5 - 3114 + 3113 5 @@ -25440,7 +25487,7 @@ 2 5 - 3114 + 3113 5 @@ -25512,11 +25559,11 @@ derspecifiers - 475562 + 475556 der_id - 473362 + 473356 spec_id @@ -25534,7 +25581,7 @@ 1 2 - 471162 + 471156 2 @@ -25580,11 +25627,11 @@ direct_base_offsets - 447062 + 447056 der_id - 447062 + 447056 offset @@ -25602,7 +25649,7 @@ 1 2 - 447062 + 447056 @@ -25799,11 +25846,11 @@ frienddecls - 695912 + 695869 id - 695912 + 695869 type_id @@ -25811,7 +25858,7 @@ decl_id - 77240 + 77341 location @@ -25829,7 +25876,7 @@ 1 2 - 695912 + 695869 @@ -25845,7 +25892,7 @@ 1 2 - 695912 + 695869 @@ -25861,7 +25908,7 @@ 1 2 - 695912 + 695869 @@ -25877,17 +25924,17 @@ 1 2 - 6126 + 6160 2 3 - 13877 + 13843 3 7 - 3554 + 3553 7 @@ -25933,17 +25980,17 @@ 1 2 - 6126 + 6160 2 3 - 13877 + 13843 3 7 - 3554 + 3553 7 @@ -26010,12 +26057,12 @@ 1 2 - 47556 + 47792 2 3 - 6024 + 5889 3 @@ -26051,12 +26098,12 @@ 1 2 - 47556 + 47792 2 3 - 6024 + 5889 3 @@ -26092,7 +26139,7 @@ 1 2 - 76563 + 76664 2 @@ -26117,7 +26164,7 @@ 2 - 20371 + 20370 372 @@ -26159,7 +26206,7 @@ 2 - 2129 + 2132 338 @@ -26170,19 +26217,19 @@ comments - 11208574 + 11208577 id - 11208574 + 11208577 contents - 4294964 + 4294966 location - 11208574 + 11208577 @@ -26196,7 +26243,7 @@ 1 2 - 11208574 + 11208577 @@ -26212,7 +26259,7 @@ 1 2 - 11208574 + 11208577 @@ -26228,7 +26275,7 @@ 1 2 - 3920499 + 3920500 2 @@ -26254,7 +26301,7 @@ 1 2 - 3920499 + 3920500 2 @@ -26280,7 +26327,7 @@ 1 2 - 11208574 + 11208577 @@ -26296,7 +26343,7 @@ 1 2 - 11208574 + 11208577 @@ -26306,15 +26353,15 @@ commentbinding - 3905316 + 3905317 id - 3342685 + 3342686 element - 3740173 + 3740174 @@ -26328,7 +26375,7 @@ 1 2 - 3281207 + 3281208 2 @@ -26349,7 +26396,7 @@ 1 2 - 3575030 + 3575031 2 @@ -26364,15 +26411,15 @@ exprconv - 9634072 + 9634075 converted - 9633966 + 9633969 conversion - 9634072 + 9634075 @@ -26386,7 +26433,7 @@ 1 2 - 9633861 + 9633864 2 @@ -26407,7 +26454,7 @@ 1 2 - 9634072 + 9634075 @@ -26417,18 +26464,18 @@ compgenerated - 9923989 + 9923438 id - 9923989 + 9923438 synthetic_destructor_call - 1666648 + 1666649 element @@ -26440,7 +26487,7 @@ destructor_call - 1666648 + 1666649 @@ -26454,7 +26501,7 @@ 1 2 - 826180 + 826181 2 @@ -26480,7 +26527,7 @@ 1 2 - 826180 + 826181 2 @@ -26638,7 +26685,7 @@ 1 2 - 1666648 + 1666649 @@ -26654,7 +26701,7 @@ 1 2 - 1666648 + 1666649 @@ -26733,7 +26780,7 @@ namespacembrs - 2110396 + 2110397 parentid @@ -26741,7 +26788,7 @@ memberid - 2110396 + 2110397 @@ -26831,7 +26878,7 @@ 1 2 - 2110396 + 2110397 @@ -26841,11 +26888,11 @@ exprparents - 19456291 + 19456297 expr_id - 19456291 + 19456297 child_index @@ -26853,7 +26900,7 @@ parent_id - 12941377 + 12941381 @@ -26867,7 +26914,7 @@ 1 2 - 19456291 + 19456297 @@ -26883,7 +26930,7 @@ 1 2 - 19456291 + 19456297 @@ -27001,12 +27048,12 @@ 1 2 - 7395563 + 7395565 2 3 - 5083215 + 5083216 3 @@ -27027,12 +27074,12 @@ 1 2 - 7395563 + 7395565 2 3 - 5083215 + 5083216 3 @@ -27047,11 +27094,11 @@ expr_isload - 6898014 + 6898016 expr_id - 6898014 + 6898016 @@ -27136,11 +27183,11 @@ iscall - 5790817 + 5790819 caller - 5790817 + 5790819 kind @@ -27158,7 +27205,7 @@ 1 2 - 5790817 + 5790819 @@ -27636,11 +27683,11 @@ varbind - 8255500 + 8255502 expr - 8255500 + 8255502 var @@ -27658,7 +27705,7 @@ 1 2 - 8255500 + 8255502 @@ -27674,7 +27721,7 @@ 1 2 - 171553 + 171554 2 @@ -27704,7 +27751,7 @@ 7 9 - 80823 + 80824 9 @@ -27729,15 +27776,15 @@ funbind - 5805683 + 5806092 expr - 5803624 + 5803625 fun - 275028 + 275286 @@ -27751,12 +27798,12 @@ 1 2 - 5801564 + 5801158 2 3 - 2059 + 2466 @@ -27772,22 +27819,22 @@ 1 2 - 180900 + 181071 2 3 - 38269 + 38312 3 4 - 16882 + 16903 4 8 - 22910 + 22931 8 @@ -27928,11 +27975,11 @@ expr_deallocator - 53479 + 53478 expr - 53479 + 53478 func @@ -27954,7 +28001,7 @@ 1 2 - 53479 + 53478 @@ -27970,7 +28017,7 @@ 1 2 - 53479 + 53478 @@ -28075,15 +28122,15 @@ expr_cond_guard - 897971 + 897972 cond - 897971 + 897972 guard - 897971 + 897972 @@ -28097,7 +28144,7 @@ 1 2 - 897971 + 897972 @@ -28113,7 +28160,7 @@ 1 2 - 897971 + 897972 @@ -28171,15 +28218,15 @@ expr_cond_false - 897971 + 897972 cond - 897971 + 897972 false - 897971 + 897972 @@ -28193,7 +28240,7 @@ 1 2 - 897971 + 897972 @@ -28209,7 +28256,7 @@ 1 2 - 897971 + 897972 @@ -28219,11 +28266,11 @@ values - 13541399 + 13541403 id - 13541399 + 13541403 str @@ -28241,7 +28288,7 @@ 1 2 - 13541399 + 13541403 @@ -28287,11 +28334,11 @@ valuetext - 6637514 + 6637663 id - 6637514 + 6637663 text @@ -28309,7 +28356,7 @@ 1 2 - 6637514 + 6637663 @@ -28339,7 +28386,7 @@ 7 - 593717 + 593719 27872 @@ -28350,15 +28397,15 @@ valuebind - 13649549 + 13649553 val - 13541399 + 13541403 expr - 13649549 + 13649553 @@ -28372,7 +28419,7 @@ 1 2 - 13451241 + 13451245 2 @@ -28393,7 +28440,7 @@ 1 2 - 13649549 + 13649553 @@ -28795,11 +28842,11 @@ initialisers - 2244826 + 2244827 init - 2244826 + 2244827 var @@ -28807,7 +28854,7 @@ expr - 2244826 + 2244827 location @@ -28825,7 +28872,7 @@ 1 2 - 2244826 + 2244827 @@ -28841,7 +28888,7 @@ 1 2 - 2244826 + 2244827 @@ -28857,7 +28904,7 @@ 1 2 - 2244826 + 2244827 @@ -28946,7 +28993,7 @@ 1 2 - 2244826 + 2244827 @@ -28962,7 +29009,7 @@ 1 2 - 2244826 + 2244827 @@ -28978,7 +29025,7 @@ 1 2 - 2244826 + 2244827 @@ -29025,7 +29072,7 @@ 1 2 - 443422 + 443423 2 @@ -29076,11 +29123,11 @@ braced_initialisers - 67626 + 67652 init - 67626 + 67652 @@ -29145,11 +29192,11 @@ exprs - 25213256 + 25213263 id - 25213256 + 25213263 kind @@ -29157,7 +29204,7 @@ location - 10586808 + 10586811 @@ -29171,7 +29218,7 @@ 1 2 - 25213256 + 25213263 @@ -29187,7 +29234,7 @@ 1 2 - 25213256 + 25213263 @@ -29365,7 +29412,7 @@ 1 2 - 8904642 + 8904644 2 @@ -29396,7 +29443,7 @@ 1 2 - 9044060 + 9044063 2 @@ -29542,11 +29589,11 @@ expr_types - 25213256 + 25213263 id - 25213256 + 25213263 typeid @@ -29568,7 +29615,7 @@ 1 2 - 25213256 + 25213263 @@ -29584,7 +29631,7 @@ 1 2 - 25213256 + 25213263 @@ -29848,6 +29895,17 @@ + + param_ref_to_this + 24953 + + + expr + 24953 + + + + aggregate_field_init 5717382 @@ -31234,11 +31292,11 @@ typeid_bind - 47590 + 47589 expr - 47590 + 47589 type_id @@ -31256,7 +31314,7 @@ 1 2 - 47590 + 47589 @@ -33066,11 +33124,11 @@ stmts - 6349655 + 6349657 id - 6349655 + 6349657 kind @@ -33078,7 +33136,7 @@ location - 2676167 + 2676168 @@ -33092,7 +33150,7 @@ 1 2 - 6349655 + 6349657 @@ -33108,7 +33166,7 @@ 1 2 - 6349655 + 6349657 @@ -33346,7 +33404,7 @@ 1 2 - 2218094 + 2218095 2 @@ -33377,7 +33435,7 @@ 1 2 - 2593460 + 2593461 2 @@ -33547,15 +33605,15 @@ if_then - 990318 + 990319 if_stmt - 990318 + 990319 then_id - 990318 + 990319 @@ -33569,7 +33627,7 @@ 1 2 - 990318 + 990319 @@ -33585,7 +33643,7 @@ 1 2 - 990318 + 990319 @@ -34513,11 +34571,11 @@ stmtparents - 5611095 + 5611096 id - 5611095 + 5611096 index @@ -34525,7 +34583,7 @@ parent - 2374340 + 2374341 @@ -34539,7 +34597,7 @@ 1 2 - 5611095 + 5611096 @@ -34555,7 +34613,7 @@ 1 2 - 5611095 + 5611096 @@ -34698,7 +34756,7 @@ 2 3 - 515763 + 515764 3 @@ -34739,7 +34797,7 @@ 2 3 - 515763 + 515764 3 @@ -34769,11 +34827,11 @@ ishandler - 43261 + 43218 block - 43261 + 43218 @@ -35431,11 +35489,11 @@ preprocdirects - 5395213 + 5395215 id - 5395213 + 5395215 kind @@ -35443,7 +35501,7 @@ location - 5392102 + 5392103 @@ -35457,7 +35515,7 @@ 1 2 - 5395213 + 5395215 @@ -35473,7 +35531,7 @@ 1 2 - 5395213 + 5395215 @@ -35621,7 +35679,7 @@ 1 2 - 5391977 + 5391979 26 @@ -35642,7 +35700,7 @@ 1 2 - 5392102 + 5392103 @@ -35710,11 +35768,11 @@ preproctrue - 438182 + 438183 branch - 438182 + 438183 @@ -35732,15 +35790,15 @@ preproctext - 4341757 + 4341758 id - 4341757 + 4341758 head - 2947934 + 2947935 body @@ -35758,7 +35816,7 @@ 1 2 - 4341757 + 4341758 @@ -35774,7 +35832,7 @@ 1 2 - 4341757 + 4341758 @@ -35790,7 +35848,7 @@ 1 2 - 2749812 + 2749813 2 @@ -35811,7 +35869,7 @@ 1 2 - 2866918 + 2866919 2 @@ -35832,7 +35890,7 @@ 1 2 - 1531462 + 1531463 2 @@ -35858,7 +35916,7 @@ 1 2 - 1535693 + 1535694 2 @@ -35878,15 +35936,15 @@ includes - 317353 + 317352 id - 317353 + 317352 included - 58459 + 58458 @@ -35900,7 +35958,7 @@ 1 2 - 317353 + 317352 @@ -36004,11 +36062,11 @@ link_parent - 30225687 + 30225290 element - 3843833 + 3843783 link_target @@ -36026,7 +36084,7 @@ 1 2 - 527079 + 527072 2 @@ -36036,7 +36094,7 @@ 9 10 - 3289980 + 3289937 From e0c36c758d7f82d469081756985abd5571d177d0 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 Jan 2026 11:41:27 +0100 Subject: [PATCH 177/263] Rust: Move associated types tests into separate file --- .../type-inference/associated_types.rs | 236 + .../test/library-tests/type-inference/main.rs | 230 +- .../type-inference/type-inference.expected | 12875 ++++++++-------- 3 files changed, 6566 insertions(+), 6775 deletions(-) create mode 100644 rust/ql/test/library-tests/type-inference/associated_types.rs diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs new file mode 100644 index 00000000000..6ea5dc29575 --- /dev/null +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -0,0 +1,236 @@ +mod associated_type_in_trait { + #[derive(Debug)] + struct Wrapper { + field: A, + } + + impl Wrapper { + fn unwrap(self) -> A { + self.field // $ fieldof=Wrapper + } + } + + trait MyTrait { + type AssociatedType; + + // MyTrait::m1 + fn m1(self) -> Self::AssociatedType; + + fn m2(self) -> Self::AssociatedType + where + Self::AssociatedType: Default, + Self: Sized, + { + self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType + Self::AssociatedType::default() + } + } + + trait MyTraitAssoc2 { + type GenericAssociatedType; + + // MyTrait::put + fn put(&self, a: A) -> Self::GenericAssociatedType; + + fn putTwo(&self, a: A, b: A) -> Self::GenericAssociatedType { + self.put(a); // $ target=MyTrait::put + self.put(b) // $ target=MyTrait::put + } + } + + // A generic trait with multiple associated types. + trait TraitMultipleAssoc { + type Assoc1; + type Assoc2; + + fn get_zero(&self) -> TrG; + + fn get_one(&self) -> Self::Assoc1; + + fn get_two(&self) -> Self::Assoc2; + } + + #[derive(Debug, Default)] + struct S; + + #[derive(Debug, Default)] + struct S2; + + #[derive(Debug, Default)] + struct AT; + + impl MyTrait for S { + type AssociatedType = AT; + + // S::m1 + fn m1(self) -> Self::AssociatedType { + AT + } + } + + impl MyTraitAssoc2 for S { + // Associated type with a type parameter + type GenericAssociatedType = Wrapper; + + // S::put + fn put(&self, a: A) -> Wrapper { + Wrapper { field: a } + } + } + + impl MyTrait for S2 { + // Associated type definition with a type argument + type AssociatedType = Wrapper; + + fn m1(self) -> Self::AssociatedType { + Wrapper { field: self } + } + } + + // NOTE: This implementation is just to make it possible to call `m2` on `S2.` + impl Default for Wrapper { + fn default() -> Self { + Wrapper { field: S2 } + } + } + + // Function that returns an associated type from a trait bound + + fn g(thing: T) -> ::AssociatedType { + thing.m1() // $ target=MyTrait::m1 + } + + impl TraitMultipleAssoc for AT { + type Assoc1 = S; + type Assoc2 = S2; + + fn get_zero(&self) -> AT { + AT + } + + fn get_one(&self) -> Self::Assoc1 { + S + } + + fn get_two(&self) -> Self::Assoc2 { + S2 + } + } + + pub fn test() { + let x1 = S; + // Call to method in `impl` block + println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():AT + + let x2 = S; + // Call to default method in `trait` block + let y = x2.m2(); // $ target=m2 type=y:AT + println!("{:?}", y); + + let x3 = S; + // Call to the method in `impl` block + println!("{:?}", x3.put(1).unwrap()); // $ target=S::put target=unwrap + + // Call to default implementation in `trait` block + println!("{:?}", x3.putTwo(2, 3).unwrap()); // $ target=putTwo target=unwrap + + let x4 = g(S); // $ target=g $ MISSING: type=x4:AT + println!("{:?}", x4); + + let x5 = S2; + println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 + let x6 = S2; + println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 + + let assoc_zero = AT.get_zero(); // $ target=get_zero type=assoc_zero:AT + let assoc_one = AT.get_one(); // $ target=get_one type=assoc_one:S + let assoc_two = AT.get_two(); // $ target=get_two type=assoc_two:S2 + } +} + +mod associated_type_in_supertrait { + trait Supertrait { + type Content; + // Supertrait::insert + fn insert(&self, content: Self::Content); + } + + trait Subtrait: Supertrait { + // Subtrait::get_content + fn get_content(&self) -> Self::Content; + } + + // A subtrait declared using a `where` clause. + trait Subtrait2 + where + Self: Supertrait, + { + // Subtrait2::insert_two + fn insert_two(&self, c1: Self::Content, c2: Self::Content) { + self.insert(c1); // $ target=Supertrait::insert + self.insert(c2); // $ target=Supertrait::insert + } + } + + struct MyType(T); + + impl Supertrait for MyType { + type Content = T; + fn insert(&self, _content: Self::Content) { + println!("Inserting content: "); + } + } + + impl Subtrait for MyType { + // MyType::get_content + fn get_content(&self) -> Self::Content { + (*self).0.clone() // $ fieldof=MyType target=clone target=deref + } + } + + fn get_content(item: &T) -> T::Content { + item.get_content() // $ target=Subtrait::get_content + } + + fn insert_three(item: &T, c1: T::Content, c2: T::Content, c3: T::Content) { + item.insert(c1); // $ target=Supertrait::insert + item.insert_two(c2, c3); // $ target=Subtrait2::insert_two + } + + pub fn test() { + let item1 = MyType(42i64); + let _content1 = item1.get_content(); // $ target=MyType::get_content MISSING: type=_content1:i64 + + let item2 = MyType(true); + let _content2 = get_content(&item2); // $ target=get_content MISSING: type=_content2:bool + } +} + +mod generic_associated_type_name_clash { + struct GenS(GenT); + + trait TraitWithAssocType { + type Output; + fn get_input(self) -> Self::Output; + } + + impl TraitWithAssocType for GenS { + // This is not a recursive type, the `Output` on the right-hand side + // refers to the type parameter of the impl block just above. + type Output = Result; + + fn get_input(self) -> Self::Output { + Ok(self.0) // $ fieldof=GenS type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output + } + } + + pub fn test() { + let _y = GenS(true).get_input(); // $ type=_y:Result type=_y:T.bool type=_y:E.bool target=get_input + } +} + +pub fn test() { + associated_type_in_trait::test(); // $ target=test + associated_type_in_supertrait::test(); // $ target=test + generic_associated_type_name_clash::test(); // $ target=test +} diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 840e17b52ef..a7efa447647 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -903,214 +903,6 @@ mod function_trait_bounds { } } -mod associated_type_in_trait { - #[derive(Debug)] - struct Wrapper { - field: A, - } - - impl Wrapper { - fn unwrap(self) -> A { - self.field // $ fieldof=Wrapper - } - } - - trait MyTrait { - type AssociatedType; - - // MyTrait::m1 - fn m1(self) -> Self::AssociatedType; - - fn m2(self) -> Self::AssociatedType - where - Self::AssociatedType: Default, - Self: Sized, - { - self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType - Self::AssociatedType::default() - } - } - - trait MyTraitAssoc2 { - type GenericAssociatedType; - - // MyTrait::put - fn put(&self, a: A) -> Self::GenericAssociatedType; - - fn putTwo(&self, a: A, b: A) -> Self::GenericAssociatedType { - self.put(a); // $ target=MyTrait::put - self.put(b) // $ target=MyTrait::put - } - } - - // A generic trait with multiple associated types. - trait TraitMultipleAssoc { - type Assoc1; - type Assoc2; - - fn get_zero(&self) -> TrG; - - fn get_one(&self) -> Self::Assoc1; - - fn get_two(&self) -> Self::Assoc2; - } - - #[derive(Debug, Default)] - struct S; - - #[derive(Debug, Default)] - struct S2; - - #[derive(Debug, Default)] - struct AT; - - impl MyTrait for S { - type AssociatedType = AT; - - // S::m1 - fn m1(self) -> Self::AssociatedType { - AT - } - } - - impl MyTraitAssoc2 for S { - // Associated type with a type parameter - type GenericAssociatedType = Wrapper; - - // S::put - fn put(&self, a: A) -> Wrapper { - Wrapper { field: a } - } - } - - impl MyTrait for S2 { - // Associated type definition with a type argument - type AssociatedType = Wrapper; - - fn m1(self) -> Self::AssociatedType { - Wrapper { field: self } - } - } - - // NOTE: This implementation is just to make it possible to call `m2` on `S2.` - impl Default for Wrapper { - fn default() -> Self { - Wrapper { field: S2 } - } - } - - // Function that returns an associated type from a trait bound - - fn g(thing: T) -> ::AssociatedType { - thing.m1() // $ target=MyTrait::m1 - } - - impl TraitMultipleAssoc for AT { - type Assoc1 = S; - type Assoc2 = S2; - - fn get_zero(&self) -> AT { - AT - } - - fn get_one(&self) -> Self::Assoc1 { - S - } - - fn get_two(&self) -> Self::Assoc2 { - S2 - } - } - - pub fn f() { - let x1 = S; - // Call to method in `impl` block - println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():AT - - let x2 = S; - // Call to default method in `trait` block - let y = x2.m2(); // $ target=m2 type=y:AT - println!("{:?}", y); - - let x3 = S; - // Call to the method in `impl` block - println!("{:?}", x3.put(1).unwrap()); // $ target=S::put target=unwrap - - // Call to default implementation in `trait` block - println!("{:?}", x3.putTwo(2, 3).unwrap()); // $ target=putTwo target=unwrap - - let x4 = g(S); // $ target=g $ MISSING: type=x4:AT - println!("{:?}", x4); - - let x5 = S2; - println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 - let x6 = S2; - println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 - - let assoc_zero = AT.get_zero(); // $ target=get_zero type=assoc_zero:AT - let assoc_one = AT.get_one(); // $ target=get_one type=assoc_one:S - let assoc_two = AT.get_two(); // $ target=get_two type=assoc_two:S2 - } -} - -mod associated_type_in_supertrait { - trait Supertrait { - type Content; - // Supertrait::insert - fn insert(&self, content: Self::Content); - } - - trait Subtrait: Supertrait { - // Subtrait::get_content - fn get_content(&self) -> Self::Content; - } - - // A subtrait declared using a `where` clause. - trait Subtrait2 - where - Self: Supertrait, - { - // Subtrait2::insert_two - fn insert_two(&self, c1: Self::Content, c2: Self::Content) { - self.insert(c1); // $ target=Supertrait::insert - self.insert(c2); // $ target=Supertrait::insert - } - } - - struct MyType(T); - - impl Supertrait for MyType { - type Content = T; - fn insert(&self, _content: Self::Content) { - println!("Inserting content: "); - } - } - - impl Subtrait for MyType { - // MyType::get_content - fn get_content(&self) -> Self::Content { - (*self).0.clone() // $ fieldof=MyType target=clone target=deref - } - } - - fn get_content(item: &T) -> T::Content { - item.get_content() // $ target=Subtrait::get_content - } - - fn insert_three(item: &T, c1: T::Content, c2: T::Content, c3: T::Content) { - item.insert(c1); // $ target=Supertrait::insert - item.insert_two(c2, c3); // $ target=Subtrait2::insert_two - } - - fn test() { - let item1 = MyType(42i64); - let _content1 = item1.get_content(); // $ target=MyType::get_content MISSING: type=_content1:i64 - - let item2 = MyType(true); - let _content2 = get_content(&item2); // $ target=get_content MISSING: type=_content2:bool - } -} - mod generic_enum { #[derive(Debug)] enum MyEnum { @@ -1350,23 +1142,6 @@ mod type_aliases { type S7 = Result, S1>; - struct GenS(GenT); - - trait TraitWithAssocType { - type Output; - fn get_input(self) -> Self::Output; - } - - impl TraitWithAssocType for GenS { - // This is not a recursive type, the `Output` on the right-hand side - // refers to the type parameter of the impl block just above. - type Output = Result; - - fn get_input(self) -> Self::Output { - Ok(self.0) // $ fieldof=GenS type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output - } - } - pub fn f() { // Type can be inferred from the constructor let p1: MyPair = PairOption::PairBoth(S1, S2); @@ -1387,8 +1162,6 @@ mod type_aliases { g(PairOption::PairSnd(PairOption::PairSnd(S3))); // $ target=g let x: S7; // $ certainType=x:Result $ certainType=x:E.S1 $ certainType=x:T.S4 $ certainType=x:T.T41.S2 $ certainType=x:T.T42.S5 $ certainType=x:T.T42.T5.S2 - - let y = GenS(true).get_input(); // $ type=y:Result type=y:T.bool type=y:E.bool target=get_input } } @@ -3099,6 +2872,7 @@ mod literal_overlap { } } +mod associated_types; mod blanket_impl; mod closure; mod dereference; @@ -3112,7 +2886,6 @@ fn main() { method_non_parametric_trait_impl::f(); // $ target=f trait_default_self_type_parameter::test(); // $ target=test function_trait_bounds::f(); // $ target=f - associated_type_in_trait::f(); // $ target=f generic_enum::f(); // $ target=f method_supertraits::f(); // $ target=f function_trait_bounds_2::f(); // $ target=f @@ -3133,6 +2906,7 @@ fn main() { method_determined_by_argument_type::f(); // $ target=f tuples::f(); // $ target=f path_buf::f(); // $ target=f + associated_types::test(); // $ target=test dereference::test(); // $ target=test pattern_matching::test_all_patterns(); // $ target=test_all_patterns pattern_matching_experimental::box_patterns(); // $ target=box_patterns diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index a7b856a7517..422e691ddf9 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1,4 +1,146 @@ inferCertainType +| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | +| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | +| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | +| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | +| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | +| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -1474,2160 +1616,2023 @@ inferCertainType | main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:902:13:902:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:913:19:913:22 | SelfParam | | main.rs:907:5:910:5 | Wrapper | -| main.rs:913:19:913:22 | SelfParam | A | main.rs:912:10:912:10 | A | -| main.rs:913:30:915:9 | { ... } | | main.rs:912:10:912:10 | A | -| main.rs:914:13:914:16 | self | | main.rs:907:5:910:5 | Wrapper | -| main.rs:914:13:914:16 | self | A | main.rs:912:10:912:10 | A | -| main.rs:922:15:922:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | -| main.rs:924:15:924:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | -| main.rs:928:9:931:9 | { ... } | | main.rs:919:9:919:28 | AssociatedType | -| main.rs:929:13:929:16 | self | | main.rs:918:5:932:5 | Self [trait MyTrait] | -| main.rs:938:19:938:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:938:19:938:23 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:938:26:938:26 | a | | main.rs:938:16:938:16 | A | -| main.rs:940:22:940:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:940:22:940:26 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:940:29:940:29 | a | | main.rs:940:19:940:19 | A | -| main.rs:940:35:940:35 | b | | main.rs:940:19:940:19 | A | -| main.rs:940:75:943:9 | { ... } | | main.rs:935:9:935:52 | GenericAssociatedType | -| main.rs:941:13:941:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:941:13:941:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:941:22:941:22 | a | | main.rs:940:19:940:19 | A | -| main.rs:942:13:942:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:942:13:942:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:942:22:942:22 | b | | main.rs:940:19:940:19 | A | -| main.rs:951:21:951:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:951:21:951:25 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | -| main.rs:953:20:953:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:953:20:953:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | -| main.rs:955:20:955:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:955:20:955:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | -| main.rs:971:15:971:18 | SelfParam | | main.rs:958:5:959:13 | S | -| main.rs:971:45:973:9 | { ... } | | main.rs:964:5:965:14 | AT | -| main.rs:981:19:981:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:981:19:981:23 | SelfParam | TRef | main.rs:958:5:959:13 | S | -| main.rs:981:26:981:26 | a | | main.rs:981:16:981:16 | A | -| main.rs:981:46:983:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | -| main.rs:981:46:983:9 | { ... } | A | main.rs:981:16:981:16 | A | -| main.rs:982:13:982:32 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | -| main.rs:982:30:982:30 | a | | main.rs:981:16:981:16 | A | -| main.rs:990:15:990:18 | SelfParam | | main.rs:961:5:962:14 | S2 | -| main.rs:990:45:992:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | -| main.rs:990:45:992:9 | { ... } | A | main.rs:961:5:962:14 | S2 | -| main.rs:991:13:991:35 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | -| main.rs:991:30:991:33 | self | | main.rs:961:5:962:14 | S2 | -| main.rs:997:30:999:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | -| main.rs:997:30:999:9 | { ... } | A | main.rs:961:5:962:14 | S2 | -| main.rs:998:13:998:33 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | -| main.rs:1004:22:1004:26 | thing | | main.rs:1004:10:1004:19 | T | -| main.rs:1005:9:1005:13 | thing | | main.rs:1004:10:1004:19 | T | -| main.rs:1012:21:1012:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1012:21:1012:25 | SelfParam | TRef | main.rs:964:5:965:14 | AT | -| main.rs:1012:34:1014:9 | { ... } | | main.rs:964:5:965:14 | AT | -| main.rs:1016:20:1016:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1016:20:1016:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | -| main.rs:1016:43:1018:9 | { ... } | | main.rs:958:5:959:13 | S | -| main.rs:1020:20:1020:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1020:20:1020:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | -| main.rs:1020:43:1022:9 | { ... } | | main.rs:961:5:962:14 | S2 | -| main.rs:1025:16:1053:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1028:18:1028:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1028:18:1028:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1033:18:1033:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1033:18:1033:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1037:18:1037:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1037:18:1037:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1037:18:1037:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1040:18:1040:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1040:18:1040:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1043:18:1043:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1043:18:1043:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1046:18:1046:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1046:18:1046:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1048:18:1048:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1048:18:1048:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1048:18:1048:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1060:19:1060:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1060:19:1060:23 | SelfParam | TRef | main.rs:1057:5:1061:5 | Self [trait Supertrait] | -| main.rs:1060:26:1060:32 | content | | main.rs:1058:9:1058:21 | Content | -| main.rs:1065:24:1065:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1065:24:1065:28 | SelfParam | TRef | main.rs:1063:5:1066:5 | Self [trait Subtrait] | -| main.rs:1074:23:1074:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1074:23:1074:27 | SelfParam | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | -| main.rs:1074:68:1077:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1075:13:1075:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1075:13:1075:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | -| main.rs:1076:13:1076:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1076:13:1076:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | -| main.rs:1084:19:1084:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1084:19:1084:23 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | -| main.rs:1084:19:1084:23 | SelfParam | TRef.T | main.rs:1082:10:1082:10 | T | -| main.rs:1084:26:1084:33 | _content | | main.rs:1082:10:1082:10 | T | -| main.rs:1084:51:1086:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1085:22:1085:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1085:22:1085:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1085:22:1085:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1091:24:1091:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1091:24:1091:28 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | -| main.rs:1091:24:1091:28 | SelfParam | TRef.T | main.rs:1089:10:1089:17 | T | -| main.rs:1092:15:1092:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1092:15:1092:18 | self | TRef | main.rs:1080:5:1080:24 | MyType | -| main.rs:1092:15:1092:18 | self | TRef.T | main.rs:1089:10:1089:17 | T | -| main.rs:1096:33:1096:36 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1096:33:1096:36 | item | TRef | main.rs:1096:20:1096:30 | T | -| main.rs:1097:9:1097:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1097:9:1097:12 | item | TRef | main.rs:1096:20:1096:30 | T | -| main.rs:1100:35:1100:38 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1100:35:1100:38 | item | TRef | main.rs:1100:21:1100:32 | T | -| main.rs:1100:93:1103:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1101:9:1101:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1101:9:1101:12 | item | TRef | main.rs:1100:21:1100:32 | T | -| main.rs:1102:9:1102:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1102:9:1102:12 | item | TRef | main.rs:1100:21:1100:32 | T | -| main.rs:1105:15:1111:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1106:28:1106:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1109:28:1109:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1110:37:1110:42 | &item2 | | {EXTERNAL LOCATION} | & | -| main.rs:1127:15:1127:18 | SelfParam | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1127:15:1127:18 | SelfParam | A | main.rs:1126:10:1126:10 | T | -| main.rs:1127:26:1132:9 | { ... } | | main.rs:1126:10:1126:10 | T | -| main.rs:1128:19:1128:22 | self | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1128:19:1128:22 | self | A | main.rs:1126:10:1126:10 | T | -| main.rs:1130:17:1130:32 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1135:16:1141:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1137:13:1137:13 | y | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1137:17:1137:36 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1139:18:1139:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1139:18:1139:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1139:18:1139:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1140:18:1140:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1140:18:1140:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1140:26:1140:26 | y | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1162:15:1162:18 | SelfParam | | main.rs:1160:5:1163:5 | Self [trait MyTrait1] | -| main.rs:1167:15:1167:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1167:15:1167:19 | SelfParam | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | -| main.rs:1170:9:1176:9 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | -| main.rs:1172:17:1172:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1172:17:1172:20 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | -| main.rs:1174:27:1174:30 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1174:27:1174:30 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | -| main.rs:1181:15:1181:18 | SelfParam | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | -| main.rs:1184:9:1190:9 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1186:17:1186:20 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | -| main.rs:1188:26:1188:30 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1188:27:1188:30 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | -| main.rs:1195:15:1195:18 | SelfParam | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1195:15:1195:18 | SelfParam | A | main.rs:1193:10:1193:10 | T | -| main.rs:1195:26:1197:9 | { ... } | | main.rs:1193:10:1193:10 | T | -| main.rs:1196:13:1196:16 | self | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1196:13:1196:16 | self | A | main.rs:1193:10:1193:10 | T | -| main.rs:1204:15:1204:18 | SelfParam | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1204:15:1204:18 | SelfParam | A | main.rs:1202:10:1202:10 | T | -| main.rs:1204:35:1206:9 | { ... } | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1204:35:1206:9 | { ... } | A | main.rs:1202:10:1202:10 | T | -| main.rs:1205:13:1205:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1205:26:1205:29 | self | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1205:26:1205:29 | self | A | main.rs:1202:10:1202:10 | T | -| main.rs:1213:44:1213:44 | x | | main.rs:1213:26:1213:41 | T2 | -| main.rs:1213:57:1215:5 | { ... } | | main.rs:1213:22:1213:23 | T1 | -| main.rs:1214:9:1214:9 | x | | main.rs:1213:26:1213:41 | T2 | -| main.rs:1217:56:1217:56 | x | | main.rs:1217:39:1217:53 | T | -| main.rs:1217:62:1221:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1219:17:1219:17 | x | | main.rs:1217:39:1217:53 | T | -| main.rs:1220:18:1220:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1220:18:1220:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1220:18:1220:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1223:16:1247:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1224:13:1224:13 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1224:17:1224:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1225:13:1225:13 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1225:17:1225:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:919:15:919:18 | SelfParam | | main.rs:907:5:911:5 | MyEnum | +| main.rs:919:15:919:18 | SelfParam | A | main.rs:918:10:918:10 | T | +| main.rs:919:26:924:9 | { ... } | | main.rs:918:10:918:10 | T | +| main.rs:920:19:920:22 | self | | main.rs:907:5:911:5 | MyEnum | +| main.rs:920:19:920:22 | self | A | main.rs:918:10:918:10 | T | +| main.rs:922:17:922:32 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:927:16:933:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:929:13:929:13 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:929:17:929:36 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:931:18:931:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:931:18:931:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:931:18:931:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:932:18:932:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:932:18:932:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:26:932:26 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:954:15:954:18 | SelfParam | | main.rs:952:5:955:5 | Self [trait MyTrait1] | +| main.rs:959:15:959:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:959:15:959:19 | SelfParam | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:962:9:968:9 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:964:17:964:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:964:17:964:20 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:966:27:966:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:966:27:966:30 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:973:15:973:18 | SelfParam | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:976:9:982:9 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:978:17:978:20 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:980:26:980:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:980:27:980:30 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:987:15:987:18 | SelfParam | | main.rs:937:5:940:5 | MyThing | +| main.rs:987:15:987:18 | SelfParam | A | main.rs:985:10:985:10 | T | +| main.rs:987:26:989:9 | { ... } | | main.rs:985:10:985:10 | T | +| main.rs:988:13:988:16 | self | | main.rs:937:5:940:5 | MyThing | +| main.rs:988:13:988:16 | self | A | main.rs:985:10:985:10 | T | +| main.rs:996:15:996:18 | SelfParam | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:996:15:996:18 | SelfParam | A | main.rs:994:10:994:10 | T | +| main.rs:996:35:998:9 | { ... } | | main.rs:937:5:940:5 | MyThing | +| main.rs:996:35:998:9 | { ... } | A | main.rs:994:10:994:10 | T | +| main.rs:997:13:997:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:997:26:997:29 | self | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:997:26:997:29 | self | A | main.rs:994:10:994:10 | T | +| main.rs:1005:44:1005:44 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1005:57:1007:5 | { ... } | | main.rs:1005:22:1005:23 | T1 | +| main.rs:1006:9:1006:9 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1009:56:1009:56 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1009:62:1013:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1011:17:1011:17 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1012:18:1012:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1012:18:1012:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1012:18:1012:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1015:16:1039:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1016:13:1016:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1016:17:1016:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:13:1017:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:17:1017:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1019:18:1019:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1019:18:1019:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1019:18:1019:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1019:26:1019:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1020:18:1020:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1020:18:1020:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1020:18:1020:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1020:26:1020:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:13:1022:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:17:1022:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:13:1023:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:17:1023:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1025:18:1025:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1025:18:1025:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1025:26:1025:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1026:18:1026:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1026:18:1026:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1026:18:1026:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:26:1026:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1028:13:1028:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1028:17:1028:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:13:1029:13 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:17:1029:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1031:18:1031:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1031:18:1031:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1031:26:1031:26 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1032:18:1032:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1032:18:1032:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1032:18:1032:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1032:26:1032:26 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1034:13:1034:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1034:17:1034:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1035:31:1035:31 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1037:13:1037:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1037:17:1037:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1038:31:1038:31 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1055:22:1055:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1055:22:1055:22 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1055:35:1057:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1055:35:1057:5 | { ... } | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1056:9:1056:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1056:9:1056:9 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1060:17:1060:20 | SelfParam | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1060:29:1062:9 | { ... } | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1065:21:1065:21 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1068:5:1070:5 | { ... } | | main.rs:1065:17:1065:18 | T2 | +| main.rs:1069:9:1069:9 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1072:16:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1074:18:1074:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1074:18:1074:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:26:1074:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1074:29:1074:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1077:18:1077:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1077:18:1077:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1077:18:1077:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1077:26:1077:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1077:26:1077:37 | id::<...>(...) | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:35:1077:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1081:18:1081:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1081:18:1081:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1081:18:1081:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1081:26:1081:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1081:26:1081:44 | id::<...>(...) | TRef | main.rs:1051:5:1051:25 | dyn Trait | +| main.rs:1081:42:1081:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1084:9:1084:25 | into::<...>(...) | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1087:13:1087:13 | y | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1101:22:1101:25 | SelfParam | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1101:22:1101:25 | SelfParam | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1101:22:1101:25 | SelfParam | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1101:35:1108:9 | { ... } | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1102:19:1102:22 | self | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1102:19:1102:22 | self | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1102:19:1102:22 | self | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1103:43:1103:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1103:50:1103:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1104:43:1104:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1104:50:1104:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1132:10:1132:10 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1132:30:1135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1133:17:1133:17 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1134:18:1134:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1134:18:1134:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1134:18:1134:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1145:16:1165:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1147:13:1147:14 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1147:13:1147:14 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:13:1147:14 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1148:18:1148:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1148:18:1148:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1148:18:1148:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1148:26:1148:27 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1148:26:1148:27 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1148:26:1148:27 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1151:13:1151:14 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1151:13:1151:14 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1151:13:1151:14 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1152:18:1152:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1152:18:1152:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1152:18:1152:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1152:26:1152:27 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1152:26:1152:27 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1152:26:1152:27 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:13:1155:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1155:13:1155:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1156:18:1156:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1156:18:1156:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1156:18:1156:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1156:26:1156:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1156:26:1156:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:13:1159:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1159:13:1159:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:13:1159:14 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1160:18:1160:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1160:18:1160:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1160:18:1160:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1160:26:1160:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1160:26:1160:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1160:26:1160:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:9:1162:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1164:13:1164:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1164:13:1164:13 | x | E | main.rs:1111:5:1112:14 | S1 | +| main.rs:1164:13:1164:13 | x | T | main.rs:1137:5:1137:34 | S4 | +| main.rs:1164:13:1164:13 | x | T.T41 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1164:13:1164:13 | x | T.T42 | main.rs:1139:5:1139:22 | S5 | +| main.rs:1164:13:1164:13 | x | T.T42.T5 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1177:16:1177:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1177:16:1177:24 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1177:27:1177:31 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:21:1179:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1179:21:1179:29 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1179:32:1179:36 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:42:1181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1180:13:1180:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1180:13:1180:16 | self | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1180:22:1180:26 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1186:16:1186:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut.T | main.rs:1184:10:1184:10 | T | +| main.rs:1186:27:1186:31 | value | | main.rs:1184:10:1184:10 | T | +| main.rs:1186:37:1186:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1190:26:1192:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1190:26:1192:9 | { ... } | T | main.rs:1189:10:1189:10 | T | +| main.rs:1196:20:1196:23 | SelfParam | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1196:41:1201:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:41:1201:9 | { ... } | T | main.rs:1195:10:1195:10 | T | +| main.rs:1197:19:1197:22 | self | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1207:16:1252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1208:13:1208:14 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:13:1208:14 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1208:18:1208:37 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:18:1208:37 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1209:18:1209:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1209:18:1209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1209:18:1209:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1209:26:1209:27 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1209:26:1209:27 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1211:17:1211:18 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1211:22:1211:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1212:9:1212:10 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1213:18:1213:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1213:18:1213:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1213:26:1213:27 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:17:1215:18 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:22:1215:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1216:9:1216:10 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1217:18:1217:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1217:18:1217:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1217:18:1217:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1217:26:1217:27 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:17:1219:18 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:22:1219:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1220:9:1220:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:23:1220:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | +| main.rs:1220:28:1220:29 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1221:18:1221:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1221:18:1221:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1221:18:1221:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1221:26:1221:27 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1224:18:1224:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1224:18:1224:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1227:18:1227:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1227:18:1227:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1227:26:1227:26 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1228:18:1228:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1228:18:1228:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1228:18:1228:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1228:26:1228:26 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1230:13:1230:13 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1230:17:1230:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1231:13:1231:13 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1231:17:1231:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1233:18:1233:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1233:18:1233:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1233:18:1233:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1233:26:1233:26 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1234:18:1234:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1234:18:1234:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1234:18:1234:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1234:26:1234:26 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1236:13:1236:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1236:17:1236:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1237:13:1237:13 | y | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1237:17:1237:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1239:18:1239:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1239:18:1239:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1239:18:1239:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1239:26:1239:26 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1240:18:1240:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1240:18:1240:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1240:18:1240:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1240:26:1240:26 | y | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1242:13:1242:13 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1242:17:1242:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1243:31:1243:31 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1245:13:1245:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1245:17:1245:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1246:31:1246:31 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1263:22:1263:22 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1263:22:1263:22 | x | TRef | main.rs:1263:11:1263:19 | T | -| main.rs:1263:35:1265:5 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1263:35:1265:5 | { ... } | TRef | main.rs:1263:11:1263:19 | T | -| main.rs:1264:9:1264:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1264:9:1264:9 | x | TRef | main.rs:1263:11:1263:19 | T | -| main.rs:1268:17:1268:20 | SelfParam | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1268:29:1270:9 | { ... } | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1273:21:1273:21 | x | | main.rs:1273:13:1273:14 | T1 | -| main.rs:1276:5:1278:5 | { ... } | | main.rs:1273:17:1273:18 | T2 | -| main.rs:1277:9:1277:9 | x | | main.rs:1273:13:1273:14 | T1 | -| main.rs:1280:16:1296:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1282:18:1282:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1282:18:1282:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1282:18:1282:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1282:26:1282:31 | id(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1282:29:1282:30 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1285:18:1285:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1285:18:1285:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1285:18:1285:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1285:26:1285:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1285:26:1285:37 | id::<...>(...) | TRef | main.rs:1253:5:1254:14 | S1 | -| main.rs:1285:35:1285:36 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1289:18:1289:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1289:18:1289:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1289:18:1289:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1289:26:1289:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1289:26:1289:44 | id::<...>(...) | TRef | main.rs:1259:5:1259:25 | dyn Trait | -| main.rs:1289:42:1289:43 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1292:9:1292:25 | into::<...>(...) | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1295:13:1295:13 | y | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1309:22:1309:25 | SelfParam | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1309:22:1309:25 | SelfParam | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1309:22:1309:25 | SelfParam | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1309:35:1316:9 | { ... } | | main.rs:1308:15:1308:17 | Snd | -| main.rs:1310:19:1310:22 | self | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1310:19:1310:22 | self | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1310:19:1310:22 | self | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1311:43:1311:82 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | -| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1311:50:1311:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1311:50:1311:81 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1312:43:1312:81 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1312:50:1312:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | -| main.rs:1312:50:1312:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1312:50:1312:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1312:50:1312:80 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1340:10:1340:10 | t | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1340:10:1340:10 | t | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1340:10:1340:10 | t | Snd | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1340:10:1340:10 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1340:10:1340:10 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1340:30:1343:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1341:17:1341:17 | t | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1341:17:1341:17 | t | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1341:17:1341:17 | t | Snd | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1341:17:1341:17 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1341:17:1341:17 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1342:18:1342:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1342:18:1342:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1342:18:1342:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1357:22:1357:25 | SelfParam | | main.rs:1355:5:1358:5 | Self [trait TraitWithAssocType] | -| main.rs:1365:22:1365:25 | SelfParam | | main.rs:1353:5:1353:28 | GenS | -| main.rs:1365:22:1365:25 | SelfParam | GenT | main.rs:1360:10:1360:15 | Output | -| main.rs:1365:44:1367:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1365:44:1367:9 | { ... } | E | main.rs:1360:10:1360:15 | Output | -| main.rs:1365:44:1367:9 | { ... } | T | main.rs:1360:10:1360:15 | Output | -| main.rs:1366:16:1366:19 | self | | main.rs:1353:5:1353:28 | GenS | -| main.rs:1366:16:1366:19 | self | GenT | main.rs:1360:10:1360:15 | Output | -| main.rs:1370:16:1392:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1372:13:1372:14 | p1 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1372:13:1372:14 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1372:13:1372:14 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1373:18:1373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1373:18:1373:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1373:18:1373:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1373:26:1373:27 | p1 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1373:26:1373:27 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1373:26:1373:27 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1376:13:1376:14 | p2 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1376:13:1376:14 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1376:13:1376:14 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1377:18:1377:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1377:18:1377:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1377:18:1377:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1377:26:1377:27 | p2 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1377:26:1377:27 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1377:26:1377:27 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1380:13:1380:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1380:13:1380:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1381:18:1381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1381:18:1381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1381:18:1381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1381:26:1381:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1381:26:1381:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1384:13:1384:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1384:13:1384:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1384:13:1384:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1385:18:1385:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1385:18:1385:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1385:18:1385:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1385:26:1385:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1385:26:1385:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1385:26:1385:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1387:9:1387:55 | g(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1389:13:1389:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1389:13:1389:13 | x | E | main.rs:1319:5:1320:14 | S1 | -| main.rs:1389:13:1389:13 | x | T | main.rs:1345:5:1345:34 | S4 | -| main.rs:1389:13:1389:13 | x | T.T41 | main.rs:1322:5:1323:14 | S2 | -| main.rs:1389:13:1389:13 | x | T.T42 | main.rs:1347:5:1347:22 | S5 | -| main.rs:1389:13:1389:13 | x | T.T42.T5 | main.rs:1322:5:1323:14 | S2 | -| main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1404:16:1404:24 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | -| main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1406:21:1406:29 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | -| main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1407:13:1407:16 | self | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | -| main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1413:16:1413:24 | SelfParam | TRefMut | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1413:16:1413:24 | SelfParam | TRefMut.T | main.rs:1411:10:1411:10 | T | -| main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | -| main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1417:26:1419:9 | { ... } | T | main.rs:1416:10:1416:10 | T | -| main.rs:1423:20:1423:23 | SelfParam | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1423:20:1423:23 | SelfParam | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1423:20:1423:23 | SelfParam | T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1423:41:1428:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1423:41:1428:9 | { ... } | T | main.rs:1422:10:1422:10 | T | -| main.rs:1424:19:1424:22 | self | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1424:19:1424:22 | self | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1424:19:1424:22 | self | T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1434:16:1479:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1435:13:1435:14 | x1 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1435:13:1435:14 | x1 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1435:18:1435:37 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1435:18:1435:37 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1436:18:1436:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1436:26:1436:27 | x1 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1436:26:1436:27 | x1 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1438:17:1438:18 | x2 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1438:22:1438:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1439:9:1439:10 | x2 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1440:18:1440:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:26:1440:27 | x2 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1442:17:1442:18 | x3 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1442:22:1442:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1443:9:1443:10 | x3 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1444:18:1444:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1444:18:1444:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1444:18:1444:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1444:26:1444:27 | x3 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | -| main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1448:18:1448:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1448:26:1448:27 | x4 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1451:18:1451:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1451:18:1451:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1451:18:1451:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1454:18:1454:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1454:26:1454:61 | ...::flatten(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1454:26:1454:61 | ...::flatten(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1462:18:1462:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1462:18:1462:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1462:18:1462:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1466:13:1466:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1467:13:1467:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1469:18:1469:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1469:18:1469:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1469:18:1469:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1472:30:1477:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1473:13:1475:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1473:22:1475:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1478:18:1478:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1478:18:1478:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1478:18:1478:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1496:15:1496:18 | SelfParam | | main.rs:1484:5:1485:19 | S | -| main.rs:1496:15:1496:18 | SelfParam | T | main.rs:1495:10:1495:10 | T | -| main.rs:1496:26:1498:9 | { ... } | | main.rs:1495:10:1495:10 | T | -| main.rs:1497:13:1497:16 | self | | main.rs:1484:5:1485:19 | S | -| main.rs:1497:13:1497:16 | self | T | main.rs:1495:10:1495:10 | T | -| main.rs:1500:15:1500:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1500:15:1500:19 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1500:15:1500:19 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1500:28:1502:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1500:28:1502:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | -| main.rs:1501:13:1501:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1501:14:1501:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1501:14:1501:17 | self | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1501:14:1501:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1504:15:1504:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1504:15:1504:25 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1504:15:1504:25 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1504:34:1506:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1504:34:1506:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | -| main.rs:1505:13:1505:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1505:14:1505:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1505:14:1505:17 | self | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1505:14:1505:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1510:29:1510:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1510:29:1510:33 | SelfParam | TRef | main.rs:1509:5:1512:5 | Self [trait ATrait] | -| main.rs:1511:33:1511:36 | SelfParam | | main.rs:1509:5:1512:5 | Self [trait ATrait] | -| main.rs:1517:29:1517:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1517:29:1517:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1517:29:1517:33 | SelfParam | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1517:43:1519:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1518:17:1518:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1518:17:1518:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1518:17:1518:20 | self | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1522:33:1522:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1522:33:1522:36 | SelfParam | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1522:46:1524:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1523:15:1523:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1523:15:1523:18 | self | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1527:16:1577:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1538:18:1538:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1538:18:1538:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1538:18:1538:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1538:26:1538:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1538:26:1538:41 | ...::m2(...) | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1538:38:1538:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1539:18:1539:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1539:26:1539:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1539:26:1539:41 | ...::m3(...) | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1539:38:1539:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1541:13:1541:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1541:18:1541:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1543:18:1543:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1543:18:1543:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1543:18:1543:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1543:26:1543:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1544:18:1544:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1544:18:1544:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1544:18:1544:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1544:26:1544:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1546:13:1546:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1548:18:1548:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1548:18:1548:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1548:18:1548:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1548:26:1548:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1549:18:1549:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1549:18:1549:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1549:18:1549:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1549:26:1549:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1551:13:1551:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1551:18:1551:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1554:18:1554:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1554:18:1554:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1554:18:1554:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1554:28:1554:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1556:20:1556:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1560:18:1560:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1560:18:1560:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1560:18:1560:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1562:13:1562:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1562:26:1562:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1562:26:1562:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1566:17:1566:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1568:13:1568:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1568:24:1568:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1568:25:1568:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1570:17:1570:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1571:18:1571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1571:18:1571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1571:18:1571:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1574:13:1574:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1574:24:1574:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1574:25:1574:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1575:17:1575:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1576:18:1576:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1576:18:1576:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1576:18:1576:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1583:16:1583:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1583:16:1583:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1586:16:1586:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1586:16:1586:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1586:32:1588:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1586:32:1588:9 | { ... } | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1587:13:1587:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1587:13:1587:16 | self | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1595:16:1595:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1595:16:1595:20 | SelfParam | TRef | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1595:36:1597:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1595:36:1597:9 | { ... } | TRef | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1596:13:1596:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1596:13:1596:16 | self | TRef | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1600:16:1603:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1612:16:1612:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1612:16:1612:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1612:16:1612:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1612:32:1614:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1612:32:1614:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1612:32:1614:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1613:13:1613:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1613:13:1613:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1613:13:1613:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1616:16:1616:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1616:16:1616:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1616:16:1616:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1616:23:1616:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1616:23:1616:23 | x | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1616:23:1616:23 | x | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1616:42:1618:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1616:42:1618:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1616:42:1618:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1617:13:1617:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1617:13:1617:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1617:13:1617:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1621:16:1627:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1626:15:1626:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1626:16:1626:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1637:17:1637:25 | SelfParam | TRefMut | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1638:13:1638:16 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1638:26:1638:29 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1645:31:1647:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1645:31:1647:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1646:13:1646:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1646:14:1646:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1646:15:1646:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1646:16:1646:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1646:16:1646:19 | self | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1649:15:1649:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1649:15:1649:25 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1649:37:1651:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1649:37:1651:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1650:13:1650:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1650:14:1650:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1650:15:1650:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1650:16:1650:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1650:16:1650:19 | self | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1653:15:1653:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1653:15:1653:15 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1653:34:1655:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1653:34:1655:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1654:13:1654:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1654:13:1654:13 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1657:15:1657:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1657:15:1657:15 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1657:34:1659:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1657:34:1659:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1658:13:1658:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1658:14:1658:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1658:15:1658:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1658:16:1658:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1658:16:1658:16 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1662:16:1675:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1663:13:1663:13 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1663:17:1663:20 | S {...} | | main.rs:1642:5:1642:13 | S | -| main.rs:1664:9:1664:9 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1665:9:1665:9 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1666:9:1666:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1666:9:1666:17 | ...::f3(...) | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1666:15:1666:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1666:16:1666:16 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1668:19:1668:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1668:20:1668:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1668:21:1668:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | -| main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1689:43:1692:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1689:43:1692:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1689:43:1692:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1696:46:1700:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1696:46:1700:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1696:46:1700:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1704:40:1709:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1704:40:1709:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1704:40:1709:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1713:30:1713:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1713:30:1713:34 | input | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1713:30:1713:34 | input | T | main.rs:1713:20:1713:27 | T | -| main.rs:1713:69:1720:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1713:69:1720:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1713:69:1720:5 | { ... } | T | main.rs:1713:20:1713:27 | T | -| main.rs:1714:21:1714:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:21:1714:25 | input | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1714:21:1714:25 | input | T | main.rs:1713:20:1713:27 | T | -| main.rs:1716:22:1716:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1716:22:1716:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1716:22:1716:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1723:16:1739:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1724:9:1726:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1724:37:1724:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1724:37:1724:52 | try_same_error(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1724:37:1724:52 | try_same_error(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1724:54:1726:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1725:22:1725:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1725:22:1725:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1725:22:1725:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1728:9:1730:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1728:37:1728:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1728:37:1728:55 | try_convert_error(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1728:37:1728:55 | try_convert_error(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1728:57:1730:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:22:1729:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1729:22:1729:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1729:22:1729:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1732:9:1734:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1732:37:1732:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1732:37:1732:49 | try_chained(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1732:37:1732:49 | try_chained(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1732:51:1734:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1733:22:1733:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1733:22:1733:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1733:22:1733:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1736:9:1738:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1736:37:1736:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1736:37:1736:63 | try_complex(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:65:1738:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1737:22:1737:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1737:22:1737:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1737:22:1737:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1743:16:1834:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1744:13:1744:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1746:17:1746:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1747:17:1747:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1748:13:1748:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1748:17:1748:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1749:13:1749:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1749:13:1749:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1749:21:1749:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1749:21:1749:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1750:13:1750:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1750:17:1750:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1751:13:1751:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1751:17:1751:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1752:13:1752:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1752:17:1752:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1755:26:1755:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1755:26:1755:30 | SelfParam | TRef | main.rs:1754:9:1758:9 | Self [trait MyTrait] | -| main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1761:26:1761:30 | SelfParam | TRef.TArray | main.rs:1760:14:1760:23 | T | -| main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | -| main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1762:17:1762:20 | self | TRef.TArray | main.rs:1760:14:1760:23 | T | -| main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | -| main.rs:1770:17:1770:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1771:37:1771:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1771:38:1771:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:17:1772:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1775:26:1775:30 | SelfParam | TRef.TSlice | main.rs:1774:14:1774:23 | T | -| main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | -| main.rs:1776:17:1776:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1776:17:1776:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1776:17:1776:20 | self | TRef.TSlice | main.rs:1774:14:1774:23 | T | -| main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | -| main.rs:1784:13:1784:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1784:13:1784:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1784:13:1784:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:25:1784:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1784:26:1784:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1785:17:1785:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1785:17:1785:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1785:17:1785:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1786:17:1786:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1786:34:1786:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1786:34:1786:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1786:34:1786:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:17:1787:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1790:26:1790:30 | SelfParam | TRef.T0 | main.rs:1789:14:1789:23 | T | -| main.rs:1790:26:1790:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | -| main.rs:1791:17:1791:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1791:18:1791:21 | self | TRef.T0 | main.rs:1789:14:1789:23 | T | -| main.rs:1791:18:1791:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | -| main.rs:1799:13:1799:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1799:17:1799:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1800:17:1800:17 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1801:37:1801:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1801:38:1801:38 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:17:1802:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1805:26:1805:30 | SelfParam | TRef.TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1806:18:1806:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1806:18:1806:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1806:18:1806:21 | self | TRef.TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | -| main.rs:1814:13:1814:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1814:17:1814:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1815:17:1815:17 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1816:13:1816:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1816:17:1816:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1816:33:1816:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1816:34:1816:34 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:17:1817:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1820:26:1820:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1820:26:1820:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1820:26:1820:30 | SelfParam | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | -| main.rs:1820:39:1822:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1820:39:1822:13 | { ... } | TRef | main.rs:1819:14:1819:23 | T | -| main.rs:1821:26:1821:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1821:29:1821:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1821:29:1821:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1821:29:1821:32 | self | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | -| main.rs:1824:31:1826:13 | { ... } | | main.rs:1819:14:1819:23 | T | -| main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | &mut | -| main.rs:1831:26:1831:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1831:26:1831:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:26:1832:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1832:46:1832:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1832:47:1832:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1832:47:1832:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:13:1833:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:17:1833:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1839:16:1851:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1840:13:1840:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1840:17:1840:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1840:17:1840:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1840:25:1840:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:13:1841:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:17:1841:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:17:1841:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:25:1841:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1845:17:1847:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1847:16:1849:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1864:30:1866:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1865:13:1865:31 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1872:16:1872:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1872:22:1872:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1872:41:1877:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1873:13:1876:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1874:20:1874:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1874:29:1874:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1875:20:1875:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1882:23:1882:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1883:13:1883:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1884:13:1884:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1890:16:1890:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1890:22:1890:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1890:41:1895:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1891:13:1894:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1892:20:1892:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1892:29:1892:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1893:20:1893:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1900:23:1900:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1901:13:1901:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1902:13:1902:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1908:16:1908:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1908:22:1908:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1908:41:1913:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1909:13:1912:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1910:20:1910:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1910:29:1910:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1911:20:1911:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1917:23:1917:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1918:13:1918:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1919:13:1919:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1925:16:1925:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1925:22:1925:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1925:41:1930:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1926:13:1929:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1927:20:1927:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1927:29:1927:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1928:20:1928:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1934:23:1934:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1935:13:1935:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1936:13:1936:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1942:16:1942:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1942:22:1942:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1942:41:1947:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1943:13:1946:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1944:20:1944:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1944:29:1944:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1945:20:1945:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1951:23:1951:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1952:13:1952:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1953:13:1953:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1959:19:1959:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1959:25:1959:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1959:44:1964:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1960:13:1963:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1961:20:1961:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1961:29:1961:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1962:20:1962:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1968:26:1968:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1969:13:1969:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1970:13:1970:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1976:18:1976:21 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1976:24:1976:26 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1976:43:1981:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1977:13:1980:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1978:20:1978:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1978:29:1978:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1979:20:1979:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1985:25:1985:33 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1986:13:1986:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1987:13:1987:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1993:19:1993:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1993:25:1993:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1993:44:1998:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1994:13:1997:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1995:20:1995:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1995:29:1995:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1996:20:1996:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2002:26:2002:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2003:13:2003:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2004:13:2004:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2010:16:2010:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2010:22:2010:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2010:40:2015:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2011:13:2014:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2012:20:2012:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2012:30:2012:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:20:2013:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2019:23:2019:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2020:13:2020:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2021:13:2021:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2027:16:2027:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2027:22:2027:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2027:40:2032:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2028:13:2031:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2029:20:2029:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2029:30:2029:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2030:20:2030:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2036:23:2036:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2037:13:2037:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2038:13:2038:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2044:16:2044:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2044:30:2049:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2045:13:2048:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2046:21:2046:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2047:21:2047:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2054:16:2054:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2054:30:2059:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2055:13:2058:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2056:21:2056:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2057:21:2057:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:13:2064:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2064:13:2064:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:23:2064:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:23:2064:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2064:34:2064:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:34:2064:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2064:34:2064:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:44:2064:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:44:2064:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:22:2067:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:13:2068:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2068:13:2068:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:23:2068:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:34:2068:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2068:34:2068:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:44:2068:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2073:24:2073:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2073:24:2073:28 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2073:31:2073:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2073:31:2073:35 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2073:75:2075:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2073:75:2075:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2074:14:2074:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2074:14:2074:17 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2074:23:2074:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2074:23:2074:26 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2074:43:2074:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2074:45:2074:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2074:45:2074:49 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2074:55:2074:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2074:55:2074:59 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2077:15:2077:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2077:15:2077:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2077:22:2077:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2077:22:2077:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2077:44:2079:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:13:2078:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2078:13:2078:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2078:13:2078:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:13:2078:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:22:2078:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2078:22:2078:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2078:33:2078:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2078:33:2078:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2078:33:2078:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:42:2078:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2078:42:2078:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2081:15:2081:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2081:15:2081:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2081:22:2081:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2081:22:2081:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2081:44:2083:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:13:2082:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2082:13:2082:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2082:13:2082:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:13:2082:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:23:2082:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2082:23:2082:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2082:34:2082:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2082:34:2082:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2082:34:2082:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:44:2082:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2082:44:2082:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2085:15:2085:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2085:15:2085:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2085:22:2085:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2085:22:2085:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2085:44:2087:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:13:2086:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2086:13:2086:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2086:13:2086:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:13:2086:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:22:2086:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2086:22:2086:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2086:33:2086:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2086:33:2086:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2086:33:2086:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:42:2086:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2086:42:2086:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2089:15:2089:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2089:15:2089:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2089:22:2089:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2089:22:2089:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2089:44:2091:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:13:2090:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2090:13:2090:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2090:13:2090:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:13:2090:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:23:2090:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2090:23:2090:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2090:34:2090:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2090:34:2090:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2090:34:2090:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:44:2090:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2090:44:2090:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2094:26:2094:26 | a | | main.rs:2094:18:2094:23 | T | -| main.rs:2094:32:2094:32 | b | | main.rs:2094:18:2094:23 | T | -| main.rs:2095:9:2095:9 | a | | main.rs:2094:18:2094:23 | T | -| main.rs:2095:13:2095:13 | b | | main.rs:2094:18:2094:23 | T | -| main.rs:2098:16:2229:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2102:23:2102:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2102:31:2102:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:23:2103:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:31:2103:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:23:2104:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:30:2104:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:23:2105:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:31:2105:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:23:2106:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:30:2106:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:23:2107:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:32:2107:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:23:2110:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:31:2110:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:23:2111:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:31:2111:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:23:2112:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:31:2112:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:23:2113:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:31:2113:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:23:2114:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:31:2114:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:39:2115:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:45:2115:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2118:17:2118:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2118:34:2118:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:9:2119:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:27:2119:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:17:2121:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:34:2121:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:9:2122:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:27:2122:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:17:2124:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:34:2124:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2125:9:2125:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2125:27:2125:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:17:2127:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:34:2127:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:27:2128:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:17:2130:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:34:2130:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:27:2131:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:26:2134:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:34:2134:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:25:2135:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:33:2135:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:26:2136:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:34:2136:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:23:2137:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:32:2137:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:23:2138:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:32:2138:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:17:2141:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:37:2141:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:9:2142:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:30:2142:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2144:17:2144:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2144:36:2144:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2145:9:2145:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2145:29:2145:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2147:17:2147:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2147:37:2147:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2148:9:2148:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2148:30:2148:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2150:17:2150:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2150:34:2150:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2151:9:2151:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2151:28:2151:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2153:17:2153:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2153:34:2153:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2154:9:2154:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2154:28:2154:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2156:24:2156:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2157:24:2157:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2160:13:2160:14 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2160:18:2160:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2161:13:2161:14 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2161:18:2161:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2164:23:2164:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2164:29:2164:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2165:23:2165:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2165:29:2165:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2166:23:2166:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2166:28:2166:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2167:23:2167:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2167:29:2167:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2168:23:2168:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2168:28:2168:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2169:23:2169:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2169:29:2169:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2172:24:2172:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2172:29:2172:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2173:24:2173:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2173:29:2173:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2174:24:2174:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2174:29:2174:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2175:24:2175:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2175:29:2175:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2176:24:2176:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2176:29:2176:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2179:17:2179:31 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2179:35:2179:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2180:9:2180:23 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2180:28:2180:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2182:17:2182:31 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2182:35:2182:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2183:9:2183:23 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2183:28:2183:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2185:17:2185:31 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2185:35:2185:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2186:9:2186:23 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2186:28:2186:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2188:17:2188:31 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2188:35:2188:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2189:9:2189:23 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2189:28:2189:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2191:17:2191:31 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2191:35:2191:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2192:9:2192:23 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2192:28:2192:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2195:27:2195:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2195:32:2195:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2196:26:2196:27 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2196:31:2196:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2197:27:2197:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2197:32:2197:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2198:24:2198:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2198:30:2198:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2199:24:2199:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2199:30:2199:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2202:17:2202:34 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2202:38:2202:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2203:9:2203:26 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2203:31:2203:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2205:17:2205:33 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2205:37:2205:38 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2206:9:2206:25 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2206:30:2206:31 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2208:17:2208:34 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2208:38:2208:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2209:9:2209:26 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2209:31:2209:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2211:17:2211:31 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2211:35:2211:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2212:9:2212:23 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2212:29:2212:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2214:17:2214:31 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2214:35:2214:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2215:9:2215:23 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2215:29:2215:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2218:25:2218:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2219:25:2219:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2223:30:2223:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2228:30:2228:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2238:18:2238:21 | SelfParam | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2238:24:2238:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2241:25:2243:5 | { ... } | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2246:9:2246:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | -| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRefMut | main.rs:2253:5:2253:14 | S2 | -| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | &mut | -| main.rs:2260:13:2260:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | -| main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | -| main.rs:2270:22:2278:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2271:9:2271:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2271:9:2271:12 | f1(...) | dyn(Output) | main.rs:2235:5:2235:14 | S1 | -| main.rs:2272:9:2272:12 | f2(...) | | main.rs:2245:16:2245:39 | impl ... | -| main.rs:2273:9:2273:12 | f3(...) | | main.rs:2249:16:2249:39 | impl ... | -| main.rs:2274:9:2274:12 | f4(...) | | main.rs:2266:16:2266:39 | impl ... | -| main.rs:2276:13:2276:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2276:17:2276:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2277:9:2277:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2288:15:2288:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2288:15:2288:19 | SelfParam | TRef | main.rs:2287:5:2289:5 | Self [trait Trait1] | -| main.rs:2288:22:2288:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2292:15:2292:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2292:15:2292:19 | SelfParam | TRef | main.rs:2291:5:2293:5 | Self [trait Trait2] | -| main.rs:2292:22:2292:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2296:15:2296:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2296:15:2296:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | -| main.rs:2296:22:2296:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2300:15:2300:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2300:15:2300:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | -| main.rs:2300:22:2300:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2308:18:2308:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2308:18:2308:22 | SelfParam | TRef | main.rs:2307:5:2309:5 | Self [trait MyTrait] | -| main.rs:2312:18:2312:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2312:18:2312:22 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | -| main.rs:2312:31:2314:9 | { ... } | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2318:18:2318:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2318:18:2318:22 | SelfParam | TRef | main.rs:2285:5:2285:22 | S3 | -| main.rs:2318:18:2318:22 | SelfParam | TRef.T3 | main.rs:2317:10:2317:17 | T | -| main.rs:2318:30:2321:9 | { ... } | | main.rs:2317:10:2317:17 | T | -| main.rs:2319:25:2319:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2319:25:2319:28 | self | TRef | main.rs:2285:5:2285:22 | S3 | -| main.rs:2319:25:2319:28 | self | TRef.T3 | main.rs:2317:10:2317:17 | T | -| main.rs:2328:41:2328:41 | t | | main.rs:2328:26:2328:38 | B | -| main.rs:2328:52:2330:5 | { ... } | | main.rs:2328:23:2328:23 | A | -| main.rs:2329:9:2329:9 | t | | main.rs:2328:26:2328:38 | B | -| main.rs:2332:34:2332:34 | x | | main.rs:2332:24:2332:31 | T | -| main.rs:2332:59:2334:5 | { ... } | | main.rs:2332:43:2332:57 | impl ... | -| main.rs:2332:59:2334:5 | { ... } | impl(T) | main.rs:2332:24:2332:31 | T | -| main.rs:2333:12:2333:12 | x | | main.rs:2332:24:2332:31 | T | -| main.rs:2336:34:2336:34 | x | | main.rs:2336:24:2336:31 | T | -| main.rs:2336:67:2338:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2336:67:2338:5 | { ... } | T | main.rs:2336:50:2336:64 | impl ... | -| main.rs:2336:67:2338:5 | { ... } | T.impl(T) | main.rs:2336:24:2336:31 | T | -| main.rs:2337:17:2337:17 | x | | main.rs:2336:24:2336:31 | T | -| main.rs:2340:34:2340:34 | x | | main.rs:2340:24:2340:31 | T | -| main.rs:2340:78:2342:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2340:78:2342:5 | { ... } | T0 | main.rs:2340:44:2340:58 | impl ... | -| main.rs:2340:78:2342:5 | { ... } | T0.impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2340:78:2342:5 | { ... } | T1 | main.rs:2340:61:2340:75 | impl ... | -| main.rs:2340:78:2342:5 | { ... } | T1.impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2341:9:2341:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2341:13:2341:13 | x | | main.rs:2340:24:2340:31 | T | -| main.rs:2341:28:2341:28 | x | | main.rs:2340:24:2340:31 | T | -| main.rs:2344:26:2344:26 | t | | main.rs:2344:29:2344:43 | impl ... | -| main.rs:2344:51:2346:5 | { ... } | | main.rs:2344:23:2344:23 | A | -| main.rs:2345:9:2345:9 | t | | main.rs:2344:29:2344:43 | impl ... | -| main.rs:2348:16:2362:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2349:13:2349:13 | x | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2349:17:2349:20 | f1(...) | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2350:9:2350:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2351:9:2351:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2352:13:2352:13 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2352:17:2352:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2353:32:2353:32 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2354:13:2354:13 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2354:17:2354:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2355:32:2355:32 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | | main.rs:2332:43:2332:57 | impl ... | -| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T | main.rs:2336:50:2336:64 | impl ... | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0 | main.rs:2340:44:2340:58 | impl ... | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1 | main.rs:2340:61:2340:75 | impl ... | -| main.rs:2372:16:2372:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2372:16:2372:20 | SelfParam | TRef | main.rs:2368:5:2369:13 | S | -| main.rs:2372:31:2374:9 | { ... } | | main.rs:2368:5:2369:13 | S | -| main.rs:2383:26:2385:9 | { ... } | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2383:26:2385:9 | { ... } | T | main.rs:2382:10:2382:10 | T | -| main.rs:2384:13:2384:38 | MyVec {...} | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2387:17:2387:25 | SelfParam | TRefMut | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2387:17:2387:25 | SelfParam | TRefMut.T | main.rs:2382:10:2382:10 | T | -| main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | -| main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2388:13:2388:16 | self | TRefMut | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2388:13:2388:16 | self | TRefMut.T | main.rs:2382:10:2382:10 | T | -| main.rs:2388:28:2388:32 | value | | main.rs:2382:10:2382:10 | T | -| main.rs:2396:18:2396:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2396:18:2396:22 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2396:18:2396:22 | SelfParam | TRef.T | main.rs:2392:10:2392:10 | T | -| main.rs:2396:25:2396:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2396:56:2398:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2396:56:2398:9 | { ... } | TRef | main.rs:2392:10:2392:10 | T | -| main.rs:2397:13:2397:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2397:14:2397:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2397:14:2397:17 | self | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2397:14:2397:17 | self | TRef.T | main.rs:2392:10:2392:10 | T | -| main.rs:2397:24:2397:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2401:22:2401:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2401:22:2401:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2401:22:2401:26 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | -| main.rs:2401:35:2403:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2402:17:2402:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2402:17:2402:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2402:17:2402:21 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | -| main.rs:2405:37:2405:37 | a | | main.rs:2405:20:2405:34 | T | -| main.rs:2405:43:2405:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2409:9:2409:9 | a | | main.rs:2405:20:2405:34 | T | -| main.rs:2409:11:2409:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2412:16:2423:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2413:17:2413:19 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2413:23:2413:34 | ...::new(...) | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2414:9:2414:11 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2415:9:2415:11 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2417:13:2417:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2417:13:2417:14 | xs | TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2417:26:2417:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2418:17:2418:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2418:17:2418:18 | xs | TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2420:29:2420:31 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2422:9:2422:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2422:23:2422:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2422:24:2422:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2422:24:2422:25 | xs | TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2427:16:2429:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2428:25:2428:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2428:25:2428:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2428:25:2428:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2428:38:2428:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2428:38:2428:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2437:19:2437:22 | SelfParam | | main.rs:2433:5:2438:5 | Self [trait MyAdd] | -| main.rs:2437:25:2437:27 | rhs | | main.rs:2433:17:2433:26 | Rhs | -| main.rs:2444:19:2444:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2444:25:2444:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2444:45:2446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2445:13:2445:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2453:19:2453:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2453:25:2453:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2453:25:2453:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2453:46:2455:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2454:14:2454:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2454:14:2454:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2462:19:2462:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2462:25:2462:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2462:46:2468:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2463:16:2463:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2477:19:2477:22 | SelfParam | | main.rs:2471:5:2471:19 | S | -| main.rs:2477:19:2477:22 | SelfParam | T | main.rs:2473:10:2473:17 | T | -| main.rs:2477:25:2477:29 | other | | main.rs:2471:5:2471:19 | S | -| main.rs:2477:25:2477:29 | other | T | main.rs:2473:10:2473:17 | T | -| main.rs:2477:54:2479:9 | { ... } | | main.rs:2471:5:2471:19 | S | -| main.rs:2478:16:2478:19 | self | | main.rs:2471:5:2471:19 | S | -| main.rs:2478:16:2478:19 | self | T | main.rs:2473:10:2473:17 | T | -| main.rs:2478:31:2478:35 | other | | main.rs:2471:5:2471:19 | S | -| main.rs:2478:31:2478:35 | other | T | main.rs:2473:10:2473:17 | T | -| main.rs:2486:19:2486:22 | SelfParam | | main.rs:2471:5:2471:19 | S | -| main.rs:2486:19:2486:22 | SelfParam | T | main.rs:2482:10:2482:17 | T | -| main.rs:2486:25:2486:29 | other | | main.rs:2482:10:2482:17 | T | -| main.rs:2486:51:2488:9 | { ... } | | main.rs:2471:5:2471:19 | S | -| main.rs:2487:16:2487:19 | self | | main.rs:2471:5:2471:19 | S | -| main.rs:2487:16:2487:19 | self | T | main.rs:2482:10:2482:17 | T | -| main.rs:2487:31:2487:35 | other | | main.rs:2482:10:2482:17 | T | -| main.rs:2498:19:2498:22 | SelfParam | | main.rs:2471:5:2471:19 | S | -| main.rs:2498:19:2498:22 | SelfParam | T | main.rs:2491:14:2491:14 | T | -| main.rs:2498:25:2498:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2498:25:2498:29 | other | TRef | main.rs:2491:14:2491:14 | T | -| main.rs:2498:55:2500:9 | { ... } | | main.rs:2471:5:2471:19 | S | -| main.rs:2499:16:2499:19 | self | | main.rs:2471:5:2471:19 | S | -| main.rs:2499:16:2499:19 | self | T | main.rs:2491:14:2491:14 | T | -| main.rs:2499:31:2499:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2499:31:2499:35 | other | TRef | main.rs:2491:14:2491:14 | T | -| main.rs:2505:20:2505:24 | value | | main.rs:2503:18:2503:18 | T | -| main.rs:2510:20:2510:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2510:40:2512:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2511:13:2511:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2517:20:2517:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2517:41:2523:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2518:16:2518:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2528:21:2528:25 | value | | main.rs:2526:19:2526:19 | T | -| main.rs:2528:31:2528:31 | x | | main.rs:2526:5:2529:5 | Self [trait MyFrom2] | -| main.rs:2533:21:2533:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2533:33:2533:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2533:48:2535:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2534:13:2534:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2540:21:2540:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2540:34:2540:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2540:49:2546:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2541:16:2541:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2551:15:2551:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | -| main.rs:2554:15:2554:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | -| main.rs:2559:15:2559:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2559:31:2561:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2560:13:2560:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2564:15:2564:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2564:32:2566:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2565:13:2565:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:15:2571:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2571:31:2573:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:15:2576:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2576:32:2578:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2581:16:2606:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2582:13:2582:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:9:2583:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:18:2583:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:18:2584:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2584:19:2584:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:11:2587:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2587:26:2587:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:11:2588:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:24:2588:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:11:2589:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:24:2589:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2589:25:2589:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2591:13:2591:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2591:17:2591:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2591:30:2591:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2592:13:2592:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2592:17:2592:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2592:30:2592:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2593:13:2593:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2593:38:2593:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2594:9:2594:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2594:23:2594:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2594:30:2594:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2595:9:2595:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2595:23:2595:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2595:29:2595:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2596:9:2596:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2596:27:2596:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2596:34:2596:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2598:9:2598:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2598:17:2598:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2599:9:2599:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2599:17:2599:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2600:9:2600:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2600:18:2600:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2601:9:2601:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2601:18:2601:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2602:9:2602:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2602:25:2602:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2603:25:2603:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2604:9:2604:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2604:25:2604:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2605:25:2605:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2613:26:2615:9 | { ... } | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2614:13:2614:25 | MyCallable {...} | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2617:17:2617:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2617:17:2617:21 | SelfParam | TRef | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2617:31:2619:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2622:16:2729:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:9:2625:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:18:2625:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:28:2625:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2626:9:2626:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2626:18:2626:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2626:43:2626:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:9:2627:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:18:2627:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:40:2627:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:13:2629:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:21:2629:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:22:2629:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2630:9:2630:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:18:2630:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2630:24:2630:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2632:13:2632:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:21:2632:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:22:2632:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2633:9:2633:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2633:18:2633:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2633:24:2633:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2635:13:2635:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2635:13:2635:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2635:31:2635:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2636:9:2636:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2636:18:2636:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2636:18:2636:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2636:24:2636:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2638:13:2638:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2638:13:2638:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2638:31:2638:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2639:9:2639:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2639:18:2639:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2639:18:2639:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2639:24:2639:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2641:17:2641:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:28:2641:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:29:2641:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:29:2641:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2641:36:2641:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:36:2641:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2641:43:2641:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:43:2641:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2642:9:2642:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2642:18:2642:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2642:19:2642:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | -| main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2643:32:2643:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2644:9:2644:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2644:18:2644:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2644:27:2644:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2646:13:2646:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2647:9:2651:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:13:2648:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2648:26:2648:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2648:26:2648:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2649:13:2649:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2649:26:2649:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2649:26:2649:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2650:13:2650:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2650:26:2650:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2650:26:2650:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2652:9:2652:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2652:18:2652:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2652:27:2652:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2654:13:2654:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2655:9:2659:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2655:10:2659:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2656:13:2656:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2656:26:2656:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2656:26:2656:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2657:13:2657:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2657:26:2657:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2657:26:2657:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2658:13:2658:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2658:26:2658:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2658:26:2658:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2660:9:2660:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:18:2660:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2660:27:2660:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2662:13:2662:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:25:2662:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:26:2662:42 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2662:45:2662:61 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2662:64:2662:80 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2663:9:2667:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2664:12:2664:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2665:9:2667:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2671:9:2671:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2671:18:2671:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2671:24:2671:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2672:9:2672:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2672:18:2672:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2672:19:2672:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2672:19:2672:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2672:28:2672:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2673:13:2673:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2673:21:2673:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2674:18:2674:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2675:13:2675:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2675:26:2675:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2676:9:2676:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:18:2676:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2676:19:2676:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2676:20:2676:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2676:26:2676:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2676:32:2676:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2676:38:2676:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2676:50:2676:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2678:13:2678:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2679:9:2682:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2680:20:2680:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2681:18:2681:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2683:9:2683:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2683:18:2683:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2683:25:2683:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2688:9:2688:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2688:24:2688:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2690:13:2690:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2690:13:2690:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:13:2690:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2690:32:2690:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2690:33:2690:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2691:9:2691:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2691:18:2691:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:18:2691:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2691:18:2691:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2691:25:2691:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2693:22:2693:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2693:23:2693:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2694:9:2694:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:25:2694:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2696:13:2696:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2696:21:2696:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2696:31:2696:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2696:32:2696:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2697:9:2697:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2697:18:2697:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2697:24:2697:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2699:13:2699:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2699:13:2699:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:13:2699:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2699:13:2699:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2699:32:2699:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2699:33:2699:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2700:9:2700:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2700:18:2700:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2700:18:2700:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:18:2700:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2700:18:2700:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2700:24:2700:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:17:2702:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2702:17:2702:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:25:2702:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2702:25:2702:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:9:2703:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2703:9:2703:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:20:2703:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2704:9:2704:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:18:2704:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2704:18:2704:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:24:2704:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2708:17:2711:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:13:2710:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:29:2710:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2713:17:2713:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2713:17:2713:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2713:24:2713:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2713:24:2713:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2714:9:2714:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2714:9:2714:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2714:24:2714:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2714:24:2714:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2714:33:2714:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2714:33:2714:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2715:9:2715:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2715:9:2715:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2715:24:2715:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2715:24:2715:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2715:33:2715:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2715:33:2715:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2716:9:2716:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2716:20:2716:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2716:20:2716:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2716:32:2716:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2717:9:2717:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2717:22:2717:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2717:22:2717:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2717:36:2717:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2718:9:2718:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2718:13:2718:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2718:29:2718:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2718:29:2718:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2718:41:2718:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2719:9:2719:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2719:13:2719:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2719:29:2719:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2719:30:2719:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2719:30:2719:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2719:35:2719:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2723:17:2723:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2725:17:2728:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2725:23:2725:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2726:9:2728:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2727:13:2727:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2739:40:2741:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2739:40:2741:9 | { ... } | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2739:40:2741:9 | { ... } | T.T | main.rs:2738:10:2738:19 | T | -| main.rs:2743:30:2745:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2743:30:2745:9 | { ... } | T | main.rs:2738:10:2738:19 | T | -| main.rs:2747:19:2747:22 | SelfParam | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2747:19:2747:22 | SelfParam | T | main.rs:2738:10:2738:19 | T | -| main.rs:2747:33:2749:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2747:33:2749:9 | { ... } | T | main.rs:2738:10:2738:19 | T | -| main.rs:2748:13:2748:16 | self | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2748:13:2748:16 | self | T | main.rs:2738:10:2738:19 | T | -| main.rs:2760:15:2760:15 | x | | main.rs:2760:12:2760:12 | T | -| main.rs:2760:26:2762:5 | { ... } | | main.rs:2760:12:2760:12 | T | -| main.rs:2761:9:2761:9 | x | | main.rs:2760:12:2760:12 | T | -| main.rs:2764:16:2786:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2765:13:2765:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2765:13:2765:14 | x1 | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2765:13:2765:14 | x1 | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2766:13:2766:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2766:13:2766:14 | x2 | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2766:13:2766:14 | x2 | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2767:13:2767:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2767:13:2767:14 | x3 | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2767:13:2767:14 | x3 | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2768:13:2768:14 | x4 | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2768:13:2768:14 | x4 | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2768:18:2768:48 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2768:18:2768:48 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2768:35:2768:47 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2769:13:2769:14 | x5 | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2769:13:2769:14 | x5 | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2769:18:2769:42 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2769:18:2769:42 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2769:29:2769:41 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2773:21:2773:33 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2774:13:2774:15 | x10 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2774:13:2774:15 | x10 | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2774:19:2777:9 | S5::<...> {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2774:19:2777:9 | S5::<...> {...} | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2778:13:2778:15 | x11 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2778:19:2778:34 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2779:13:2779:15 | x12 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2779:19:2779:33 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2780:13:2780:15 | x13 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2780:19:2783:9 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2782:20:2782:32 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2784:13:2784:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:19:2784:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2785:13:2785:15 | x15 | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2785:13:2785:15 | x15 | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2785:19:2785:37 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2785:19:2785:37 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2794:35:2796:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2794:35:2796:9 | { ... } | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2794:35:2796:9 | { ... } | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2795:13:2795:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2795:14:2795:18 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2795:21:2795:25 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2797:16:2797:19 | SelfParam | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2797:22:2797:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2800:16:2834:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2801:13:2801:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2801:13:2801:13 | a | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2801:13:2801:13 | a | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2801:17:2801:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2801:17:2801:30 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2801:17:2801:30 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:17:2802:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2802:17:2802:17 | b | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:17:2802:17 | b | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:21:2802:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2802:21:2802:34 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:21:2802:34 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:13:2803:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2803:22:2803:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2803:22:2803:35 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:22:2803:35 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:13:2804:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2804:26:2804:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2804:26:2804:39 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:26:2804:39 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:13:2805:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2805:30:2805:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2805:30:2805:43 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:30:2805:43 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2807:9:2807:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:9:2807:9 | a | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2807:9:2807:9 | a | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2808:9:2808:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:9:2808:9 | b | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2808:9:2808:9 | b | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2821:13:2821:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2821:20:2821:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2822:13:2822:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2822:22:2822:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2823:13:2823:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2823:23:2823:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2825:20:2825:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2827:13:2827:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2827:30:2827:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2827:30:2827:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2827:30:2827:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2827:30:2827:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2828:25:2828:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2828:25:2828:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2828:25:2828:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2828:25:2828:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2832:13:2832:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2832:17:2832:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2832:18:2832:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2832:18:2832:31 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2832:18:2832:31 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2833:9:2833:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2839:27:2861:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2840:13:2840:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:27:2840:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:27:2840:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:36:2840:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2843:15:2843:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2843:15:2843:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2844:24:2846:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2845:26:2845:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2845:26:2845:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2845:26:2845:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2847:22:2850:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2849:26:2849:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2854:13:2854:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2854:13:2854:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:26:2854:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2854:26:2854:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:35:2854:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2854:35:2854:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:44:2854:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2855:15:2855:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2855:15:2855:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2856:26:2859:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2858:26:2858:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2870:36:2872:9 | { ... } | | main.rs:2867:5:2867:22 | Path | -| main.rs:2871:13:2871:19 | Path {...} | | main.rs:2867:5:2867:22 | Path | -| main.rs:2874:29:2874:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2874:29:2874:33 | SelfParam | TRef | main.rs:2867:5:2867:22 | Path | -| main.rs:2874:59:2876:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2874:59:2876:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2874:59:2876:9 | { ... } | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2875:16:2875:29 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2882:39:2884:9 | { ... } | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2883:13:2883:22 | PathBuf {...} | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2892:18:2892:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2892:18:2892:22 | SelfParam | TRef | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2892:34:2896:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2892:34:2896:9 | { ... } | TRef | main.rs:2867:5:2867:22 | Path | -| main.rs:2894:33:2894:43 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | -| main.rs:2895:13:2895:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2899:16:2907:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2900:13:2900:17 | path1 | | main.rs:2867:5:2867:22 | Path | -| main.rs:2900:21:2900:31 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | -| main.rs:2901:21:2901:25 | path1 | | main.rs:2867:5:2867:22 | Path | -| main.rs:2904:13:2904:20 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2904:24:2904:37 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2905:24:2905:31 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2912:14:2912:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2912:14:2912:18 | SelfParam | TRef | main.rs:2911:5:2913:5 | Self [trait MyTrait] | -| main.rs:2919:14:2919:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2919:14:2919:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2919:14:2919:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2919:28:2921:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2920:13:2920:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2920:13:2920:16 | self | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2920:13:2920:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2925:14:2925:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2925:14:2925:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2925:14:2925:18 | SelfParam | TRef.T | main.rs:2915:5:2916:19 | S | -| main.rs:2925:14:2925:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2925:28:2927:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:13:2926:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2926:13:2926:16 | self | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2926:13:2926:16 | self | TRef.T | main.rs:2915:5:2916:19 | S | -| main.rs:2926:13:2926:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2931:15:2931:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2931:15:2931:19 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2931:15:2931:19 | SelfParam | TRef.T | main.rs:2930:10:2930:16 | T | -| main.rs:2931:33:2933:9 | { ... } | | main.rs:2915:5:2916:19 | S | -| main.rs:2931:33:2933:9 | { ... } | T | main.rs:2915:5:2916:19 | S | -| main.rs:2931:33:2933:9 | { ... } | T.T | main.rs:2930:10:2930:16 | T | -| main.rs:2932:17:2932:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2932:17:2932:20 | self | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2932:17:2932:20 | self | TRef.T | main.rs:2930:10:2930:16 | T | -| main.rs:2936:14:2936:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2936:48:2953:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2936:48:2953:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2936:48:2953:5 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:2936:48:2953:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:20:2937:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2947:12:2947:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2949:13:2949:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2949:13:2949:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2951:13:2951:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2951:13:2951:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2957:22:2961:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2958:18:2958:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2958:33:2960:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2959:13:2959:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2966:11:2966:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2966:30:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2969:13:2971:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2969:16:2969:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2969:21:2971:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2977:20:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2982:18:2982:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2982:18:2982:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2986:20:2988:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2991:11:2991:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2991:30:2999:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2992:13:2992:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2992:17:2996:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2993:13:2995:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2993:16:2993:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2993:21:2995:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2997:18:2997:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2997:18:2997:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2997:18:2997:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2997:29:2997:29 | a | | {EXTERNAL LOCATION} | () | -| main.rs:3003:16:3050:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3005:13:3005:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3005:13:3005:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:26:3009:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:3009:26:3009:28 | opt | T | main.rs:3009:23:3009:23 | T | -| main.rs:3009:42:3009:42 | x | | main.rs:3009:23:3009:23 | T | -| main.rs:3009:48:3009:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3012:9:3012:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3019:13:3019:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3019:17:3019:39 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3020:13:3020:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3020:13:3020:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3020:13:3020:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3020:40:3020:40 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3021:13:3021:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3021:13:3021:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3021:17:3021:52 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3021:17:3021:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3023:13:3023:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3023:13:3023:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:17:3025:9 | ...::B::<...> {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3024:20:3024:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3027:29:3027:29 | e | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3027:29:3027:29 | e | T1 | main.rs:3027:26:3027:26 | T | -| main.rs:3027:29:3027:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3027:53:3027:53 | x | | main.rs:3027:26:3027:26 | T | -| main.rs:3027:59:3027:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3030:13:3030:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3030:17:3032:9 | ...::B {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3031:20:3031:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3033:9:3033:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3033:23:3033:23 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3036:13:3036:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3036:13:3036:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3036:13:3036:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3040:29:3040:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3040:29:3040:31 | res | E | main.rs:3040:26:3040:26 | E | -| main.rs:3040:29:3040:31 | res | T | main.rs:3040:23:3040:23 | T | -| main.rs:3040:48:3040:48 | x | | main.rs:3040:26:3040:26 | E | -| main.rs:3040:54:3040:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3043:9:3043:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3043:23:3043:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3045:17:3045:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3045:17:3045:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3045:21:3045:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3045:21:3045:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3046:9:3046:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3046:9:3046:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3049:9:3049:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3049:9:3049:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3056:14:3056:17 | SelfParam | | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3059:14:3059:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3059:14:3059:18 | SelfParam | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3059:21:3059:25 | other | | {EXTERNAL LOCATION} | & | -| main.rs:3059:21:3059:25 | other | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3059:44:3061:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3059:44:3061:9 | { ... } | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3060:13:3060:16 | self | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3073:14:3073:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3073:28:3075:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3074:13:3074:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3080:14:3080:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3080:14:3080:17 | SelfParam | TRef | main.rs:3078:10:3078:10 | T | -| main.rs:3080:28:3082:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3080:28:3082:9 | { ... } | TRef | main.rs:3078:10:3078:10 | T | -| main.rs:3081:13:3081:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3081:13:3081:16 | self | TRef | main.rs:3078:10:3078:10 | T | -| main.rs:3085:25:3089:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3091:12:3099:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3092:13:3092:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3093:13:3093:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3093:17:3093:18 | &1 | | {EXTERNAL LOCATION} | & | -| main.rs:3094:17:3094:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3094:21:3094:21 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3097:13:3097:13 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3098:23:3098:23 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3107:11:3142:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3110:5:3110:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3110:20:3110:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3110:41:3110:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3111:5:3111:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3122:5:3122:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3124:5:3124:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3125:5:3125:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3126:5:3126:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3127:5:3127:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3127:5:3127:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3128:5:3128:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3129:5:3129:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3130:5:3130:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3131:5:3131:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3132:5:3132:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3133:5:3133:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3134:5:3134:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3135:5:3135:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3136:5:3136:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3137:5:3137:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3138:5:3138:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3139:5:3139:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3140:5:3140:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3140:5:3140:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3140:5:3140:20 | ...::f(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:3140:5:3140:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3140:16:3140:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3141:5:3141:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:61 | ...::flatten(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:26:1227:61 | ...::flatten(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1235:18:1235:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1235:18:1235:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1235:18:1235:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1239:13:1239:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1240:13:1240:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1242:18:1242:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1242:18:1242:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1242:18:1242:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1245:30:1250:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1246:13:1248:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1246:22:1248:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1251:18:1251:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1251:18:1251:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1269:15:1269:18 | SelfParam | | main.rs:1257:5:1258:19 | S | +| main.rs:1269:15:1269:18 | SelfParam | T | main.rs:1268:10:1268:10 | T | +| main.rs:1269:26:1271:9 | { ... } | | main.rs:1268:10:1268:10 | T | +| main.rs:1270:13:1270:16 | self | | main.rs:1257:5:1258:19 | S | +| main.rs:1270:13:1270:16 | self | T | main.rs:1268:10:1268:10 | T | +| main.rs:1273:15:1273:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1273:15:1273:19 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1273:15:1273:19 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1273:28:1275:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1273:28:1275:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1274:13:1274:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1274:14:1274:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1274:14:1274:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1274:14:1274:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1277:15:1277:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1277:15:1277:25 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1277:15:1277:25 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1277:34:1279:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1277:34:1279:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1278:13:1278:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1278:14:1278:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1278:14:1278:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1278:14:1278:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1283:29:1283:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1283:29:1283:33 | SelfParam | TRef | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1284:33:1284:36 | SelfParam | | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1290:29:1290:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1290:43:1292:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1291:17:1291:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:33:1295:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1295:33:1295:36 | SelfParam | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:46:1297:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1296:15:1296:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1296:15:1296:18 | self | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1300:16:1350:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1302:18:1302:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1302:18:1302:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1306:18:1306:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1306:18:1306:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1307:18:1307:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1307:18:1307:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1311:18:1311:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:18:1311:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:26:1311:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1311:26:1311:41 | ...::m2(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:38:1311:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1312:18:1312:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1312:18:1312:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:18:1312:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:26:1312:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1312:26:1312:41 | ...::m3(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:38:1312:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1314:13:1314:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1314:18:1314:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1316:18:1316:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1316:18:1316:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1316:18:1316:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1316:26:1316:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1317:18:1317:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1317:18:1317:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1317:18:1317:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1317:26:1317:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1319:13:1319:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1319:18:1319:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1321:18:1321:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1321:18:1321:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1321:18:1321:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1321:26:1321:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1322:18:1322:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1322:18:1322:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1322:18:1322:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1322:26:1322:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1324:13:1324:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1324:18:1324:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1327:18:1327:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1327:18:1327:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1327:28:1327:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1329:20:1329:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1333:18:1333:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1333:18:1333:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1333:18:1333:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1335:13:1335:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1335:26:1335:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1335:26:1335:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1339:17:1339:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1341:13:1341:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1341:24:1341:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1341:25:1341:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1343:17:1343:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1344:18:1344:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1344:18:1344:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1344:18:1344:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1347:13:1347:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1347:24:1347:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1347:25:1347:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1348:17:1348:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1349:18:1349:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1349:18:1349:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1349:18:1349:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1356:16:1356:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1356:16:1356:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:16:1359:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1359:16:1359:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:32:1361:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1359:32:1361:9 | { ... } | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1360:13:1360:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1360:13:1360:16 | self | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1368:16:1368:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1368:16:1368:20 | SelfParam | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1368:36:1370:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1368:36:1370:9 | { ... } | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1369:13:1369:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1369:13:1369:16 | self | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1373:16:1376:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1385:16:1385:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1385:16:1385:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:16:1385:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1385:32:1387:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1385:32:1387:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:32:1387:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1386:13:1386:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1386:13:1386:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1386:13:1386:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:16:1389:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1389:16:1389:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:16:1389:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:23:1389:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1389:23:1389:23 | x | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:23:1389:23 | x | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:42:1391:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1389:42:1391:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:42:1391:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1390:13:1390:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1390:13:1390:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1390:13:1390:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1394:16:1400:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1399:15:1399:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1399:16:1399:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1410:17:1410:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1410:17:1410:25 | SelfParam | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1410:28:1412:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1411:13:1411:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:13:1411:16 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1411:26:1411:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:26:1411:29 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1418:15:1418:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1418:15:1418:19 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1418:31:1420:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1418:31:1420:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:13:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:15:1419:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:16:1419:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:16:1419:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:15:1422:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1422:15:1422:25 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:37:1424:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1422:37:1424:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:13:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:15:1423:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:16:1423:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:16:1423:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:15:1426:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1426:15:1426:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:34:1428:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1426:34:1428:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1427:13:1427:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1427:13:1427:13 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:15:1430:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1430:15:1430:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:34:1432:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1430:34:1432:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:13:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:15:1431:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:16:1431:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:16:1431:16 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1435:16:1448:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:13:1436:13 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1436:17:1436:20 | S {...} | | main.rs:1415:5:1415:13 | S | +| main.rs:1437:9:1437:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1438:9:1438:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1439:9:1439:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1439:9:1439:17 | ...::f3(...) | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:15:1439:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1439:16:1439:16 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1441:19:1441:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1441:20:1441:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1441:21:1441:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1446:9:1446:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1446:22:1446:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | +| main.rs:1447:18:1447:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1447:18:1447:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1462:43:1465:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1462:43:1465:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1462:43:1465:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1469:46:1473:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1469:46:1473:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1469:46:1473:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1477:40:1482:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1477:40:1482:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1477:40:1482:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:30:1486:34 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1486:69:1493:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:69:1493:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:69:1493:5 | { ... } | T | main.rs:1486:20:1486:27 | T | +| main.rs:1487:21:1487:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1487:21:1487:25 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1487:21:1487:25 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1489:22:1489:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1489:22:1489:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1489:22:1489:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1496:16:1512:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1497:9:1499:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1497:37:1497:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1497:37:1497:52 | try_same_error(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:37:1497:52 | try_same_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:54:1499:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1498:22:1498:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1498:22:1498:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1501:9:1503:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1501:37:1501:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1501:37:1501:55 | try_convert_error(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1501:37:1501:55 | try_convert_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:57:1503:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1502:22:1502:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1502:22:1502:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1505:9:1507:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1505:37:1505:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1505:37:1505:49 | try_chained(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1505:37:1505:49 | try_chained(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:51:1507:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1506:22:1506:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1506:22:1506:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1509:9:1511:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1509:37:1509:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:37:1509:63 | try_complex(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:65:1511:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1510:22:1510:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1510:22:1510:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1516:16:1607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1517:13:1517:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:17:1519:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:17:1520:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1521:13:1521:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1521:17:1521:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1522:13:1522:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1522:13:1522:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1522:21:1522:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1522:21:1522:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1523:13:1523:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1523:17:1523:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1524:13:1524:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1524:17:1524:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:13:1525:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:17:1525:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1528:26:1528:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1528:26:1528:30 | SelfParam | TRef | main.rs:1527:9:1531:9 | Self [trait MyTrait] | +| main.rs:1534:26:1534:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1534:26:1534:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1534:26:1534:30 | SelfParam | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1534:39:1536:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1534:39:1536:13 | { ... } | TRef | main.rs:1533:14:1533:23 | T | +| main.rs:1535:17:1535:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1535:17:1535:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1535:17:1535:20 | self | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1538:31:1540:13 | { ... } | | main.rs:1533:14:1533:23 | T | +| main.rs:1543:17:1543:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1544:13:1544:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1544:17:1544:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1544:37:1544:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1544:38:1544:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1545:13:1545:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:17:1545:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1548:26:1548:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1548:26:1548:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1548:26:1548:30 | SelfParam | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1548:39:1550:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1548:39:1550:13 | { ... } | TRef | main.rs:1547:14:1547:23 | T | +| main.rs:1549:17:1549:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1549:17:1549:20 | self | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1552:31:1554:13 | { ... } | | main.rs:1547:14:1547:23 | T | +| main.rs:1557:13:1557:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1557:13:1557:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1557:13:1557:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:25:1557:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1557:26:1557:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1558:17:1558:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1558:17:1558:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1558:17:1558:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:13:1559:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1559:34:1559:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1559:34:1559:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1559:34:1559:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:13:1560:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:17:1560:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:26:1563:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1563:26:1563:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:39:1565:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1563:39:1565:13 | { ... } | TRef | main.rs:1562:14:1562:23 | T | +| main.rs:1564:17:1564:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1564:18:1564:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1564:18:1564:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1564:18:1564:21 | self | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1564:18:1564:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1567:31:1569:13 | { ... } | | main.rs:1562:14:1562:23 | T | +| main.rs:1572:13:1572:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1572:17:1572:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1573:17:1573:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1574:13:1574:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1574:17:1574:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1574:37:1574:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1574:38:1574:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1575:13:1575:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:17:1575:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1578:26:1578:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1578:39:1580:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1578:39:1580:13 | { ... } | TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1579:18:1579:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1582:31:1584:13 | { ... } | | main.rs:1577:14:1577:23 | T | +| main.rs:1587:13:1587:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1587:17:1587:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1588:17:1588:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:13:1589:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1589:17:1589:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1589:33:1589:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:34:1589:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1590:13:1590:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1590:17:1590:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1593:26:1593:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1593:26:1593:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1593:26:1593:30 | SelfParam | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1593:39:1595:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1593:39:1595:13 | { ... } | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:26:1594:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1594:29:1594:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1594:29:1594:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1594:29:1594:32 | self | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1597:31:1599:13 | { ... } | | main.rs:1592:14:1592:23 | T | +| main.rs:1603:13:1603:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1603:13:1603:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:27:1603:32 | &mut v | | {EXTERNAL LOCATION} | &mut | +| main.rs:1604:26:1604:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1604:26:1604:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:26:1605:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1605:46:1605:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1605:47:1605:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1605:47:1605:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:13:1606:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:17:1606:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1612:16:1624:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1613:13:1613:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:25:1613:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:13:1614:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:25:1614:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1618:17:1620:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1620:16:1622:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1637:30:1639:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1638:13:1638:31 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:16:1645:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:22:1645:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:41:1650:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1646:13:1649:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:20:1647:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:29:1647:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:20:1648:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:29:1648:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:23:1655:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1655:23:1655:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:34:1655:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:45:1658:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1656:13:1656:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1656:13:1656:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1656:23:1656:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:13:1657:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1657:13:1657:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:23:1657:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:16:1663:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:22:1663:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:41:1668:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1664:13:1667:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:20:1665:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:29:1665:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:20:1666:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:29:1666:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:23:1673:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1673:23:1673:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:34:1673:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:45:1676:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:13:1674:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1674:13:1674:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1674:23:1674:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:13:1675:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1675:13:1675:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:23:1675:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:16:1681:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:22:1681:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:41:1686:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1682:13:1685:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:20:1683:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:29:1683:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:20:1684:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:29:1684:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:23:1690:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1690:23:1690:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:34:1690:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:45:1693:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1691:13:1691:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1691:13:1691:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1691:23:1691:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:13:1692:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1692:13:1692:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:23:1692:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:16:1698:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:22:1698:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:41:1703:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1699:13:1702:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:20:1700:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:29:1700:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:20:1701:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:29:1701:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:23:1707:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1707:23:1707:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:34:1707:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:45:1710:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1708:13:1708:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1708:13:1708:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1708:23:1708:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:13:1709:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1709:13:1709:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:23:1709:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:16:1715:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:22:1715:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:41:1720:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1716:13:1719:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:20:1717:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:29:1717:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:20:1718:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:29:1718:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:23:1724:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1724:23:1724:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:34:1724:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:45:1727:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:13:1725:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1725:13:1725:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1725:23:1725:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:13:1726:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1726:13:1726:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:23:1726:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:19:1732:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:25:1732:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:44:1737:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1733:13:1736:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:20:1734:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:29:1734:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:20:1735:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:29:1735:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:26:1741:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1741:26:1741:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:37:1741:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:48:1744:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1742:13:1742:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1742:13:1742:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1742:23:1742:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:13:1743:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1743:13:1743:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:23:1743:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:18:1749:21 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:24:1749:26 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:43:1754:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1750:13:1753:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:20:1751:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:29:1751:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:20:1752:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:29:1752:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:25:1758:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1758:25:1758:33 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:36:1758:38 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:47:1761:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1759:13:1759:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1759:13:1759:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1759:23:1759:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:13:1760:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1760:13:1760:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:23:1760:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:19:1766:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:25:1766:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:44:1771:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1767:13:1770:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:20:1768:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:29:1768:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:20:1769:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:29:1769:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:26:1775:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1775:26:1775:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:37:1775:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:48:1778:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1776:13:1776:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1776:13:1776:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1776:23:1776:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:13:1777:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1777:13:1777:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:23:1777:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1783:16:1783:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1783:22:1783:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1783:40:1788:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1784:13:1787:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:20:1785:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:30:1785:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1786:20:1786:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1786:30:1786:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:23:1792:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1792:23:1792:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1792:34:1792:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:44:1795:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1793:13:1793:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1793:13:1793:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1793:24:1793:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1794:13:1794:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1794:13:1794:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1794:24:1794:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:16:1800:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1800:22:1800:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:40:1805:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1801:13:1804:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:20:1802:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:30:1802:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1803:20:1803:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1803:30:1803:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:23:1809:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1809:23:1809:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1809:34:1809:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:44:1812:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1810:13:1810:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1810:13:1810:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1810:24:1810:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1811:13:1811:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1811:13:1811:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1811:24:1811:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1817:16:1817:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1817:30:1822:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1818:13:1821:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1819:21:1819:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1820:21:1820:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1827:16:1827:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1827:30:1832:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1828:13:1831:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1829:21:1829:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1830:21:1830:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:15:1836:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1836:15:1836:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:22:1836:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1836:22:1836:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:44:1838:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:13:1837:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:13:1837:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:23:1837:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:23:1837:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:34:1837:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:34:1837:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:34:1837:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:44:1837:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:44:1837:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:15:1840:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1840:15:1840:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:22:1840:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1840:22:1840:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:44:1842:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:13:1841:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:13:1841:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:23:1841:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:23:1841:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:34:1841:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:34:1841:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:34:1841:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:44:1841:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:44:1841:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:24:1846:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1846:24:1846:28 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:31:1846:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1846:31:1846:35 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:75:1848:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1846:75:1848:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1847:14:1847:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:14:1847:17 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:23:1847:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:23:1847:26 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:43:1847:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1847:45:1847:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:45:1847:49 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:55:1847:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:55:1847:59 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:15:1850:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1850:15:1850:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:22:1850:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1850:22:1850:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:44:1852:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:13:1851:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:13:1851:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:22:1851:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:22:1851:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:33:1851:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:33:1851:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:33:1851:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:42:1851:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:42:1851:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:15:1854:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1854:15:1854:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:22:1854:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1854:22:1854:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:44:1856:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:13:1855:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:13:1855:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:23:1855:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:23:1855:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:34:1855:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:34:1855:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:34:1855:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:44:1855:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:44:1855:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:15:1858:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1858:15:1858:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:22:1858:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1858:22:1858:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:44:1860:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:13:1859:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:13:1859:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:22:1859:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:22:1859:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:33:1859:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:33:1859:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:33:1859:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:42:1859:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:42:1859:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:15:1862:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1862:15:1862:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:22:1862:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1862:22:1862:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:44:1864:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:13:1863:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:13:1863:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:23:1863:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:23:1863:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:34:1863:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:34:1863:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:34:1863:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:44:1863:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:44:1863:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1867:26:1867:26 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1867:32:1867:32 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:9:1868:9 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:13:1868:13 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1871:16:2002:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1875:23:1875:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:31:1875:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:23:1876:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:31:1876:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:23:1877:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:30:1877:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:23:1878:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:31:1878:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:23:1879:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:30:1879:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:23:1880:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:32:1880:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:23:1883:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:31:1883:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:23:1884:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:31:1884:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:23:1885:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:31:1885:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:23:1886:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:31:1886:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:23:1887:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:31:1887:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:39:1888:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:45:1888:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:17:1891:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:34:1891:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:9:1892:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:27:1892:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:17:1894:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:34:1894:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:9:1895:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:27:1895:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:17:1897:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:34:1897:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:9:1898:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:27:1898:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:17:1900:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:34:1900:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:9:1901:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:27:1901:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:17:1903:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:34:1903:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:9:1904:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:27:1904:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:26:1907:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:34:1907:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:25:1908:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:33:1908:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:26:1909:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:34:1909:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:23:1910:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:32:1910:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:23:1911:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:32:1911:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:17:1914:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:37:1914:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:9:1915:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:30:1915:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:17:1917:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:36:1917:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:29:1918:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:17:1920:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:37:1920:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:9:1921:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:30:1921:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:17:1923:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:34:1923:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:28:1924:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:17:1926:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:34:1926:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:9:1927:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:28:1927:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:24:1929:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:24:1930:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1933:13:1933:14 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1933:18:1933:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:13:1934:14 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:18:1934:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1937:23:1937:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1937:29:1937:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:23:1938:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:29:1938:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:23:1939:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:28:1939:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:23:1940:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:29:1940:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:23:1941:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:28:1941:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:23:1942:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:29:1942:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:24:1945:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:29:1945:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:24:1946:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:29:1946:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:24:1947:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:29:1947:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:24:1948:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:29:1948:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:24:1949:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:29:1949:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:17:1952:31 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:35:1952:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:9:1953:23 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:28:1953:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:17:1955:31 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:35:1955:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:9:1956:23 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:28:1956:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:17:1958:31 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:35:1958:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:9:1959:23 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:28:1959:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:17:1961:31 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:35:1961:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:9:1962:23 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:28:1962:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:17:1964:31 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:35:1964:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:9:1965:23 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:28:1965:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:27:1968:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:32:1968:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:26:1969:27 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:31:1969:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:27:1970:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:32:1970:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:24:1971:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:30:1971:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1972:24:1972:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:30:1972:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1975:17:1975:34 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1975:38:1975:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:9:1976:26 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:31:1976:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:17:1978:33 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:37:1978:38 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:9:1979:25 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:30:1979:31 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:17:1981:34 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:38:1981:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:9:1982:26 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:31:1982:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:17:1984:31 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:35:1984:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:9:1985:23 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:29:1985:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1987:17:1987:31 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1987:35:1987:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:9:1988:23 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:29:1988:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1991:25:1991:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:25:1992:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:30:1996:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2001:30:2001:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2011:18:2011:21 | SelfParam | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2011:24:2011:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2014:25:2016:5 | { ... } | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2019:9:2019:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2023:9:2023:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2023:9:2023:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2032:13:2032:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2032:13:2032:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2032:13:2032:42 | SelfParam | Ptr.TRefMut | main.rs:2026:5:2026:14 | S2 | +| main.rs:2033:13:2033:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2033:13:2033:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | +| main.rs:2034:44:2036:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2034:44:2036:9 | { ... } | T | main.rs:2008:5:2008:14 | S1 | +| main.rs:2043:22:2051:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2044:9:2044:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2044:9:2044:12 | f1(...) | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2045:9:2045:12 | f2(...) | | main.rs:2018:16:2018:39 | impl ... | +| main.rs:2046:9:2046:12 | f3(...) | | main.rs:2022:16:2022:39 | impl ... | +| main.rs:2047:9:2047:12 | f4(...) | | main.rs:2039:16:2039:39 | impl ... | +| main.rs:2049:13:2049:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2049:17:2049:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2050:9:2050:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2061:15:2061:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2061:15:2061:19 | SelfParam | TRef | main.rs:2060:5:2062:5 | Self [trait Trait1] | +| main.rs:2061:22:2061:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2065:15:2065:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2065:15:2065:19 | SelfParam | TRef | main.rs:2064:5:2066:5 | Self [trait Trait2] | +| main.rs:2065:22:2065:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2069:15:2069:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2069:15:2069:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2069:22:2069:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2073:15:2073:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:15:2073:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2073:22:2073:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2081:18:2081:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:18:2081:22 | SelfParam | TRef | main.rs:2080:5:2082:5 | Self [trait MyTrait] | +| main.rs:2085:18:2085:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:18:2085:22 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2085:31:2087:9 | { ... } | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2091:18:2091:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2091:18:2091:22 | SelfParam | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2091:18:2091:22 | SelfParam | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2091:30:2094:9 | { ... } | | main.rs:2090:10:2090:17 | T | +| main.rs:2092:25:2092:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2092:25:2092:28 | self | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:25:2092:28 | self | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2101:41:2101:41 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2101:52:2103:5 | { ... } | | main.rs:2101:23:2101:23 | A | +| main.rs:2102:9:2102:9 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2105:34:2105:34 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2105:59:2107:5 | { ... } | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2105:59:2107:5 | { ... } | impl(T) | main.rs:2105:24:2105:31 | T | +| main.rs:2106:12:2106:12 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2109:34:2109:34 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2109:67:2111:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2109:67:2111:5 | { ... } | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2109:67:2111:5 | { ... } | T.impl(T) | main.rs:2109:24:2109:31 | T | +| main.rs:2110:17:2110:17 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2113:34:2113:34 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2113:78:2115:5 | { ... } | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T0.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T1.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2114:13:2114:13 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2114:28:2114:28 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2117:26:2117:26 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2117:51:2119:5 | { ... } | | main.rs:2117:23:2117:23 | A | +| main.rs:2118:9:2118:9 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2121:16:2135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2122:13:2122:13 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2122:17:2122:20 | f1(...) | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2123:9:2123:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2124:9:2124:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2125:13:2125:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2125:17:2125:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2126:32:2126:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:13:2127:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:17:2127:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2128:32:2128:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2130:17:2130:35 | get_a_my_trait2(...) | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2145:16:2145:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2145:16:2145:20 | SelfParam | TRef | main.rs:2141:5:2142:13 | S | +| main.rs:2145:31:2147:9 | { ... } | | main.rs:2141:5:2142:13 | S | +| main.rs:2156:26:2158:9 | { ... } | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2156:26:2158:9 | { ... } | T | main.rs:2155:10:2155:10 | T | +| main.rs:2157:13:2157:38 | MyVec {...} | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2157:27:2157:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2157:27:2157:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2160:17:2160:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2160:28:2160:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2160:38:2162:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2161:13:2161:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2161:13:2161:16 | self | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2161:13:2161:16 | self | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2161:28:2161:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2169:18:2169:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2169:18:2169:22 | SelfParam | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2169:18:2169:22 | SelfParam | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2169:25:2169:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2169:56:2171:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2169:56:2171:9 | { ... } | TRef | main.rs:2165:10:2165:10 | T | +| main.rs:2170:13:2170:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2170:14:2170:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2170:14:2170:17 | self | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2170:14:2170:17 | self | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2170:24:2170:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2174:22:2174:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2174:22:2174:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2174:22:2174:26 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2174:35:2176:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2175:17:2175:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2175:17:2175:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2175:17:2175:21 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2178:37:2178:37 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2178:43:2178:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2182:9:2182:9 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2182:11:2182:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2185:16:2196:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2186:17:2186:19 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2186:23:2186:34 | ...::new(...) | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2187:9:2187:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2188:9:2188:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2190:13:2190:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2190:13:2190:14 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2190:26:2190:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2191:17:2191:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2191:17:2191:18 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2193:29:2193:31 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2195:9:2195:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2195:23:2195:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2195:24:2195:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2195:24:2195:25 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2200:16:2202:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2201:25:2201:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:25:2201:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2201:25:2201:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2201:38:2201:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:38:2201:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2210:19:2210:22 | SelfParam | | main.rs:2206:5:2211:5 | Self [trait MyAdd] | +| main.rs:2210:25:2210:27 | rhs | | main.rs:2206:17:2206:26 | Rhs | +| main.rs:2217:19:2217:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:25:2217:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:45:2219:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2218:13:2218:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:19:2226:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:25:2226:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2226:25:2226:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:46:2228:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2227:14:2227:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2227:14:2227:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:19:2235:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:25:2235:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2235:46:2241:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2236:16:2236:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2250:19:2250:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:19:2250:22 | SelfParam | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:25:2250:29 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:25:2250:29 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:54:2252:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:16:2251:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:16:2251:19 | self | T | main.rs:2246:10:2246:17 | T | +| main.rs:2251:31:2251:35 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:31:2251:35 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2259:19:2259:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2259:19:2259:22 | SelfParam | T | main.rs:2255:10:2255:17 | T | +| main.rs:2259:25:2259:29 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2259:51:2261:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:16:2260:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:16:2260:19 | self | T | main.rs:2255:10:2255:17 | T | +| main.rs:2260:31:2260:35 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2271:19:2271:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2271:19:2271:22 | SelfParam | T | main.rs:2264:14:2264:14 | T | +| main.rs:2271:25:2271:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2271:25:2271:29 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2271:55:2273:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:16:2272:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:16:2272:19 | self | T | main.rs:2264:14:2264:14 | T | +| main.rs:2272:31:2272:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2272:31:2272:35 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2278:20:2278:24 | value | | main.rs:2276:18:2276:18 | T | +| main.rs:2283:20:2283:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2283:40:2285:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2284:13:2284:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2290:20:2290:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2290:41:2296:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2291:16:2291:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2301:21:2301:25 | value | | main.rs:2299:19:2299:19 | T | +| main.rs:2301:31:2301:31 | x | | main.rs:2299:5:2302:5 | Self [trait MyFrom2] | +| main.rs:2306:21:2306:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:33:2306:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:48:2308:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2307:13:2307:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:21:2313:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2313:34:2313:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:49:2319:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2314:16:2314:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2324:15:2324:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2327:15:2327:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2332:15:2332:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2332:31:2334:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:13:2333:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2337:15:2337:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2337:32:2339:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:13:2338:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2344:15:2344:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2344:31:2346:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2349:15:2349:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2349:32:2351:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2350:13:2350:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2354:16:2379:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2355:13:2355:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:9:2356:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:18:2356:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:9:2357:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:18:2357:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2357:19:2357:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:9:2358:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:18:2358:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2360:11:2360:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:26:2360:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:11:2361:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:24:2361:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:11:2362:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:24:2362:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2362:25:2362:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:13:2364:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:17:2364:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:30:2364:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:13:2365:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:17:2365:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:30:2365:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2366:13:2366:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:38:2366:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:9:2367:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2367:23:2367:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:30:2367:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2368:9:2368:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2368:23:2368:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2368:29:2368:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:9:2369:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2369:27:2369:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:34:2369:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:9:2371:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:17:2371:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:9:2372:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:17:2372:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:9:2373:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:18:2373:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:9:2374:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:18:2374:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2375:9:2375:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2375:25:2375:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2376:25:2376:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:9:2377:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:25:2377:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2378:25:2378:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2386:26:2388:9 | { ... } | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2387:13:2387:25 | MyCallable {...} | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:17:2390:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2390:17:2390:21 | SelfParam | TRef | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:31:2392:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2395:16:2502:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:9:2398:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:18:2398:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2398:28:2398:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:9:2399:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:18:2399:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2399:43:2399:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:9:2400:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:18:2400:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2400:40:2400:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:13:2402:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:21:2402:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:22:2402:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:9:2403:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2403:18:2403:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2403:24:2403:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2405:13:2405:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:21:2405:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:22:2405:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2406:9:2406:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2406:18:2406:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2406:24:2406:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2408:13:2408:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2408:13:2408:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:31:2408:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2409:9:2409:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2409:18:2409:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2409:18:2409:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:24:2409:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2411:13:2411:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2411:13:2411:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:31:2411:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2412:9:2412:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2412:18:2412:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2412:18:2412:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2412:24:2412:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2414:17:2414:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:28:2414:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:29:2414:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:29:2414:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:36:2414:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:36:2414:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:43:2414:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:43:2414:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:9:2415:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2415:18:2415:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2415:19:2415:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2415:28:2415:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:9:2416:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:18:2416:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | +| main.rs:2416:23:2416:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2416:32:2416:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:9:2417:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:18:2417:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:27:2417:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2419:13:2419:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2420:9:2424:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2421:13:2421:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2421:26:2421:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2421:26:2421:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2422:13:2422:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2422:26:2422:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2422:26:2422:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2423:13:2423:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2423:26:2423:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2423:26:2423:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2425:9:2425:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2425:18:2425:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2425:27:2425:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2427:13:2427:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2428:9:2432:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2428:10:2432:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2429:13:2429:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2429:26:2429:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2429:26:2429:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2430:13:2430:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2430:26:2430:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2430:26:2430:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2431:13:2431:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2431:26:2431:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2431:26:2431:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2433:9:2433:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2433:18:2433:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2433:27:2433:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2435:13:2435:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:25:2435:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:26:2435:42 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:45:2435:61 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:64:2435:80 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2436:9:2440:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2437:12:2437:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2438:9:2440:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2444:9:2444:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2444:18:2444:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2444:24:2444:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:9:2445:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:18:2445:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2445:19:2445:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:19:2445:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2445:28:2445:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2446:13:2446:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2446:21:2446:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2447:9:2447:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2447:18:2447:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2447:24:2447:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2448:13:2448:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2448:26:2448:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:9:2449:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2449:18:2449:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2449:19:2449:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2449:20:2449:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:26:2449:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:32:2449:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:38:2449:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:50:2449:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2451:13:2451:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2452:9:2455:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2453:20:2453:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2454:18:2454:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:9:2456:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2456:18:2456:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2456:25:2456:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2461:9:2461:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2461:24:2461:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2463:13:2463:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2463:13:2463:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2463:13:2463:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:32:2463:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2463:33:2463:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:9:2464:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2464:18:2464:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2464:18:2464:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2464:18:2464:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:25:2464:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2466:22:2466:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2466:23:2466:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2467:9:2467:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2467:25:2467:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2469:13:2469:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:21:2469:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:31:2469:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2469:32:2469:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:9:2470:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2470:18:2470:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2470:24:2470:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2472:13:2472:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2472:13:2472:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2472:13:2472:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2472:13:2472:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:32:2472:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2472:33:2472:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:9:2473:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2473:18:2473:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2473:18:2473:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2473:18:2473:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2473:18:2473:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:24:2473:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2475:17:2475:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:17:2475:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2475:25:2475:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:25:2475:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2476:9:2476:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2476:9:2476:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2476:20:2476:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:9:2477:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2477:18:2477:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2477:18:2477:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2477:24:2477:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2481:17:2484:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:13:2483:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:29:2483:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2486:17:2486:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:17:2486:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2486:24:2486:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:24:2486:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2487:9:2487:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2487:9:2487:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2487:24:2487:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2487:24:2487:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:33:2487:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2487:33:2487:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:9:2488:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2488:9:2488:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2488:24:2488:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2488:24:2488:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:33:2488:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2488:33:2488:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:9:2489:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2489:20:2489:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2489:20:2489:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2489:32:2489:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:9:2490:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:22:2490:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2490:22:2490:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2490:36:2490:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:9:2491:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:13:2491:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2491:29:2491:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2491:29:2491:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2491:41:2491:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:9:2492:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:13:2492:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2492:29:2492:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2492:30:2492:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2492:30:2492:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2492:35:2492:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2496:17:2496:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2498:17:2501:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2498:23:2498:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2499:9:2501:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2500:13:2500:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2512:40:2514:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2512:40:2514:9 | { ... } | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2512:40:2514:9 | { ... } | T.T | main.rs:2511:10:2511:19 | T | +| main.rs:2516:30:2518:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2516:30:2518:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2520:19:2520:22 | SelfParam | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:19:2520:22 | SelfParam | T | main.rs:2511:10:2511:19 | T | +| main.rs:2520:33:2522:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:33:2522:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2521:13:2521:16 | self | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2521:13:2521:16 | self | T | main.rs:2511:10:2511:19 | T | +| main.rs:2533:15:2533:15 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2533:26:2535:5 | { ... } | | main.rs:2533:12:2533:12 | T | +| main.rs:2534:9:2534:9 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2537:16:2559:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2538:13:2538:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:13:2538:14 | x1 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2538:13:2538:14 | x1 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:13:2539:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:13:2539:14 | x2 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:13:2539:14 | x2 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:13:2540:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:13:2540:14 | x3 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:13:2540:14 | x3 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:13:2541:14 | x4 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:13:2541:14 | x4 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:18:2541:48 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:18:2541:48 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:35:2541:47 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:13:2542:14 | x5 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:13:2542:14 | x5 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:18:2542:42 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:18:2542:42 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:29:2542:41 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2546:21:2546:33 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:13:2547:15 | x10 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:13:2547:15 | x10 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:13:2551:15 | x11 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2551:19:2551:34 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:13:2552:15 | x12 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:19:2552:33 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:13:2553:15 | x13 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:19:2556:9 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2555:20:2555:32 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2557:13:2557:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:19:2557:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2558:13:2558:15 | x15 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:13:2558:15 | x15 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2558:19:2558:37 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:19:2558:37 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2567:35:2569:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2567:35:2569:9 | { ... } | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2567:35:2569:9 | { ... } | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:13:2568:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2568:14:2568:18 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:21:2568:25 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:16:2570:19 | SelfParam | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:22:2570:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2573:16:2607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2574:13:2574:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:13:2574:13 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:13:2574:13 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:17:2575:17 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:13:2576:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:13:2577:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:13:2578:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2580:9:2580:9 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2581:9:2581:9 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:9 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2594:13:2594:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2594:20:2594:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2595:13:2595:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:22:2595:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2596:13:2596:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2596:23:2596:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2598:20:2598:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2600:13:2600:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2600:30:2600:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2600:30:2600:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2600:30:2600:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2600:30:2600:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2601:25:2601:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2601:25:2601:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2605:13:2605:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2605:17:2605:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2612:27:2634:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2613:13:2613:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:13:2613:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:27:2613:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:27:2613:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:36:2613:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2616:15:2616:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2616:15:2616:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2617:24:2619:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2618:26:2618:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2620:22:2623:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2622:26:2622:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:13:2627:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:13:2627:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:26:2627:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:26:2627:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:35:2627:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:35:2627:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:44:2627:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2628:15:2628:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2628:15:2628:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2629:26:2632:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2631:26:2631:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:36:2645:9 | { ... } | | main.rs:2640:5:2640:22 | Path | +| main.rs:2644:13:2644:19 | Path {...} | | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:29:2647:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2647:29:2647:33 | SelfParam | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:59:2649:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2647:59:2649:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2647:59:2649:9 | { ... } | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2648:16:2648:29 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2655:39:2657:9 | { ... } | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2656:13:2656:22 | PathBuf {...} | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:18:2665:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2665:18:2665:22 | SelfParam | TRef | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:34:2669:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2665:34:2669:9 | { ... } | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2667:33:2667:43 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2668:13:2668:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2672:16:2680:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2673:21:2673:31 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2674:21:2674:25 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2677:13:2677:20 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2677:24:2677:37 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:24:2678:31 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2685:14:2685:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2685:14:2685:18 | SelfParam | TRef | main.rs:2684:5:2686:5 | Self [trait MyTrait] | +| main.rs:2692:14:2692:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2692:14:2692:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2692:14:2692:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2692:28:2694:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:13:2693:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2693:13:2693:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2693:13:2693:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:14:2698:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2698:14:2698:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:28:2700:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2704:15:2704:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2704:15:2704:19 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2704:15:2704:19 | SelfParam | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2704:33:2706:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:17:2705:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2705:17:2705:20 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2705:17:2705:20 | self | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2709:14:2709:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2709:48:2726:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2709:48:2726:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2709:48:2726:5 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2709:48:2726:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:20:2710:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2720:12:2720:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2722:13:2722:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2722:13:2722:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2724:13:2724:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2724:13:2724:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2730:22:2734:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2731:18:2731:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2731:33:2733:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:13:2732:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2739:11:2739:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2739:30:2747:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2742:13:2744:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2742:16:2742:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2742:21:2744:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2750:20:2757:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2755:18:2755:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2759:20:2761:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2764:11:2764:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2764:30:2772:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2765:13:2765:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2765:17:2769:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2766:13:2768:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2766:16:2766:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2766:21:2768:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2770:18:2770:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:29:2770:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2776:16:2823:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2778:13:2778:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2778:13:2778:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:26:2782:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:2782:26:2782:28 | opt | T | main.rs:2782:23:2782:23 | T | +| main.rs:2782:42:2782:42 | x | | main.rs:2782:23:2782:23 | T | +| main.rs:2782:48:2782:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2785:9:2785:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2792:13:2792:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2792:17:2792:39 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:13:2793:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:13:2793:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:13:2793:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2793:40:2793:40 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:13:2794:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:13:2794:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:17:2794:52 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:17:2794:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2796:13:2796:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:13:2796:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2797:20:2797:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2800:29:2800:29 | e | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2800:29:2800:29 | e | T1 | main.rs:2800:26:2800:26 | T | +| main.rs:2800:29:2800:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2800:53:2800:53 | x | | main.rs:2800:26:2800:26 | T | +| main.rs:2800:59:2800:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2803:13:2803:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2803:17:2805:9 | ...::B {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2804:20:2804:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2806:9:2806:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2806:23:2806:23 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2809:13:2809:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2809:13:2809:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2809:13:2809:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2813:29:2813:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:2813:29:2813:31 | res | E | main.rs:2813:26:2813:26 | E | +| main.rs:2813:29:2813:31 | res | T | main.rs:2813:23:2813:23 | T | +| main.rs:2813:48:2813:48 | x | | main.rs:2813:26:2813:26 | E | +| main.rs:2813:54:2813:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2816:9:2816:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2816:23:2816:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:2818:17:2818:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:17:2818:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:21:2818:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:21:2818:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2819:9:2819:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2819:9:2819:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2822:9:2822:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2822:9:2822:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2829:14:2829:17 | SelfParam | | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:14:2832:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2832:14:2832:18 | SelfParam | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:21:2832:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2832:21:2832:25 | other | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:44:2834:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2832:44:2834:9 | { ... } | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2833:13:2833:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2833:13:2833:16 | self | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2839:14:2839:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:2839:28:2841:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:13:2840:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:2846:14:2846:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:2846:28:2848:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2847:13:2847:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:2853:14:2853:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2853:14:2853:17 | SelfParam | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2853:28:2855:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2853:28:2855:9 | { ... } | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2854:13:2854:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2854:13:2854:16 | self | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2858:25:2862:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2864:12:2872:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2865:13:2865:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2866:13:2866:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2866:17:2866:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:2867:17:2867:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2867:21:2867:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2870:13:2870:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2871:23:2871:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2881:11:2916:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2882:5:2882:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2883:5:2883:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:5:2884:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:20:2884:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:41:2884:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2885:5:2885:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2886:5:2886:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2887:5:2887:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2888:5:2888:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2889:5:2889:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2890:5:2890:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2891:5:2891:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2892:5:2892:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2893:5:2893:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2894:5:2894:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2895:5:2895:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2896:5:2896:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2897:5:2897:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2898:5:2898:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2899:5:2899:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2900:5:2900:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2900:5:2900:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2901:5:2901:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2902:5:2902:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2903:5:2903:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2904:5:2904:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2905:5:2905:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2906:5:2906:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2907:5:2907:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2908:5:2908:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2909:5:2909:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2910:5:2910:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2911:5:2911:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2912:5:2912:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2913:5:2913:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2914:5:2914:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2914:5:2914:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2914:5:2914:20 | ...::f(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2914:5:2914:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2914:16:2914:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2915:5:2915:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:15:5:18:5 | if ... {...} | | {EXTERNAL LOCATION} | () | @@ -4538,6 +4543,247 @@ inferCertainType | raw_pointer.rs:59:5:59:30 | raw_type_from_deref(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:59:25:59:29 | false | | {EXTERNAL LOCATION} | bool | inferType +| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:9:13:9:22 | self.field | | associated_types.rs:7:10:7:10 | A | +| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | +| associated_types.rs:24:13:24:21 | self.m1() | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:25:13:25:43 | ...::default(...) | | associated_types.rs:14:9:14:28 | AssociatedType | +| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | +| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:36:13:36:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:37:13:37:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | +| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | +| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:67:13:67:14 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:77:13:77:32 | Wrapper {...} | A | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | +| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:86:13:86:35 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:93:13:93:33 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:93:30:93:31 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | +| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:108:13:108:14 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:112:13:112:13 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:116:13:116:14 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:121:13:121:14 | x1 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:121:18:121:18 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:123:9:123:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:123:26:123:27 | x1 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:123:26:123:32 | x1.m1() | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:125:13:125:14 | x2 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:125:18:125:18 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:127:13:127:13 | y | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:127:17:127:18 | x2 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:127:17:127:23 | x2.m2() | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:128:9:128:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:128:26:128:26 | y | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:130:13:130:14 | x3 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:130:18:130:18 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:132:9:132:44 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:132:26:132:27 | x3 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:132:26:132:34 | x3.put(...) | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:132:26:132:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:132:26:132:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:132:33:132:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:135:9:135:50 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:26:135:27 | x3 | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:135:26:135:40 | x3.putTwo(...) | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:135:36:135:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:135:39:135:39 | 3 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:137:20:137:20 | S | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:138:9:138:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:140:13:140:14 | x5 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:140:18:140:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:141:9:141:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:141:26:141:27 | x5 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:141:26:141:32 | x5.m1() | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:141:26:141:32 | x5.m1() | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:142:13:142:14 | x6 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:142:18:142:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:143:9:143:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:143:26:143:27 | x6 | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:143:26:143:32 | x6.m2() | | associated_types.rs:2:5:5:5 | Wrapper | +| associated_types.rs:143:26:143:32 | x6.m2() | A | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:145:13:145:22 | assoc_zero | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:145:26:145:27 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:145:26:145:38 | AT.get_zero() | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:146:13:146:21 | assoc_one | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:146:25:146:26 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:146:25:146:36 | AT.get_one() | | associated_types.rs:53:5:54:13 | S | +| associated_types.rs:147:13:147:21 | assoc_two | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:147:25:147:26 | AT | | associated_types.rs:59:5:60:14 | AT | +| associated_types.rs:147:25:147:36 | AT.get_two() | | associated_types.rs:56:5:57:14 | S2 | +| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | +| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | +| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | +| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:170:13:170:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | +| associated_types.rs:171:13:171:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | +| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:13:180:43 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:186:48:188:9 | { ... } | | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:13:187:19 | (...) | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:13:187:19 | (...) | T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:13:187:21 | ... .0 | | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:13:187:29 | ... .clone() | | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:14:187:18 | * ... | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:14:187:18 | * ... | T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | +| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | +| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:196:9:196:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | +| associated_types.rs:197:9:197:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:201:13:201:17 | item1 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:201:13:201:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:201:21:201:33 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:201:21:201:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:202:25:202:29 | item1 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:202:25:202:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:204:13:204:17 | item2 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:204:13:204:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:204:21:204:32 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:204:21:204:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:205:37:205:42 | &item2 | TRef | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:205:37:205:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:205:38:205:42 | item2 | | associated_types.rs:175:5:175:24 | MyType | +| associated_types.rs:205:38:205:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | +| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:13:223:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:223:13:223:22 | Ok(...) | E | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:13:223:22 | Ok(...) | T | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:223:16:223:21 | self.0 | | associated_types.rs:217:10:217:15 | Output | +| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:228:13:228:14 | _y | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:228:13:228:14 | _y | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:13:228:14 | _y | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:18:228:27 | GenS(...) | | associated_types.rs:210:5:210:28 | GenS | +| associated_types.rs:228:18:228:27 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:18:228:39 | ... .get_input() | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:228:18:228:39 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:18:228:39 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -4570,7 +4816,6 @@ inferType | blanket_impl.rs:47:18:47:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:20:47:21 | x1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:13:48:14 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:18:48:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4584,7 +4829,6 @@ inferType | blanket_impl.rs:49:18:49:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:49:18:49:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:20:49:21 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:13:50:14 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:18:50:19 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | @@ -4594,7 +4838,6 @@ inferType | blanket_impl.rs:51:18:51:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:51:18:51:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:20:51:21 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:13:52:14 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:18:52:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4608,7 +4851,6 @@ inferType | blanket_impl.rs:53:18:53:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:53:18:53:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:20:53:21 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:13:54:14 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:18:54:35 | ...::duplicate(...) | | blanket_impl.rs:6:5:7:14 | S1 | @@ -4620,7 +4862,6 @@ inferType | blanket_impl.rs:55:18:55:25 | "{x5:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:55:18:55:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:20:55:21 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:13:56:14 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:18:56:19 | S2 | | blanket_impl.rs:9:5:10:14 | S2 | @@ -4630,7 +4871,6 @@ inferType | blanket_impl.rs:57:18:57:25 | "{x6:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:57:18:57:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:20:57:21 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:13:58:14 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:18:58:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -4644,7 +4884,6 @@ inferType | blanket_impl.rs:59:18:59:25 | "{x7:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:59:18:59:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:20:59:21 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:68:24:68:24 | x | | {EXTERNAL LOCATION} | i64 | | blanket_impl.rs:68:32:68:32 | y | | blanket_impl.rs:67:5:69:5 | Self [trait Trait1] | @@ -4670,7 +4909,6 @@ inferType | blanket_impl.rs:91:18:91:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:91:18:91:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:20:91:21 | x1 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:13:92:14 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:18:92:43 | ...::assoc_func1(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -4681,7 +4919,6 @@ inferType | blanket_impl.rs:93:18:93:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:93:18:93:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:20:93:21 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:13:94:14 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:18:94:39 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -4692,7 +4929,6 @@ inferType | blanket_impl.rs:95:18:95:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:95:18:95:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:20:95:21 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:13:96:14 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:18:96:43 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -4703,7 +4939,6 @@ inferType | blanket_impl.rs:97:18:97:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:97:18:97:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:20:97:21 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:108:22:108:26 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:108:22:108:26 | SelfParam | TRef | blanket_impl.rs:107:5:109:5 | Self [trait Flag] | @@ -4858,7 +5093,6 @@ inferType | blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:278:22:278:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:281:24:281:28 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:281:24:281:28 | SelfParam | TRef | blanket_impl.rs:276:10:276:22 | T | | blanket_impl.rs:281:31:281:36 | _query | | blanket_impl.rs:281:21:281:21 | E | @@ -4868,7 +5102,6 @@ inferType | blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:282:22:282:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | -| blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:290:16:300:5 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:291:13:291:13 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | | blanket_impl.rs:291:17:291:34 | MySqlConnection {...} | | blanket_impl.rs:286:5:286:29 | MySqlConnection | @@ -5481,7 +5714,6 @@ inferType | dereference.rs:214:22:214:38 | "In struct impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:214:22:214:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | -| dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:220:16:220:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:220:16:220:20 | SelfParam | TRef | dereference.rs:205:5:205:17 | Foo | | dereference.rs:220:23:222:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5490,7 +5722,6 @@ inferType | dereference.rs:221:22:221:37 | "In trait impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:221:22:221:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | -| dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:225:19:228:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:226:17:226:17 | f | | dereference.rs:205:5:205:17 | Foo | | dereference.rs:226:21:226:26 | Foo {...} | | dereference.rs:205:5:205:17 | Foo | @@ -5520,7 +5751,6 @@ inferType | dyn_type.rs:29:17:29:42 | ...::format(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | -| dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:33:29:36 | self | | {EXTERNAL LOCATION} | & | | dyn_type.rs:29:33:29:36 | self | TRef | dyn_type.rs:21:1:24:1 | MyStruct | | dyn_type.rs:29:33:29:42 | self.value | | {EXTERNAL LOCATION} | i32 | @@ -5778,7 +6008,6 @@ inferType | main.rs:27:18:27:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:27:18:27:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:27:26:27:26 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:27:26:27:28 | x.a | | main.rs:3:5:4:13 | S | | main.rs:30:29:30:29 | x | | main.rs:16:5:19:5 | GenericThing | @@ -5793,7 +6022,6 @@ inferType | main.rs:32:18:32:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:32:18:32:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:32:26:32:26 | a | | {EXTERNAL LOCATION} | bool | | main.rs:35:31:63:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:37:13:37:13 | x | | main.rs:16:5:19:5 | GenericThing | @@ -5806,7 +6034,6 @@ inferType | main.rs:38:18:38:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:38:18:38:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:38:26:38:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:38:26:38:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:38:26:38:28 | x.a | | main.rs:3:5:4:13 | S | @@ -5820,7 +6047,6 @@ inferType | main.rs:42:18:42:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:42:18:42:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:42:26:42:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:42:26:42:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:42:26:42:28 | x.a | | main.rs:3:5:4:13 | S | @@ -5833,7 +6059,6 @@ inferType | main.rs:49:18:49:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:49:18:49:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:49:26:49:26 | x | | main.rs:21:5:23:5 | OptionS | | main.rs:49:26:49:28 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:49:26:49:28 | x.a | T | main.rs:3:5:4:13 | S | @@ -5850,7 +6075,6 @@ inferType | main.rs:55:18:55:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:55:18:55:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:55:26:55:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:55:26:55:26 | x | A | main.rs:10:5:14:5 | MyOption | | main.rs:55:26:55:26 | x | A.T | main.rs:3:5:4:13 | S | @@ -5876,7 +6100,6 @@ inferType | main.rs:62:18:62:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:62:18:62:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:62:26:62:26 | a | | main.rs:10:5:14:5 | MyOption | | main.rs:62:26:62:26 | a | T | main.rs:3:5:4:13 | S | | main.rs:65:16:68:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5894,7 +6117,6 @@ inferType | main.rs:85:18:85:33 | "main.rs::m1::f\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:85:18:85:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:86:13:86:13 | x | | main.rs:72:5:72:21 | Foo | | main.rs:86:17:86:22 | Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:87:13:87:13 | y | | main.rs:72:5:72:21 | Foo | @@ -5908,7 +6130,6 @@ inferType | main.rs:92:18:92:33 | "main.rs::m1::g\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:92:18:92:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:93:9:93:9 | x | | main.rs:72:5:72:21 | Foo | | main.rs:93:9:93:14 | x.m1() | | main.rs:72:5:72:21 | Foo | | main.rs:94:9:94:9 | y | | main.rs:72:5:72:21 | Foo | @@ -5939,7 +6160,6 @@ inferType | main.rs:131:26:131:31 | "foo!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:131:26:131:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:137:25:137:29 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:137:25:137:29 | SelfParam | TRef | main.rs:135:9:140:9 | Self [trait Bar] | | main.rs:137:32:139:13 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5948,7 +6168,6 @@ inferType | main.rs:138:26:138:31 | "bar!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:138:26:138:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:149:15:170:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:150:13:150:13 | x | | main.rs:142:9:142:21 | X | | main.rs:150:17:150:17 | X | | main.rs:142:9:142:21 | X | @@ -6007,7 +6226,6 @@ inferType | main.rs:209:18:209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:209:18:209:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:209:26:209:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:209:26:209:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:209:26:209:28 | x.a | | main.rs:179:5:180:14 | S1 | @@ -6016,7 +6234,6 @@ inferType | main.rs:210:18:210:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:210:18:210:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:210:26:210:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:210:26:210:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:210:26:210:28 | y.a | | main.rs:181:5:182:14 | S2 | @@ -6025,7 +6242,6 @@ inferType | main.rs:212:18:212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:212:18:212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:212:26:212:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:212:26:212:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:212:26:212:31 | x.m1() | | main.rs:179:5:180:14 | S1 | @@ -6034,7 +6250,6 @@ inferType | main.rs:213:18:213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:213:18:213:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:213:26:213:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:213:26:213:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:213:26:213:31 | y.m1() | | main.rs:174:5:177:5 | MyThing | @@ -6055,7 +6270,6 @@ inferType | main.rs:218:18:218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:218:18:218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:218:26:218:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:218:26:218:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:218:26:218:31 | x.m2() | | main.rs:179:5:180:14 | S1 | @@ -6064,7 +6278,6 @@ inferType | main.rs:219:18:219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:219:18:219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:219:26:219:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:219:26:219:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:219:26:219:31 | y.m2() | | main.rs:181:5:182:14 | S2 | @@ -6209,7 +6422,6 @@ inferType | main.rs:378:18:378:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:378:18:378:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:378:26:378:33 | thing_s1 | | main.rs:224:5:227:5 | MyThing | | main.rs:378:26:378:33 | thing_s1 | A | main.rs:235:5:236:14 | S1 | | main.rs:378:26:378:38 | thing_s1.m1() | | main.rs:235:5:236:14 | S1 | @@ -6218,7 +6430,6 @@ inferType | main.rs:379:18:379:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:379:18:379:40 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:379:26:379:33 | thing_s2 | | main.rs:224:5:227:5 | MyThing | | main.rs:379:26:379:33 | thing_s2 | A | main.rs:237:5:238:14 | S2 | | main.rs:379:26:379:38 | thing_s2.m1() | | main.rs:224:5:227:5 | MyThing | @@ -6233,7 +6444,6 @@ inferType | main.rs:381:18:381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:381:18:381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:381:26:381:27 | s3 | | main.rs:239:5:240:14 | S3 | | main.rs:383:13:383:14 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:383:13:383:14 | p1 | P1 | main.rs:235:5:236:14 | S1 | @@ -6248,7 +6458,6 @@ inferType | main.rs:384:18:384:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:384:18:384:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:384:26:384:27 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:384:26:384:27 | p1 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:384:26:384:27 | p1 | P2 | main.rs:235:5:236:14 | S1 | @@ -6266,7 +6475,6 @@ inferType | main.rs:387:18:387:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:387:18:387:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:387:26:387:27 | p2 | | main.rs:229:5:233:5 | MyPair | | main.rs:387:26:387:27 | p2 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:387:26:387:27 | p2 | P2 | main.rs:237:5:238:14 | S2 | @@ -6288,7 +6496,6 @@ inferType | main.rs:393:18:393:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:393:18:393:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:393:26:393:27 | p3 | | main.rs:229:5:233:5 | MyPair | | main.rs:393:26:393:27 | p3 | P1 | main.rs:224:5:227:5 | MyThing | | main.rs:393:26:393:27 | p3 | P1.A | main.rs:235:5:236:14 | S1 | @@ -6312,7 +6519,6 @@ inferType | main.rs:398:18:398:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:398:18:398:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:398:26:398:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:399:13:399:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:399:17:399:17 | a | | main.rs:229:5:233:5 | MyPair | @@ -6324,7 +6530,6 @@ inferType | main.rs:400:18:400:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:400:18:400:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:400:26:400:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:406:13:406:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:406:13:406:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6344,7 +6549,6 @@ inferType | main.rs:408:18:408:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:408:18:408:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:408:26:408:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:409:13:409:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:409:17:409:17 | b | | main.rs:229:5:233:5 | MyPair | @@ -6356,7 +6560,6 @@ inferType | main.rs:410:18:410:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:410:18:410:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:410:26:410:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:414:13:414:13 | x | | main.rs:235:5:236:14 | S1 | | main.rs:414:17:414:39 | call_trait_m1(...) | | main.rs:235:5:236:14 | S1 | @@ -6367,7 +6570,6 @@ inferType | main.rs:415:18:415:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:415:18:415:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:415:26:415:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:416:13:416:13 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:416:13:416:13 | y | A | main.rs:237:5:238:14 | S2 | @@ -6380,7 +6582,6 @@ inferType | main.rs:417:18:417:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:417:18:417:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:417:26:417:26 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:417:26:417:26 | y | A | main.rs:237:5:238:14 | S2 | | main.rs:417:26:417:28 | y.a | | main.rs:237:5:238:14 | S2 | @@ -6402,7 +6603,6 @@ inferType | main.rs:422:18:422:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:422:18:422:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:422:26:422:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:423:13:423:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:423:17:423:26 | get_snd(...) | | main.rs:235:5:236:14 | S1 | @@ -6414,7 +6614,6 @@ inferType | main.rs:424:18:424:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:424:18:424:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:424:26:424:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:427:13:427:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:427:13:427:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6434,7 +6633,6 @@ inferType | main.rs:429:18:429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:429:18:429:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:429:26:429:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:430:13:430:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:430:17:430:26 | get_snd(...) | | main.rs:237:5:238:14 | S2 | @@ -6446,7 +6644,6 @@ inferType | main.rs:431:18:431:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:431:18:431:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:431:26:431:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:433:13:433:13 | c | | main.rs:229:5:233:5 | MyPair | | main.rs:433:13:433:13 | c | P1 | main.rs:239:5:240:14 | S3 | @@ -6569,7 +6766,6 @@ inferType | main.rs:571:18:571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:571:18:571:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:571:26:571:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:571:26:571:42 | x.common_method() | | main.rs:446:5:447:14 | S1 | | main.rs:572:9:572:46 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6577,7 +6773,6 @@ inferType | main.rs:572:18:572:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:572:18:572:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:572:26:572:45 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:572:44:572:44 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:9:573:45 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6585,7 +6780,6 @@ inferType | main.rs:573:18:573:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:573:18:573:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:573:26:573:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:26:573:44 | x.common_method_2() | | main.rs:446:5:447:14 | S1 | | main.rs:574:9:574:48 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6593,7 +6787,6 @@ inferType | main.rs:574:18:574:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:574:18:574:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:574:26:574:47 | ...::common_method_2(...) | | main.rs:446:5:447:14 | S1 | | main.rs:574:46:574:46 | x | | main.rs:446:5:447:14 | S1 | | main.rs:576:13:576:13 | y | | main.rs:479:5:479:22 | S2 | @@ -6606,7 +6799,6 @@ inferType | main.rs:577:18:577:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:577:18:577:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:577:26:577:26 | y | | main.rs:479:5:479:22 | S2 | | main.rs:577:26:577:26 | y | T2 | main.rs:446:5:447:14 | S1 | | main.rs:577:26:577:42 | y.common_method() | | main.rs:446:5:447:14 | S1 | @@ -6615,7 +6807,6 @@ inferType | main.rs:578:18:578:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:578:18:578:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:578:26:578:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:578:50:578:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:578:50:578:55 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | @@ -6630,7 +6821,6 @@ inferType | main.rs:581:18:581:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:581:18:581:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:581:26:581:26 | z | | main.rs:479:5:479:22 | S2 | | main.rs:581:26:581:26 | z | T2 | {EXTERNAL LOCATION} | i32 | | main.rs:581:26:581:42 | z.common_method() | | main.rs:446:5:447:14 | S1 | @@ -6639,7 +6829,6 @@ inferType | main.rs:582:18:582:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:582:18:582:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:582:26:582:49 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:582:44:582:48 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:582:44:582:48 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -6649,7 +6838,6 @@ inferType | main.rs:583:18:583:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:583:18:583:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:583:26:583:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:583:51:583:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:583:51:583:55 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -6664,7 +6852,6 @@ inferType | main.rs:586:18:586:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:586:18:586:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:586:26:586:26 | w | | main.rs:517:5:518:22 | S3 | | main.rs:586:26:586:26 | w | T3 | main.rs:446:5:447:14 | S1 | | main.rs:586:26:586:31 | w.m(...) | | {EXTERNAL LOCATION} | & | @@ -6676,7 +6863,6 @@ inferType | main.rs:587:18:587:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:587:18:587:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:587:26:587:37 | ...::m(...) | | {EXTERNAL LOCATION} | & | | main.rs:587:26:587:37 | ...::m(...) | TRef | main.rs:517:5:518:22 | S3 | | main.rs:587:26:587:37 | ...::m(...) | TRef.T3 | main.rs:446:5:447:14 | S1 | @@ -6726,7 +6912,6 @@ inferType | main.rs:622:18:622:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:622:18:622:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:622:26:622:27 | s1 | | main.rs:619:35:619:42 | I | | main.rs:625:65:625:65 | x | | main.rs:625:46:625:62 | T | | main.rs:625:71:629:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6738,7 +6923,6 @@ inferType | main.rs:628:18:628:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:628:18:628:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:628:26:628:27 | s2 | | main.rs:625:36:625:43 | I | | main.rs:631:49:631:49 | x | | main.rs:631:30:631:46 | T | | main.rs:631:55:634:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6750,7 +6934,6 @@ inferType | main.rs:633:18:633:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:633:18:633:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:633:26:633:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:636:53:636:53 | x | | main.rs:636:34:636:50 | T | | main.rs:636:59:639:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6762,7 +6945,6 @@ inferType | main.rs:638:18:638:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:638:18:638:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:638:26:638:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:641:43:641:43 | x | | main.rs:641:40:641:40 | T | | main.rs:644:5:647:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6774,7 +6956,6 @@ inferType | main.rs:646:18:646:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:646:18:646:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:646:26:646:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:650:16:650:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | | main.rs:652:16:652:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | @@ -6801,7 +6982,6 @@ inferType | main.rs:668:18:668:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:668:18:668:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:668:32:668:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:668:36:668:37 | s2 | | main.rs:604:5:605:14 | S2 | | main.rs:671:69:671:69 | x | | main.rs:671:52:671:66 | T | @@ -6818,7 +6998,6 @@ inferType | main.rs:675:18:675:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:675:18:675:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:675:32:675:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:675:36:675:37 | s2 | | main.rs:671:41:671:49 | T2 | | main.rs:678:50:678:50 | x | | main.rs:678:41:678:47 | T | @@ -6835,7 +7014,6 @@ inferType | main.rs:682:18:682:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:682:18:682:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:682:32:682:33 | s1 | | {EXTERNAL LOCATION} | bool | | main.rs:682:36:682:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:685:54:685:54 | x | | main.rs:685:41:685:51 | T | @@ -6852,7 +7030,6 @@ inferType | main.rs:689:18:689:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:689:18:689:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:689:32:689:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:689:36:689:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:697:18:697:22 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -7019,7 +7196,6 @@ inferType | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:849:26:849:26 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:849:26:849:26 | x | T | main.rs:743:5:744:14 | S1 | | main.rs:849:26:849:31 | x.m1() | | main.rs:743:5:744:14 | S1 | @@ -7028,7 +7204,6 @@ inferType | main.rs:850:18:850:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:850:18:850:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:850:26:850:26 | y | | main.rs:738:5:741:5 | MyThing | | main.rs:850:26:850:26 | y | T | main.rs:745:5:746:14 | S2 | | main.rs:850:26:850:31 | y.m1() | | main.rs:745:5:746:14 | S2 | @@ -7047,7 +7222,6 @@ inferType | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:855:26:855:26 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:855:26:855:26 | x | T | main.rs:743:5:744:14 | S1 | | main.rs:855:26:855:31 | x.m2() | | main.rs:743:5:744:14 | S1 | @@ -7056,7 +7230,6 @@ inferType | main.rs:856:18:856:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:856:18:856:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:856:26:856:26 | y | | main.rs:738:5:741:5 | MyThing | | main.rs:856:26:856:26 | y | T | main.rs:745:5:746:14 | S2 | | main.rs:856:26:856:31 | y.m2() | | main.rs:745:5:746:14 | S2 | @@ -7079,7 +7252,6 @@ inferType | main.rs:862:18:862:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:862:18:862:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:862:26:862:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:863:13:863:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:863:17:863:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | @@ -7090,7 +7262,6 @@ inferType | main.rs:864:18:864:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:864:18:864:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:864:26:864:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:865:13:865:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:865:17:865:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | @@ -7101,7 +7272,6 @@ inferType | main.rs:866:18:866:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:866:18:866:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:866:26:866:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:867:13:867:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:867:17:867:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | @@ -7112,7 +7282,6 @@ inferType | main.rs:868:18:868:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:868:18:868:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:868:26:868:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:869:13:869:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:869:17:869:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | @@ -7123,7 +7292,6 @@ inferType | main.rs:870:18:870:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:870:18:870:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:870:26:870:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:871:13:871:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:871:17:871:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | @@ -7134,7 +7302,6 @@ inferType | main.rs:872:18:872:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:872:18:872:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:872:26:872:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:873:13:873:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:873:17:873:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | @@ -7145,7 +7312,6 @@ inferType | main.rs:874:18:874:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:874:18:874:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:874:26:874:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:875:13:875:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:875:17:875:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | @@ -7156,7 +7322,6 @@ inferType | main.rs:876:18:876:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:876:18:876:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:876:26:876:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:877:13:877:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:877:17:877:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | @@ -7167,7 +7332,6 @@ inferType | main.rs:878:18:878:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:878:18:878:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:878:26:878:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:879:13:879:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:879:17:879:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | @@ -7178,7 +7342,6 @@ inferType | main.rs:880:18:880:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:880:18:880:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:880:26:880:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:882:13:882:14 | x3 | | main.rs:738:5:741:5 | MyThing | | main.rs:882:13:882:14 | x3 | T | main.rs:738:5:741:5 | MyThing | @@ -7208,7 +7371,6 @@ inferType | main.rs:890:18:890:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:890:18:890:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:890:26:890:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:891:13:891:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:891:17:891:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | @@ -7220,7 +7382,6 @@ inferType | main.rs:892:18:892:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:892:18:892:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:892:26:892:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:893:13:893:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:893:17:893:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | @@ -7232,7 +7393,6 @@ inferType | main.rs:894:18:894:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:894:18:894:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:894:26:894:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:895:13:895:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:895:17:895:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | @@ -7244,7 +7404,6 @@ inferType | main.rs:896:18:896:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:896:18:896:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:896:26:896:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:897:13:897:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:897:17:897:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | @@ -7256,7 +7415,6 @@ inferType | main.rs:898:18:898:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:898:18:898:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:898:26:898:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:899:13:899:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:899:17:899:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | @@ -7268,7 +7426,6 @@ inferType | main.rs:900:18:900:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:900:26:900:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:901:13:901:13 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:901:17:901:26 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | @@ -7276,4232 +7433,3938 @@ inferType | main.rs:902:13:902:13 | y | | {EXTERNAL LOCATION} | i32 | | main.rs:902:22:902:31 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | | main.rs:902:29:902:30 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:913:19:913:22 | SelfParam | | main.rs:907:5:910:5 | Wrapper | -| main.rs:913:19:913:22 | SelfParam | A | main.rs:912:10:912:10 | A | -| main.rs:913:30:915:9 | { ... } | | main.rs:912:10:912:10 | A | -| main.rs:914:13:914:16 | self | | main.rs:907:5:910:5 | Wrapper | -| main.rs:914:13:914:16 | self | A | main.rs:912:10:912:10 | A | -| main.rs:914:13:914:22 | self.field | | main.rs:912:10:912:10 | A | -| main.rs:922:15:922:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | -| main.rs:924:15:924:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | -| main.rs:928:9:931:9 | { ... } | | main.rs:919:9:919:28 | AssociatedType | -| main.rs:929:13:929:16 | self | | main.rs:918:5:932:5 | Self [trait MyTrait] | -| main.rs:929:13:929:21 | self.m1() | | main.rs:919:9:919:28 | AssociatedType | -| main.rs:930:13:930:43 | ...::default(...) | | main.rs:919:9:919:28 | AssociatedType | -| main.rs:938:19:938:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:938:19:938:23 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:938:26:938:26 | a | | main.rs:938:16:938:16 | A | -| main.rs:940:22:940:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:940:22:940:26 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:940:29:940:29 | a | | main.rs:940:19:940:19 | A | -| main.rs:940:35:940:35 | b | | main.rs:940:19:940:19 | A | -| main.rs:940:75:943:9 | { ... } | | main.rs:935:9:935:52 | GenericAssociatedType | -| main.rs:941:13:941:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:941:13:941:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:941:13:941:23 | self.put(...) | | main.rs:935:9:935:52 | GenericAssociatedType | -| main.rs:941:22:941:22 | a | | main.rs:940:19:940:19 | A | -| main.rs:942:13:942:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:942:13:942:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | -| main.rs:942:13:942:23 | self.put(...) | | main.rs:935:9:935:52 | GenericAssociatedType | -| main.rs:942:22:942:22 | b | | main.rs:940:19:940:19 | A | -| main.rs:951:21:951:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:951:21:951:25 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | -| main.rs:953:20:953:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:953:20:953:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | -| main.rs:955:20:955:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:955:20:955:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | -| main.rs:971:15:971:18 | SelfParam | | main.rs:958:5:959:13 | S | -| main.rs:971:45:973:9 | { ... } | | main.rs:964:5:965:14 | AT | -| main.rs:972:13:972:14 | AT | | main.rs:964:5:965:14 | AT | -| main.rs:981:19:981:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:981:19:981:23 | SelfParam | TRef | main.rs:958:5:959:13 | S | -| main.rs:981:26:981:26 | a | | main.rs:981:16:981:16 | A | -| main.rs:981:46:983:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | -| main.rs:981:46:983:9 | { ... } | A | main.rs:981:16:981:16 | A | -| main.rs:982:13:982:32 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | -| main.rs:982:13:982:32 | Wrapper {...} | A | main.rs:981:16:981:16 | A | -| main.rs:982:30:982:30 | a | | main.rs:981:16:981:16 | A | -| main.rs:990:15:990:18 | SelfParam | | main.rs:961:5:962:14 | S2 | -| main.rs:990:45:992:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | -| main.rs:990:45:992:9 | { ... } | A | main.rs:961:5:962:14 | S2 | -| main.rs:991:13:991:35 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | -| main.rs:991:13:991:35 | Wrapper {...} | A | main.rs:961:5:962:14 | S2 | -| main.rs:991:30:991:33 | self | | main.rs:961:5:962:14 | S2 | -| main.rs:997:30:999:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | -| main.rs:997:30:999:9 | { ... } | A | main.rs:961:5:962:14 | S2 | -| main.rs:998:13:998:33 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | -| main.rs:998:13:998:33 | Wrapper {...} | A | main.rs:961:5:962:14 | S2 | -| main.rs:998:30:998:31 | S2 | | main.rs:961:5:962:14 | S2 | -| main.rs:1004:22:1004:26 | thing | | main.rs:1004:10:1004:19 | T | -| main.rs:1005:9:1005:13 | thing | | main.rs:1004:10:1004:19 | T | -| main.rs:1012:21:1012:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1012:21:1012:25 | SelfParam | TRef | main.rs:964:5:965:14 | AT | -| main.rs:1012:34:1014:9 | { ... } | | main.rs:964:5:965:14 | AT | -| main.rs:1013:13:1013:14 | AT | | main.rs:964:5:965:14 | AT | -| main.rs:1016:20:1016:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1016:20:1016:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | -| main.rs:1016:43:1018:9 | { ... } | | main.rs:958:5:959:13 | S | -| main.rs:1017:13:1017:13 | S | | main.rs:958:5:959:13 | S | -| main.rs:1020:20:1020:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1020:20:1020:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | -| main.rs:1020:43:1022:9 | { ... } | | main.rs:961:5:962:14 | S2 | -| main.rs:1021:13:1021:14 | S2 | | main.rs:961:5:962:14 | S2 | -| main.rs:1025:16:1053:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1026:13:1026:14 | x1 | | main.rs:958:5:959:13 | S | -| main.rs:1026:18:1026:18 | S | | main.rs:958:5:959:13 | S | -| main.rs:1028:9:1028:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1028:18:1028:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1028:18:1028:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1028:26:1028:27 | x1 | | main.rs:958:5:959:13 | S | -| main.rs:1028:26:1028:32 | x1.m1() | | main.rs:964:5:965:14 | AT | -| main.rs:1030:13:1030:14 | x2 | | main.rs:958:5:959:13 | S | -| main.rs:1030:18:1030:18 | S | | main.rs:958:5:959:13 | S | -| main.rs:1032:13:1032:13 | y | | main.rs:964:5:965:14 | AT | -| main.rs:1032:17:1032:18 | x2 | | main.rs:958:5:959:13 | S | -| main.rs:1032:17:1032:23 | x2.m2() | | main.rs:964:5:965:14 | AT | -| main.rs:1033:9:1033:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1033:18:1033:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1033:18:1033:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1033:26:1033:26 | y | | main.rs:964:5:965:14 | AT | -| main.rs:1035:13:1035:14 | x3 | | main.rs:958:5:959:13 | S | -| main.rs:1035:18:1035:18 | S | | main.rs:958:5:959:13 | S | -| main.rs:1037:9:1037:44 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1037:18:1037:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1037:18:1037:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1037:18:1037:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1037:26:1037:27 | x3 | | main.rs:958:5:959:13 | S | -| main.rs:1037:26:1037:34 | x3.put(...) | | main.rs:907:5:910:5 | Wrapper | -| main.rs:1037:26:1037:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| main.rs:1037:26:1037:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1037:33:1037:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1040:9:1040:50 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1040:18:1040:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1040:18:1040:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1040:26:1040:27 | x3 | | main.rs:958:5:959:13 | S | -| main.rs:1040:26:1040:40 | x3.putTwo(...) | | main.rs:907:5:910:5 | Wrapper | -| main.rs:1040:36:1040:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1040:39:1040:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1042:20:1042:20 | S | | main.rs:958:5:959:13 | S | -| main.rs:1043:9:1043:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1043:18:1043:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1043:18:1043:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1045:13:1045:14 | x5 | | main.rs:961:5:962:14 | S2 | -| main.rs:1045:18:1045:19 | S2 | | main.rs:961:5:962:14 | S2 | -| main.rs:1046:9:1046:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1046:18:1046:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1046:18:1046:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1046:26:1046:27 | x5 | | main.rs:961:5:962:14 | S2 | -| main.rs:1046:26:1046:32 | x5.m1() | | main.rs:907:5:910:5 | Wrapper | -| main.rs:1046:26:1046:32 | x5.m1() | A | main.rs:961:5:962:14 | S2 | -| main.rs:1047:13:1047:14 | x6 | | main.rs:961:5:962:14 | S2 | -| main.rs:1047:18:1047:19 | S2 | | main.rs:961:5:962:14 | S2 | -| main.rs:1048:9:1048:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1048:18:1048:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1048:18:1048:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1048:18:1048:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1048:26:1048:27 | x6 | | main.rs:961:5:962:14 | S2 | -| main.rs:1048:26:1048:32 | x6.m2() | | main.rs:907:5:910:5 | Wrapper | -| main.rs:1048:26:1048:32 | x6.m2() | A | main.rs:961:5:962:14 | S2 | -| main.rs:1050:13:1050:22 | assoc_zero | | main.rs:964:5:965:14 | AT | -| main.rs:1050:26:1050:27 | AT | | main.rs:964:5:965:14 | AT | -| main.rs:1050:26:1050:38 | AT.get_zero() | | main.rs:964:5:965:14 | AT | -| main.rs:1051:13:1051:21 | assoc_one | | main.rs:958:5:959:13 | S | -| main.rs:1051:25:1051:26 | AT | | main.rs:964:5:965:14 | AT | -| main.rs:1051:25:1051:36 | AT.get_one() | | main.rs:958:5:959:13 | S | -| main.rs:1052:13:1052:21 | assoc_two | | main.rs:961:5:962:14 | S2 | -| main.rs:1052:25:1052:26 | AT | | main.rs:964:5:965:14 | AT | -| main.rs:1052:25:1052:36 | AT.get_two() | | main.rs:961:5:962:14 | S2 | -| main.rs:1060:19:1060:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1060:19:1060:23 | SelfParam | TRef | main.rs:1057:5:1061:5 | Self [trait Supertrait] | -| main.rs:1060:26:1060:32 | content | | main.rs:1058:9:1058:21 | Content | -| main.rs:1065:24:1065:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1065:24:1065:28 | SelfParam | TRef | main.rs:1063:5:1066:5 | Self [trait Subtrait] | -| main.rs:1074:23:1074:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1074:23:1074:27 | SelfParam | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | -| main.rs:1074:68:1077:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1075:13:1075:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1075:13:1075:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | -| main.rs:1075:13:1075:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1076:13:1076:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1076:13:1076:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | -| main.rs:1076:13:1076:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1084:19:1084:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1084:19:1084:23 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | -| main.rs:1084:19:1084:23 | SelfParam | TRef.T | main.rs:1082:10:1082:10 | T | -| main.rs:1084:26:1084:33 | _content | | main.rs:1082:10:1082:10 | T | -| main.rs:1084:51:1086:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1085:13:1085:43 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1085:22:1085:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1085:22:1085:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1085:22:1085:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1091:24:1091:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1091:24:1091:28 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | -| main.rs:1091:24:1091:28 | SelfParam | TRef.T | main.rs:1089:10:1089:17 | T | -| main.rs:1091:48:1093:9 | { ... } | | main.rs:1089:10:1089:17 | T | -| main.rs:1092:13:1092:19 | (...) | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1092:13:1092:19 | (...) | T | main.rs:1089:10:1089:17 | T | -| main.rs:1092:13:1092:21 | ... .0 | | main.rs:1089:10:1089:17 | T | -| main.rs:1092:13:1092:29 | ... .clone() | | main.rs:1089:10:1089:17 | T | -| main.rs:1092:14:1092:18 | * ... | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1092:14:1092:18 | * ... | T | main.rs:1089:10:1089:17 | T | -| main.rs:1092:15:1092:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1092:15:1092:18 | self | TRef | main.rs:1080:5:1080:24 | MyType | -| main.rs:1092:15:1092:18 | self | TRef.T | main.rs:1089:10:1089:17 | T | -| main.rs:1096:33:1096:36 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1096:33:1096:36 | item | TRef | main.rs:1096:20:1096:30 | T | -| main.rs:1097:9:1097:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1097:9:1097:12 | item | TRef | main.rs:1096:20:1096:30 | T | -| main.rs:1100:35:1100:38 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1100:35:1100:38 | item | TRef | main.rs:1100:21:1100:32 | T | -| main.rs:1100:93:1103:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1101:9:1101:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1101:9:1101:12 | item | TRef | main.rs:1100:21:1100:32 | T | -| main.rs:1101:9:1101:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1102:9:1102:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1102:9:1102:12 | item | TRef | main.rs:1100:21:1100:32 | T | -| main.rs:1102:9:1102:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1105:15:1111:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1106:13:1106:17 | item1 | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1106:13:1106:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1106:21:1106:33 | MyType(...) | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1106:21:1106:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1106:28:1106:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1107:25:1107:29 | item1 | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1107:25:1107:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1109:13:1109:17 | item2 | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1109:13:1109:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1109:21:1109:32 | MyType(...) | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1109:21:1109:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| main.rs:1109:28:1109:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1110:37:1110:42 | &item2 | | {EXTERNAL LOCATION} | & | -| main.rs:1110:37:1110:42 | &item2 | TRef | main.rs:1080:5:1080:24 | MyType | -| main.rs:1110:37:1110:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | -| main.rs:1110:38:1110:42 | item2 | | main.rs:1080:5:1080:24 | MyType | -| main.rs:1110:38:1110:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1127:15:1127:18 | SelfParam | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1127:15:1127:18 | SelfParam | A | main.rs:1126:10:1126:10 | T | -| main.rs:1127:26:1132:9 | { ... } | | main.rs:1126:10:1126:10 | T | -| main.rs:1128:13:1131:13 | match self { ... } | | main.rs:1126:10:1126:10 | T | -| main.rs:1128:19:1128:22 | self | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1128:19:1128:22 | self | A | main.rs:1126:10:1126:10 | T | -| main.rs:1129:17:1129:29 | ...::C1(...) | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1129:17:1129:29 | ...::C1(...) | A | main.rs:1126:10:1126:10 | T | -| main.rs:1129:28:1129:28 | a | | main.rs:1126:10:1126:10 | T | -| main.rs:1129:34:1129:34 | a | | main.rs:1126:10:1126:10 | T | -| main.rs:1130:17:1130:32 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1130:17:1130:32 | ...::C2 {...} | A | main.rs:1126:10:1126:10 | T | -| main.rs:1130:30:1130:30 | a | | main.rs:1126:10:1126:10 | T | -| main.rs:1130:37:1130:37 | a | | main.rs:1126:10:1126:10 | T | -| main.rs:1135:16:1141:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1136:13:1136:13 | x | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1136:13:1136:13 | x | A | main.rs:1121:5:1122:14 | S1 | -| main.rs:1136:17:1136:30 | ...::C1(...) | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1136:17:1136:30 | ...::C1(...) | A | main.rs:1121:5:1122:14 | S1 | -| main.rs:1136:28:1136:29 | S1 | | main.rs:1121:5:1122:14 | S1 | -| main.rs:1137:13:1137:13 | y | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1137:13:1137:13 | y | A | main.rs:1123:5:1124:14 | S2 | -| main.rs:1137:17:1137:36 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1137:17:1137:36 | ...::C2 {...} | A | main.rs:1123:5:1124:14 | S2 | -| main.rs:1137:33:1137:34 | S2 | | main.rs:1123:5:1124:14 | S2 | -| main.rs:1139:9:1139:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1139:18:1139:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1139:18:1139:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1139:18:1139:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1139:26:1139:26 | x | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1139:26:1139:26 | x | A | main.rs:1121:5:1122:14 | S1 | -| main.rs:1139:26:1139:31 | x.m1() | | main.rs:1121:5:1122:14 | S1 | -| main.rs:1140:9:1140:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1140:18:1140:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1140:18:1140:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1140:26:1140:26 | y | | main.rs:1115:5:1119:5 | MyEnum | -| main.rs:1140:26:1140:26 | y | A | main.rs:1123:5:1124:14 | S2 | -| main.rs:1140:26:1140:31 | y.m1() | | main.rs:1123:5:1124:14 | S2 | -| main.rs:1162:15:1162:18 | SelfParam | | main.rs:1160:5:1163:5 | Self [trait MyTrait1] | -| main.rs:1167:15:1167:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1167:15:1167:19 | SelfParam | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | -| main.rs:1170:9:1176:9 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | -| main.rs:1171:13:1175:13 | if ... {...} else {...} | | main.rs:1165:20:1165:22 | Tr2 | -| main.rs:1171:16:1171:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1171:16:1171:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1171:20:1171:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1171:22:1173:13 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | -| main.rs:1172:17:1172:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1172:17:1172:20 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | -| main.rs:1172:17:1172:25 | self.m1() | | main.rs:1165:20:1165:22 | Tr2 | -| main.rs:1173:20:1175:13 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | -| main.rs:1174:17:1174:31 | ...::m1(...) | | main.rs:1165:20:1165:22 | Tr2 | -| main.rs:1174:26:1174:30 | * ... | | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | -| main.rs:1174:27:1174:30 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1174:27:1174:30 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | -| main.rs:1181:15:1181:18 | SelfParam | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | -| main.rs:1184:9:1190:9 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1185:13:1189:13 | if ... {...} else {...} | | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1185:16:1185:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1185:16:1185:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1185:20:1185:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1185:22:1187:13 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1186:17:1186:20 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | -| main.rs:1186:17:1186:25 | self.m2() | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1186:17:1186:25 | self.m2() | A | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1186:17:1186:27 | ... .a | | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1187:20:1189:13 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1188:17:1188:31 | ...::m2(...) | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1188:17:1188:31 | ...::m2(...) | A | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1188:17:1188:33 | ... .a | | main.rs:1179:20:1179:22 | Tr3 | -| main.rs:1188:26:1188:30 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1188:26:1188:30 | &self | TRef | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | -| main.rs:1188:27:1188:30 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | -| main.rs:1195:15:1195:18 | SelfParam | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1195:15:1195:18 | SelfParam | A | main.rs:1193:10:1193:10 | T | -| main.rs:1195:26:1197:9 | { ... } | | main.rs:1193:10:1193:10 | T | -| main.rs:1196:13:1196:16 | self | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1196:13:1196:16 | self | A | main.rs:1193:10:1193:10 | T | -| main.rs:1196:13:1196:18 | self.a | | main.rs:1193:10:1193:10 | T | -| main.rs:1204:15:1204:18 | SelfParam | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1204:15:1204:18 | SelfParam | A | main.rs:1202:10:1202:10 | T | -| main.rs:1204:35:1206:9 | { ... } | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1204:35:1206:9 | { ... } | A | main.rs:1202:10:1202:10 | T | -| main.rs:1205:13:1205:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1205:13:1205:33 | MyThing {...} | A | main.rs:1202:10:1202:10 | T | -| main.rs:1205:26:1205:29 | self | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1205:26:1205:29 | self | A | main.rs:1202:10:1202:10 | T | -| main.rs:1205:26:1205:31 | self.a | | main.rs:1202:10:1202:10 | T | -| main.rs:1213:44:1213:44 | x | | main.rs:1213:26:1213:41 | T2 | -| main.rs:1213:57:1215:5 | { ... } | | main.rs:1213:22:1213:23 | T1 | -| main.rs:1214:9:1214:9 | x | | main.rs:1213:26:1213:41 | T2 | -| main.rs:1214:9:1214:14 | x.m1() | | main.rs:1213:22:1213:23 | T1 | -| main.rs:1217:56:1217:56 | x | | main.rs:1217:39:1217:53 | T | -| main.rs:1217:62:1221:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1219:13:1219:13 | a | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1219:13:1219:13 | a | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1219:17:1219:17 | x | | main.rs:1217:39:1217:53 | T | -| main.rs:1219:17:1219:22 | x.m1() | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1219:17:1219:22 | x.m1() | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1220:9:1220:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1220:18:1220:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1220:18:1220:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1220:18:1220:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1220:26:1220:26 | a | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1220:26:1220:26 | a | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1223:16:1247:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1224:13:1224:13 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1224:13:1224:13 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1224:17:1224:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1224:17:1224:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1224:30:1224:31 | S1 | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1225:13:1225:13 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1225:13:1225:13 | y | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1225:17:1225:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1225:17:1225:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1225:30:1225:31 | S2 | | main.rs:1157:5:1158:14 | S2 | -| main.rs:1227:9:1227:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:919:15:919:18 | SelfParam | | main.rs:907:5:911:5 | MyEnum | +| main.rs:919:15:919:18 | SelfParam | A | main.rs:918:10:918:10 | T | +| main.rs:919:26:924:9 | { ... } | | main.rs:918:10:918:10 | T | +| main.rs:920:13:923:13 | match self { ... } | | main.rs:918:10:918:10 | T | +| main.rs:920:19:920:22 | self | | main.rs:907:5:911:5 | MyEnum | +| main.rs:920:19:920:22 | self | A | main.rs:918:10:918:10 | T | +| main.rs:921:17:921:29 | ...::C1(...) | | main.rs:907:5:911:5 | MyEnum | +| main.rs:921:17:921:29 | ...::C1(...) | A | main.rs:918:10:918:10 | T | +| main.rs:921:28:921:28 | a | | main.rs:918:10:918:10 | T | +| main.rs:921:34:921:34 | a | | main.rs:918:10:918:10 | T | +| main.rs:922:17:922:32 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:922:17:922:32 | ...::C2 {...} | A | main.rs:918:10:918:10 | T | +| main.rs:922:30:922:30 | a | | main.rs:918:10:918:10 | T | +| main.rs:922:37:922:37 | a | | main.rs:918:10:918:10 | T | +| main.rs:927:16:933:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:928:13:928:13 | x | | main.rs:907:5:911:5 | MyEnum | +| main.rs:928:13:928:13 | x | A | main.rs:913:5:914:14 | S1 | +| main.rs:928:17:928:30 | ...::C1(...) | | main.rs:907:5:911:5 | MyEnum | +| main.rs:928:17:928:30 | ...::C1(...) | A | main.rs:913:5:914:14 | S1 | +| main.rs:928:28:928:29 | S1 | | main.rs:913:5:914:14 | S1 | +| main.rs:929:13:929:13 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:929:13:929:13 | y | A | main.rs:915:5:916:14 | S2 | +| main.rs:929:17:929:36 | ...::C2 {...} | | main.rs:907:5:911:5 | MyEnum | +| main.rs:929:17:929:36 | ...::C2 {...} | A | main.rs:915:5:916:14 | S2 | +| main.rs:929:33:929:34 | S2 | | main.rs:915:5:916:14 | S2 | +| main.rs:931:9:931:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:931:18:931:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:931:18:931:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:931:26:931:26 | x | | main.rs:907:5:911:5 | MyEnum | +| main.rs:931:26:931:26 | x | A | main.rs:913:5:914:14 | S1 | +| main.rs:931:26:931:31 | x.m1() | | main.rs:913:5:914:14 | S1 | +| main.rs:932:9:932:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:932:18:932:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:932:18:932:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:26:932:26 | y | | main.rs:907:5:911:5 | MyEnum | +| main.rs:932:26:932:26 | y | A | main.rs:915:5:916:14 | S2 | +| main.rs:932:26:932:31 | y.m1() | | main.rs:915:5:916:14 | S2 | +| main.rs:954:15:954:18 | SelfParam | | main.rs:952:5:955:5 | Self [trait MyTrait1] | +| main.rs:959:15:959:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:959:15:959:19 | SelfParam | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:962:9:968:9 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:963:13:967:13 | if ... {...} else {...} | | main.rs:957:20:957:22 | Tr2 | +| main.rs:963:16:963:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:963:16:963:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:963:20:963:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:963:22:965:13 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:964:17:964:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:964:17:964:20 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:964:17:964:25 | self.m1() | | main.rs:957:20:957:22 | Tr2 | +| main.rs:965:20:967:13 | { ... } | | main.rs:957:20:957:22 | Tr2 | +| main.rs:966:17:966:31 | ...::m1(...) | | main.rs:957:20:957:22 | Tr2 | +| main.rs:966:26:966:30 | * ... | | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:966:27:966:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:966:27:966:30 | self | TRef | main.rs:957:5:969:5 | Self [trait MyTrait2] | +| main.rs:973:15:973:18 | SelfParam | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:976:9:982:9 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:977:13:981:13 | if ... {...} else {...} | | main.rs:971:20:971:22 | Tr3 | +| main.rs:977:16:977:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:977:16:977:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:977:20:977:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:977:22:979:13 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:978:17:978:20 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:978:17:978:25 | self.m2() | | main.rs:937:5:940:5 | MyThing | +| main.rs:978:17:978:25 | self.m2() | A | main.rs:971:20:971:22 | Tr3 | +| main.rs:978:17:978:27 | ... .a | | main.rs:971:20:971:22 | Tr3 | +| main.rs:979:20:981:13 | { ... } | | main.rs:971:20:971:22 | Tr3 | +| main.rs:980:17:980:31 | ...::m2(...) | | main.rs:937:5:940:5 | MyThing | +| main.rs:980:17:980:31 | ...::m2(...) | A | main.rs:971:20:971:22 | Tr3 | +| main.rs:980:17:980:33 | ... .a | | main.rs:971:20:971:22 | Tr3 | +| main.rs:980:26:980:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:980:26:980:30 | &self | TRef | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:980:27:980:30 | self | | main.rs:971:5:983:5 | Self [trait MyTrait3] | +| main.rs:987:15:987:18 | SelfParam | | main.rs:937:5:940:5 | MyThing | +| main.rs:987:15:987:18 | SelfParam | A | main.rs:985:10:985:10 | T | +| main.rs:987:26:989:9 | { ... } | | main.rs:985:10:985:10 | T | +| main.rs:988:13:988:16 | self | | main.rs:937:5:940:5 | MyThing | +| main.rs:988:13:988:16 | self | A | main.rs:985:10:985:10 | T | +| main.rs:988:13:988:18 | self.a | | main.rs:985:10:985:10 | T | +| main.rs:996:15:996:18 | SelfParam | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:996:15:996:18 | SelfParam | A | main.rs:994:10:994:10 | T | +| main.rs:996:35:998:9 | { ... } | | main.rs:937:5:940:5 | MyThing | +| main.rs:996:35:998:9 | { ... } | A | main.rs:994:10:994:10 | T | +| main.rs:997:13:997:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:997:13:997:33 | MyThing {...} | A | main.rs:994:10:994:10 | T | +| main.rs:997:26:997:29 | self | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:997:26:997:29 | self | A | main.rs:994:10:994:10 | T | +| main.rs:997:26:997:31 | self.a | | main.rs:994:10:994:10 | T | +| main.rs:1005:44:1005:44 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1005:57:1007:5 | { ... } | | main.rs:1005:22:1005:23 | T1 | +| main.rs:1006:9:1006:9 | x | | main.rs:1005:26:1005:41 | T2 | +| main.rs:1006:9:1006:14 | x.m1() | | main.rs:1005:22:1005:23 | T1 | +| main.rs:1009:56:1009:56 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1009:62:1013:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1011:13:1011:13 | a | | main.rs:937:5:940:5 | MyThing | +| main.rs:1011:13:1011:13 | a | A | main.rs:947:5:948:14 | S1 | +| main.rs:1011:17:1011:17 | x | | main.rs:1009:39:1009:53 | T | +| main.rs:1011:17:1011:22 | x.m1() | | main.rs:937:5:940:5 | MyThing | +| main.rs:1011:17:1011:22 | x.m1() | A | main.rs:947:5:948:14 | S1 | +| main.rs:1012:9:1012:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1012:18:1012:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1012:18:1012:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1012:26:1012:26 | a | | main.rs:937:5:940:5 | MyThing | +| main.rs:1012:26:1012:26 | a | A | main.rs:947:5:948:14 | S1 | +| main.rs:1015:16:1039:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1016:13:1016:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1016:13:1016:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1016:17:1016:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1016:17:1016:33 | MyThing {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1016:30:1016:31 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1017:13:1017:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:13:1017:13 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1017:17:1017:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1017:17:1017:33 | MyThing {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1017:30:1017:31 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1019:9:1019:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1019:18:1019:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1019:18:1019:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1019:26:1019:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1019:26:1019:26 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1019:26:1019:31 | x.m1() | | main.rs:947:5:948:14 | S1 | +| main.rs:1020:9:1020:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1020:18:1020:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1020:18:1020:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1020:26:1020:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1020:26:1020:26 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1020:26:1020:31 | y.m1() | | main.rs:949:5:950:14 | S2 | +| main.rs:1022:13:1022:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:13:1022:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1022:17:1022:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1022:17:1022:33 | MyThing {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1022:30:1022:31 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1023:13:1023:13 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:13:1023:13 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1023:17:1023:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1023:17:1023:33 | MyThing {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1023:30:1023:31 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1025:9:1025:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1025:18:1025:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1025:18:1025:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1025:26:1025:26 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1025:26:1025:26 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1025:26:1025:31 | x.m2() | | main.rs:947:5:948:14 | S1 | +| main.rs:1026:9:1026:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1026:18:1026:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1026:18:1026:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:26:1026:26 | y | | main.rs:937:5:940:5 | MyThing | +| main.rs:1026:26:1026:26 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1026:26:1026:31 | y.m2() | | main.rs:949:5:950:14 | S2 | +| main.rs:1028:13:1028:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1028:13:1028:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1028:17:1028:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1028:17:1028:34 | MyThing2 {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1028:31:1028:32 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1029:13:1029:13 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:13:1029:13 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1029:17:1029:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1029:17:1029:34 | MyThing2 {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1029:31:1029:32 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1031:9:1031:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1031:18:1031:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1031:18:1031:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1031:26:1031:26 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1031:26:1031:26 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1031:26:1031:31 | x.m3() | | main.rs:947:5:948:14 | S1 | +| main.rs:1032:9:1032:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1032:18:1032:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1032:18:1032:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1032:26:1032:26 | y | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1032:26:1032:26 | y | A | main.rs:949:5:950:14 | S2 | +| main.rs:1032:26:1032:31 | y.m3() | | main.rs:949:5:950:14 | S2 | +| main.rs:1034:13:1034:13 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1034:13:1034:13 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1034:17:1034:33 | MyThing {...} | | main.rs:937:5:940:5 | MyThing | +| main.rs:1034:17:1034:33 | MyThing {...} | A | main.rs:947:5:948:14 | S1 | +| main.rs:1034:30:1034:31 | S1 | | main.rs:947:5:948:14 | S1 | +| main.rs:1035:13:1035:13 | s | | main.rs:947:5:948:14 | S1 | +| main.rs:1035:17:1035:32 | call_trait_m1(...) | | main.rs:947:5:948:14 | S1 | +| main.rs:1035:31:1035:31 | x | | main.rs:937:5:940:5 | MyThing | +| main.rs:1035:31:1035:31 | x | A | main.rs:947:5:948:14 | S1 | +| main.rs:1037:13:1037:13 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1037:13:1037:13 | x | A | main.rs:949:5:950:14 | S2 | +| main.rs:1037:17:1037:34 | MyThing2 {...} | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1037:17:1037:34 | MyThing2 {...} | A | main.rs:949:5:950:14 | S2 | +| main.rs:1037:31:1037:32 | S2 | | main.rs:949:5:950:14 | S2 | +| main.rs:1038:13:1038:13 | s | | main.rs:937:5:940:5 | MyThing | +| main.rs:1038:13:1038:13 | s | A | main.rs:949:5:950:14 | S2 | +| main.rs:1038:17:1038:32 | call_trait_m1(...) | | main.rs:937:5:940:5 | MyThing | +| main.rs:1038:17:1038:32 | call_trait_m1(...) | A | main.rs:949:5:950:14 | S2 | +| main.rs:1038:31:1038:31 | x | | main.rs:942:5:945:5 | MyThing2 | +| main.rs:1038:31:1038:31 | x | A | main.rs:949:5:950:14 | S2 | +| main.rs:1055:22:1055:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1055:22:1055:22 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1055:35:1057:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1055:35:1057:5 | { ... } | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1056:9:1056:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1056:9:1056:9 | x | TRef | main.rs:1055:11:1055:19 | T | +| main.rs:1060:17:1060:20 | SelfParam | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1060:29:1062:9 | { ... } | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1061:13:1061:14 | S2 | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1065:21:1065:21 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1068:5:1070:5 | { ... } | | main.rs:1065:17:1065:18 | T2 | +| main.rs:1069:9:1069:9 | x | | main.rs:1065:13:1065:14 | T1 | +| main.rs:1069:9:1069:16 | x.into() | | main.rs:1065:17:1065:18 | T2 | +| main.rs:1072:16:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1073:13:1073:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1073:17:1073:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1074:9:1074:32 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1074:18:1074:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1074:18:1074:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:26:1074:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1074:26:1074:31 | id(...) | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1074:29:1074:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1074:29:1074:30 | &x | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1074:30:1074:30 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1076:13:1076:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1076:17:1076:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:9:1077:38 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1077:18:1077:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1077:18:1077:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1077:26:1077:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1077:26:1077:37 | id::<...>(...) | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:35:1077:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1077:35:1077:36 | &x | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1077:36:1077:36 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1079:13:1079:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1079:17:1079:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1081:9:1081:45 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1081:18:1081:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1081:18:1081:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1081:26:1081:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1081:26:1081:44 | id::<...>(...) | TRef | main.rs:1051:5:1051:25 | dyn Trait | +| main.rs:1081:42:1081:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1081:42:1081:43 | &x | TRef | main.rs:1045:5:1046:14 | S1 | +| main.rs:1081:43:1081:43 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1083:13:1083:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1083:17:1083:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1084:9:1084:25 | into::<...>(...) | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1084:24:1084:24 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1086:13:1086:13 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1086:17:1086:18 | S1 | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1087:13:1087:13 | y | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1087:21:1087:27 | into(...) | | main.rs:1048:5:1049:14 | S2 | +| main.rs:1087:26:1087:26 | x | | main.rs:1045:5:1046:14 | S1 | +| main.rs:1101:22:1101:25 | SelfParam | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1101:22:1101:25 | SelfParam | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1101:22:1101:25 | SelfParam | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1101:35:1108:9 | { ... } | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1102:13:1107:13 | match self { ... } | | file://:0:0:0:0 | ! | +| main.rs:1102:13:1107:13 | match self { ... } | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1102:19:1102:22 | self | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1102:19:1102:22 | self | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1102:19:1102:22 | self | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1103:17:1103:38 | ...::PairNone(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1103:17:1103:38 | ...::PairNone(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1103:17:1103:38 | ...::PairNone(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1103:43:1103:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1103:50:1103:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1103:50:1103:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1103:50:1103:81 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1103:50:1103:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1104:17:1104:38 | ...::PairFst(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1104:17:1104:38 | ...::PairFst(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1104:17:1104:38 | ...::PairFst(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1104:37:1104:37 | _ | | main.rs:1100:10:1100:12 | Fst | +| main.rs:1104:43:1104:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1104:50:1104:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1104:50:1104:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1104:50:1104:80 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1104:50:1104:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1105:17:1105:40 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1105:17:1105:40 | ...::PairSnd(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1105:17:1105:40 | ...::PairSnd(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1105:37:1105:39 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1105:45:1105:47 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1106:17:1106:44 | ...::PairBoth(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1106:17:1106:44 | ...::PairBoth(...) | Fst | main.rs:1100:10:1100:12 | Fst | +| main.rs:1106:17:1106:44 | ...::PairBoth(...) | Snd | main.rs:1100:15:1100:17 | Snd | +| main.rs:1106:38:1106:38 | _ | | main.rs:1100:10:1100:12 | Fst | +| main.rs:1106:41:1106:43 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1106:49:1106:51 | snd | | main.rs:1100:15:1100:17 | Snd | +| main.rs:1132:10:1132:10 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1132:10:1132:10 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1132:10:1132:10 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1132:30:1135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1133:13:1133:13 | x | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1133:17:1133:17 | t | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:17 | t | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:17 | t | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1133:17:1133:29 | t.unwrapSnd() | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1133:17:1133:29 | t.unwrapSnd() | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1133:17:1133:29 | t.unwrapSnd() | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1133:17:1133:41 | ... .unwrapSnd() | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1134:9:1134:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1134:18:1134:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1134:18:1134:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1134:26:1134:26 | x | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1145:16:1165:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1147:13:1147:14 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1147:13:1147:14 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:13:1147:14 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1147:26:1147:53 | ...::PairBoth(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1147:26:1147:53 | ...::PairBoth(...) | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:26:1147:53 | ...::PairBoth(...) | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1147:47:1147:48 | S1 | | main.rs:1111:5:1112:14 | S1 | +| main.rs:1147:51:1147:52 | S2 | | main.rs:1114:5:1115:14 | S2 | +| main.rs:1148:9:1148:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1148:18:1148:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1148:18:1148:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1148:26:1148:27 | p1 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1148:26:1148:27 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1148:26:1148:27 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1151:13:1151:14 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1151:13:1151:14 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1151:13:1151:14 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1151:26:1151:47 | ...::PairNone(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1151:26:1151:47 | ...::PairNone(...) | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1151:26:1151:47 | ...::PairNone(...) | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1152:9:1152:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1152:18:1152:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1152:18:1152:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1152:26:1152:27 | p2 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1152:26:1152:27 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | +| main.rs:1152:26:1152:27 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:13:1155:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1155:13:1155:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:13:1155:14 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1155:34:1155:56 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1155:34:1155:56 | ...::PairSnd(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1155:34:1155:56 | ...::PairSnd(...) | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1155:54:1155:55 | S3 | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1156:9:1156:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1156:18:1156:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1156:18:1156:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1156:26:1156:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1156:26:1156:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1156:26:1156:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1159:13:1159:14 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1159:13:1159:14 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:13:1159:14 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1159:35:1159:56 | ...::PairNone(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1159:35:1159:56 | ...::PairNone(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1159:35:1159:56 | ...::PairNone(...) | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1160:9:1160:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1160:18:1160:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1160:18:1160:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1160:26:1160:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1160:26:1160:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1160:26:1160:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:9:1162:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Snd | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1162:11:1162:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:31:1162:53 | ...::PairSnd(...) | | main.rs:1092:5:1098:5 | PairOption | +| main.rs:1162:31:1162:53 | ...::PairSnd(...) | Fst | main.rs:1114:5:1115:14 | S2 | +| main.rs:1162:31:1162:53 | ...::PairSnd(...) | Snd | main.rs:1117:5:1118:14 | S3 | +| main.rs:1162:51:1162:52 | S3 | | main.rs:1117:5:1118:14 | S3 | +| main.rs:1164:13:1164:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1164:13:1164:13 | x | E | main.rs:1111:5:1112:14 | S1 | +| main.rs:1164:13:1164:13 | x | T | main.rs:1137:5:1137:34 | S4 | +| main.rs:1164:13:1164:13 | x | T.T41 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1164:13:1164:13 | x | T.T42 | main.rs:1139:5:1139:22 | S5 | +| main.rs:1164:13:1164:13 | x | T.T42.T5 | main.rs:1114:5:1115:14 | S2 | +| main.rs:1177:16:1177:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1177:16:1177:24 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1177:27:1177:31 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:21:1179:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1179:21:1179:29 | SelfParam | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1179:32:1179:36 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1179:42:1181:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1180:13:1180:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1180:13:1180:16 | self | TRefMut | main.rs:1175:5:1182:5 | Self [trait MyTrait] | +| main.rs:1180:13:1180:27 | self.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1180:22:1180:26 | value | | main.rs:1175:19:1175:19 | S | +| main.rs:1186:16:1186:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1186:16:1186:24 | SelfParam | TRefMut.T | main.rs:1184:10:1184:10 | T | +| main.rs:1186:27:1186:31 | value | | main.rs:1184:10:1184:10 | T | +| main.rs:1186:37:1186:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1190:26:1192:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1190:26:1192:9 | { ... } | T | main.rs:1189:10:1189:10 | T | +| main.rs:1191:13:1191:30 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1191:13:1191:30 | ...::MyNone(...) | T | main.rs:1189:10:1189:10 | T | +| main.rs:1196:20:1196:23 | SelfParam | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:20:1196:23 | SelfParam | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1196:41:1201:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1196:41:1201:9 | { ... } | T | main.rs:1195:10:1195:10 | T | +| main.rs:1197:13:1200:13 | match self { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:13:1200:13 | match self { ... } | T | main.rs:1195:10:1195:10 | T | +| main.rs:1197:19:1197:22 | self | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1197:19:1197:22 | self | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1198:17:1198:34 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1198:17:1198:34 | ...::MyNone(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1198:17:1198:34 | ...::MyNone(...) | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1198:39:1198:56 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1198:39:1198:56 | ...::MyNone(...) | T | main.rs:1195:10:1195:10 | T | +| main.rs:1199:17:1199:35 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:17:1199:35 | ...::MySome(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:17:1199:35 | ...::MySome(...) | T.T | main.rs:1195:10:1195:10 | T | +| main.rs:1199:34:1199:34 | x | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:34:1199:34 | x | T | main.rs:1195:10:1195:10 | T | +| main.rs:1199:40:1199:40 | x | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1199:40:1199:40 | x | T | main.rs:1195:10:1195:10 | T | +| main.rs:1207:16:1252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1208:13:1208:14 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:13:1208:14 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1208:18:1208:37 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1208:18:1208:37 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1209:9:1209:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1209:18:1209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1209:18:1209:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1209:26:1209:27 | x1 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1209:26:1209:27 | x1 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1211:17:1211:18 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1211:17:1211:18 | x2 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1211:22:1211:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1211:22:1211:36 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1212:9:1212:10 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1212:9:1212:10 | x2 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1212:9:1212:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1212:16:1212:16 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1213:9:1213:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1213:18:1213:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1213:18:1213:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1213:26:1213:27 | x2 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1213:26:1213:27 | x2 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1215:17:1215:18 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:17:1215:18 | x3 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1215:22:1215:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1215:22:1215:36 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1216:9:1216:10 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1216:9:1216:10 | x3 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1216:9:1216:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1216:21:1216:21 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1217:9:1217:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1217:18:1217:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1217:18:1217:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1217:26:1217:27 | x3 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1217:26:1217:27 | x3 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1219:17:1219:18 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:17:1219:18 | x4 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1219:22:1219:36 | ...::new(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1219:22:1219:36 | ...::new(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1220:9:1220:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:23:1220:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | +| main.rs:1220:23:1220:29 | &mut x4 | TRefMut | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1220:23:1220:29 | &mut x4 | TRefMut.T | main.rs:1204:5:1205:13 | S | +| main.rs:1220:28:1220:29 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1220:28:1220:29 | x4 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1220:32:1220:32 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1221:9:1221:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1221:18:1221:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1221:18:1221:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1221:26:1221:27 | x4 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1221:26:1221:27 | x4 | T | main.rs:1204:5:1205:13 | S | +| main.rs:1223:13:1223:14 | x5 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:13:1223:14 | x5 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:13:1223:14 | x5 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1223:18:1223:58 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:18:1223:58 | ...::MySome(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:18:1223:58 | ...::MySome(...) | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1223:35:1223:57 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1223:35:1223:57 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1224:9:1224:38 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1224:18:1224:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1224:18:1224:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:26:1224:27 | x5 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1224:26:1224:27 | x5 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1224:26:1224:27 | x5 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1224:26:1224:37 | x5.flatten() | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1224:26:1224:37 | x5.flatten() | T | main.rs:1204:5:1205:13 | S | +| main.rs:1226:13:1226:14 | x6 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:13:1226:14 | x6 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:13:1226:14 | x6 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1226:18:1226:58 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:18:1226:58 | ...::MySome(...) | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:18:1226:58 | ...::MySome(...) | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1226:35:1226:57 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1226:35:1226:57 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1227:9:1227:62 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1227:18:1227:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1227:18:1227:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1227:26:1227:26 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1227:26:1227:26 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1227:26:1227:31 | x.m1() | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1228:9:1228:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1228:18:1228:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1228:18:1228:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1228:18:1228:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1228:26:1228:26 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1228:26:1228:26 | y | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1228:26:1228:31 | y.m1() | | main.rs:1157:5:1158:14 | S2 | -| main.rs:1230:13:1230:13 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1230:13:1230:13 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1230:17:1230:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1230:17:1230:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1230:30:1230:31 | S1 | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1231:13:1231:13 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1231:13:1231:13 | y | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1231:17:1231:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1231:17:1231:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1231:30:1231:31 | S2 | | main.rs:1157:5:1158:14 | S2 | -| main.rs:1233:9:1233:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1233:18:1233:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1233:18:1233:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1233:18:1233:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1233:26:1233:26 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1233:26:1233:26 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1233:26:1233:31 | x.m2() | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1234:9:1234:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1234:18:1234:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1234:18:1234:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1234:18:1234:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1234:26:1234:26 | y | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1234:26:1234:26 | y | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1234:26:1234:31 | y.m2() | | main.rs:1157:5:1158:14 | S2 | -| main.rs:1236:13:1236:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1236:13:1236:13 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1236:17:1236:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1236:17:1236:34 | MyThing2 {...} | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1236:31:1236:32 | S1 | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1237:13:1237:13 | y | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1237:13:1237:13 | y | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1237:17:1237:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1237:17:1237:34 | MyThing2 {...} | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1237:31:1237:32 | S2 | | main.rs:1157:5:1158:14 | S2 | -| main.rs:1239:9:1239:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1239:18:1239:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1239:18:1239:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1239:18:1239:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1239:26:1239:26 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1239:26:1239:26 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1239:26:1239:31 | x.m3() | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1240:9:1240:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1240:18:1240:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1240:18:1240:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1240:18:1240:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1240:26:1240:26 | y | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1240:26:1240:26 | y | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1240:26:1240:31 | y.m3() | | main.rs:1157:5:1158:14 | S2 | -| main.rs:1242:13:1242:13 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1242:13:1242:13 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1242:17:1242:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1242:17:1242:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1242:30:1242:31 | S1 | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1243:13:1243:13 | s | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1243:17:1243:32 | call_trait_m1(...) | | main.rs:1155:5:1156:14 | S1 | -| main.rs:1243:31:1243:31 | x | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1243:31:1243:31 | x | A | main.rs:1155:5:1156:14 | S1 | -| main.rs:1245:13:1245:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1245:13:1245:13 | x | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1245:17:1245:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1245:17:1245:34 | MyThing2 {...} | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1245:31:1245:32 | S2 | | main.rs:1157:5:1158:14 | S2 | -| main.rs:1246:13:1246:13 | s | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1246:13:1246:13 | s | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1246:17:1246:32 | call_trait_m1(...) | | main.rs:1145:5:1148:5 | MyThing | -| main.rs:1246:17:1246:32 | call_trait_m1(...) | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1246:31:1246:31 | x | | main.rs:1150:5:1153:5 | MyThing2 | -| main.rs:1246:31:1246:31 | x | A | main.rs:1157:5:1158:14 | S2 | -| main.rs:1263:22:1263:22 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1263:22:1263:22 | x | TRef | main.rs:1263:11:1263:19 | T | -| main.rs:1263:35:1265:5 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1263:35:1265:5 | { ... } | TRef | main.rs:1263:11:1263:19 | T | -| main.rs:1264:9:1264:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1264:9:1264:9 | x | TRef | main.rs:1263:11:1263:19 | T | -| main.rs:1268:17:1268:20 | SelfParam | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1268:29:1270:9 | { ... } | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1269:13:1269:14 | S2 | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1273:21:1273:21 | x | | main.rs:1273:13:1273:14 | T1 | -| main.rs:1276:5:1278:5 | { ... } | | main.rs:1273:17:1273:18 | T2 | -| main.rs:1277:9:1277:9 | x | | main.rs:1273:13:1273:14 | T1 | -| main.rs:1277:9:1277:16 | x.into() | | main.rs:1273:17:1273:18 | T2 | -| main.rs:1280:16:1296:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1281:13:1281:13 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1281:17:1281:18 | S1 | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1282:9:1282:32 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1282:18:1282:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1282:18:1282:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1282:18:1282:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1282:26:1282:31 | id(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1282:26:1282:31 | id(...) | TRef | main.rs:1253:5:1254:14 | S1 | -| main.rs:1282:29:1282:30 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1282:29:1282:30 | &x | TRef | main.rs:1253:5:1254:14 | S1 | -| main.rs:1282:30:1282:30 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1284:13:1284:13 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1284:17:1284:18 | S1 | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1285:9:1285:38 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1285:18:1285:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1285:18:1285:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1285:18:1285:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1285:26:1285:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1285:26:1285:37 | id::<...>(...) | TRef | main.rs:1253:5:1254:14 | S1 | -| main.rs:1285:35:1285:36 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1285:35:1285:36 | &x | TRef | main.rs:1253:5:1254:14 | S1 | -| main.rs:1285:36:1285:36 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1287:13:1287:13 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1287:17:1287:18 | S1 | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1289:9:1289:45 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1289:18:1289:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1289:18:1289:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1289:18:1289:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1289:26:1289:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1289:26:1289:44 | id::<...>(...) | TRef | main.rs:1259:5:1259:25 | dyn Trait | -| main.rs:1289:42:1289:43 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1289:42:1289:43 | &x | TRef | main.rs:1253:5:1254:14 | S1 | -| main.rs:1289:43:1289:43 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1291:13:1291:13 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1291:17:1291:18 | S1 | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1292:9:1292:25 | into::<...>(...) | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1292:24:1292:24 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1294:13:1294:13 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1294:17:1294:18 | S1 | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1295:13:1295:13 | y | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1295:21:1295:27 | into(...) | | main.rs:1256:5:1257:14 | S2 | -| main.rs:1295:26:1295:26 | x | | main.rs:1253:5:1254:14 | S1 | -| main.rs:1309:22:1309:25 | SelfParam | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1309:22:1309:25 | SelfParam | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1309:22:1309:25 | SelfParam | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1309:35:1316:9 | { ... } | | main.rs:1308:15:1308:17 | Snd | -| main.rs:1310:13:1315:13 | match self { ... } | | file://:0:0:0:0 | ! | -| main.rs:1310:13:1315:13 | match self { ... } | | main.rs:1308:15:1308:17 | Snd | -| main.rs:1310:19:1310:22 | self | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1310:19:1310:22 | self | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1310:19:1310:22 | self | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1311:17:1311:38 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1311:17:1311:38 | ...::PairNone(...) | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1311:17:1311:38 | ...::PairNone(...) | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1311:43:1311:82 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | -| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1311:50:1311:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1311:50:1311:81 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1311:50:1311:81 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1312:17:1312:38 | ...::PairFst(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1312:17:1312:38 | ...::PairFst(...) | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1312:17:1312:38 | ...::PairFst(...) | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1312:37:1312:37 | _ | | main.rs:1308:10:1308:12 | Fst | -| main.rs:1312:43:1312:81 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1312:50:1312:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | -| main.rs:1312:50:1312:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1312:50:1312:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1312:50:1312:80 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1312:50:1312:80 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1313:17:1313:40 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1313:17:1313:40 | ...::PairSnd(...) | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1313:17:1313:40 | ...::PairSnd(...) | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1313:37:1313:39 | snd | | main.rs:1308:15:1308:17 | Snd | -| main.rs:1313:45:1313:47 | snd | | main.rs:1308:15:1308:17 | Snd | -| main.rs:1314:17:1314:44 | ...::PairBoth(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1314:17:1314:44 | ...::PairBoth(...) | Fst | main.rs:1308:10:1308:12 | Fst | -| main.rs:1314:17:1314:44 | ...::PairBoth(...) | Snd | main.rs:1308:15:1308:17 | Snd | -| main.rs:1314:38:1314:38 | _ | | main.rs:1308:10:1308:12 | Fst | -| main.rs:1314:41:1314:43 | snd | | main.rs:1308:15:1308:17 | Snd | -| main.rs:1314:49:1314:51 | snd | | main.rs:1308:15:1308:17 | Snd | -| main.rs:1340:10:1340:10 | t | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1340:10:1340:10 | t | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1340:10:1340:10 | t | Snd | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1340:10:1340:10 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1340:10:1340:10 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1340:30:1343:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1341:13:1341:13 | x | | main.rs:1325:5:1326:14 | S3 | -| main.rs:1341:17:1341:17 | t | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1341:17:1341:17 | t | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1341:17:1341:17 | t | Snd | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1341:17:1341:17 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1341:17:1341:17 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1341:17:1341:29 | t.unwrapSnd() | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1341:17:1341:29 | t.unwrapSnd() | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1341:17:1341:29 | t.unwrapSnd() | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1341:17:1341:41 | ... .unwrapSnd() | | main.rs:1325:5:1326:14 | S3 | -| main.rs:1342:9:1342:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1342:18:1342:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1342:18:1342:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1342:18:1342:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1342:26:1342:26 | x | | main.rs:1325:5:1326:14 | S3 | -| main.rs:1357:22:1357:25 | SelfParam | | main.rs:1355:5:1358:5 | Self [trait TraitWithAssocType] | -| main.rs:1365:22:1365:25 | SelfParam | | main.rs:1353:5:1353:28 | GenS | -| main.rs:1365:22:1365:25 | SelfParam | GenT | main.rs:1360:10:1360:15 | Output | -| main.rs:1365:44:1367:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1365:44:1367:9 | { ... } | E | main.rs:1360:10:1360:15 | Output | -| main.rs:1365:44:1367:9 | { ... } | T | main.rs:1360:10:1360:15 | Output | -| main.rs:1366:13:1366:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1366:13:1366:22 | Ok(...) | E | main.rs:1360:10:1360:15 | Output | -| main.rs:1366:13:1366:22 | Ok(...) | T | main.rs:1360:10:1360:15 | Output | -| main.rs:1366:16:1366:19 | self | | main.rs:1353:5:1353:28 | GenS | -| main.rs:1366:16:1366:19 | self | GenT | main.rs:1360:10:1360:15 | Output | -| main.rs:1366:16:1366:21 | self.0 | | main.rs:1360:10:1360:15 | Output | -| main.rs:1370:16:1392:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1372:13:1372:14 | p1 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1372:13:1372:14 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1372:13:1372:14 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1372:26:1372:53 | ...::PairBoth(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1372:26:1372:53 | ...::PairBoth(...) | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1372:26:1372:53 | ...::PairBoth(...) | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1372:47:1372:48 | S1 | | main.rs:1319:5:1320:14 | S1 | -| main.rs:1372:51:1372:52 | S2 | | main.rs:1322:5:1323:14 | S2 | -| main.rs:1373:9:1373:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1373:18:1373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1373:18:1373:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1373:18:1373:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1373:26:1373:27 | p1 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1373:26:1373:27 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1373:26:1373:27 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1376:13:1376:14 | p2 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1376:13:1376:14 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1376:13:1376:14 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1376:26:1376:47 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1376:26:1376:47 | ...::PairNone(...) | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1376:26:1376:47 | ...::PairNone(...) | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1377:9:1377:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1377:18:1377:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1377:18:1377:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1377:18:1377:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1377:26:1377:27 | p2 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1377:26:1377:27 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | -| main.rs:1377:26:1377:27 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | -| main.rs:1380:13:1380:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1380:13:1380:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1380:13:1380:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1380:34:1380:56 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1380:34:1380:56 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1380:34:1380:56 | ...::PairSnd(...) | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1380:54:1380:55 | S3 | | main.rs:1325:5:1326:14 | S3 | -| main.rs:1381:9:1381:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1381:18:1381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1381:18:1381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1381:18:1381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1381:26:1381:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1381:26:1381:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1381:26:1381:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1384:13:1384:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1384:13:1384:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1384:13:1384:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1384:35:1384:56 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1384:35:1384:56 | ...::PairNone(...) | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1384:35:1384:56 | ...::PairNone(...) | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1385:9:1385:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1385:18:1385:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1385:18:1385:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1385:18:1385:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1385:26:1385:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1385:26:1385:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1385:26:1385:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1387:9:1387:55 | g(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1387:11:1387:54 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1387:31:1387:53 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | -| main.rs:1387:31:1387:53 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | -| main.rs:1387:31:1387:53 | ...::PairSnd(...) | Snd | main.rs:1325:5:1326:14 | S3 | -| main.rs:1387:51:1387:52 | S3 | | main.rs:1325:5:1326:14 | S3 | -| main.rs:1389:13:1389:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1389:13:1389:13 | x | E | main.rs:1319:5:1320:14 | S1 | -| main.rs:1389:13:1389:13 | x | T | main.rs:1345:5:1345:34 | S4 | -| main.rs:1389:13:1389:13 | x | T.T41 | main.rs:1322:5:1323:14 | S2 | -| main.rs:1389:13:1389:13 | x | T.T42 | main.rs:1347:5:1347:22 | S5 | -| main.rs:1389:13:1389:13 | x | T.T42.T5 | main.rs:1322:5:1323:14 | S2 | -| main.rs:1391:13:1391:13 | y | | {EXTERNAL LOCATION} | Result | -| main.rs:1391:13:1391:13 | y | E | {EXTERNAL LOCATION} | bool | -| main.rs:1391:13:1391:13 | y | T | {EXTERNAL LOCATION} | bool | -| main.rs:1391:17:1391:26 | GenS(...) | | main.rs:1353:5:1353:28 | GenS | -| main.rs:1391:17:1391:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| main.rs:1391:17:1391:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| main.rs:1391:17:1391:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| main.rs:1391:17:1391:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1404:16:1404:24 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | -| main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1406:21:1406:29 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | -| main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1407:13:1407:16 | self | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | -| main.rs:1407:13:1407:27 | self.set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | -| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1413:16:1413:24 | SelfParam | TRefMut | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1413:16:1413:24 | SelfParam | TRefMut.T | main.rs:1411:10:1411:10 | T | -| main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | -| main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1417:26:1419:9 | { ... } | T | main.rs:1416:10:1416:10 | T | -| main.rs:1418:13:1418:30 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1418:13:1418:30 | ...::MyNone(...) | T | main.rs:1416:10:1416:10 | T | -| main.rs:1423:20:1423:23 | SelfParam | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1423:20:1423:23 | SelfParam | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1423:20:1423:23 | SelfParam | T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1423:41:1428:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1423:41:1428:9 | { ... } | T | main.rs:1422:10:1422:10 | T | -| main.rs:1424:13:1427:13 | match self { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1424:13:1427:13 | match self { ... } | T | main.rs:1422:10:1422:10 | T | -| main.rs:1424:19:1424:22 | self | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1424:19:1424:22 | self | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1424:19:1424:22 | self | T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1425:17:1425:34 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1425:17:1425:34 | ...::MyNone(...) | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1425:17:1425:34 | ...::MyNone(...) | T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1425:39:1425:56 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1425:39:1425:56 | ...::MyNone(...) | T | main.rs:1422:10:1422:10 | T | -| main.rs:1426:17:1426:35 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1426:17:1426:35 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1426:17:1426:35 | ...::MySome(...) | T.T | main.rs:1422:10:1422:10 | T | -| main.rs:1426:34:1426:34 | x | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1426:34:1426:34 | x | T | main.rs:1422:10:1422:10 | T | -| main.rs:1426:40:1426:40 | x | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1426:40:1426:40 | x | T | main.rs:1422:10:1422:10 | T | -| main.rs:1434:16:1479:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1435:13:1435:14 | x1 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1435:13:1435:14 | x1 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1435:18:1435:37 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1435:18:1435:37 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1436:9:1436:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1436:18:1436:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1436:26:1436:27 | x1 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1436:26:1436:27 | x1 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1438:17:1438:18 | x2 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1438:17:1438:18 | x2 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1438:22:1438:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1438:22:1438:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1439:9:1439:10 | x2 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1439:9:1439:10 | x2 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1439:9:1439:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1439:16:1439:16 | S | | main.rs:1431:5:1432:13 | S | -| main.rs:1440:9:1440:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1440:18:1440:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:26:1440:27 | x2 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1440:26:1440:27 | x2 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1442:17:1442:18 | x3 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1442:17:1442:18 | x3 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1442:22:1442:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1442:22:1442:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1443:9:1443:10 | x3 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1443:9:1443:10 | x3 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1443:9:1443:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1443:21:1443:21 | S | | main.rs:1431:5:1432:13 | S | -| main.rs:1444:9:1444:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1444:18:1444:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1444:18:1444:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1444:18:1444:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1444:26:1444:27 | x3 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1444:26:1444:27 | x3 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1446:17:1446:18 | x4 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1446:22:1446:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | -| main.rs:1447:23:1447:29 | &mut x4 | TRefMut | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1447:23:1447:29 | &mut x4 | TRefMut.T | main.rs:1431:5:1432:13 | S | -| main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1447:28:1447:29 | x4 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1447:32:1447:32 | S | | main.rs:1431:5:1432:13 | S | -| main.rs:1448:9:1448:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1448:18:1448:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1448:26:1448:27 | x4 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1448:26:1448:27 | x4 | T | main.rs:1431:5:1432:13 | S | -| main.rs:1450:13:1450:14 | x5 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1450:13:1450:14 | x5 | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1450:13:1450:14 | x5 | T.T | main.rs:1431:5:1432:13 | S | -| main.rs:1450:18:1450:58 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1450:18:1450:58 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1450:18:1450:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | -| main.rs:1450:35:1450:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1450:35:1450:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1451:9:1451:38 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1451:18:1451:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1451:18:1451:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1451:18:1451:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1451:26:1451:27 | x5 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1451:26:1451:27 | x5 | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1451:26:1451:27 | x5 | T.T | main.rs:1431:5:1432:13 | S | -| main.rs:1451:26:1451:37 | x5.flatten() | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1451:26:1451:37 | x5.flatten() | T | main.rs:1431:5:1432:13 | S | -| main.rs:1453:13:1453:14 | x6 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1453:13:1453:14 | x6 | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1453:13:1453:14 | x6 | T.T | main.rs:1431:5:1432:13 | S | -| main.rs:1453:18:1453:58 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1453:18:1453:58 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1453:18:1453:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | -| main.rs:1453:35:1453:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1453:35:1453:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1454:9:1454:62 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1454:18:1454:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1454:26:1454:61 | ...::flatten(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1454:26:1454:61 | ...::flatten(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1454:59:1454:60 | x6 | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1454:59:1454:60 | x6 | T | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1454:59:1454:60 | x6 | T.T | main.rs:1431:5:1432:13 | S | -| main.rs:1457:13:1457:19 | from_if | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1457:13:1457:19 | from_if | T | main.rs:1431:5:1432:13 | S | -| main.rs:1457:23:1461:9 | if ... {...} else {...} | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1457:23:1461:9 | if ... {...} else {...} | T | main.rs:1431:5:1432:13 | S | -| main.rs:1457:26:1457:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1457:26:1457:30 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1457:30:1457:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1457:32:1459:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1457:32:1459:9 | { ... } | T | main.rs:1431:5:1432:13 | S | -| main.rs:1458:13:1458:30 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1458:13:1458:30 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1459:16:1461:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1459:16:1461:9 | { ... } | T | main.rs:1431:5:1432:13 | S | -| main.rs:1460:13:1460:31 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1460:13:1460:31 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1460:30:1460:30 | S | | main.rs:1431:5:1432:13 | S | -| main.rs:1462:9:1462:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1462:18:1462:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1462:18:1462:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1462:18:1462:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1462:26:1462:32 | from_if | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1462:26:1462:32 | from_if | T | main.rs:1431:5:1432:13 | S | -| main.rs:1465:13:1465:22 | from_match | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1465:13:1465:22 | from_match | T | main.rs:1431:5:1432:13 | S | -| main.rs:1465:26:1468:9 | match ... { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1465:26:1468:9 | match ... { ... } | T | main.rs:1431:5:1432:13 | S | -| main.rs:1465:32:1465:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1465:32:1465:36 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1465:36:1465:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1466:13:1466:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1466:21:1466:38 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1466:21:1466:38 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1467:13:1467:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1467:22:1467:40 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1467:22:1467:40 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1467:39:1467:39 | S | | main.rs:1431:5:1432:13 | S | -| main.rs:1469:9:1469:36 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1469:18:1469:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1469:18:1469:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1469:18:1469:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1469:26:1469:35 | from_match | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1469:26:1469:35 | from_match | T | main.rs:1431:5:1432:13 | S | -| main.rs:1472:13:1472:21 | from_loop | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1472:13:1472:21 | from_loop | T | main.rs:1431:5:1432:13 | S | -| main.rs:1472:25:1477:9 | loop { ... } | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1472:25:1477:9 | loop { ... } | T | main.rs:1431:5:1432:13 | S | -| main.rs:1472:30:1477:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1473:13:1475:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1473:16:1473:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1473:16:1473:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1473:20:1473:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1473:22:1475:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1474:23:1474:40 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1474:23:1474:40 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1476:19:1476:37 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1476:19:1476:37 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | -| main.rs:1476:36:1476:36 | S | | main.rs:1431:5:1432:13 | S | -| main.rs:1478:9:1478:35 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1478:18:1478:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1478:18:1478:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1478:18:1478:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1478:26:1478:34 | from_loop | | main.rs:1396:5:1400:5 | MyOption | -| main.rs:1478:26:1478:34 | from_loop | T | main.rs:1431:5:1432:13 | S | -| main.rs:1496:15:1496:18 | SelfParam | | main.rs:1484:5:1485:19 | S | -| main.rs:1496:15:1496:18 | SelfParam | T | main.rs:1495:10:1495:10 | T | -| main.rs:1496:26:1498:9 | { ... } | | main.rs:1495:10:1495:10 | T | -| main.rs:1497:13:1497:16 | self | | main.rs:1484:5:1485:19 | S | -| main.rs:1497:13:1497:16 | self | T | main.rs:1495:10:1495:10 | T | -| main.rs:1497:13:1497:18 | self.0 | | main.rs:1495:10:1495:10 | T | -| main.rs:1500:15:1500:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1500:15:1500:19 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1500:15:1500:19 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1500:28:1502:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1500:28:1502:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | -| main.rs:1501:13:1501:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1501:13:1501:19 | &... | TRef | main.rs:1495:10:1495:10 | T | -| main.rs:1501:14:1501:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1501:14:1501:17 | self | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1501:14:1501:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1501:14:1501:19 | self.0 | | main.rs:1495:10:1495:10 | T | -| main.rs:1504:15:1504:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1504:15:1504:25 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1504:15:1504:25 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1504:34:1506:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1504:34:1506:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | -| main.rs:1505:13:1505:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1505:13:1505:19 | &... | TRef | main.rs:1495:10:1495:10 | T | -| main.rs:1505:14:1505:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1505:14:1505:17 | self | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1505:14:1505:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | -| main.rs:1505:14:1505:19 | self.0 | | main.rs:1495:10:1495:10 | T | -| main.rs:1510:29:1510:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1510:29:1510:33 | SelfParam | TRef | main.rs:1509:5:1512:5 | Self [trait ATrait] | -| main.rs:1511:33:1511:36 | SelfParam | | main.rs:1509:5:1512:5 | Self [trait ATrait] | -| main.rs:1517:29:1517:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1517:29:1517:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1517:29:1517:33 | SelfParam | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1517:43:1519:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1518:13:1518:22 | (...) | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1518:13:1518:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1518:14:1518:21 | * ... | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1518:15:1518:21 | (...) | | {EXTERNAL LOCATION} | & | -| main.rs:1518:15:1518:21 | (...) | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1518:16:1518:20 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1518:16:1518:20 | * ... | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1518:17:1518:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1518:17:1518:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1518:17:1518:20 | self | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1522:33:1522:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1522:33:1522:36 | SelfParam | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1522:46:1524:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1523:13:1523:19 | (...) | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1523:13:1523:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1523:14:1523:18 | * ... | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1523:15:1523:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1523:15:1523:18 | self | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1527:16:1577:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1528:13:1528:14 | x1 | | main.rs:1484:5:1485:19 | S | -| main.rs:1528:13:1528:14 | x1 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1528:18:1528:22 | S(...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1528:18:1528:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1528:20:1528:21 | S2 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1529:9:1529:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1529:26:1529:27 | x1 | | main.rs:1484:5:1485:19 | S | -| main.rs:1529:26:1529:27 | x1 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1529:26:1529:32 | x1.m1() | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1531:13:1531:14 | x2 | | main.rs:1484:5:1485:19 | S | -| main.rs:1531:13:1531:14 | x2 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1531:18:1531:22 | S(...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1531:18:1531:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1531:20:1531:21 | S2 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1533:9:1533:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1533:26:1533:27 | x2 | | main.rs:1484:5:1485:19 | S | -| main.rs:1533:26:1533:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1533:26:1533:32 | x2.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1533:26:1533:32 | x2.m2() | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1534:9:1534:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1534:26:1534:27 | x2 | | main.rs:1484:5:1485:19 | S | -| main.rs:1534:26:1534:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1534:26:1534:32 | x2.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1534:26:1534:32 | x2.m3() | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1536:13:1536:14 | x3 | | main.rs:1484:5:1485:19 | S | -| main.rs:1536:13:1536:14 | x3 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1536:18:1536:22 | S(...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1536:18:1536:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1536:20:1536:21 | S2 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1538:9:1538:42 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1538:18:1538:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1538:18:1538:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1538:18:1538:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1538:26:1538:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1538:26:1538:41 | ...::m2(...) | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1538:38:1538:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1538:38:1538:40 | &x3 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1538:38:1538:40 | &x3 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1538:39:1538:40 | x3 | | main.rs:1484:5:1485:19 | S | -| main.rs:1538:39:1538:40 | x3 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1539:9:1539:42 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1539:18:1539:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1539:26:1539:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1539:26:1539:41 | ...::m3(...) | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1539:38:1539:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1539:38:1539:40 | &x3 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1539:38:1539:40 | &x3 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1539:39:1539:40 | x3 | | main.rs:1484:5:1485:19 | S | -| main.rs:1539:39:1539:40 | x3 | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1541:13:1541:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1541:13:1541:14 | x4 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1541:13:1541:14 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1541:18:1541:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1541:18:1541:23 | &... | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1541:18:1541:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1541:19:1541:23 | S(...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1541:19:1541:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1541:21:1541:22 | S2 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1543:9:1543:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1543:18:1543:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1543:18:1543:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1543:18:1543:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1543:26:1543:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1543:26:1543:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1543:26:1543:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1543:26:1543:32 | x4.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1543:26:1543:32 | x4.m2() | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1544:9:1544:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1544:18:1544:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1544:18:1544:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1544:18:1544:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1544:26:1544:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1544:26:1544:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1544:26:1544:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1544:26:1544:32 | x4.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1544:26:1544:32 | x4.m3() | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1546:13:1546:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1546:13:1546:14 | x5 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1546:13:1546:14 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1546:18:1546:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | &... | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1546:18:1546:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1546:19:1546:23 | S(...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1546:19:1546:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1546:21:1546:22 | S2 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1548:9:1548:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1548:18:1548:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1548:18:1548:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1548:18:1548:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1548:26:1548:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1548:26:1548:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1548:26:1548:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1548:26:1548:32 | x5.m1() | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1549:9:1549:30 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1549:18:1549:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1549:18:1549:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1549:18:1549:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1549:26:1549:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1549:26:1549:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1549:26:1549:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1549:26:1549:29 | x5.0 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1551:13:1551:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1551:13:1551:14 | x6 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1551:13:1551:14 | x6 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1551:18:1551:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1551:18:1551:23 | &... | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1551:18:1551:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1551:19:1551:23 | S(...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1551:19:1551:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1551:21:1551:22 | S2 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1554:9:1554:36 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1554:18:1554:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1554:18:1554:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1554:18:1554:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1554:26:1554:30 | (...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1554:26:1554:30 | (...) | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1554:26:1554:35 | ... .m1() | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1554:27:1554:29 | * ... | | main.rs:1484:5:1485:19 | S | -| main.rs:1554:27:1554:29 | * ... | T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1554:28:1554:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1554:28:1554:29 | x6 | TRef | main.rs:1484:5:1485:19 | S | -| main.rs:1554:28:1554:29 | x6 | TRef.T | main.rs:1487:5:1488:14 | S2 | -| main.rs:1556:13:1556:14 | x7 | | main.rs:1484:5:1485:19 | S | -| main.rs:1556:13:1556:14 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1556:13:1556:14 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1556:18:1556:23 | S(...) | | main.rs:1484:5:1485:19 | S | -| main.rs:1556:18:1556:23 | S(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:1556:18:1556:23 | S(...) | T.TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1556:20:1556:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1556:20:1556:22 | &S2 | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1556:21:1556:22 | S2 | | main.rs:1487:5:1488:14 | S2 | -| main.rs:1559:13:1559:13 | t | | {EXTERNAL LOCATION} | & | -| main.rs:1559:13:1559:13 | t | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1559:17:1559:18 | x7 | | main.rs:1484:5:1485:19 | S | -| main.rs:1559:17:1559:18 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1559:17:1559:18 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1559:17:1559:23 | x7.m1() | | {EXTERNAL LOCATION} | & | -| main.rs:1559:17:1559:23 | x7.m1() | TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1560:9:1560:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1560:18:1560:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1560:18:1560:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1560:18:1560:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1560:26:1560:27 | x7 | | main.rs:1484:5:1485:19 | S | -| main.rs:1560:26:1560:27 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1560:26:1560:27 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | -| main.rs:1562:13:1562:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1562:26:1562:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1562:26:1562:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1562:26:1562:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1566:13:1566:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1566:13:1566:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1566:17:1566:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1566:17:1566:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1566:17:1566:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1568:13:1568:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1568:13:1568:20 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1568:24:1568:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1568:24:1568:39 | &... | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1568:25:1568:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1568:36:1568:37 | 37 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1570:13:1570:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1570:17:1570:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1570:17:1570:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1570:17:1570:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1571:9:1571:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1571:18:1571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1571:18:1571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1571:18:1571:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1571:26:1571:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1574:13:1574:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1574:13:1574:20 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1574:24:1574:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1574:24:1574:39 | &... | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1574:25:1574:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1574:36:1574:37 | 38 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1575:13:1575:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1575:17:1575:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1575:17:1575:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | -| main.rs:1575:17:1575:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1576:9:1576:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1576:18:1576:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1576:18:1576:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1576:18:1576:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1576:26:1576:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1583:16:1583:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1583:16:1583:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1586:16:1586:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1586:16:1586:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1586:32:1588:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1586:32:1588:9 | { ... } | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1587:13:1587:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1587:13:1587:16 | self | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1587:13:1587:22 | self.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1587:13:1587:22 | self.foo() | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | -| main.rs:1595:16:1595:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1595:16:1595:20 | SelfParam | TRef | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1595:36:1597:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1595:36:1597:9 | { ... } | TRef | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1596:13:1596:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1596:13:1596:16 | self | TRef | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1600:16:1603:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1601:13:1601:13 | x | | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1601:17:1601:24 | MyStruct | | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1602:9:1602:9 | x | | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1602:9:1602:15 | x.bar() | | {EXTERNAL LOCATION} | & | -| main.rs:1602:9:1602:15 | x.bar() | TRef | main.rs:1591:5:1591:20 | MyStruct | -| main.rs:1612:16:1612:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1612:16:1612:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1612:16:1612:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1612:32:1614:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1612:32:1614:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1612:32:1614:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1613:13:1613:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1613:13:1613:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1613:13:1613:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1616:16:1616:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1616:16:1616:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1616:16:1616:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1616:23:1616:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1616:23:1616:23 | x | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1616:23:1616:23 | x | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1616:42:1618:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1616:42:1618:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1616:42:1618:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1617:13:1617:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1617:13:1617:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1617:13:1617:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | -| main.rs:1621:16:1627:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1622:13:1622:13 | x | | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1622:13:1622:13 | x | T | main.rs:1607:5:1607:13 | S | -| main.rs:1622:17:1622:27 | MyStruct(...) | | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1622:17:1622:27 | MyStruct(...) | T | main.rs:1607:5:1607:13 | S | -| main.rs:1622:26:1622:26 | S | | main.rs:1607:5:1607:13 | S | -| main.rs:1623:9:1623:9 | x | | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1623:9:1623:9 | x | T | main.rs:1607:5:1607:13 | S | -| main.rs:1623:9:1623:15 | x.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1623:9:1623:15 | x.foo() | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1623:9:1623:15 | x.foo() | TRef.T | main.rs:1607:5:1607:13 | S | -| main.rs:1624:13:1624:13 | x | | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1624:13:1624:13 | x | T | main.rs:1607:5:1607:13 | S | -| main.rs:1624:17:1624:27 | MyStruct(...) | | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1624:17:1624:27 | MyStruct(...) | T | main.rs:1607:5:1607:13 | S | -| main.rs:1624:26:1624:26 | S | | main.rs:1607:5:1607:13 | S | -| main.rs:1626:9:1626:9 | x | | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1626:9:1626:9 | x | T | main.rs:1607:5:1607:13 | S | -| main.rs:1626:9:1626:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1626:9:1626:18 | x.bar(...) | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1626:9:1626:18 | x.bar(...) | TRef.T | main.rs:1607:5:1607:13 | S | -| main.rs:1626:15:1626:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1626:15:1626:17 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1626:15:1626:17 | &... | TRef.TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1626:15:1626:17 | &... | TRef.TRef.T | main.rs:1607:5:1607:13 | S | -| main.rs:1626:16:1626:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1626:16:1626:17 | &x | TRef | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1626:16:1626:17 | &x | TRef.T | main.rs:1607:5:1607:13 | S | -| main.rs:1626:17:1626:17 | x | | main.rs:1609:5:1609:26 | MyStruct | -| main.rs:1626:17:1626:17 | x | T | main.rs:1607:5:1607:13 | S | -| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1637:17:1637:25 | SelfParam | TRefMut | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1638:13:1638:16 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1638:13:1638:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1638:13:1638:34 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1638:25:1638:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1638:26:1638:29 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1638:26:1638:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1645:31:1647:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1645:31:1647:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1646:13:1646:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1646:13:1646:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1646:13:1646:19 | &... | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1646:13:1646:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1646:13:1646:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1646:13:1646:19 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1646:14:1646:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1646:14:1646:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1646:14:1646:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1646:14:1646:19 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1646:15:1646:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1646:15:1646:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1646:15:1646:19 | &self | TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1646:16:1646:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1646:16:1646:19 | self | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1649:15:1649:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1649:15:1649:25 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1649:37:1651:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1649:37:1651:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1650:13:1650:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1650:13:1650:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1650:13:1650:19 | &... | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1650:13:1650:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1650:13:1650:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1650:13:1650:19 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1650:14:1650:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1650:14:1650:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1650:14:1650:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1650:14:1650:19 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1650:15:1650:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1650:15:1650:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1650:15:1650:19 | &self | TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1650:16:1650:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1650:16:1650:19 | self | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1653:15:1653:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1653:15:1653:15 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1653:34:1655:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1653:34:1655:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1654:13:1654:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1654:13:1654:13 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1657:15:1657:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1657:15:1657:15 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1657:34:1659:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1657:34:1659:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1658:13:1658:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1658:13:1658:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1658:13:1658:16 | &... | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1658:13:1658:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1658:13:1658:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1658:13:1658:16 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1658:14:1658:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1658:14:1658:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1658:14:1658:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1658:14:1658:16 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1658:15:1658:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1658:15:1658:16 | &x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1658:15:1658:16 | &x | TRef.TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1658:16:1658:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1658:16:1658:16 | x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1662:16:1675:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1663:13:1663:13 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1663:17:1663:20 | S {...} | | main.rs:1642:5:1642:13 | S | -| main.rs:1664:9:1664:9 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1664:9:1664:14 | x.f1() | | {EXTERNAL LOCATION} | & | -| main.rs:1664:9:1664:14 | x.f1() | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1665:9:1665:9 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1665:9:1665:14 | x.f2() | | {EXTERNAL LOCATION} | & | -| main.rs:1665:9:1665:14 | x.f2() | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1666:9:1666:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1666:9:1666:17 | ...::f3(...) | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1666:15:1666:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1666:15:1666:16 | &x | TRef | main.rs:1642:5:1642:13 | S | -| main.rs:1666:16:1666:16 | x | | main.rs:1642:5:1642:13 | S | -| main.rs:1668:13:1668:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1668:17:1668:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1668:18:1668:24 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1668:18:1668:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1668:19:1668:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1668:19:1668:24 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1668:19:1668:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1668:20:1668:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1668:20:1668:24 | &true | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1668:21:1668:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1672:17:1672:20 | flag | | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1672:24:1672:41 | ...::default(...) | | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | -| main.rs:1673:22:1673:30 | &mut flag | TRefMut | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1673:27:1673:30 | flag | | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1674:9:1674:30 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1674:26:1674:29 | flag | | main.rs:1631:5:1634:5 | MyFlag | -| main.rs:1689:43:1692:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1689:43:1692:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1689:43:1692:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1690:13:1690:13 | x | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1690:17:1690:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:17:1690:30 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1690:17:1690:31 | TryExpr | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1690:28:1690:29 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1691:9:1691:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1691:9:1691:22 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1691:9:1691:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1691:20:1691:21 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1696:46:1700:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1696:46:1700:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1696:46:1700:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1697:13:1697:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1697:13:1697:13 | x | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1697:17:1697:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1697:17:1697:30 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1697:28:1697:29 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1698:13:1698:13 | y | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1698:17:1698:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1698:17:1698:17 | x | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1698:17:1698:18 | TryExpr | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1699:9:1699:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:9:1699:22 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1699:9:1699:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1699:20:1699:21 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1704:40:1709:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1704:40:1709:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1704:40:1709:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1705:13:1705:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1705:13:1705:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1705:13:1705:13 | x | T.T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1705:17:1705:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1705:17:1705:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1705:17:1705:42 | ...::Ok(...) | T.T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1705:28:1705:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1705:28:1705:41 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1705:39:1705:40 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1707:17:1707:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1707:17:1707:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1707:17:1707:17 | x | T.T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1707:17:1707:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1707:17:1707:18 | TryExpr | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1707:17:1707:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1707:24:1707:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1707:24:1707:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1708:9:1708:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1708:9:1708:22 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1708:9:1708:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1708:20:1708:21 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1713:30:1713:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1713:30:1713:34 | input | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1713:30:1713:34 | input | T | main.rs:1713:20:1713:27 | T | -| main.rs:1713:69:1720:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1713:69:1720:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1713:69:1720:5 | { ... } | T | main.rs:1713:20:1713:27 | T | -| main.rs:1714:13:1714:17 | value | | main.rs:1713:20:1713:27 | T | -| main.rs:1714:21:1714:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:21:1714:25 | input | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1714:21:1714:25 | input | T | main.rs:1713:20:1713:27 | T | -| main.rs:1714:21:1714:26 | TryExpr | | main.rs:1713:20:1713:27 | T | -| main.rs:1715:22:1715:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1715:22:1715:38 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1715:22:1715:38 | ...::Ok(...) | T | main.rs:1713:20:1713:27 | T | -| main.rs:1715:22:1718:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1715:22:1718:10 | ... .and_then(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1715:33:1715:37 | value | | main.rs:1713:20:1713:27 | T | -| main.rs:1715:49:1718:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | -| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Output).E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1715:53:1718:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1715:53:1718:9 | { ... } | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1716:13:1716:31 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1716:22:1716:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1716:22:1716:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1716:22:1716:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1719:9:1719:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1719:9:1719:23 | ...::Err(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1719:9:1719:23 | ...::Err(...) | T | main.rs:1713:20:1713:27 | T | -| main.rs:1719:21:1719:22 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1723:16:1739:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1724:9:1726:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1724:16:1724:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1724:16:1724:33 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1724:16:1724:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1724:27:1724:32 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1724:37:1724:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1724:37:1724:52 | try_same_error(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1724:37:1724:52 | try_same_error(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1724:54:1726:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1725:13:1725:36 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1725:22:1725:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1725:22:1725:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1725:22:1725:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1725:30:1725:35 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1728:9:1730:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1728:16:1728:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1728:16:1728:33 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1728:16:1728:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1728:27:1728:32 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1728:37:1728:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1728:37:1728:55 | try_convert_error(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1728:37:1728:55 | try_convert_error(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1728:57:1730:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:13:1729:36 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1729:22:1729:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1729:22:1729:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1729:22:1729:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:30:1729:35 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1732:9:1734:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1732:16:1732:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1732:16:1732:33 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1732:16:1732:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1732:27:1732:32 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1732:37:1732:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1732:37:1732:49 | try_chained(...) | E | main.rs:1684:5:1685:14 | S2 | -| main.rs:1732:37:1732:49 | try_chained(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1732:51:1734:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1733:13:1733:36 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1733:22:1733:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1733:22:1733:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1733:22:1733:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1733:30:1733:35 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:9:1738:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1736:16:1736:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1736:16:1736:33 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:16:1736:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:27:1736:32 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:37:1736:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1736:37:1736:63 | try_complex(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:37:1736:63 | try_complex(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:49:1736:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1736:49:1736:62 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:49:1736:62 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:60:1736:61 | S1 | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1736:65:1738:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1737:13:1737:36 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1737:22:1737:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1737:22:1737:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1737:22:1737:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1737:30:1737:35 | result | | main.rs:1681:5:1682:14 | S1 | -| main.rs:1743:16:1834:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1744:13:1744:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1744:22:1744:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1745:13:1745:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1745:17:1745:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1746:13:1746:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1746:17:1746:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1746:17:1746:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1746:21:1746:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1747:13:1747:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1747:17:1747:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1747:17:1747:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1748:13:1748:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1748:17:1748:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1749:13:1749:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1749:13:1749:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1749:21:1749:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1749:21:1749:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1750:13:1750:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1750:17:1750:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1751:13:1751:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1751:17:1751:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1752:13:1752:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1752:17:1752:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1755:26:1755:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1755:26:1755:30 | SelfParam | TRef | main.rs:1754:9:1758:9 | Self [trait MyTrait] | -| main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1761:26:1761:30 | SelfParam | TRef.TArray | main.rs:1760:14:1760:23 | T | -| main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | -| main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1762:17:1762:20 | self | TRef.TArray | main.rs:1760:14:1760:23 | T | -| main.rs:1762:17:1762:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:36 | ... .unwrap() | TRef | main.rs:1760:14:1760:23 | T | -| main.rs:1762:26:1762:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | -| main.rs:1766:17:1766:28 | ...::default(...) | | main.rs:1760:14:1760:23 | T | -| main.rs:1770:13:1770:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1770:13:1770:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:17:1770:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1770:17:1770:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:17:1770:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1770:17:1770:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:18:1770:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:21:1770:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:24:1770:24 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1771:13:1771:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:17:1771:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:22:1771:22 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:37:1771:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1771:37:1771:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1771:37:1771:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:38:1771:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1771:38:1771:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:39:1771:39 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:42:1771:42 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:45:1771:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:17:1772:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:24:1772:24 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1775:26:1775:30 | SelfParam | TRef.TSlice | main.rs:1774:14:1774:23 | T | -| main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | -| main.rs:1776:17:1776:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1776:17:1776:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1776:17:1776:20 | self | TRef.TSlice | main.rs:1774:14:1774:23 | T | -| main.rs:1776:17:1776:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1776:17:1776:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:1776:17:1776:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | -| main.rs:1776:17:1776:36 | ... .unwrap() | TRef | main.rs:1774:14:1774:23 | T | -| main.rs:1776:26:1776:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | -| main.rs:1780:17:1780:28 | ...::default(...) | | main.rs:1774:14:1774:23 | T | -| main.rs:1784:13:1784:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1784:13:1784:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1784:13:1784:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:25:1784:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1784:25:1784:34 | &... | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1784:25:1784:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1784:25:1784:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:25:1784:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:26:1784:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1784:26:1784:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:27:1784:27 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:30:1784:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1784:33:1784:33 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:13:1785:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1785:13:1785:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1785:17:1785:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1785:17:1785:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:29 | s.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1785:17:1785:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1786:13:1786:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1786:17:1786:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:34:1786:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1786:34:1786:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1786:34:1786:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:17:1787:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1790:26:1790:30 | SelfParam | TRef.T0 | main.rs:1789:14:1789:23 | T | -| main.rs:1790:26:1790:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | -| main.rs:1791:17:1791:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1791:17:1791:23 | &... | TRef | main.rs:1789:14:1789:23 | T | -| main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1791:18:1791:21 | self | TRef.T0 | main.rs:1789:14:1789:23 | T | -| main.rs:1791:18:1791:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1791:18:1791:23 | self.0 | | main.rs:1789:14:1789:23 | T | -| main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | -| main.rs:1795:17:1795:28 | ...::default(...) | | main.rs:1789:14:1789:23 | T | -| main.rs:1799:13:1799:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1799:13:1799:13 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1799:13:1799:13 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1799:17:1799:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1799:17:1799:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1799:17:1799:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1799:18:1799:19 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1799:22:1799:22 | 7 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:13:1800:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1800:13:1800:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:17:1800:17 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1800:17:1800:17 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:17:1800:17 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:17:1800:29 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1801:13:1801:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:17:1801:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:37:1801:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1801:37:1801:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1801:37:1801:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:37:1801:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:38:1801:38 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1801:38:1801:38 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:38:1801:38 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:17:1802:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1805:26:1805:30 | SelfParam | TRef.TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1806:17:1806:21 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1806:17:1806:21 | * ... | TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1806:18:1806:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1806:18:1806:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1806:18:1806:21 | self | TRef.TRef | main.rs:1804:14:1804:23 | T | -| main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | -| main.rs:1810:17:1810:28 | ...::default(...) | | main.rs:1804:14:1804:23 | T | -| main.rs:1814:13:1814:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1814:13:1814:13 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1814:17:1814:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1814:17:1814:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1814:18:1814:19 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:13:1815:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1815:13:1815:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:17:1815:17 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1815:17:1815:17 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:17:1815:29 | r.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1815:17:1815:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:13:1816:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1816:13:1816:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:17:1816:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1816:17:1816:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:33:1816:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1816:33:1816:34 | &r | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1816:33:1816:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:34:1816:34 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1816:34:1816:34 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:17:1817:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1820:26:1820:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1820:26:1820:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1820:26:1820:30 | SelfParam | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | -| main.rs:1820:39:1822:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1820:39:1822:13 | { ... } | TRef | main.rs:1819:14:1819:23 | T | -| main.rs:1821:17:1821:34 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1821:17:1821:34 | { ... } | TRef | main.rs:1819:14:1819:23 | T | -| main.rs:1821:26:1821:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1821:26:1821:32 | &... | TRef | main.rs:1819:14:1819:23 | T | -| main.rs:1821:27:1821:32 | * ... | | main.rs:1819:14:1819:23 | T | -| main.rs:1821:28:1821:32 | * ... | | {EXTERNAL LOCATION} | *mut | -| main.rs:1821:28:1821:32 | * ... | TPtrMut | main.rs:1819:14:1819:23 | T | -| main.rs:1821:29:1821:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1821:29:1821:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1821:29:1821:32 | self | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | -| main.rs:1824:31:1826:13 | { ... } | | main.rs:1819:14:1819:23 | T | -| main.rs:1825:17:1825:28 | ...::default(...) | | main.rs:1819:14:1819:23 | T | -| main.rs:1829:17:1829:17 | v | | {EXTERNAL LOCATION} | i32 | -| main.rs:1829:21:1829:22 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | &mut | -| main.rs:1830:27:1830:32 | &mut v | TRefMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:32:1830:32 | v | | {EXTERNAL LOCATION} | i32 | -| main.rs:1831:13:1831:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1831:13:1831:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1831:17:1831:40 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1831:17:1831:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1831:26:1831:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1831:26:1831:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1831:26:1831:38 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1831:26:1831:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:13:1832:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1832:13:1832:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:17:1832:50 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1832:17:1832:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:26:1832:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1832:26:1832:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:46:1832:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1832:46:1832:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1832:46:1832:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:47:1832:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1832:47:1832:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:13:1833:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:17:1833:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1839:16:1851:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1840:13:1840:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1840:17:1840:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1840:17:1840:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1840:25:1840:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:13:1841:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:17:1841:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:17:1841:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1841:25:1841:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1843:17:1843:17 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1844:13:1844:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1844:20:1844:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1844:20:1844:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1844:26:1844:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1845:9:1849:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1845:12:1845:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1845:17:1847:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1846:17:1846:17 | z | | {EXTERNAL LOCATION} | () | -| main.rs:1846:21:1846:27 | (...) | | {EXTERNAL LOCATION} | () | -| main.rs:1846:22:1846:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1846:22:1846:26 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1846:26:1846:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1847:16:1849:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1848:13:1848:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1848:13:1848:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1848:17:1848:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1850:9:1850:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1864:30:1866:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1865:13:1865:31 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1865:23:1865:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1865:29:1865:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1872:16:1872:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1872:22:1872:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1872:41:1877:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1873:13:1876:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1874:20:1874:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1874:20:1874:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1874:20:1874:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1874:29:1874:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1874:29:1874:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1875:20:1875:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1875:20:1875:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1875:20:1875:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1875:29:1875:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1882:23:1882:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1883:13:1883:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1883:13:1883:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1883:13:1883:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1883:23:1883:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1884:13:1884:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1884:13:1884:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1884:13:1884:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1884:23:1884:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1890:16:1890:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1890:22:1890:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1890:41:1895:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1891:13:1894:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1892:20:1892:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1892:20:1892:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1892:20:1892:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1892:29:1892:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1892:29:1892:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1893:20:1893:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1893:20:1893:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1893:20:1893:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1893:29:1893:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1900:23:1900:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1901:13:1901:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1901:13:1901:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1901:13:1901:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1901:23:1901:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1902:13:1902:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1902:13:1902:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:13:1902:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1902:23:1902:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1908:16:1908:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1908:22:1908:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1908:41:1913:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1909:13:1912:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1910:20:1910:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1910:20:1910:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1910:20:1910:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1910:29:1910:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1910:29:1910:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:20:1911:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1911:20:1911:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:20:1911:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1911:29:1911:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1917:23:1917:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1918:13:1918:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1918:13:1918:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1918:13:1918:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1918:23:1918:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1919:13:1919:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1919:13:1919:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:13:1919:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1919:23:1919:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1925:16:1925:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1925:22:1925:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1925:41:1930:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1926:13:1929:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1927:20:1927:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1927:20:1927:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1927:20:1927:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1927:29:1927:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1927:29:1927:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:20:1928:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1928:20:1928:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:20:1928:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1928:29:1928:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1934:23:1934:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1935:13:1935:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1935:13:1935:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1935:13:1935:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1935:23:1935:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1936:13:1936:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1936:13:1936:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1936:13:1936:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1936:23:1936:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1942:16:1942:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1942:22:1942:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1942:41:1947:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1943:13:1946:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1944:20:1944:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1944:20:1944:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:20:1944:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1944:29:1944:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1944:29:1944:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:20:1945:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1945:20:1945:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:20:1945:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1945:29:1945:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1951:23:1951:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1952:13:1952:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1952:13:1952:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1952:13:1952:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1952:23:1952:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1953:13:1953:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1953:13:1953:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1953:13:1953:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1953:23:1953:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1959:19:1959:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1959:25:1959:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1959:44:1964:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1960:13:1963:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1961:20:1961:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1961:20:1961:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1961:20:1961:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1961:29:1961:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1961:29:1961:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1962:20:1962:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1962:20:1962:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1962:20:1962:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1962:29:1962:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1968:26:1968:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1969:13:1969:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1969:13:1969:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1969:13:1969:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1969:23:1969:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1970:13:1970:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1970:13:1970:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:13:1970:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1970:23:1970:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1976:18:1976:21 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1976:24:1976:26 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1976:43:1981:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1977:13:1980:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1978:20:1978:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1978:20:1978:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1978:20:1978:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1978:29:1978:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1978:29:1978:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1979:20:1979:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1979:20:1979:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1979:20:1979:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1979:29:1979:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:1985:25:1985:33 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1986:13:1986:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1986:13:1986:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1986:13:1986:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1986:23:1986:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:1987:13:1987:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1987:13:1987:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1987:13:1987:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1987:23:1987:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1993:19:1993:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1993:25:1993:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1993:44:1998:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1994:13:1997:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1995:20:1995:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1995:20:1995:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:20:1995:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1995:29:1995:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1995:29:1995:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:20:1996:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1996:20:1996:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:20:1996:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:1996:29:1996:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2002:26:2002:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2003:13:2003:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2003:13:2003:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2003:13:2003:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2003:23:2003:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2004:13:2004:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2004:13:2004:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2004:13:2004:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2004:23:2004:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2010:16:2010:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2010:22:2010:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2010:40:2015:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2011:13:2014:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2012:20:2012:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2012:20:2012:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2012:20:2012:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2012:30:2012:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:20:2013:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2013:20:2013:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2013:20:2013:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2019:23:2019:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2020:13:2020:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2020:13:2020:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2020:13:2020:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2021:13:2021:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2021:13:2021:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2021:13:2021:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2027:16:2027:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2027:22:2027:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2027:40:2032:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2028:13:2031:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2029:20:2029:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2029:20:2029:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2029:20:2029:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2029:30:2029:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2030:20:2030:23 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2030:20:2030:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2030:20:2030:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2036:23:2036:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2037:13:2037:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2037:13:2037:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2037:13:2037:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2038:13:2038:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2038:13:2038:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2038:13:2038:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2044:16:2044:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2044:30:2049:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2045:13:2048:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2046:20:2046:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2046:21:2046:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2046:21:2046:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2047:20:2047:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2047:21:2047:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2047:21:2047:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2054:16:2054:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2054:30:2059:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2055:13:2058:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2056:20:2056:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2056:21:2056:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2056:21:2056:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2057:20:2057:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2057:21:2057:24 | self | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2057:21:2057:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:13:2064:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2064:13:2064:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:13:2064:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:23:2064:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:23:2064:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2064:23:2064:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:34:2064:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:34:2064:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2064:34:2064:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:34:2064:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:44:2064:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:44:2064:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2064:44:2064:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:22:2067:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:13:2068:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2068:13:2068:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:13:2068:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:23:2068:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2068:23:2068:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:34:2068:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2068:34:2068:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:34:2068:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:44:2068:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2068:44:2068:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2073:24:2073:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2073:24:2073:28 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2073:31:2073:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2073:31:2073:35 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2073:75:2075:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2073:75:2075:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2074:13:2074:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:13:2074:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2074:13:2074:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2074:14:2074:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2074:14:2074:17 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2074:14:2074:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:14:2074:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:23:2074:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2074:23:2074:26 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2074:23:2074:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:43:2074:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2074:43:2074:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:44:2074:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:45:2074:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2074:45:2074:49 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2074:45:2074:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:45:2074:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2074:55:2074:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2074:55:2074:59 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2074:55:2074:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2077:15:2077:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2077:15:2077:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2077:22:2077:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2077:22:2077:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2077:44:2079:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:13:2078:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2078:13:2078:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2078:13:2078:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2078:13:2078:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:13:2078:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:22:2078:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2078:22:2078:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2078:22:2078:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2078:33:2078:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2078:33:2078:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2078:33:2078:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2078:33:2078:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2078:42:2078:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2078:42:2078:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2078:42:2078:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2081:15:2081:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2081:15:2081:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2081:22:2081:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2081:22:2081:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2081:44:2083:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:13:2082:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2082:13:2082:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2082:13:2082:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2082:13:2082:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:13:2082:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:23:2082:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2082:23:2082:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2082:23:2082:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2082:34:2082:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2082:34:2082:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2082:34:2082:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2082:34:2082:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2082:44:2082:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2082:44:2082:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2082:44:2082:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2085:15:2085:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2085:15:2085:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2085:22:2085:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2085:22:2085:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2085:44:2087:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:13:2086:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2086:13:2086:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2086:13:2086:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2086:13:2086:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:13:2086:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:22:2086:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2086:22:2086:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2086:22:2086:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2086:33:2086:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2086:33:2086:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2086:33:2086:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2086:33:2086:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2086:42:2086:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2086:42:2086:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2086:42:2086:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:15:2089:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2089:15:2089:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2089:22:2089:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2089:22:2089:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2089:44:2091:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:13:2090:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2090:13:2090:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2090:13:2090:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:13:2090:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:13:2090:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:23:2090:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2090:23:2090:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2090:23:2090:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:34:2090:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2090:34:2090:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2090:34:2090:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:34:2090:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:44:2090:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2090:44:2090:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2090:44:2090:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2094:26:2094:26 | a | | main.rs:2094:18:2094:23 | T | -| main.rs:2094:32:2094:32 | b | | main.rs:2094:18:2094:23 | T | -| main.rs:2095:9:2095:9 | a | | main.rs:2094:18:2094:23 | T | -| main.rs:2095:13:2095:13 | b | | main.rs:2094:18:2094:23 | T | -| main.rs:2098:16:2229:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2102:13:2102:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2102:22:2102:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2102:23:2102:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2102:23:2102:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2102:31:2102:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:13:2103:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2103:22:2103:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2103:23:2103:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2103:23:2103:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2103:31:2103:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:13:2104:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2104:22:2104:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2104:23:2104:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:23:2104:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2104:30:2104:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:13:2105:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2105:22:2105:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2105:23:2105:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:23:2105:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2105:31:2105:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:13:2106:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2106:22:2106:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2106:23:2106:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2106:23:2106:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2106:30:2106:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:13:2107:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2107:22:2107:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2107:23:2107:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:23:2107:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2107:32:2107:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:13:2110:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:23:2110:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:23:2110:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:31:2110:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:13:2111:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:23:2111:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:23:2111:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:31:2111:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:13:2112:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:23:2112:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:23:2112:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2112:31:2112:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:13:2113:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:23:2113:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:23:2113:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:31:2113:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:13:2114:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:23:2114:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:23:2114:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:31:2114:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:39:2115:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2115:45:2115:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2118:17:2118:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2118:34:2118:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:9:2119:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2119:9:2119:31 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2119:27:2119:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:17:2121:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:34:2121:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:9:2122:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:9:2122:31 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2122:27:2122:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:17:2124:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:34:2124:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2125:9:2125:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2125:9:2125:31 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2125:27:2125:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:17:2127:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:34:2127:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:31 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2128:27:2128:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:17:2130:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:34:2130:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:31 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2131:27:2131:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:13:2134:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:26:2134:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:26:2134:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:34:2134:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:13:2135:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:25:2135:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:25:2135:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2135:33:2135:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:13:2136:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:26:2136:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:26:2136:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:34:2136:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:13:2137:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:23:2137:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:23:2137:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:32:2137:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:13:2138:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:23:2138:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:23:2138:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2138:32:2138:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:17:2141:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2141:37:2141:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:9:2142:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:9:2142:34 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2142:30:2142:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2144:17:2144:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2144:36:2144:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2145:9:2145:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2145:9:2145:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2145:29:2145:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2147:17:2147:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2147:37:2147:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2148:9:2148:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2148:9:2148:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2148:30:2148:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2150:17:2150:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2150:34:2150:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2151:9:2151:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2151:9:2151:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2151:28:2151:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2153:17:2153:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2153:34:2153:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2154:9:2154:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2154:9:2154:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2154:28:2154:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2156:13:2156:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:2156:23:2156:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2156:24:2156:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2157:13:2157:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:2157:23:2157:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2157:24:2157:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2160:13:2160:14 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2160:18:2160:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2160:28:2160:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2160:34:2160:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2161:13:2161:14 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2161:18:2161:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2161:28:2161:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2161:34:2161:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2164:13:2164:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2164:23:2164:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2164:23:2164:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2164:29:2164:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2165:13:2165:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2165:23:2165:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2165:23:2165:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2165:29:2165:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2166:13:2166:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2166:23:2166:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2166:23:2166:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2166:28:2166:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2167:13:2167:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2167:23:2167:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2167:23:2167:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2167:29:2167:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2168:13:2168:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2168:23:2168:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2168:23:2168:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2168:28:2168:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2169:13:2169:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2169:23:2169:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2169:23:2169:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2169:29:2169:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2172:13:2172:20 | vec2_add | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2172:24:2172:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2172:24:2172:30 | ... + ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2172:29:2172:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2173:13:2173:20 | vec2_sub | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2173:24:2173:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2173:24:2173:30 | ... - ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2173:29:2173:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2174:13:2174:20 | vec2_mul | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2174:24:2174:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2174:24:2174:30 | ... * ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2174:29:2174:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2175:13:2175:20 | vec2_div | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2175:24:2175:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2175:24:2175:30 | ... / ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2175:29:2175:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2176:13:2176:20 | vec2_rem | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2176:24:2176:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2176:24:2176:30 | ... % ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2176:29:2176:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2179:17:2179:31 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2179:35:2179:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2180:9:2180:23 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2180:9:2180:29 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2180:28:2180:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2182:17:2182:31 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2182:35:2182:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2183:9:2183:23 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2183:9:2183:29 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2183:28:2183:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2185:17:2185:31 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2185:35:2185:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2186:9:2186:23 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2186:9:2186:29 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2186:28:2186:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2188:17:2188:31 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2188:35:2188:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2189:9:2189:23 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2189:9:2189:29 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2189:28:2189:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2191:17:2191:31 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2191:35:2191:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2192:9:2192:23 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2192:9:2192:29 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2192:28:2192:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2195:13:2195:23 | vec2_bitand | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2195:27:2195:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2195:27:2195:33 | ... & ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2195:32:2195:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2196:13:2196:22 | vec2_bitor | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2196:26:2196:27 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2196:26:2196:32 | ... \| ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2196:31:2196:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2197:13:2197:23 | vec2_bitxor | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2197:27:2197:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2197:27:2197:33 | ... ^ ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2197:32:2197:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2198:13:2198:20 | vec2_shl | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2198:24:2198:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2198:24:2198:33 | ... << ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2198:30:2198:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2199:13:2199:20 | vec2_shr | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2199:24:2199:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2199:24:2199:33 | ... >> ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2199:30:2199:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2202:17:2202:34 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2202:38:2202:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2203:9:2203:26 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2203:9:2203:32 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2203:31:2203:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2205:17:2205:33 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2205:37:2205:38 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2206:9:2206:25 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2206:9:2206:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2206:30:2206:31 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2208:17:2208:34 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2208:38:2208:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2209:9:2209:26 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2209:9:2209:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2209:31:2209:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2211:17:2211:31 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2211:35:2211:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2212:9:2212:23 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2212:9:2212:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2212:29:2212:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2214:17:2214:31 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2214:35:2214:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2215:9:2215:23 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2215:9:2215:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2215:29:2215:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2218:13:2218:20 | vec2_neg | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2218:24:2218:26 | - ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2218:25:2218:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2219:13:2219:20 | vec2_not | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2219:24:2219:26 | ! ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2219:25:2219:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2222:13:2222:24 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2222:28:2222:45 | ...::default(...) | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2223:13:2223:26 | vec2_zero_plus | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2223:30:2223:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2223:30:2223:63 | ... + ... | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2223:40:2223:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2223:46:2223:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2223:52:2223:63 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2227:13:2227:24 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2227:28:2227:45 | ...::default(...) | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2228:13:2228:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | -| main.rs:2228:30:2228:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2228:30:2228:64 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2228:40:2228:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2228:46:2228:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2228:53:2228:64 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | -| main.rs:2238:18:2238:21 | SelfParam | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2238:24:2238:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2241:25:2243:5 | { ... } | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2242:9:2242:10 | S1 | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2245:41:2247:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2245:41:2247:5 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | -| main.rs:2246:9:2246:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2246:9:2246:20 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | -| main.rs:2246:17:2246:18 | S1 | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2249:41:2251:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2249:41:2251:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | -| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRefMut | main.rs:2253:5:2253:14 | S2 | -| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | &mut | -| main.rs:2260:13:2260:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | -| main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | -| main.rs:2262:13:2262:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:2262:13:2262:38 | ...::Ready(...) | T | main.rs:2235:5:2235:14 | S1 | -| main.rs:2262:36:2262:37 | S1 | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2266:41:2268:5 | { ... } | | main.rs:2253:5:2253:14 | S2 | -| main.rs:2267:9:2267:10 | S2 | | main.rs:2253:5:2253:14 | S2 | -| main.rs:2270:22:2278:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2271:9:2271:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2271:9:2271:12 | f1(...) | dyn(Output) | main.rs:2235:5:2235:14 | S1 | -| main.rs:2271:9:2271:18 | await ... | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2271:9:2271:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2272:9:2272:12 | f2(...) | | main.rs:2245:16:2245:39 | impl ... | -| main.rs:2272:9:2272:18 | await ... | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2272:9:2272:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2273:9:2273:12 | f3(...) | | main.rs:2249:16:2249:39 | impl ... | -| main.rs:2273:9:2273:18 | await ... | | {EXTERNAL LOCATION} | () | -| main.rs:2274:9:2274:12 | f4(...) | | main.rs:2266:16:2266:39 | impl ... | -| main.rs:2274:9:2274:18 | await ... | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2274:9:2274:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2275:9:2275:10 | S2 | | main.rs:2253:5:2253:14 | S2 | -| main.rs:2275:9:2275:16 | await S2 | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2275:9:2275:20 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2276:13:2276:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2276:13:2276:13 | b | dyn(Output) | main.rs:2235:5:2235:14 | S1 | -| main.rs:2276:17:2276:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2276:17:2276:28 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | -| main.rs:2276:25:2276:26 | S1 | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2277:9:2277:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2277:9:2277:9 | b | dyn(Output) | main.rs:2235:5:2235:14 | S1 | -| main.rs:2277:9:2277:15 | await b | | main.rs:2235:5:2235:14 | S1 | -| main.rs:2277:9:2277:19 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2288:15:2288:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2288:15:2288:19 | SelfParam | TRef | main.rs:2287:5:2289:5 | Self [trait Trait1] | -| main.rs:2288:22:2288:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2292:15:2292:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2292:15:2292:19 | SelfParam | TRef | main.rs:2291:5:2293:5 | Self [trait Trait2] | -| main.rs:2292:22:2292:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2296:15:2296:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2296:15:2296:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | -| main.rs:2296:22:2296:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2300:15:2300:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2300:15:2300:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | -| main.rs:2300:22:2300:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2303:37:2305:5 | { ... } | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2304:9:2304:10 | S1 | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2308:18:2308:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2308:18:2308:22 | SelfParam | TRef | main.rs:2307:5:2309:5 | Self [trait MyTrait] | -| main.rs:2312:18:2312:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2312:18:2312:22 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | -| main.rs:2312:31:2314:9 | { ... } | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2313:13:2313:14 | S2 | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2318:18:2318:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2318:18:2318:22 | SelfParam | TRef | main.rs:2285:5:2285:22 | S3 | -| main.rs:2318:18:2318:22 | SelfParam | TRef.T3 | main.rs:2317:10:2317:17 | T | -| main.rs:2318:30:2321:9 | { ... } | | main.rs:2317:10:2317:17 | T | -| main.rs:2319:17:2319:21 | S3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:2319:17:2319:21 | S3(...) | | main.rs:2285:5:2285:22 | S3 | -| main.rs:2319:17:2319:21 | S3(...) | TRef | main.rs:2285:5:2285:22 | S3 | -| main.rs:2319:17:2319:21 | S3(...) | TRef.T3 | main.rs:2317:10:2317:17 | T | -| main.rs:2319:25:2319:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2319:25:2319:28 | self | TRef | main.rs:2285:5:2285:22 | S3 | -| main.rs:2319:25:2319:28 | self | TRef.T3 | main.rs:2317:10:2317:17 | T | -| main.rs:2320:13:2320:21 | t.clone() | | main.rs:2317:10:2317:17 | T | -| main.rs:2324:45:2326:5 | { ... } | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2325:9:2325:10 | S1 | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2328:41:2328:41 | t | | main.rs:2328:26:2328:38 | B | -| main.rs:2328:52:2330:5 | { ... } | | main.rs:2328:23:2328:23 | A | -| main.rs:2329:9:2329:9 | t | | main.rs:2328:26:2328:38 | B | -| main.rs:2329:9:2329:17 | t.get_a() | | main.rs:2328:23:2328:23 | A | -| main.rs:2332:34:2332:34 | x | | main.rs:2332:24:2332:31 | T | -| main.rs:2332:59:2334:5 | { ... } | | main.rs:2332:43:2332:57 | impl ... | -| main.rs:2332:59:2334:5 | { ... } | impl(T) | main.rs:2332:24:2332:31 | T | -| main.rs:2333:9:2333:13 | S3(...) | | main.rs:2285:5:2285:22 | S3 | -| main.rs:2333:9:2333:13 | S3(...) | | main.rs:2332:43:2332:57 | impl ... | -| main.rs:2333:9:2333:13 | S3(...) | T3 | main.rs:2332:24:2332:31 | T | -| main.rs:2333:9:2333:13 | S3(...) | impl(T) | main.rs:2332:24:2332:31 | T | -| main.rs:2333:12:2333:12 | x | | main.rs:2332:24:2332:31 | T | -| main.rs:2336:34:2336:34 | x | | main.rs:2336:24:2336:31 | T | -| main.rs:2336:67:2338:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2336:67:2338:5 | { ... } | T | main.rs:2336:50:2336:64 | impl ... | -| main.rs:2336:67:2338:5 | { ... } | T.impl(T) | main.rs:2336:24:2336:31 | T | -| main.rs:2337:9:2337:19 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2337:9:2337:19 | Some(...) | T | main.rs:2285:5:2285:22 | S3 | -| main.rs:2337:9:2337:19 | Some(...) | T | main.rs:2336:50:2336:64 | impl ... | -| main.rs:2337:9:2337:19 | Some(...) | T.T3 | main.rs:2336:24:2336:31 | T | -| main.rs:2337:9:2337:19 | Some(...) | T.impl(T) | main.rs:2336:24:2336:31 | T | -| main.rs:2337:14:2337:18 | S3(...) | | main.rs:2285:5:2285:22 | S3 | -| main.rs:2337:14:2337:18 | S3(...) | T3 | main.rs:2336:24:2336:31 | T | -| main.rs:2337:17:2337:17 | x | | main.rs:2336:24:2336:31 | T | -| main.rs:2340:34:2340:34 | x | | main.rs:2340:24:2340:31 | T | -| main.rs:2340:78:2342:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2340:78:2342:5 | { ... } | T0 | main.rs:2340:44:2340:58 | impl ... | -| main.rs:2340:78:2342:5 | { ... } | T0.impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2340:78:2342:5 | { ... } | T1 | main.rs:2340:61:2340:75 | impl ... | -| main.rs:2340:78:2342:5 | { ... } | T1.impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2341:9:2341:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2341:9:2341:30 | TupleExpr | T0 | main.rs:2285:5:2285:22 | S3 | -| main.rs:2341:9:2341:30 | TupleExpr | T0 | main.rs:2340:44:2340:58 | impl ... | -| main.rs:2341:9:2341:30 | TupleExpr | T0.T3 | main.rs:2340:24:2340:31 | T | -| main.rs:2341:9:2341:30 | TupleExpr | T0.impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2341:9:2341:30 | TupleExpr | T1 | main.rs:2285:5:2285:22 | S3 | -| main.rs:2341:9:2341:30 | TupleExpr | T1 | main.rs:2340:61:2340:75 | impl ... | -| main.rs:2341:9:2341:30 | TupleExpr | T1.T3 | main.rs:2340:24:2340:31 | T | -| main.rs:2341:9:2341:30 | TupleExpr | T1.impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2341:10:2341:22 | S3(...) | | main.rs:2285:5:2285:22 | S3 | -| main.rs:2341:10:2341:22 | S3(...) | | main.rs:2340:44:2340:58 | impl ... | -| main.rs:2341:10:2341:22 | S3(...) | T3 | main.rs:2340:24:2340:31 | T | -| main.rs:2341:10:2341:22 | S3(...) | impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2341:13:2341:13 | x | | main.rs:2340:24:2340:31 | T | -| main.rs:2341:13:2341:21 | x.clone() | | main.rs:2340:24:2340:31 | T | -| main.rs:2341:25:2341:29 | S3(...) | | main.rs:2285:5:2285:22 | S3 | -| main.rs:2341:25:2341:29 | S3(...) | | main.rs:2340:61:2340:75 | impl ... | -| main.rs:2341:25:2341:29 | S3(...) | T3 | main.rs:2340:24:2340:31 | T | -| main.rs:2341:25:2341:29 | S3(...) | impl(T) | main.rs:2340:24:2340:31 | T | -| main.rs:2341:28:2341:28 | x | | main.rs:2340:24:2340:31 | T | -| main.rs:2344:26:2344:26 | t | | main.rs:2344:29:2344:43 | impl ... | -| main.rs:2344:51:2346:5 | { ... } | | main.rs:2344:23:2344:23 | A | -| main.rs:2345:9:2345:9 | t | | main.rs:2344:29:2344:43 | impl ... | -| main.rs:2345:9:2345:17 | t.get_a() | | main.rs:2344:23:2344:23 | A | -| main.rs:2348:16:2362:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2349:13:2349:13 | x | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2349:17:2349:20 | f1(...) | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2350:9:2350:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2350:9:2350:14 | x.f1() | | {EXTERNAL LOCATION} | () | -| main.rs:2351:9:2351:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | -| main.rs:2351:9:2351:14 | x.f2() | | {EXTERNAL LOCATION} | () | -| main.rs:2352:13:2352:13 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2352:17:2352:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2353:13:2353:13 | b | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2353:17:2353:33 | uses_my_trait1(...) | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2353:32:2353:32 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2354:13:2354:13 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2354:17:2354:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2355:13:2355:13 | c | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2355:17:2355:33 | uses_my_trait2(...) | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2355:32:2355:32 | a | | main.rs:2324:28:2324:43 | impl ... | -| main.rs:2356:13:2356:13 | d | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2356:17:2356:34 | uses_my_trait2(...) | | main.rs:2284:5:2284:14 | S2 | -| main.rs:2356:32:2356:33 | S1 | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2357:13:2357:13 | e | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | | main.rs:2332:43:2332:57 | impl ... | -| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | impl(T) | main.rs:2282:5:2283:14 | S1 | -| main.rs:2357:17:2357:43 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2357:33:2357:34 | S1 | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2360:13:2360:13 | f | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T | main.rs:2336:50:2336:64 | impl ... | -| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2282:5:2283:14 | S1 | -| main.rs:2360:17:2360:44 | ... .unwrap() | | main.rs:2336:50:2336:64 | impl ... | -| main.rs:2360:17:2360:44 | ... .unwrap() | impl(T) | main.rs:2282:5:2283:14 | S1 | -| main.rs:2360:17:2360:52 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2360:33:2360:34 | S1 | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2361:13:2361:13 | g | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0 | main.rs:2340:44:2340:58 | impl ... | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2282:5:2283:14 | S1 | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1 | main.rs:2340:61:2340:75 | impl ... | -| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2282:5:2283:14 | S1 | -| main.rs:2361:17:2361:37 | ... .0 | | main.rs:2340:44:2340:58 | impl ... | -| main.rs:2361:17:2361:37 | ... .0 | impl(T) | main.rs:2282:5:2283:14 | S1 | -| main.rs:2361:17:2361:45 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2361:33:2361:34 | S1 | | main.rs:2282:5:2283:14 | S1 | -| main.rs:2372:16:2372:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2372:16:2372:20 | SelfParam | TRef | main.rs:2368:5:2369:13 | S | -| main.rs:2372:31:2374:9 | { ... } | | main.rs:2368:5:2369:13 | S | -| main.rs:2373:13:2373:13 | S | | main.rs:2368:5:2369:13 | S | -| main.rs:2383:26:2385:9 | { ... } | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2383:26:2385:9 | { ... } | T | main.rs:2382:10:2382:10 | T | -| main.rs:2384:13:2384:38 | MyVec {...} | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2384:13:2384:38 | MyVec {...} | T | main.rs:2382:10:2382:10 | T | -| main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2384:27:2384:36 | ...::new(...) | T | main.rs:2382:10:2382:10 | T | -| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | -| main.rs:2387:17:2387:25 | SelfParam | TRefMut | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2387:17:2387:25 | SelfParam | TRefMut.T | main.rs:2382:10:2382:10 | T | -| main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | -| main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | &mut | -| main.rs:2388:13:2388:16 | self | TRefMut | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2388:13:2388:16 | self | TRefMut.T | main.rs:2382:10:2382:10 | T | -| main.rs:2388:13:2388:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2388:13:2388:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2388:13:2388:21 | self.data | T | main.rs:2382:10:2382:10 | T | -| main.rs:2388:13:2388:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2388:28:2388:32 | value | | main.rs:2382:10:2382:10 | T | -| main.rs:2396:18:2396:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2396:18:2396:22 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2396:18:2396:22 | SelfParam | TRef.T | main.rs:2392:10:2392:10 | T | -| main.rs:2396:25:2396:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2396:56:2398:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2396:56:2398:9 | { ... } | TRef | main.rs:2392:10:2392:10 | T | -| main.rs:2397:13:2397:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2397:13:2397:29 | &... | TRef | main.rs:2392:10:2392:10 | T | -| main.rs:2397:14:2397:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2397:14:2397:17 | self | TRef | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2397:14:2397:17 | self | TRef.T | main.rs:2392:10:2392:10 | T | -| main.rs:2397:14:2397:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2397:14:2397:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2397:14:2397:22 | self.data | T | main.rs:2392:10:2392:10 | T | -| main.rs:2397:14:2397:29 | ...[index] | | main.rs:2392:10:2392:10 | T | -| main.rs:2397:24:2397:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2401:22:2401:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2401:22:2401:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2401:22:2401:26 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | -| main.rs:2401:35:2403:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2402:13:2402:13 | x | | main.rs:2368:5:2369:13 | S | -| main.rs:2402:17:2402:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2402:17:2402:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2402:17:2402:21 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | -| main.rs:2402:17:2402:24 | slice[0] | | main.rs:2368:5:2369:13 | S | -| main.rs:2402:17:2402:30 | ... .foo() | | main.rs:2368:5:2369:13 | S | -| main.rs:2402:23:2402:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2405:37:2405:37 | a | | main.rs:2405:20:2405:34 | T | -| main.rs:2405:43:2405:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2409:9:2409:9 | a | | main.rs:2405:20:2405:34 | T | -| main.rs:2409:11:2409:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2412:16:2423:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2413:17:2413:19 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2413:17:2413:19 | vec | T | main.rs:2368:5:2369:13 | S | -| main.rs:2413:23:2413:34 | ...::new(...) | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2413:23:2413:34 | ...::new(...) | T | main.rs:2368:5:2369:13 | S | -| main.rs:2414:9:2414:11 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2414:9:2414:11 | vec | T | main.rs:2368:5:2369:13 | S | -| main.rs:2414:9:2414:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2414:18:2414:18 | S | | main.rs:2368:5:2369:13 | S | -| main.rs:2415:9:2415:11 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2415:9:2415:11 | vec | T | main.rs:2368:5:2369:13 | S | -| main.rs:2415:9:2415:14 | vec[0] | | main.rs:2368:5:2369:13 | S | -| main.rs:2415:9:2415:20 | ... .foo() | | main.rs:2368:5:2369:13 | S | -| main.rs:2415:13:2415:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2417:13:2417:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2417:13:2417:14 | xs | TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2417:21:2417:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2417:26:2417:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2417:26:2417:28 | [...] | TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2417:27:2417:27 | S | | main.rs:2368:5:2369:13 | S | -| main.rs:2418:13:2418:13 | x | | main.rs:2368:5:2369:13 | S | -| main.rs:2418:17:2418:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2418:17:2418:18 | xs | TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2418:17:2418:21 | xs[0] | | main.rs:2368:5:2369:13 | S | -| main.rs:2418:17:2418:27 | ... .foo() | | main.rs:2368:5:2369:13 | S | -| main.rs:2418:20:2418:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2420:29:2420:31 | vec | | main.rs:2377:5:2380:5 | MyVec | -| main.rs:2420:29:2420:31 | vec | T | main.rs:2368:5:2369:13 | S | -| main.rs:2420:34:2420:34 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2422:9:2422:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2422:23:2422:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2422:23:2422:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2422:23:2422:25 | &xs | TRef.TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2422:24:2422:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2422:24:2422:25 | xs | TArray | main.rs:2368:5:2369:13 | S | -| main.rs:2427:16:2429:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2428:13:2428:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2428:17:2428:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2428:25:2428:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2428:25:2428:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2428:25:2428:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2428:25:2428:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2428:25:2428:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2428:38:2428:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2428:38:2428:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2437:19:2437:22 | SelfParam | | main.rs:2433:5:2438:5 | Self [trait MyAdd] | -| main.rs:2437:25:2437:27 | rhs | | main.rs:2433:17:2433:26 | Rhs | -| main.rs:2444:19:2444:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2444:25:2444:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2444:45:2446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2445:13:2445:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2453:19:2453:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2453:25:2453:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2453:25:2453:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2453:46:2455:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2454:13:2454:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2454:14:2454:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2454:14:2454:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2462:19:2462:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2462:25:2462:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2462:46:2468:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2463:13:2467:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:13:2467:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2463:16:2463:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2463:22:2465:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2463:22:2465:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2464:17:2464:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2464:17:2464:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2465:20:2467:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2465:20:2467:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2466:17:2466:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2466:17:2466:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2477:19:2477:22 | SelfParam | | main.rs:2471:5:2471:19 | S | -| main.rs:2477:19:2477:22 | SelfParam | T | main.rs:2473:10:2473:17 | T | -| main.rs:2477:25:2477:29 | other | | main.rs:2471:5:2471:19 | S | -| main.rs:2477:25:2477:29 | other | T | main.rs:2473:10:2473:17 | T | -| main.rs:2477:54:2479:9 | { ... } | | main.rs:2471:5:2471:19 | S | -| main.rs:2478:13:2478:39 | S(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2478:15:2478:22 | (...) | | main.rs:2473:10:2473:17 | T | -| main.rs:2478:16:2478:19 | self | | main.rs:2471:5:2471:19 | S | -| main.rs:2478:16:2478:19 | self | T | main.rs:2473:10:2473:17 | T | -| main.rs:2478:16:2478:21 | self.0 | | main.rs:2473:10:2473:17 | T | -| main.rs:2478:31:2478:35 | other | | main.rs:2471:5:2471:19 | S | -| main.rs:2478:31:2478:35 | other | T | main.rs:2473:10:2473:17 | T | -| main.rs:2478:31:2478:37 | other.0 | | main.rs:2473:10:2473:17 | T | -| main.rs:2486:19:2486:22 | SelfParam | | main.rs:2471:5:2471:19 | S | -| main.rs:2486:19:2486:22 | SelfParam | T | main.rs:2482:10:2482:17 | T | -| main.rs:2486:25:2486:29 | other | | main.rs:2482:10:2482:17 | T | -| main.rs:2486:51:2488:9 | { ... } | | main.rs:2471:5:2471:19 | S | -| main.rs:2487:13:2487:37 | S(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2487:15:2487:22 | (...) | | main.rs:2482:10:2482:17 | T | -| main.rs:2487:16:2487:19 | self | | main.rs:2471:5:2471:19 | S | -| main.rs:2487:16:2487:19 | self | T | main.rs:2482:10:2482:17 | T | -| main.rs:2487:16:2487:21 | self.0 | | main.rs:2482:10:2482:17 | T | -| main.rs:2487:31:2487:35 | other | | main.rs:2482:10:2482:17 | T | -| main.rs:2498:19:2498:22 | SelfParam | | main.rs:2471:5:2471:19 | S | -| main.rs:2498:19:2498:22 | SelfParam | T | main.rs:2491:14:2491:14 | T | -| main.rs:2498:25:2498:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2498:25:2498:29 | other | TRef | main.rs:2491:14:2491:14 | T | -| main.rs:2498:55:2500:9 | { ... } | | main.rs:2471:5:2471:19 | S | -| main.rs:2499:13:2499:37 | S(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2499:15:2499:22 | (...) | | main.rs:2491:14:2491:14 | T | -| main.rs:2499:16:2499:19 | self | | main.rs:2471:5:2471:19 | S | -| main.rs:2499:16:2499:19 | self | T | main.rs:2491:14:2491:14 | T | -| main.rs:2499:16:2499:21 | self.0 | | main.rs:2491:14:2491:14 | T | -| main.rs:2499:31:2499:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2499:31:2499:35 | other | TRef | main.rs:2491:14:2491:14 | T | -| main.rs:2505:20:2505:24 | value | | main.rs:2503:18:2503:18 | T | -| main.rs:2510:20:2510:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2510:40:2512:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2511:13:2511:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2517:20:2517:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2517:41:2523:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2518:13:2522:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2518:13:2522:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2518:16:2518:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2518:22:2520:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2518:22:2520:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:17:2519:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2519:17:2519:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2520:20:2522:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2520:20:2522:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2521:17:2521:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2521:17:2521:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2528:21:2528:25 | value | | main.rs:2526:19:2526:19 | T | -| main.rs:2528:31:2528:31 | x | | main.rs:2526:5:2529:5 | Self [trait MyFrom2] | -| main.rs:2533:21:2533:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2533:33:2533:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2533:48:2535:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2534:13:2534:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2540:21:2540:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2540:34:2540:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2540:49:2546:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2541:13:2545:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2541:16:2541:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2541:22:2543:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2542:17:2542:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2543:20:2545:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2544:17:2544:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2551:15:2551:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | -| main.rs:2554:15:2554:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | -| main.rs:2559:15:2559:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2559:31:2561:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2560:13:2560:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2560:13:2560:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2560:17:2560:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2564:15:2564:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2564:32:2566:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2565:13:2565:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2565:13:2565:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2565:17:2565:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2571:15:2571:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2571:31:2573:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2572:13:2572:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2572:13:2572:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2576:15:2576:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2576:32:2578:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2581:16:2606:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2582:13:2582:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:22:2582:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2582:22:2582:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:9:2583:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:9:2583:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2583:18:2583:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:18:2584:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2584:18:2584:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:19:2584:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:9:2587:15 | S(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2587:9:2587:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2587:9:2587:31 | ... .my_add(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2587:11:2587:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2587:24:2587:30 | S(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2587:24:2587:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2587:26:2587:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:9:2588:15 | S(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2588:9:2588:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:11:2588:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:24:2588:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:9:2589:15 | S(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2589:9:2589:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:9:2589:29 | ... .my_add(...) | | main.rs:2471:5:2471:19 | S | -| main.rs:2589:11:2589:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:24:2589:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2589:24:2589:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:25:2589:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2591:13:2591:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2591:17:2591:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2591:30:2591:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2592:13:2592:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2592:17:2592:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2592:30:2592:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2593:13:2593:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2593:22:2593:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2593:38:2593:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2594:9:2594:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2594:23:2594:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2594:30:2594:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2595:9:2595:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2595:23:2595:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2595:29:2595:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2596:9:2596:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2596:27:2596:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2596:34:2596:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2598:9:2598:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2598:17:2598:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2599:9:2599:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2599:17:2599:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2600:9:2600:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2600:18:2600:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2601:9:2601:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2601:18:2601:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2602:9:2602:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2602:25:2602:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2603:9:2603:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2603:25:2603:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2604:9:2604:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2604:25:2604:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2605:9:2605:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2605:25:2605:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2613:26:2615:9 | { ... } | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2614:13:2614:25 | MyCallable {...} | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2617:17:2617:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2617:17:2617:21 | SelfParam | TRef | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2617:31:2619:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2618:13:2618:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2618:13:2618:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2622:16:2729:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:9:2625:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:13:2625:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2625:18:2625:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:18:2625:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2625:19:2625:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2625:22:2625:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2625:25:2625:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2625:28:2625:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2626:9:2626:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2626:18:2626:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2626:18:2626:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2626:18:2626:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | -| main.rs:2626:19:2626:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2626:22:2626:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2626:25:2626:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2626:32:2626:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2626:32:2626:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:2626:40:2626:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2626:43:2626:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:9:2627:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:13:2627:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2627:18:2627:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:18:2627:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2627:18:2627:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2627:18:2627:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2627:19:2627:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2627:22:2627:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2627:25:2627:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2627:40:2627:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:13:2629:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:13:2629:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2629:13:2629:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2629:21:2629:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:21:2629:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2629:21:2629:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2629:22:2629:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2629:27:2629:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2629:27:2629:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2629:30:2629:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2629:30:2629:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2630:9:2630:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:13:2630:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2630:13:2630:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2630:18:2630:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2630:18:2630:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2630:18:2630:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2630:24:2630:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2632:13:2632:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:13:2632:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2632:21:2632:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:21:2632:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2632:22:2632:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2632:28:2632:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2633:9:2633:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2633:13:2633:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2633:18:2633:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2633:18:2633:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2633:24:2633:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2635:13:2635:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2635:13:2635:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2635:26:2635:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2635:31:2635:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2635:31:2635:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2635:31:2635:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2635:32:2635:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2635:32:2635:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2635:35:2635:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2635:35:2635:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2635:38:2635:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2635:38:2635:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2636:9:2636:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2636:13:2636:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2636:18:2636:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2636:18:2636:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2636:24:2636:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2638:13:2638:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2638:13:2638:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2638:26:2638:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2638:31:2638:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2638:31:2638:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2638:31:2638:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2638:32:2638:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2638:32:2638:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2638:35:2638:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2639:9:2639:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2639:13:2639:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2639:18:2639:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2639:18:2639:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2639:24:2639:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2641:17:2641:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:17:2641:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2641:17:2641:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2641:28:2641:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:28:2641:48 | [...] | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2641:28:2641:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2641:29:2641:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:29:2641:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2641:36:2641:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:36:2641:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2641:43:2641:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2641:43:2641:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2642:9:2642:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2642:13:2642:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2642:13:2642:13 | s | TRef | {EXTERNAL LOCATION} | & | -| main.rs:2642:13:2642:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2642:18:2642:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2642:18:2642:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2642:18:2642:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2642:18:2642:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2642:19:2642:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2642:19:2642:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2642:19:2642:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2643:13:2643:13 | s | | {EXTERNAL LOCATION} | &mut | -| main.rs:2643:13:2643:13 | s | TRefMut | {EXTERNAL LOCATION} | & | -| main.rs:2643:13:2643:13 | s | TRefMut.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | -| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut | {EXTERNAL LOCATION} | [;] | -| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2643:23:2643:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2643:23:2643:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:32:2643:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2644:9:2644:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2644:13:2644:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2644:13:2644:13 | s | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2644:18:2644:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2644:18:2644:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2644:18:2644:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2644:27:2644:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2646:13:2646:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2646:13:2646:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2647:9:2651:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2647:9:2651:9 | [...] | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2648:13:2648:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2648:26:2648:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2648:26:2648:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2649:13:2649:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2649:26:2649:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2649:26:2649:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2650:13:2650:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2650:26:2650:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2650:26:2650:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2652:9:2652:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2652:13:2652:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2652:18:2652:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2652:18:2652:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2652:27:2652:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2654:13:2654:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2654:13:2654:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2654:13:2654:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2655:9:2659:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2655:9:2659:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2655:9:2659:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2655:10:2659:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2655:10:2659:9 | [...] | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2656:13:2656:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2656:26:2656:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2656:26:2656:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2657:13:2657:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2657:26:2657:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2657:26:2657:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2658:13:2658:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2658:26:2658:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2658:26:2658:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2660:9:2660:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:13:2660:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2660:13:2660:13 | s | TRef | {EXTERNAL LOCATION} | String | -| main.rs:2660:18:2660:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2660:18:2660:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2660:18:2660:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2660:27:2660:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2662:13:2662:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:13:2662:21 | callables | TArray | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2662:25:2662:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:25:2662:81 | [...] | TArray | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2662:26:2662:42 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2662:45:2662:61 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2662:64:2662:80 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2663:9:2667:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2663:13:2663:13 | c | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2664:12:2664:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2664:12:2664:20 | callables | TArray | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2665:9:2667:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2666:17:2666:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2666:26:2666:26 | c | | main.rs:2610:5:2610:24 | MyCallable | -| main.rs:2666:26:2666:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2671:9:2671:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2671:13:2671:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2671:18:2671:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2671:18:2671:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2671:18:2671:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2671:21:2671:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2671:24:2671:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2672:9:2672:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2672:13:2672:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2672:13:2672:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2672:13:2672:13 | u | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2672:18:2672:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2672:18:2672:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | -| main.rs:2672:18:2672:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2672:18:2672:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2672:19:2672:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2672:19:2672:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2672:19:2672:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2672:19:2672:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2672:24:2672:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2672:24:2672:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2672:28:2672:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2673:13:2673:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2673:13:2673:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:21:2673:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:21:2673:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2673:21:2673:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:24:2673:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2674:13:2674:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2674:18:2674:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2674:18:2674:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2675:13:2675:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2675:26:2675:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2676:9:2676:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:18:2676:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2676:19:2676:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2676:19:2676:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | -| main.rs:2676:20:2676:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2676:26:2676:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2676:32:2676:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2676:38:2676:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2676:50:2676:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2678:13:2678:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2678:13:2678:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2679:9:2682:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2679:9:2682:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2680:20:2680:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2681:18:2681:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2683:9:2683:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2683:13:2683:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2683:18:2683:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2683:18:2683:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2683:25:2683:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2687:13:2687:17 | vals3 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2687:21:2687:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2687:26:2687:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2687:29:2687:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2687:32:2687:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2688:9:2688:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2688:18:2688:22 | vals3 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:24:2688:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2690:13:2690:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2690:13:2690:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:13:2690:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2690:32:2690:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2690:32:2690:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2690:32:2690:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2690:32:2690:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2690:32:2690:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:32:2690:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2690:33:2690:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2690:39:2690:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2690:42:2690:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2691:9:2691:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2691:13:2691:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2691:18:2691:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2691:18:2691:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2691:18:2691:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2691:25:2691:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2693:22:2693:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2693:22:2693:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2693:22:2693:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2693:23:2693:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2693:29:2693:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2693:32:2693:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2694:9:2694:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:25:2694:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2696:13:2696:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2696:13:2696:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2696:13:2696:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2696:13:2696:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2696:21:2696:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2696:21:2696:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2696:21:2696:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2696:21:2696:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2696:31:2696:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2696:31:2696:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2696:31:2696:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2696:32:2696:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2696:38:2696:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2696:41:2696:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2697:9:2697:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2697:13:2697:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2697:13:2697:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2697:18:2697:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2697:18:2697:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2697:18:2697:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2697:18:2697:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2697:24:2697:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2699:13:2699:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2699:13:2699:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:13:2699:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2699:13:2699:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2699:32:2699:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2699:32:2699:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:32:2699:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2699:32:2699:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2699:32:2699:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:32:2699:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | -| main.rs:2699:32:2699:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2699:33:2699:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2699:39:2699:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:42:2699:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2700:9:2700:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2700:13:2700:13 | u | | {EXTERNAL LOCATION} | & | -| main.rs:2700:13:2700:13 | u | TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2700:18:2700:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2700:18:2700:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:18:2700:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2700:18:2700:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2700:24:2700:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:17:2702:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2702:17:2702:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:17:2702:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2702:25:2702:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2702:25:2702:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:25:2702:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2703:9:2703:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2703:9:2703:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:9:2703:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2703:9:2703:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2703:20:2703:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2704:9:2704:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:13:2704:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2704:18:2704:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2704:18:2704:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:18:2704:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2704:24:2704:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2706:13:2706:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2706:23:2706:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2706:28:2706:37 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2706:28:2706:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2706:33:2706:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2706:36:2706:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2706:40:2706:49 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2706:40:2706:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2706:45:2706:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2706:48:2706:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2708:13:2708:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2708:17:2711:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2708:28:2708:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2708:36:2711:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:13:2710:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:29:2710:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2713:17:2713:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2713:17:2713:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2713:17:2713:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2713:17:2713:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2713:17:2713:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2713:17:2713:20 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2713:17:2713:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2713:24:2713:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2713:24:2713:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2713:24:2713:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2713:24:2713:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2713:24:2713:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2713:24:2713:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2713:24:2713:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2714:9:2714:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2714:9:2714:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2714:9:2714:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2714:9:2714:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2714:9:2714:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2714:9:2714:12 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2714:9:2714:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2714:9:2714:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2714:9:2714:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2714:9:2714:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2714:9:2714:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | -| main.rs:2714:9:2714:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2714:21:2714:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2714:24:2714:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2714:24:2714:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2714:24:2714:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:2714:24:2714:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2714:33:2714:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2714:33:2714:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2715:9:2715:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2715:9:2715:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2715:9:2715:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2715:9:2715:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2715:9:2715:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2715:9:2715:12 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2715:9:2715:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2715:9:2715:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2715:9:2715:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2715:9:2715:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2715:9:2715:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | -| main.rs:2715:9:2715:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2715:21:2715:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2715:24:2715:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2715:24:2715:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2715:24:2715:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:2715:24:2715:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2715:33:2715:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2715:33:2715:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2716:9:2716:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2716:13:2716:15 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2716:13:2716:15 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2716:20:2716:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2716:20:2716:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2716:20:2716:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2716:20:2716:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2716:20:2716:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2716:20:2716:23 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2716:20:2716:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2716:20:2716:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2716:20:2716:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2716:20:2716:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2716:20:2716:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2716:20:2716:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2716:20:2716:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2716:32:2716:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2717:9:2717:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2717:13:2717:17 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2717:13:2717:17 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2717:13:2717:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2717:13:2717:17 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2717:13:2717:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2717:22:2717:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2717:22:2717:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2717:22:2717:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2717:22:2717:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2717:22:2717:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2717:22:2717:25 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2717:22:2717:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2717:22:2717:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2717:22:2717:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2717:22:2717:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2717:22:2717:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2717:22:2717:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2717:22:2717:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2717:36:2717:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2718:9:2718:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2718:13:2718:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2718:13:2718:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | -| main.rs:2718:13:2718:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2718:13:2718:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | -| main.rs:2718:13:2718:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2718:14:2718:16 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2718:14:2718:16 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2718:19:2718:23 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2718:19:2718:23 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2718:19:2718:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2718:19:2718:23 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2718:19:2718:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2718:29:2718:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2718:29:2718:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2718:29:2718:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2718:29:2718:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2718:29:2718:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2718:29:2718:32 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2718:29:2718:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2718:29:2718:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2718:29:2718:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2718:29:2718:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2718:29:2718:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2718:29:2718:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2718:29:2718:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2718:41:2718:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2719:9:2719:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2719:13:2719:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2719:13:2719:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | -| main.rs:2719:13:2719:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2719:13:2719:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | -| main.rs:2719:13:2719:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2719:14:2719:16 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2719:14:2719:16 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2719:19:2719:23 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2719:19:2719:23 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2719:19:2719:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2719:19:2719:23 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2719:19:2719:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2719:29:2719:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2719:29:2719:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | -| main.rs:2719:29:2719:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2719:29:2719:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2719:29:2719:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | -| main.rs:2719:29:2719:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2719:29:2719:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | -| main.rs:2719:29:2719:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2719:30:2719:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2719:30:2719:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2719:30:2719:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2719:30:2719:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2719:30:2719:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2719:30:2719:33 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2719:30:2719:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2719:35:2719:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2723:17:2723:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2723:26:2723:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2723:26:2723:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2725:13:2725:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2725:17:2728:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2725:23:2725:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2725:23:2725:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2725:27:2725:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2726:9:2728:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2727:13:2727:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2727:13:2727:18 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2727:18:2727:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2739:40:2741:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2739:40:2741:9 | { ... } | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2739:40:2741:9 | { ... } | T.T | main.rs:2738:10:2738:19 | T | -| main.rs:2740:13:2740:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2740:13:2740:16 | None | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2740:13:2740:16 | None | T.T | main.rs:2738:10:2738:19 | T | -| main.rs:2743:30:2745:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2743:30:2745:9 | { ... } | T | main.rs:2738:10:2738:19 | T | -| main.rs:2744:13:2744:28 | S1(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2744:13:2744:28 | S1(...) | T | main.rs:2738:10:2738:19 | T | -| main.rs:2744:16:2744:27 | ...::default(...) | | main.rs:2738:10:2738:19 | T | -| main.rs:2747:19:2747:22 | SelfParam | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2747:19:2747:22 | SelfParam | T | main.rs:2738:10:2738:19 | T | -| main.rs:2747:33:2749:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2747:33:2749:9 | { ... } | T | main.rs:2738:10:2738:19 | T | -| main.rs:2748:13:2748:16 | self | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2748:13:2748:16 | self | T | main.rs:2738:10:2738:19 | T | -| main.rs:2760:15:2760:15 | x | | main.rs:2760:12:2760:12 | T | -| main.rs:2760:26:2762:5 | { ... } | | main.rs:2760:12:2760:12 | T | -| main.rs:2761:9:2761:9 | x | | main.rs:2760:12:2760:12 | T | -| main.rs:2764:16:2786:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2765:13:2765:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2765:13:2765:14 | x1 | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2765:13:2765:14 | x1 | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2766:13:2766:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2766:13:2766:14 | x2 | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2766:13:2766:14 | x2 | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2767:13:2767:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2767:13:2767:14 | x3 | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2767:13:2767:14 | x3 | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | -| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2768:13:2768:14 | x4 | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2768:13:2768:14 | x4 | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2768:18:2768:48 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2768:18:2768:48 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2768:35:2768:47 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2768:35:2768:47 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2769:13:2769:14 | x5 | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2769:13:2769:14 | x5 | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2769:18:2769:42 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2769:18:2769:42 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2769:29:2769:41 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2769:29:2769:41 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2770:13:2770:14 | x6 | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2770:13:2770:14 | x6 | T4 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2770:18:2770:45 | S4::<...>(...) | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2770:18:2770:45 | S4::<...>(...) | T4 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2770:27:2770:44 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2771:13:2771:14 | x7 | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2771:13:2771:14 | x7 | T4 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2771:18:2771:23 | S4(...) | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2771:18:2771:23 | S4(...) | T4 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2771:21:2771:22 | S2 | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2772:13:2772:14 | x8 | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2772:13:2772:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2772:18:2772:22 | S4(...) | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2772:18:2772:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2772:21:2772:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2773:13:2773:14 | x9 | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2773:13:2773:14 | x9 | T4 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2773:18:2773:34 | S4(...) | | main.rs:2754:5:2754:27 | S4 | -| main.rs:2773:18:2773:34 | S4(...) | T4 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2773:21:2773:33 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2774:13:2774:15 | x10 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2774:13:2774:15 | x10 | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2774:19:2777:9 | S5::<...> {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2774:19:2777:9 | S5::<...> {...} | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2776:20:2776:37 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2778:13:2778:15 | x11 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2778:13:2778:15 | x11 | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2778:19:2778:34 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2778:19:2778:34 | S5 {...} | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2778:31:2778:32 | S2 | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2779:13:2779:15 | x12 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2779:13:2779:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2779:19:2779:33 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2779:19:2779:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2779:31:2779:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2780:13:2780:15 | x13 | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2780:13:2780:15 | x13 | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2780:19:2783:9 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | -| main.rs:2780:19:2783:9 | S5 {...} | T5 | main.rs:2735:5:2736:14 | S2 | -| main.rs:2782:20:2782:32 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | -| main.rs:2784:13:2784:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:19:2784:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2784:30:2784:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2785:13:2785:15 | x15 | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2785:13:2785:15 | x15 | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2785:19:2785:37 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | -| main.rs:2785:19:2785:37 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | -| main.rs:2794:35:2796:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2794:35:2796:9 | { ... } | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2794:35:2796:9 | { ... } | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2795:13:2795:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2795:13:2795:26 | TupleExpr | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2795:13:2795:26 | TupleExpr | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2795:14:2795:18 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2795:21:2795:25 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2797:16:2797:19 | SelfParam | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2797:22:2797:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2800:16:2834:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2801:13:2801:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2801:13:2801:13 | a | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2801:13:2801:13 | a | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2801:17:2801:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2801:17:2801:30 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2801:17:2801:30 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:17:2802:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2802:17:2802:17 | b | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:17:2802:17 | b | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:21:2802:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2802:21:2802:34 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2802:21:2802:34 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:13:2803:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2803:13:2803:18 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:13:2803:18 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:14:2803:14 | c | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:17:2803:17 | d | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:22:2803:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2803:22:2803:35 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2803:22:2803:35 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:13:2804:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2804:13:2804:22 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:13:2804:22 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:18:2804:18 | e | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:21:2804:21 | f | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:26:2804:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2804:26:2804:39 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2804:26:2804:39 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:13:2805:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2805:13:2805:26 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:13:2805:26 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:18:2805:18 | g | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:25:2805:25 | h | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:30:2805:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2805:30:2805:43 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2805:30:2805:43 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2807:9:2807:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:9:2807:9 | a | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2807:9:2807:9 | a | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2807:9:2807:11 | a.0 | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2807:9:2807:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2808:9:2808:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:9:2808:9 | b | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2808:9:2808:9 | b | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2808:9:2808:11 | b.1 | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2808:9:2808:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2809:9:2809:9 | c | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2809:9:2809:15 | c.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2810:9:2810:9 | d | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2810:9:2810:15 | d.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2811:9:2811:9 | e | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2811:9:2811:15 | e.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2812:9:2812:9 | f | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2812:9:2812:15 | f.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2813:9:2813:9 | g | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2813:9:2813:15 | g.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2814:9:2814:9 | h | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2814:9:2814:15 | h.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2819:13:2819:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2819:17:2819:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2820:13:2820:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2820:17:2820:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2821:13:2821:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2821:13:2821:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2821:13:2821:16 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2821:20:2821:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2821:20:2821:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2821:20:2821:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2821:21:2821:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2821:24:2821:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2822:13:2822:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2822:22:2822:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2822:22:2822:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2822:22:2822:25 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2822:22:2822:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2823:13:2823:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2823:23:2823:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2823:23:2823:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2823:23:2823:26 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2823:23:2823:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2825:13:2825:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2825:13:2825:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:13:2825:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:20:2825:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2825:20:2825:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:20:2825:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2825:20:2825:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:20:2825:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:21:2825:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2825:24:2825:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2826:9:2829:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2826:15:2826:18 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2826:15:2826:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2826:15:2826:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2827:13:2827:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2827:13:2827:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2827:13:2827:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2827:14:2827:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2827:17:2827:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2827:23:2827:42 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2827:30:2827:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2827:30:2827:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2827:30:2827:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2827:30:2827:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2828:13:2828:13 | _ | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2828:13:2828:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2828:13:2828:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2828:18:2828:35 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2828:25:2828:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2828:25:2828:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2828:25:2828:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2828:25:2828:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2830:13:2830:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:17:2830:20 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2830:17:2830:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:17:2830:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:17:2830:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2832:13:2832:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2832:13:2832:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2832:13:2832:13 | y | TRef.T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2832:13:2832:13 | y | TRef.T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2832:17:2832:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2832:17:2832:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2832:17:2832:31 | &... | TRef.T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2832:17:2832:31 | &... | TRef.T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2832:18:2832:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2832:18:2832:31 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2832:18:2832:31 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2833:9:2833:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2833:9:2833:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2833:9:2833:9 | y | TRef.T0 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2833:9:2833:9 | y | TRef.T1 | main.rs:2790:5:2791:16 | S1 | -| main.rs:2833:9:2833:11 | y.0 | | main.rs:2790:5:2791:16 | S1 | -| main.rs:2833:9:2833:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2839:27:2861:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2840:13:2840:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:13:2840:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:27:2840:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:27:2840:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:27:2840:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:36:2840:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2843:9:2851:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2843:15:2843:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2843:15:2843:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2843:15:2843:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2844:13:2844:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2844:13:2844:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2844:13:2844:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2844:17:2844:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2844:24:2846:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2845:17:2845:37 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2845:26:2845:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2845:26:2845:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2845:26:2845:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2847:13:2847:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2847:13:2847:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2847:13:2847:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2847:22:2850:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2849:17:2849:52 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2849:26:2849:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2854:13:2854:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2854:13:2854:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:13:2854:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2854:13:2854:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:13:2854:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2854:26:2854:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2854:26:2854:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:26:2854:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2854:26:2854:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:26:2854:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2854:35:2854:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2854:35:2854:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2854:35:2854:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2854:44:2854:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2855:9:2860:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2855:15:2855:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2855:15:2855:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2855:15:2855:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2855:15:2855:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2855:15:2855:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2856:13:2856:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2856:13:2856:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2856:13:2856:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2856:13:2856:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2856:13:2856:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2856:26:2859:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2858:17:2858:60 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2858:26:2858:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2870:36:2872:9 | { ... } | | main.rs:2867:5:2867:22 | Path | -| main.rs:2871:13:2871:19 | Path {...} | | main.rs:2867:5:2867:22 | Path | -| main.rs:2874:29:2874:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2874:29:2874:33 | SelfParam | TRef | main.rs:2867:5:2867:22 | Path | -| main.rs:2874:59:2876:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2874:59:2876:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2874:59:2876:9 | { ... } | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2875:13:2875:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2875:13:2875:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | -| main.rs:2875:13:2875:30 | Ok(...) | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2875:16:2875:29 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2882:39:2884:9 | { ... } | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2883:13:2883:22 | PathBuf {...} | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2892:18:2892:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2892:18:2892:22 | SelfParam | TRef | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2892:34:2896:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2892:34:2896:9 | { ... } | TRef | main.rs:2867:5:2867:22 | Path | -| main.rs:2894:33:2894:43 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | -| main.rs:2895:13:2895:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2895:13:2895:17 | &path | TRef | main.rs:2867:5:2867:22 | Path | -| main.rs:2895:14:2895:17 | path | | main.rs:2867:5:2867:22 | Path | -| main.rs:2899:16:2907:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2900:13:2900:17 | path1 | | main.rs:2867:5:2867:22 | Path | -| main.rs:2900:21:2900:31 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | -| main.rs:2901:13:2901:17 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2901:13:2901:17 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2901:13:2901:17 | path2 | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2901:21:2901:25 | path1 | | main.rs:2867:5:2867:22 | Path | -| main.rs:2901:21:2901:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2901:21:2901:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | -| main.rs:2901:21:2901:40 | path1.canonicalize() | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2902:13:2902:17 | path3 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2902:21:2902:25 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2902:21:2902:25 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2902:21:2902:25 | path2 | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2902:21:2902:34 | path2.unwrap() | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2904:13:2904:20 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2904:24:2904:37 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2905:13:2905:20 | pathbuf2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2905:13:2905:20 | pathbuf2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2905:13:2905:20 | pathbuf2 | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2905:24:2905:31 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2905:24:2905:46 | pathbuf1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2905:24:2905:46 | pathbuf1.canonicalize() | E | {EXTERNAL LOCATION} | () | -| main.rs:2905:24:2905:46 | pathbuf1.canonicalize() | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2906:13:2906:20 | pathbuf3 | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2906:24:2906:31 | pathbuf2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2906:24:2906:31 | pathbuf2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2906:24:2906:31 | pathbuf2 | T | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2906:24:2906:40 | pathbuf2.unwrap() | | main.rs:2879:5:2879:25 | PathBuf | -| main.rs:2912:14:2912:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2912:14:2912:18 | SelfParam | TRef | main.rs:2911:5:2913:5 | Self [trait MyTrait] | -| main.rs:2919:14:2919:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2919:14:2919:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2919:14:2919:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2919:28:2921:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2920:13:2920:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2920:13:2920:16 | self | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2920:13:2920:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2920:13:2920:18 | self.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2925:14:2925:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2925:14:2925:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2925:14:2925:18 | SelfParam | TRef.T | main.rs:2915:5:2916:19 | S | -| main.rs:2925:14:2925:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2925:28:2927:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:13:2926:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2926:13:2926:16 | self | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2926:13:2926:16 | self | TRef.T | main.rs:2915:5:2916:19 | S | -| main.rs:2926:13:2926:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:13:2926:18 | self.0 | | main.rs:2915:5:2916:19 | S | -| main.rs:2926:13:2926:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:13:2926:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2931:15:2931:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2931:15:2931:19 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2931:15:2931:19 | SelfParam | TRef.T | main.rs:2930:10:2930:16 | T | -| main.rs:2931:33:2933:9 | { ... } | | main.rs:2915:5:2916:19 | S | -| main.rs:2931:33:2933:9 | { ... } | T | main.rs:2915:5:2916:19 | S | -| main.rs:2931:33:2933:9 | { ... } | T.T | main.rs:2930:10:2930:16 | T | -| main.rs:2932:13:2932:24 | S(...) | | main.rs:2915:5:2916:19 | S | -| main.rs:2932:13:2932:24 | S(...) | T | main.rs:2915:5:2916:19 | S | -| main.rs:2932:13:2932:24 | S(...) | T.T | main.rs:2930:10:2930:16 | T | -| main.rs:2932:15:2932:23 | S(...) | | main.rs:2915:5:2916:19 | S | -| main.rs:2932:15:2932:23 | S(...) | T | main.rs:2930:10:2930:16 | T | -| main.rs:2932:17:2932:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2932:17:2932:20 | self | TRef | main.rs:2915:5:2916:19 | S | -| main.rs:2932:17:2932:20 | self | TRef.T | main.rs:2930:10:2930:16 | T | -| main.rs:2932:17:2932:22 | self.0 | | main.rs:2930:10:2930:16 | T | -| main.rs:2936:14:2936:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2936:48:2953:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2936:48:2953:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2936:48:2953:5 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:2936:48:2953:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:13:2937:13 | x | | main.rs:2915:5:2916:19 | S | -| main.rs:2937:13:2937:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:17:2942:9 | if b {...} else {...} | | main.rs:2915:5:2916:19 | S | -| main.rs:2937:17:2942:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:20:2937:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2937:22:2940:9 | { ... } | | main.rs:2915:5:2916:19 | S | -| main.rs:2937:22:2940:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2938:17:2938:17 | y | | main.rs:2915:5:2916:19 | S | -| main.rs:2938:17:2938:17 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2938:21:2938:38 | ...::default(...) | | main.rs:2915:5:2916:19 | S | -| main.rs:2938:21:2938:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2939:13:2939:13 | y | | main.rs:2915:5:2916:19 | S | -| main.rs:2939:13:2939:13 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2940:16:2942:9 | { ... } | | main.rs:2915:5:2916:19 | S | -| main.rs:2940:16:2942:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2941:13:2941:16 | S(...) | | main.rs:2915:5:2916:19 | S | -| main.rs:2941:13:2941:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2941:15:2941:15 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2946:13:2946:13 | x | | main.rs:2915:5:2916:19 | S | -| main.rs:2946:13:2946:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2946:17:2946:20 | S(...) | | main.rs:2915:5:2916:19 | S | -| main.rs:2946:17:2946:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2946:19:2946:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2947:9:2952:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | -| main.rs:2947:9:2952:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | -| main.rs:2947:9:2952:9 | if b {...} else {...} | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:2947:9:2952:9 | if b {...} else {...} | T | main.rs:2915:5:2916:19 | S | -| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T | main.rs:2915:5:2916:19 | S | -| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2947:9:2952:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2947:12:2947:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2947:14:2950:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2947:14:2950:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2947:14:2950:9 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:2947:14:2950:9 | { ... } | T | main.rs:2915:5:2916:19 | S | -| main.rs:2947:14:2950:9 | { ... } | T.T | main.rs:2915:5:2916:19 | S | -| main.rs:2947:14:2950:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2947:14:2950:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2948:17:2948:17 | x | | main.rs:2915:5:2916:19 | S | -| main.rs:2948:17:2948:17 | x | T | main.rs:2915:5:2916:19 | S | -| main.rs:2948:17:2948:17 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2948:21:2948:21 | x | | main.rs:2915:5:2916:19 | S | -| main.rs:2948:21:2948:21 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2948:21:2948:26 | x.m2() | | main.rs:2915:5:2916:19 | S | -| main.rs:2948:21:2948:26 | x.m2() | T | main.rs:2915:5:2916:19 | S | -| main.rs:2948:21:2948:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2949:13:2949:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2949:13:2949:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2949:13:2949:23 | ...::new(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:2949:13:2949:23 | ...::new(...) | T | main.rs:2915:5:2916:19 | S | -| main.rs:2949:13:2949:23 | ...::new(...) | T.T | main.rs:2915:5:2916:19 | S | -| main.rs:2949:13:2949:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2949:13:2949:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2949:22:2949:22 | x | | main.rs:2915:5:2916:19 | S | -| main.rs:2949:22:2949:22 | x | T | main.rs:2915:5:2916:19 | S | -| main.rs:2949:22:2949:22 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2950:16:2952:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2950:16:2952:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2950:16:2952:9 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:2950:16:2952:9 | { ... } | T | main.rs:2915:5:2916:19 | S | -| main.rs:2950:16:2952:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2950:16:2952:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2951:13:2951:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2951:13:2951:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2951:13:2951:23 | ...::new(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:2951:13:2951:23 | ...::new(...) | T | main.rs:2915:5:2916:19 | S | -| main.rs:2951:13:2951:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2951:13:2951:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2951:22:2951:22 | x | | main.rs:2915:5:2916:19 | S | -| main.rs:2951:22:2951:22 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2957:22:2961:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2958:18:2958:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2958:33:2960:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2959:13:2959:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2959:13:2959:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:2959:17:2959:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2966:11:2966:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2966:30:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2968:13:2968:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2968:17:2972:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2969:13:2971:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2969:16:2969:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2969:21:2971:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2970:24:2970:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2973:9:2973:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2977:20:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2980:26:2980:27 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2982:9:2982:30 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2982:18:2982:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2982:18:2982:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:9:2983:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2986:20:2988:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2987:16:2987:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2991:11:2991:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2991:30:2999:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2992:13:2992:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2992:17:2996:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2993:13:2995:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2993:16:2993:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2993:21:2995:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2994:24:2994:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2997:9:2997:30 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2997:18:2997:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2997:18:2997:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2997:18:2997:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2997:29:2997:29 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2998:9:2998:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3003:16:3050:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3004:13:3004:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3004:13:3004:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3004:17:3004:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:3004:17:3004:20 | None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:13:3005:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3005:13:3005:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:30:3005:30 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3005:30:3005:30 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:13:3006:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3006:13:3006:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:17:3006:35 | ...::None | | {EXTERNAL LOCATION} | Option | -| main.rs:3006:17:3006:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3007:13:3007:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3007:13:3007:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3007:17:3007:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | -| main.rs:3007:17:3007:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:26:3009:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:3009:26:3009:28 | opt | T | main.rs:3009:23:3009:23 | T | -| main.rs:3009:42:3009:42 | x | | main.rs:3009:23:3009:23 | T | -| main.rs:3009:48:3009:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3011:13:3011:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3011:13:3011:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3011:17:3011:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:3011:17:3011:20 | None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3012:9:3012:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3012:20:3012:20 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:3012:20:3012:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3012:23:3012:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3019:13:3019:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3019:13:3019:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3019:13:3019:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3019:17:3019:39 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3019:17:3019:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3019:17:3019:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3019:37:3019:37 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3020:13:3020:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3020:13:3020:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3020:13:3020:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3020:40:3020:40 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3020:40:3020:40 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3020:40:3020:40 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3021:13:3021:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3021:13:3021:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:13:3021:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3021:17:3021:52 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3021:17:3021:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:17:3021:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3021:50:3021:50 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:13:3023:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3023:13:3023:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:13:3023:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3023:17:3025:9 | ...::B::<...> {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3024:20:3024:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3027:29:3027:29 | e | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3027:29:3027:29 | e | T1 | main.rs:3027:26:3027:26 | T | -| main.rs:3027:29:3027:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3027:53:3027:53 | x | | main.rs:3027:26:3027:26 | T | -| main.rs:3027:59:3027:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3030:13:3030:13 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3030:13:3030:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3030:13:3030:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3030:17:3032:9 | ...::B {...} | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3030:17:3032:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3030:17:3032:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3031:20:3031:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3033:9:3033:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3033:23:3033:23 | x | | main.rs:3014:9:3017:9 | MyEither | -| main.rs:3033:23:3033:23 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3033:23:3033:23 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3033:26:3033:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3035:13:3035:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3035:13:3035:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3035:13:3035:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3035:17:3035:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3035:17:3035:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3035:17:3035:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3035:28:3035:28 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3036:13:3036:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3036:13:3036:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3036:13:3036:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3036:38:3036:38 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3036:38:3036:38 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3036:38:3036:38 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3037:13:3037:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3037:13:3037:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3037:13:3037:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3037:17:3037:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3037:17:3037:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3037:17:3037:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3037:43:3037:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3038:13:3038:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3038:13:3038:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3038:13:3038:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3038:43:3038:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3040:29:3040:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3040:29:3040:31 | res | E | main.rs:3040:26:3040:26 | E | -| main.rs:3040:29:3040:31 | res | T | main.rs:3040:23:3040:23 | T | -| main.rs:3040:48:3040:48 | x | | main.rs:3040:26:3040:26 | E | -| main.rs:3040:54:3040:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3042:13:3042:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3042:13:3042:13 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3042:13:3042:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3042:17:3042:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3042:17:3042:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | -| main.rs:3042:17:3042:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3042:28:3042:28 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3043:9:3043:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3043:20:3043:20 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3043:20:3043:20 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3043:20:3043:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3043:23:3043:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3045:17:3045:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3045:17:3045:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3045:17:3045:17 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3045:21:3045:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3045:21:3045:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3045:21:3045:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3046:9:3046:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3046:9:3046:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3046:9:3046:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3046:9:3046:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3046:16:3046:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3048:13:3048:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3048:17:3048:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:3049:9:3049:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3049:9:3049:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3049:9:3049:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3049:9:3049:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3049:16:3049:16 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3056:14:3056:17 | SelfParam | | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3059:14:3059:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3059:14:3059:18 | SelfParam | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3059:21:3059:25 | other | | {EXTERNAL LOCATION} | & | -| main.rs:3059:21:3059:25 | other | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3059:44:3061:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3059:44:3061:9 | { ... } | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3060:13:3060:16 | self | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3060:13:3060:20 | self.f() | | {EXTERNAL LOCATION} | & | -| main.rs:3060:13:3060:20 | self.f() | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | -| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | -| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | i32 | -| main.rs:3073:14:3073:17 | SelfParam | | {EXTERNAL LOCATION} | usize | -| main.rs:3073:28:3075:9 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3074:13:3074:16 | self | | {EXTERNAL LOCATION} | usize | -| main.rs:3080:14:3080:17 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:3080:14:3080:17 | SelfParam | TRef | main.rs:3078:10:3078:10 | T | -| main.rs:3080:28:3082:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:3080:28:3082:9 | { ... } | TRef | main.rs:3078:10:3078:10 | T | -| main.rs:3081:13:3081:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:3081:13:3081:16 | self | TRef | main.rs:3078:10:3078:10 | T | -| main.rs:3085:25:3089:5 | { ... } | | {EXTERNAL LOCATION} | usize | -| main.rs:3086:17:3086:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3086:17:3086:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3086:21:3086:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3086:21:3086:21 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:3087:9:3087:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3087:9:3087:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3087:9:3087:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:3087:13:3087:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3087:13:3087:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3087:13:3087:17 | x.f() | | {EXTERNAL LOCATION} | i32 | -| main.rs:3087:13:3087:17 | x.f() | | {EXTERNAL LOCATION} | usize | -| main.rs:3088:9:3088:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3088:9:3088:9 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3091:12:3099:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3092:13:3092:13 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3092:24:3092:24 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3092:24:3092:24 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:3093:13:3093:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3093:13:3093:13 | y | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3093:17:3093:18 | &1 | | {EXTERNAL LOCATION} | & | -| main.rs:3093:17:3093:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3093:18:3093:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3094:13:3094:13 | z | | {EXTERNAL LOCATION} | & | -| main.rs:3094:13:3094:13 | z | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3094:17:3094:17 | x | | {EXTERNAL LOCATION} | usize | -| main.rs:3094:17:3094:22 | x.g(...) | | {EXTERNAL LOCATION} | & | -| main.rs:3094:17:3094:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | -| main.rs:3094:21:3094:21 | y | | {EXTERNAL LOCATION} | & | -| main.rs:3094:21:3094:21 | y | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:3096:13:3096:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3096:17:3096:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3097:13:3097:13 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3097:24:3097:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3097:24:3097:24 | 1 | | {EXTERNAL LOCATION} | usize | -| main.rs:3098:13:3098:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:3098:17:3098:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:3098:17:3098:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:3098:23:3098:23 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:3107:11:3142:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3108:5:3108:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3109:5:3109:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3110:5:3110:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3110:20:3110:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3110:41:3110:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3111:5:3111:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3112:5:3112:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3113:5:3113:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3114:5:3114:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3115:5:3115:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3116:5:3116:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3117:5:3117:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3118:5:3118:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3119:5:3119:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3120:5:3120:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3121:5:3121:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3122:5:3122:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3124:5:3124:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3125:5:3125:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3126:5:3126:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3127:5:3127:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3127:5:3127:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3128:5:3128:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3129:5:3129:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3130:5:3130:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3131:5:3131:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3132:5:3132:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3133:5:3133:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3134:5:3134:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3135:5:3135:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3136:5:3136:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3137:5:3137:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3138:5:3138:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3139:5:3139:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3140:5:3140:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3140:5:3140:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3140:5:3140:20 | ...::f(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | -| main.rs:3140:5:3140:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3140:16:3140:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3141:5:3141:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:61 | ...::flatten(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:26:1227:61 | ...::flatten(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1227:59:1227:60 | x6 | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:59:1227:60 | x6 | T | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1227:59:1227:60 | x6 | T.T | main.rs:1204:5:1205:13 | S | +| main.rs:1230:13:1230:19 | from_if | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1230:13:1230:19 | from_if | T | main.rs:1204:5:1205:13 | S | +| main.rs:1230:23:1234:9 | if ... {...} else {...} | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1230:23:1234:9 | if ... {...} else {...} | T | main.rs:1204:5:1205:13 | S | +| main.rs:1230:26:1230:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1230:26:1230:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1230:30:1230:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1230:32:1232:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1230:32:1232:9 | { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1231:13:1231:30 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1231:13:1231:30 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1232:16:1234:9 | { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1232:16:1234:9 | { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1233:13:1233:31 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1233:13:1233:31 | ...::MySome(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1233:30:1233:30 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1235:9:1235:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1235:18:1235:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1235:18:1235:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1235:26:1235:32 | from_if | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1235:26:1235:32 | from_if | T | main.rs:1204:5:1205:13 | S | +| main.rs:1238:13:1238:22 | from_match | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1238:13:1238:22 | from_match | T | main.rs:1204:5:1205:13 | S | +| main.rs:1238:26:1241:9 | match ... { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1238:26:1241:9 | match ... { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1238:32:1238:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1238:32:1238:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1238:36:1238:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1239:13:1239:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1239:21:1239:38 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1239:21:1239:38 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1240:13:1240:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1240:22:1240:40 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1240:22:1240:40 | ...::MySome(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1240:39:1240:39 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1242:9:1242:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1242:18:1242:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1242:18:1242:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1242:26:1242:35 | from_match | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1242:26:1242:35 | from_match | T | main.rs:1204:5:1205:13 | S | +| main.rs:1245:13:1245:21 | from_loop | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1245:13:1245:21 | from_loop | T | main.rs:1204:5:1205:13 | S | +| main.rs:1245:25:1250:9 | loop { ... } | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1245:25:1250:9 | loop { ... } | T | main.rs:1204:5:1205:13 | S | +| main.rs:1245:30:1250:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1246:13:1248:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1246:16:1246:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1246:16:1246:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1246:20:1246:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1246:22:1248:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1247:23:1247:40 | ...::MyNone(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1247:23:1247:40 | ...::MyNone(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1249:19:1249:37 | ...::MySome(...) | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1249:19:1249:37 | ...::MySome(...) | T | main.rs:1204:5:1205:13 | S | +| main.rs:1249:36:1249:36 | S | | main.rs:1204:5:1205:13 | S | +| main.rs:1251:9:1251:35 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1251:18:1251:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1251:18:1251:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1251:26:1251:34 | from_loop | | main.rs:1169:5:1173:5 | MyOption | +| main.rs:1251:26:1251:34 | from_loop | T | main.rs:1204:5:1205:13 | S | +| main.rs:1269:15:1269:18 | SelfParam | | main.rs:1257:5:1258:19 | S | +| main.rs:1269:15:1269:18 | SelfParam | T | main.rs:1268:10:1268:10 | T | +| main.rs:1269:26:1271:9 | { ... } | | main.rs:1268:10:1268:10 | T | +| main.rs:1270:13:1270:16 | self | | main.rs:1257:5:1258:19 | S | +| main.rs:1270:13:1270:16 | self | T | main.rs:1268:10:1268:10 | T | +| main.rs:1270:13:1270:18 | self.0 | | main.rs:1268:10:1268:10 | T | +| main.rs:1273:15:1273:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1273:15:1273:19 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1273:15:1273:19 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1273:28:1275:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1273:28:1275:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1274:13:1274:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1274:13:1274:19 | &... | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1274:14:1274:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1274:14:1274:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1274:14:1274:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1274:14:1274:19 | self.0 | | main.rs:1268:10:1268:10 | T | +| main.rs:1277:15:1277:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1277:15:1277:25 | SelfParam | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1277:15:1277:25 | SelfParam | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1277:34:1279:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1277:34:1279:9 | { ... } | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1278:13:1278:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1278:13:1278:19 | &... | TRef | main.rs:1268:10:1268:10 | T | +| main.rs:1278:14:1278:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1278:14:1278:17 | self | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1278:14:1278:17 | self | TRef.T | main.rs:1268:10:1268:10 | T | +| main.rs:1278:14:1278:19 | self.0 | | main.rs:1268:10:1268:10 | T | +| main.rs:1283:29:1283:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1283:29:1283:33 | SelfParam | TRef | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1284:33:1284:36 | SelfParam | | main.rs:1282:5:1285:5 | Self [trait ATrait] | +| main.rs:1290:29:1290:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1290:29:1290:33 | SelfParam | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1290:43:1292:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1291:13:1291:22 | (...) | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:13:1291:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1291:14:1291:21 | * ... | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:15:1291:21 | (...) | | {EXTERNAL LOCATION} | & | +| main.rs:1291:15:1291:21 | (...) | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:16:1291:20 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1291:16:1291:20 | * ... | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1291:17:1291:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1291:17:1291:20 | self | TRef.TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:33:1295:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1295:33:1295:36 | SelfParam | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1295:46:1297:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1296:13:1296:19 | (...) | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1296:13:1296:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1296:14:1296:18 | * ... | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1296:15:1296:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1296:15:1296:18 | self | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1300:16:1350:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1301:13:1301:14 | x1 | | main.rs:1257:5:1258:19 | S | +| main.rs:1301:13:1301:14 | x1 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1301:18:1301:22 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1301:18:1301:22 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1301:20:1301:21 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1302:9:1302:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1302:18:1302:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1302:18:1302:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1302:26:1302:27 | x1 | | main.rs:1257:5:1258:19 | S | +| main.rs:1302:26:1302:27 | x1 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1302:26:1302:32 | x1.m1() | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1304:13:1304:14 | x2 | | main.rs:1257:5:1258:19 | S | +| main.rs:1304:13:1304:14 | x2 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1304:18:1304:22 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1304:18:1304:22 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1304:20:1304:21 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1306:9:1306:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1306:18:1306:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1306:18:1306:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1306:26:1306:27 | x2 | | main.rs:1257:5:1258:19 | S | +| main.rs:1306:26:1306:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1306:26:1306:32 | x2.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1306:26:1306:32 | x2.m2() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1307:9:1307:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1307:18:1307:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1307:18:1307:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1307:26:1307:27 | x2 | | main.rs:1257:5:1258:19 | S | +| main.rs:1307:26:1307:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1307:26:1307:32 | x2.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1307:26:1307:32 | x2.m3() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1309:13:1309:14 | x3 | | main.rs:1257:5:1258:19 | S | +| main.rs:1309:13:1309:14 | x3 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1309:18:1309:22 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1309:18:1309:22 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1309:20:1309:21 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:9:1311:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1311:18:1311:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:18:1311:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:26:1311:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1311:26:1311:41 | ...::m2(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:38:1311:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1311:38:1311:40 | &x3 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1311:38:1311:40 | &x3 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1311:39:1311:40 | x3 | | main.rs:1257:5:1258:19 | S | +| main.rs:1311:39:1311:40 | x3 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:9:1312:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1312:18:1312:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:18:1312:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:26:1312:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1312:26:1312:41 | ...::m3(...) | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:38:1312:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1312:38:1312:40 | &x3 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1312:38:1312:40 | &x3 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1312:39:1312:40 | x3 | | main.rs:1257:5:1258:19 | S | +| main.rs:1312:39:1312:40 | x3 | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:13:1314:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1314:13:1314:14 | x4 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1314:13:1314:14 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:18:1314:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1314:18:1314:23 | &... | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1314:18:1314:23 | &... | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:19:1314:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1314:19:1314:23 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1314:21:1314:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1316:9:1316:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1316:18:1316:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1316:18:1316:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1316:26:1316:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1316:26:1316:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1316:26:1316:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1316:26:1316:32 | x4.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1316:26:1316:32 | x4.m2() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1317:9:1317:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1317:18:1317:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1317:18:1317:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1317:26:1317:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1317:26:1317:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1317:26:1317:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1317:26:1317:32 | x4.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1317:26:1317:32 | x4.m3() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:13:1319:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1319:13:1319:14 | x5 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1319:13:1319:14 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:18:1319:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1319:18:1319:23 | &... | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1319:18:1319:23 | &... | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:19:1319:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1319:19:1319:23 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1319:21:1319:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1321:9:1321:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1321:18:1321:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1321:18:1321:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1321:26:1321:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1321:26:1321:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1321:26:1321:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1321:26:1321:32 | x5.m1() | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1322:9:1322:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1322:18:1322:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1322:18:1322:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1322:26:1322:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1322:26:1322:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1322:26:1322:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1322:26:1322:29 | x5.0 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:13:1324:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1324:13:1324:14 | x6 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1324:13:1324:14 | x6 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:18:1324:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1324:18:1324:23 | &... | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1324:18:1324:23 | &... | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:19:1324:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1324:19:1324:23 | S(...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1324:21:1324:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:9:1327:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1327:18:1327:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1327:18:1327:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1327:26:1327:30 | (...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1327:26:1327:30 | (...) | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:26:1327:35 | ... .m1() | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:27:1327:29 | * ... | | main.rs:1257:5:1258:19 | S | +| main.rs:1327:27:1327:29 | * ... | T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1327:28:1327:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1327:28:1327:29 | x6 | TRef | main.rs:1257:5:1258:19 | S | +| main.rs:1327:28:1327:29 | x6 | TRef.T | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:13:1329:14 | x7 | | main.rs:1257:5:1258:19 | S | +| main.rs:1329:13:1329:14 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1329:13:1329:14 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:18:1329:23 | S(...) | | main.rs:1257:5:1258:19 | S | +| main.rs:1329:18:1329:23 | S(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1329:18:1329:23 | S(...) | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:20:1329:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1329:20:1329:22 | &S2 | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1329:21:1329:22 | S2 | | main.rs:1260:5:1261:14 | S2 | +| main.rs:1332:13:1332:13 | t | | {EXTERNAL LOCATION} | & | +| main.rs:1332:13:1332:13 | t | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1332:17:1332:18 | x7 | | main.rs:1257:5:1258:19 | S | +| main.rs:1332:17:1332:18 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1332:17:1332:18 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1332:17:1332:23 | x7.m1() | | {EXTERNAL LOCATION} | & | +| main.rs:1332:17:1332:23 | x7.m1() | TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1333:9:1333:28 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1333:18:1333:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1333:18:1333:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1333:26:1333:27 | x7 | | main.rs:1257:5:1258:19 | S | +| main.rs:1333:26:1333:27 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1333:26:1333:27 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | +| main.rs:1335:13:1335:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1335:26:1335:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1335:26:1335:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1335:26:1335:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1339:13:1339:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1339:13:1339:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1339:17:1339:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1339:17:1339:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1339:17:1339:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1341:13:1341:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1341:13:1341:20 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1341:24:1341:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1341:24:1341:39 | &... | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1341:25:1341:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1341:36:1341:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1343:13:1343:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1343:17:1343:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1343:17:1343:24 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1343:17:1343:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1344:9:1344:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1344:18:1344:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1344:18:1344:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1344:26:1344:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1347:13:1347:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1347:13:1347:20 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1347:24:1347:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1347:24:1347:39 | &... | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1347:25:1347:39 | MyInt {...} | | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1347:36:1347:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1348:13:1348:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1348:17:1348:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1348:17:1348:24 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | +| main.rs:1348:17:1348:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1349:9:1349:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1349:18:1349:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1349:18:1349:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1349:26:1349:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1356:16:1356:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1356:16:1356:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:16:1359:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1359:16:1359:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1359:32:1361:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1359:32:1361:9 | { ... } | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1360:13:1360:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1360:13:1360:16 | self | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1360:13:1360:22 | self.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1360:13:1360:22 | self.foo() | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | +| main.rs:1368:16:1368:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1368:16:1368:20 | SelfParam | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1368:36:1370:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1368:36:1370:9 | { ... } | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1369:13:1369:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1369:13:1369:16 | self | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1373:16:1376:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1374:13:1374:13 | x | | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1374:17:1374:24 | MyStruct | | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1375:9:1375:9 | x | | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1375:9:1375:15 | x.bar() | | {EXTERNAL LOCATION} | & | +| main.rs:1375:9:1375:15 | x.bar() | TRef | main.rs:1364:5:1364:20 | MyStruct | +| main.rs:1385:16:1385:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1385:16:1385:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:16:1385:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1385:32:1387:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1385:32:1387:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1385:32:1387:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1386:13:1386:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1386:13:1386:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1386:13:1386:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:16:1389:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1389:16:1389:20 | SelfParam | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:16:1389:20 | SelfParam | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:23:1389:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1389:23:1389:23 | x | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:23:1389:23 | x | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1389:42:1391:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1389:42:1391:9 | { ... } | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1389:42:1391:9 | { ... } | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1390:13:1390:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1390:13:1390:16 | self | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1390:13:1390:16 | self | TRef.T | main.rs:1384:10:1384:10 | T | +| main.rs:1394:16:1400:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1395:13:1395:13 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1395:13:1395:13 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1395:17:1395:27 | MyStruct(...) | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1395:17:1395:27 | MyStruct(...) | T | main.rs:1380:5:1380:13 | S | +| main.rs:1395:26:1395:26 | S | | main.rs:1380:5:1380:13 | S | +| main.rs:1396:9:1396:9 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1396:9:1396:9 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1396:9:1396:15 | x.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1396:9:1396:15 | x.foo() | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1396:9:1396:15 | x.foo() | TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1397:13:1397:13 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1397:13:1397:13 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1397:17:1397:27 | MyStruct(...) | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1397:17:1397:27 | MyStruct(...) | T | main.rs:1380:5:1380:13 | S | +| main.rs:1397:26:1397:26 | S | | main.rs:1380:5:1380:13 | S | +| main.rs:1399:9:1399:9 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:9:1399:9 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:9:1399:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1399:9:1399:18 | x.bar(...) | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:9:1399:18 | x.bar(...) | TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:15:1399:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1399:15:1399:17 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1399:15:1399:17 | &... | TRef.TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:15:1399:17 | &... | TRef.TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:16:1399:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1399:16:1399:17 | &x | TRef | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:16:1399:17 | &x | TRef.T | main.rs:1380:5:1380:13 | S | +| main.rs:1399:17:1399:17 | x | | main.rs:1382:5:1382:26 | MyStruct | +| main.rs:1399:17:1399:17 | x | T | main.rs:1380:5:1380:13 | S | +| main.rs:1410:17:1410:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1410:17:1410:25 | SelfParam | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1410:28:1412:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1411:13:1411:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:13:1411:16 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1411:13:1411:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1411:13:1411:34 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1411:25:1411:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1411:26:1411:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1411:26:1411:29 | self | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1411:26:1411:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1418:15:1418:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1418:15:1418:19 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1418:31:1420:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1418:31:1420:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:13:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:13:1419:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:13:1419:19 | &... | TRef.TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:14:1419:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:14:1419:19 | &... | TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:15:1419:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:15:1419:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1419:15:1419:19 | &self | TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1419:16:1419:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1419:16:1419:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:15:1422:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1422:15:1422:25 | SelfParam | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1422:37:1424:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1422:37:1424:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:13:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:13:1423:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:13:1423:19 | &... | TRef.TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:14:1423:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:14:1423:19 | &... | TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:15:1423:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:15:1423:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1423:15:1423:19 | &self | TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1423:16:1423:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1423:16:1423:19 | self | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:15:1426:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1426:15:1426:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1426:34:1428:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1426:34:1428:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1427:13:1427:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1427:13:1427:13 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:15:1430:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1430:15:1430:15 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1430:34:1432:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1430:34:1432:9 | { ... } | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:13:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:13:1431:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:13:1431:16 | &... | TRef.TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:14:1431:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:14:1431:16 | &... | TRef.TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:15:1431:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:15:1431:16 | &x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1431:15:1431:16 | &x | TRef.TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1431:16:1431:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1431:16:1431:16 | x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1435:16:1448:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:13:1436:13 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1436:17:1436:20 | S {...} | | main.rs:1415:5:1415:13 | S | +| main.rs:1437:9:1437:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1437:9:1437:14 | x.f1() | | {EXTERNAL LOCATION} | & | +| main.rs:1437:9:1437:14 | x.f1() | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1438:9:1438:9 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1438:9:1438:14 | x.f2() | | {EXTERNAL LOCATION} | & | +| main.rs:1438:9:1438:14 | x.f2() | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:9:1439:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1439:9:1439:17 | ...::f3(...) | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:15:1439:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1439:15:1439:16 | &x | TRef | main.rs:1415:5:1415:13 | S | +| main.rs:1439:16:1439:16 | x | | main.rs:1415:5:1415:13 | S | +| main.rs:1441:13:1441:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1441:17:1441:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1441:18:1441:24 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1441:18:1441:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1441:19:1441:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1441:19:1441:24 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1441:19:1441:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1441:20:1441:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1441:20:1441:24 | &true | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1441:21:1441:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1445:17:1445:20 | flag | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1445:24:1445:41 | ...::default(...) | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1446:9:1446:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1446:22:1446:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | +| main.rs:1446:22:1446:30 | &mut flag | TRefMut | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1446:27:1446:30 | flag | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1447:9:1447:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1447:18:1447:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1447:26:1447:29 | flag | | main.rs:1404:5:1407:5 | MyFlag | +| main.rs:1462:43:1465:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1462:43:1465:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1462:43:1465:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:13:1463:13 | x | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:17:1463:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1463:17:1463:30 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:17:1463:31 | TryExpr | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1463:28:1463:29 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1464:9:1464:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1464:9:1464:22 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1464:9:1464:22 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1464:20:1464:21 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1469:46:1473:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1469:46:1473:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1469:46:1473:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1470:13:1470:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1470:13:1470:13 | x | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1470:17:1470:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1470:17:1470:30 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1470:28:1470:29 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1471:13:1471:13 | y | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1471:17:1471:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1471:17:1471:17 | x | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1471:17:1471:18 | TryExpr | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1472:9:1472:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1472:9:1472:22 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1472:9:1472:22 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1472:20:1472:21 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1477:40:1482:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1477:40:1482:5 | { ... } | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1477:40:1482:5 | { ... } | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:13:1478:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1478:13:1478:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1478:13:1478:13 | x | T.T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:17:1478:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1478:17:1478:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1478:17:1478:42 | ...::Ok(...) | T.T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:28:1478:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1478:28:1478:41 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1478:39:1478:40 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1480:17:1480:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1480:17:1480:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1480:17:1480:17 | x | T.T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1480:17:1480:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1480:17:1480:18 | TryExpr | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1480:17:1480:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1480:24:1480:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1480:24:1480:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1481:9:1481:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1481:9:1481:22 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1481:9:1481:22 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1481:20:1481:21 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:30:1486:34 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:30:1486:34 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1486:69:1493:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1486:69:1493:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1486:69:1493:5 | { ... } | T | main.rs:1486:20:1486:27 | T | +| main.rs:1487:13:1487:17 | value | | main.rs:1486:20:1486:27 | T | +| main.rs:1487:21:1487:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1487:21:1487:25 | input | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1487:21:1487:25 | input | T | main.rs:1486:20:1486:27 | T | +| main.rs:1487:21:1487:26 | TryExpr | | main.rs:1486:20:1486:27 | T | +| main.rs:1488:22:1488:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1488:22:1488:38 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1488:22:1488:38 | ...::Ok(...) | T | main.rs:1486:20:1486:27 | T | +| main.rs:1488:22:1491:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1488:22:1491:10 | ... .and_then(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1488:33:1488:37 | value | | main.rs:1486:20:1486:27 | T | +| main.rs:1488:49:1491:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1488:49:1491:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1488:49:1491:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1488:49:1491:9 | \|...\| ... | dyn(Output).E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1488:53:1491:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1488:53:1491:9 | { ... } | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1489:13:1489:31 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1489:22:1489:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1489:22:1489:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1492:9:1492:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1492:9:1492:23 | ...::Err(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1492:9:1492:23 | ...::Err(...) | T | main.rs:1486:20:1486:27 | T | +| main.rs:1492:21:1492:22 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1496:16:1512:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1497:9:1499:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1497:16:1497:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1497:16:1497:33 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:16:1497:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:27:1497:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:37:1497:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1497:37:1497:52 | try_same_error(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:37:1497:52 | try_same_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1497:54:1499:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:13:1498:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1498:22:1498:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1498:22:1498:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:30:1498:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:9:1503:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1501:16:1501:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1501:16:1501:33 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1501:16:1501:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:27:1501:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:37:1501:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1501:37:1501:55 | try_convert_error(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1501:37:1501:55 | try_convert_error(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1501:57:1503:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:13:1502:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1502:22:1502:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1502:22:1502:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:30:1502:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:9:1507:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1505:16:1505:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1505:16:1505:33 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1505:16:1505:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:27:1505:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:37:1505:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1505:37:1505:49 | try_chained(...) | E | main.rs:1457:5:1458:14 | S2 | +| main.rs:1505:37:1505:49 | try_chained(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1505:51:1507:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:13:1506:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1506:22:1506:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1506:22:1506:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:30:1506:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:9:1511:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1509:16:1509:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:16:1509:33 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:16:1509:33 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:27:1509:32 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:37:1509:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:37:1509:63 | try_complex(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:37:1509:63 | try_complex(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:49:1509:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1509:49:1509:62 | ...::Ok(...) | E | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:49:1509:62 | ...::Ok(...) | T | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:60:1509:61 | S1 | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1509:65:1511:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:13:1510:36 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1510:22:1510:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1510:22:1510:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:30:1510:35 | result | | main.rs:1454:5:1455:14 | S1 | +| main.rs:1516:16:1607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1517:13:1517:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1517:22:1517:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1518:13:1518:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1518:17:1518:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:13:1519:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:17:1519:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:17:1519:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1519:21:1519:21 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:13:1520:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:17:1520:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1520:17:1520:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1521:13:1521:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1521:17:1521:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1522:13:1522:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1522:13:1522:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1522:21:1522:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1522:21:1522:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1523:13:1523:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1523:17:1523:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1524:13:1524:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1524:17:1524:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:13:1525:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1525:17:1525:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1528:26:1528:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1528:26:1528:30 | SelfParam | TRef | main.rs:1527:9:1531:9 | Self [trait MyTrait] | +| main.rs:1534:26:1534:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1534:26:1534:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1534:26:1534:30 | SelfParam | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1534:39:1536:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1534:39:1536:13 | { ... } | TRef | main.rs:1533:14:1533:23 | T | +| main.rs:1535:17:1535:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1535:17:1535:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1535:17:1535:20 | self | TRef.TArray | main.rs:1533:14:1533:23 | T | +| main.rs:1535:17:1535:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1535:17:1535:36 | ... .unwrap() | TRef | main.rs:1533:14:1533:23 | T | +| main.rs:1535:26:1535:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1538:31:1540:13 | { ... } | | main.rs:1533:14:1533:23 | T | +| main.rs:1539:17:1539:28 | ...::default(...) | | main.rs:1533:14:1533:23 | T | +| main.rs:1543:13:1543:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1543:13:1543:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:17:1543:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1543:17:1543:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:17:1543:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1543:17:1543:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:18:1543:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:21:1543:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1543:24:1543:24 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:13:1544:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1544:13:1544:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:17:1544:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1544:17:1544:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:22:1544:22 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:37:1544:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1544:37:1544:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1544:37:1544:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:38:1544:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1544:38:1544:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:39:1544:39 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:42:1544:42 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1544:45:1544:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:13:1545:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:17:1545:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1545:24:1545:24 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1548:26:1548:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1548:26:1548:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1548:26:1548:30 | SelfParam | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1548:39:1550:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1548:39:1550:13 | { ... } | TRef | main.rs:1547:14:1547:23 | T | +| main.rs:1549:17:1549:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1549:17:1549:20 | self | TRef.TSlice | main.rs:1547:14:1547:23 | T | +| main.rs:1549:17:1549:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1549:17:1549:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1549:17:1549:36 | ... .unwrap() | TRef | main.rs:1547:14:1547:23 | T | +| main.rs:1549:26:1549:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1552:31:1554:13 | { ... } | | main.rs:1547:14:1547:23 | T | +| main.rs:1553:17:1553:28 | ...::default(...) | | main.rs:1547:14:1547:23 | T | +| main.rs:1557:13:1557:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1557:13:1557:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1557:13:1557:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:25:1557:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1557:25:1557:34 | &... | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1557:25:1557:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1557:25:1557:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:25:1557:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:26:1557:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1557:26:1557:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:27:1557:27 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:30:1557:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1557:33:1557:33 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1558:13:1558:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1558:13:1558:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1558:17:1558:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1558:17:1558:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1558:17:1558:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1558:17:1558:29 | s.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1558:17:1558:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:13:1559:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1559:13:1559:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:17:1559:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1559:34:1559:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1559:34:1559:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1559:34:1559:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:13:1560:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1560:17:1560:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:26:1563:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1563:26:1563:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1563:26:1563:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1563:39:1565:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1563:39:1565:13 | { ... } | TRef | main.rs:1562:14:1562:23 | T | +| main.rs:1564:17:1564:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1564:17:1564:23 | &... | TRef | main.rs:1562:14:1562:23 | T | +| main.rs:1564:18:1564:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1564:18:1564:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1564:18:1564:21 | self | TRef.T0 | main.rs:1562:14:1562:23 | T | +| main.rs:1564:18:1564:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1564:18:1564:23 | self.0 | | main.rs:1562:14:1562:23 | T | +| main.rs:1567:31:1569:13 | { ... } | | main.rs:1562:14:1562:23 | T | +| main.rs:1568:17:1568:28 | ...::default(...) | | main.rs:1562:14:1562:23 | T | +| main.rs:1572:13:1572:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1572:13:1572:13 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:13:1572:13 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:17:1572:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1572:17:1572:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:17:1572:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:18:1572:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1572:22:1572:22 | 7 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:13:1573:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1573:13:1573:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:17:1573:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1573:17:1573:17 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:17:1573:17 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1573:17:1573:29 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1573:17:1573:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:13:1574:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1574:13:1574:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:17:1574:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1574:17:1574:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:37:1574:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1574:37:1574:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1574:37:1574:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:37:1574:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:38:1574:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1574:38:1574:38 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1574:38:1574:38 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:13:1575:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:17:1575:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1578:26:1578:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1578:26:1578:30 | SelfParam | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1578:39:1580:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1578:39:1580:13 | { ... } | TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1579:17:1579:21 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1579:17:1579:21 | * ... | TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1579:18:1579:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1579:18:1579:21 | self | TRef.TRef | main.rs:1577:14:1577:23 | T | +| main.rs:1582:31:1584:13 | { ... } | | main.rs:1577:14:1577:23 | T | +| main.rs:1583:17:1583:28 | ...::default(...) | | main.rs:1577:14:1577:23 | T | +| main.rs:1587:13:1587:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:13 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1587:17:1587:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1587:17:1587:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1587:18:1587:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1588:13:1588:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1588:13:1588:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1588:17:1588:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1588:17:1588:17 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1588:17:1588:29 | r.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1588:17:1588:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:13:1589:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1589:13:1589:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:17:1589:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1589:17:1589:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:33:1589:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:33:1589:34 | &r | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1589:33:1589:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1589:34:1589:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1589:34:1589:34 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1590:13:1590:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1590:17:1590:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1593:26:1593:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1593:26:1593:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1593:26:1593:30 | SelfParam | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1593:39:1595:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1593:39:1595:13 | { ... } | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:17:1594:34 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1594:17:1594:34 | { ... } | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:26:1594:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1594:26:1594:32 | &... | TRef | main.rs:1592:14:1592:23 | T | +| main.rs:1594:27:1594:32 | * ... | | main.rs:1592:14:1592:23 | T | +| main.rs:1594:28:1594:32 | * ... | | {EXTERNAL LOCATION} | *mut | +| main.rs:1594:28:1594:32 | * ... | TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1594:29:1594:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1594:29:1594:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1594:29:1594:32 | self | TRef.TPtrMut | main.rs:1592:14:1592:23 | T | +| main.rs:1597:31:1599:13 | { ... } | | main.rs:1592:14:1592:23 | T | +| main.rs:1598:17:1598:28 | ...::default(...) | | main.rs:1592:14:1592:23 | T | +| main.rs:1602:17:1602:17 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1602:21:1602:22 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:13:1603:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1603:13:1603:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:27:1603:32 | &mut v | | {EXTERNAL LOCATION} | &mut | +| main.rs:1603:27:1603:32 | &mut v | TRefMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1603:32:1603:32 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:13:1604:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1604:13:1604:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:17:1604:40 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1604:17:1604:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:26:1604:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1604:26:1604:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1604:26:1604:38 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1604:26:1604:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:13:1605:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1605:13:1605:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:17:1605:50 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1605:17:1605:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:26:1605:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1605:26:1605:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:46:1605:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1605:46:1605:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1605:46:1605:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1605:47:1605:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1605:47:1605:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:13:1606:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1606:17:1606:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1612:16:1624:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1613:13:1613:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:17:1613:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1613:25:1613:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:13:1614:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:17:1614:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1614:25:1614:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1616:17:1616:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1617:13:1617:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1617:20:1617:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1617:20:1617:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1617:26:1617:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1618:9:1622:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1618:12:1618:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1618:17:1620:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1619:17:1619:17 | z | | {EXTERNAL LOCATION} | () | +| main.rs:1619:21:1619:27 | (...) | | {EXTERNAL LOCATION} | () | +| main.rs:1619:22:1619:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1619:22:1619:26 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1619:26:1619:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1620:16:1622:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1621:13:1621:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1621:13:1621:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1621:17:1621:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1623:9:1623:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1637:30:1639:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1638:13:1638:31 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1638:23:1638:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1638:29:1638:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1645:16:1645:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:22:1645:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1645:41:1650:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1646:13:1649:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:20:1647:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:20:1647:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1647:20:1647:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1647:29:1647:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1647:29:1647:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1648:20:1648:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:20:1648:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1648:20:1648:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1648:29:1648:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1648:29:1648:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1655:23:1655:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1655:23:1655:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:34:1655:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1655:45:1658:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1656:13:1656:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1656:13:1656:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1656:13:1656:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1656:13:1656:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1656:23:1656:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1656:23:1656:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1657:13:1657:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1657:13:1657:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:13:1657:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1657:13:1657:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1657:23:1657:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1657:23:1657:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1663:16:1663:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:22:1663:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1663:41:1668:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1664:13:1667:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:20:1665:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:20:1665:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1665:20:1665:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1665:29:1665:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1665:29:1665:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1666:20:1666:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:20:1666:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1666:20:1666:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1666:29:1666:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1666:29:1666:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1673:23:1673:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1673:23:1673:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:34:1673:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1673:45:1676:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:13:1674:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1674:13:1674:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1674:13:1674:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1674:13:1674:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1674:23:1674:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1674:23:1674:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1675:13:1675:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1675:13:1675:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:13:1675:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1675:13:1675:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1675:23:1675:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1675:23:1675:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1681:16:1681:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:22:1681:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1681:41:1686:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1682:13:1685:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:20:1683:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:20:1683:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1683:20:1683:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1683:29:1683:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1683:29:1683:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1684:20:1684:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:20:1684:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1684:20:1684:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1684:29:1684:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1684:29:1684:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1690:23:1690:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1690:23:1690:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:34:1690:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1690:45:1693:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1691:13:1691:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1691:13:1691:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1691:13:1691:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1691:13:1691:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1691:23:1691:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1691:23:1691:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1692:13:1692:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1692:13:1692:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:13:1692:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1692:13:1692:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1692:23:1692:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1692:23:1692:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1698:16:1698:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:22:1698:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1698:41:1703:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1699:13:1702:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:20:1700:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:20:1700:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1700:20:1700:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1700:29:1700:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1700:29:1700:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1701:20:1701:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:20:1701:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1701:20:1701:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1701:29:1701:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1701:29:1701:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1707:23:1707:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1707:23:1707:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:34:1707:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1707:45:1710:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1708:13:1708:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1708:13:1708:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1708:13:1708:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1708:13:1708:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1708:23:1708:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1708:23:1708:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1709:13:1709:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1709:13:1709:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:13:1709:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1709:13:1709:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1709:23:1709:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1709:23:1709:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1715:16:1715:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:22:1715:24 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1715:41:1720:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1716:13:1719:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:20:1717:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:20:1717:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1717:20:1717:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1717:29:1717:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1717:29:1717:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1718:20:1718:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:20:1718:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1718:20:1718:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1718:29:1718:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1718:29:1718:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1724:23:1724:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1724:23:1724:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:34:1724:36 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1724:45:1727:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:13:1725:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1725:13:1725:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1725:13:1725:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1725:13:1725:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1725:23:1725:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1725:23:1725:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1726:13:1726:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1726:13:1726:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:13:1726:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1726:13:1726:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1726:23:1726:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1726:23:1726:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1732:19:1732:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:25:1732:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1732:44:1737:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1733:13:1736:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:20:1734:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:20:1734:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1734:20:1734:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1734:29:1734:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1734:29:1734:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1735:20:1735:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:20:1735:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1735:20:1735:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1735:29:1735:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1735:29:1735:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1741:26:1741:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1741:26:1741:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:37:1741:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1741:48:1744:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1742:13:1742:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1742:13:1742:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1742:13:1742:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1742:13:1742:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1742:23:1742:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1742:23:1742:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1743:13:1743:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1743:13:1743:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:13:1743:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1743:13:1743:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1743:23:1743:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1743:23:1743:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1749:18:1749:21 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:24:1749:26 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1749:43:1754:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1750:13:1753:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:20:1751:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:20:1751:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1751:20:1751:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1751:29:1751:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1751:29:1751:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1752:20:1752:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:20:1752:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1752:20:1752:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1752:29:1752:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1752:29:1752:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1758:25:1758:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1758:25:1758:33 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:36:1758:38 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1758:47:1761:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1759:13:1759:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1759:13:1759:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1759:13:1759:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1759:13:1759:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1759:23:1759:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1759:23:1759:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1760:13:1760:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1760:13:1760:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:13:1760:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1760:13:1760:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1760:23:1760:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1760:23:1760:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1766:19:1766:22 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:25:1766:27 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1766:44:1771:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1767:13:1770:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:20:1768:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:20:1768:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1768:20:1768:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1768:29:1768:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1768:29:1768:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1769:20:1769:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:20:1769:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1769:20:1769:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1769:29:1769:31 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1769:29:1769:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1775:26:1775:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1775:26:1775:34 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:37:1775:39 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1775:48:1778:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1776:13:1776:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1776:13:1776:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1776:13:1776:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1776:13:1776:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1776:23:1776:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1776:23:1776:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1777:13:1777:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1777:13:1777:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:13:1777:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1777:13:1777:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1777:23:1777:25 | rhs | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1777:23:1777:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1783:16:1783:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1783:22:1783:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1783:40:1788:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1784:13:1787:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:20:1785:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1785:20:1785:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1785:20:1785:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1785:30:1785:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1786:20:1786:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1786:20:1786:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1786:20:1786:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1786:30:1786:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:23:1792:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1792:23:1792:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1792:34:1792:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1792:44:1795:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1793:13:1793:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1793:13:1793:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1793:13:1793:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1793:13:1793:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1793:24:1793:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1794:13:1794:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1794:13:1794:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1794:13:1794:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1794:13:1794:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1794:24:1794:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:16:1800:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1800:22:1800:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1800:40:1805:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1801:13:1804:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:20:1802:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1802:20:1802:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1802:20:1802:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1802:30:1802:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1803:20:1803:23 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1803:20:1803:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1803:20:1803:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1803:30:1803:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:23:1809:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1809:23:1809:31 | SelfParam | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1809:34:1809:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1809:44:1812:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1810:13:1810:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1810:13:1810:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1810:13:1810:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1810:13:1810:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1810:24:1810:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1811:13:1811:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1811:13:1811:16 | self | TRefMut | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1811:13:1811:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1811:13:1811:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1811:24:1811:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1817:16:1817:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1817:30:1822:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1818:13:1821:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1819:20:1819:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1819:21:1819:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1819:21:1819:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1820:20:1820:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1820:21:1820:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1820:21:1820:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1827:16:1827:19 | SelfParam | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1827:30:1832:9 | { ... } | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1828:13:1831:13 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1829:20:1829:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1829:21:1829:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1829:21:1829:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1830:20:1830:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1830:21:1830:24 | self | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1830:21:1830:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1836:15:1836:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1836:15:1836:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:22:1836:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1836:22:1836:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1836:44:1838:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:13:1837:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:13:1837:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:13:1837:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:13:1837:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:23:1837:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:23:1837:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:23:1837:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:34:1837:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1837:34:1837:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:34:1837:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1837:34:1837:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1837:44:1837:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1837:44:1837:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1837:44:1837:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1840:15:1840:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1840:15:1840:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:22:1840:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1840:22:1840:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1840:44:1842:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:13:1841:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:13:1841:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:13:1841:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:23:1841:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:23:1841:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:23:1841:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:34:1841:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1841:34:1841:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:34:1841:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1841:34:1841:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:44:1841:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1841:44:1841:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1841:44:1841:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1846:24:1846:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1846:24:1846:28 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:31:1846:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1846:31:1846:35 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1846:75:1848:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1846:75:1848:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1847:13:1847:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:13:1847:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1847:13:1847:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1847:14:1847:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:14:1847:17 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:14:1847:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:14:1847:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:23:1847:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1847:23:1847:26 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:23:1847:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:43:1847:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1847:43:1847:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:44:1847:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:45:1847:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:45:1847:49 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:45:1847:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:45:1847:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1847:55:1847:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1847:55:1847:59 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1847:55:1847:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1850:15:1850:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1850:15:1850:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:22:1850:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1850:22:1850:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1850:44:1852:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:13:1851:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:13:1851:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:13:1851:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:13:1851:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:22:1851:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:22:1851:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:22:1851:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:33:1851:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1851:33:1851:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:33:1851:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1851:33:1851:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1851:42:1851:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1851:42:1851:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1851:42:1851:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1854:15:1854:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1854:15:1854:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:22:1854:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1854:22:1854:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1854:44:1856:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:13:1855:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:13:1855:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:13:1855:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:13:1855:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:23:1855:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:23:1855:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:23:1855:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:34:1855:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1855:34:1855:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:34:1855:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1855:34:1855:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1855:44:1855:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1855:44:1855:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1855:44:1855:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1858:15:1858:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1858:15:1858:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:22:1858:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1858:22:1858:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1858:44:1860:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:13:1859:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:13:1859:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:13:1859:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:13:1859:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:22:1859:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:22:1859:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:22:1859:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:33:1859:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1859:33:1859:36 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:33:1859:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1859:33:1859:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1859:42:1859:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1859:42:1859:46 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1859:42:1859:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1862:15:1862:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1862:15:1862:19 | SelfParam | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:22:1862:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1862:22:1862:26 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1862:44:1864:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:13:1863:16 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:13:1863:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:13:1863:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:13:1863:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:23:1863:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:23:1863:27 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:23:1863:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:34:1863:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1863:34:1863:37 | self | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:34:1863:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1863:34:1863:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1863:44:1863:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:1863:44:1863:48 | other | TRef | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1863:44:1863:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1867:26:1867:26 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1867:32:1867:32 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:9:1868:9 | a | | main.rs:1867:18:1867:23 | T | +| main.rs:1868:13:1868:13 | b | | main.rs:1867:18:1867:23 | T | +| main.rs:1871:16:2002:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1875:13:1875:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1875:22:1875:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1875:23:1875:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:23:1875:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1875:31:1875:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:13:1876:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1876:22:1876:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1876:23:1876:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:23:1876:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1876:31:1876:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:13:1877:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1877:22:1877:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1877:23:1877:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:23:1877:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1877:30:1877:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:13:1878:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1878:22:1878:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1878:23:1878:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:23:1878:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1878:31:1878:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:13:1879:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1879:22:1879:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1879:23:1879:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:23:1879:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1879:30:1879:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:13:1880:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1880:22:1880:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1880:23:1880:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:23:1880:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1880:32:1880:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:13:1883:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:23:1883:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:23:1883:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:31:1883:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:13:1884:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:23:1884:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:23:1884:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:31:1884:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:13:1885:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:23:1885:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:23:1885:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1885:31:1885:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:13:1886:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:23:1886:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:23:1886:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1886:31:1886:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:13:1887:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:23:1887:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:23:1887:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:31:1887:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:39:1888:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:45:1888:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:17:1891:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:34:1891:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:9:1892:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:9:1892:31 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1892:27:1892:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:17:1894:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:34:1894:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:9:1895:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:9:1895:31 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1895:27:1895:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:17:1897:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1897:34:1897:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:9:1898:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:9:1898:31 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1898:27:1898:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:17:1900:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:34:1900:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:9:1901:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:9:1901:31 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1901:27:1901:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:17:1903:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:34:1903:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:9:1904:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:9:1904:31 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1904:27:1904:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:13:1907:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:26:1907:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:26:1907:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:34:1907:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:13:1908:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:25:1908:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:25:1908:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:33:1908:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:13:1909:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:26:1909:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:26:1909:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:34:1909:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:13:1910:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:23:1910:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:23:1910:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:32:1910:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:13:1911:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:23:1911:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:23:1911:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:32:1911:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:17:1914:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:37:1914:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:9:1915:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:9:1915:34 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1915:30:1915:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:17:1917:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:36:1917:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1918:29:1918:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:17:1920:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1920:37:1920:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:9:1921:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1921:9:1921:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1921:30:1921:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:17:1923:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:34:1923:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1924:28:1924:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:17:1926:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1926:34:1926:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:9:1927:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:9:1927:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1927:28:1927:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:13:1929:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:23:1929:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1929:24:1929:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:13:1930:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:23:1930:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1930:24:1930:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1933:13:1933:14 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1933:18:1933:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1933:28:1933:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1933:34:1933:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1934:13:1934:14 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:18:1934:36 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1934:28:1934:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1934:34:1934:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1937:13:1937:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1937:23:1937:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1937:23:1937:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1937:29:1937:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:13:1938:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1938:23:1938:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1938:23:1938:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1938:29:1938:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:13:1939:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1939:23:1939:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1939:23:1939:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1939:28:1939:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:13:1940:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:23:1940:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1940:23:1940:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1940:29:1940:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:13:1941:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:23:1941:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1941:23:1941:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1941:28:1941:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:13:1942:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:23:1942:24 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1942:23:1942:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1942:29:1942:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:13:1945:20 | vec2_add | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:24:1945:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:24:1945:30 | ... + ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1945:29:1945:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:13:1946:20 | vec2_sub | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:24:1946:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:24:1946:30 | ... - ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1946:29:1946:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:13:1947:20 | vec2_mul | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:24:1947:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:24:1947:30 | ... * ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1947:29:1947:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:13:1948:20 | vec2_div | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:24:1948:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:24:1948:30 | ... / ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1948:29:1948:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:13:1949:20 | vec2_rem | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:24:1949:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:24:1949:30 | ... % ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1949:29:1949:30 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:17:1952:31 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1952:35:1952:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:9:1953:23 | vec2_add_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1953:9:1953:29 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1953:28:1953:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:17:1955:31 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1955:35:1955:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:9:1956:23 | vec2_sub_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1956:9:1956:29 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1956:28:1956:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:17:1958:31 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1958:35:1958:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:9:1959:23 | vec2_mul_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1959:9:1959:29 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1959:28:1959:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:17:1961:31 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1961:35:1961:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:9:1962:23 | vec2_div_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1962:9:1962:29 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1962:28:1962:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:17:1964:31 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1964:35:1964:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:9:1965:23 | vec2_rem_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1965:9:1965:29 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1965:28:1965:29 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:13:1968:23 | vec2_bitand | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:27:1968:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:27:1968:33 | ... & ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1968:32:1968:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:13:1969:22 | vec2_bitor | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:26:1969:27 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:26:1969:32 | ... \| ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1969:31:1969:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:13:1970:23 | vec2_bitxor | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:27:1970:28 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:27:1970:33 | ... ^ ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1970:32:1970:33 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:13:1971:20 | vec2_shl | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:24:1971:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:24:1971:33 | ... << ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1971:30:1971:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1972:13:1972:20 | vec2_shr | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:24:1972:25 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:24:1972:33 | ... >> ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1972:30:1972:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1975:17:1975:34 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1975:38:1975:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:9:1976:26 | vec2_bitand_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1976:9:1976:32 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1976:31:1976:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:17:1978:33 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1978:37:1978:38 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:9:1979:25 | vec2_bitor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1979:9:1979:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1979:30:1979:31 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:17:1981:34 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1981:38:1981:39 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:9:1982:26 | vec2_bitxor_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1982:9:1982:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1982:31:1982:32 | v2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:17:1984:31 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1984:35:1984:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:9:1985:23 | vec2_shl_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1985:9:1985:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1985:29:1985:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1987:17:1987:31 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1987:35:1987:36 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:9:1988:23 | vec2_shr_assign | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1988:9:1988:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1988:29:1988:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1991:13:1991:20 | vec2_neg | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1991:24:1991:26 | - ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1991:25:1991:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:13:1992:20 | vec2_not | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:24:1992:26 | ! ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1992:25:1992:26 | v1 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1995:13:1995:24 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1995:28:1995:45 | ...::default(...) | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:13:1996:26 | vec2_zero_plus | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:30:1996:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:30:1996:63 | ... + ... | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:1996:40:1996:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1996:46:1996:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1996:52:1996:63 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2000:13:2000:24 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2000:28:2000:45 | ...::default(...) | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2001:13:2001:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2001:30:2001:48 | Vec2 {...} | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2001:30:2001:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2001:40:2001:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2001:46:2001:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2001:53:2001:64 | default_vec2 | | main.rs:1630:5:1635:5 | Vec2 | +| main.rs:2011:18:2011:21 | SelfParam | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2011:24:2011:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2014:25:2016:5 | { ... } | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2015:9:2015:10 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2018:41:2020:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2018:41:2020:5 | { ... } | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2019:9:2019:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2019:9:2019:20 | { ... } | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2019:17:2019:18 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2022:41:2024:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2022:41:2024:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2023:9:2023:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2023:9:2023:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2032:13:2032:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2032:13:2032:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2032:13:2032:42 | SelfParam | Ptr.TRefMut | main.rs:2026:5:2026:14 | S2 | +| main.rs:2033:13:2033:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2033:13:2033:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | +| main.rs:2034:44:2036:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2034:44:2036:9 | { ... } | T | main.rs:2008:5:2008:14 | S1 | +| main.rs:2035:13:2035:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2035:13:2035:38 | ...::Ready(...) | T | main.rs:2008:5:2008:14 | S1 | +| main.rs:2035:36:2035:37 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2039:41:2041:5 | { ... } | | main.rs:2026:5:2026:14 | S2 | +| main.rs:2040:9:2040:10 | S2 | | main.rs:2026:5:2026:14 | S2 | +| main.rs:2043:22:2051:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2044:9:2044:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2044:9:2044:12 | f1(...) | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2044:9:2044:18 | await ... | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2044:9:2044:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2045:9:2045:12 | f2(...) | | main.rs:2018:16:2018:39 | impl ... | +| main.rs:2045:9:2045:18 | await ... | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2045:9:2045:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2046:9:2046:12 | f3(...) | | main.rs:2022:16:2022:39 | impl ... | +| main.rs:2046:9:2046:18 | await ... | | {EXTERNAL LOCATION} | () | +| main.rs:2047:9:2047:12 | f4(...) | | main.rs:2039:16:2039:39 | impl ... | +| main.rs:2047:9:2047:18 | await ... | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2047:9:2047:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2048:9:2048:10 | S2 | | main.rs:2026:5:2026:14 | S2 | +| main.rs:2048:9:2048:16 | await S2 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2048:9:2048:20 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2049:13:2049:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2049:13:2049:13 | b | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2049:17:2049:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2049:17:2049:28 | { ... } | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2049:25:2049:26 | S1 | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2050:9:2050:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2050:9:2050:9 | b | dyn(Output) | main.rs:2008:5:2008:14 | S1 | +| main.rs:2050:9:2050:15 | await b | | main.rs:2008:5:2008:14 | S1 | +| main.rs:2050:9:2050:19 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2061:15:2061:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2061:15:2061:19 | SelfParam | TRef | main.rs:2060:5:2062:5 | Self [trait Trait1] | +| main.rs:2061:22:2061:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2065:15:2065:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2065:15:2065:19 | SelfParam | TRef | main.rs:2064:5:2066:5 | Self [trait Trait2] | +| main.rs:2065:22:2065:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2069:15:2069:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2069:15:2069:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2069:22:2069:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2073:15:2073:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:15:2073:19 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2073:22:2073:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2076:37:2078:5 | { ... } | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2077:9:2077:10 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2081:18:2081:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:18:2081:22 | SelfParam | TRef | main.rs:2080:5:2082:5 | Self [trait MyTrait] | +| main.rs:2085:18:2085:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:18:2085:22 | SelfParam | TRef | main.rs:2055:5:2056:14 | S1 | +| main.rs:2085:31:2087:9 | { ... } | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2086:13:2086:14 | S2 | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2091:18:2091:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2091:18:2091:22 | SelfParam | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2091:18:2091:22 | SelfParam | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2091:30:2094:9 | { ... } | | main.rs:2090:10:2090:17 | T | +| main.rs:2092:17:2092:21 | S3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:2092:17:2092:21 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:17:2092:21 | S3(...) | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:17:2092:21 | S3(...) | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2092:25:2092:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2092:25:2092:28 | self | TRef | main.rs:2058:5:2058:22 | S3 | +| main.rs:2092:25:2092:28 | self | TRef.T3 | main.rs:2090:10:2090:17 | T | +| main.rs:2093:13:2093:21 | t.clone() | | main.rs:2090:10:2090:17 | T | +| main.rs:2097:45:2099:5 | { ... } | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2098:9:2098:10 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2101:41:2101:41 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2101:52:2103:5 | { ... } | | main.rs:2101:23:2101:23 | A | +| main.rs:2102:9:2102:9 | t | | main.rs:2101:26:2101:38 | B | +| main.rs:2102:9:2102:17 | t.get_a() | | main.rs:2101:23:2101:23 | A | +| main.rs:2105:34:2105:34 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2105:59:2107:5 | { ... } | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2105:59:2107:5 | { ... } | impl(T) | main.rs:2105:24:2105:31 | T | +| main.rs:2106:9:2106:13 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2106:9:2106:13 | S3(...) | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2106:9:2106:13 | S3(...) | T3 | main.rs:2105:24:2105:31 | T | +| main.rs:2106:9:2106:13 | S3(...) | impl(T) | main.rs:2105:24:2105:31 | T | +| main.rs:2106:12:2106:12 | x | | main.rs:2105:24:2105:31 | T | +| main.rs:2109:34:2109:34 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2109:67:2111:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2109:67:2111:5 | { ... } | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2109:67:2111:5 | { ... } | T.impl(T) | main.rs:2109:24:2109:31 | T | +| main.rs:2110:9:2110:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2110:9:2110:19 | Some(...) | T | main.rs:2058:5:2058:22 | S3 | +| main.rs:2110:9:2110:19 | Some(...) | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2110:9:2110:19 | Some(...) | T.T3 | main.rs:2109:24:2109:31 | T | +| main.rs:2110:9:2110:19 | Some(...) | T.impl(T) | main.rs:2109:24:2109:31 | T | +| main.rs:2110:14:2110:18 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2110:14:2110:18 | S3(...) | T3 | main.rs:2109:24:2109:31 | T | +| main.rs:2110:17:2110:17 | x | | main.rs:2109:24:2109:31 | T | +| main.rs:2113:34:2113:34 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2113:78:2115:5 | { ... } | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T0.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2113:78:2115:5 | { ... } | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2113:78:2115:5 | { ... } | T1.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2114:9:2114:30 | TupleExpr | T0 | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:9:2114:30 | TupleExpr | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2114:9:2114:30 | TupleExpr | T0.T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | T0.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | T1 | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:9:2114:30 | TupleExpr | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2114:9:2114:30 | TupleExpr | T1.T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:9:2114:30 | TupleExpr | T1.impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:10:2114:22 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:10:2114:22 | S3(...) | | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2114:10:2114:22 | S3(...) | T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:10:2114:22 | S3(...) | impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:13:2114:13 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2114:13:2114:21 | x.clone() | | main.rs:2113:24:2113:31 | T | +| main.rs:2114:25:2114:29 | S3(...) | | main.rs:2058:5:2058:22 | S3 | +| main.rs:2114:25:2114:29 | S3(...) | | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2114:25:2114:29 | S3(...) | T3 | main.rs:2113:24:2113:31 | T | +| main.rs:2114:25:2114:29 | S3(...) | impl(T) | main.rs:2113:24:2113:31 | T | +| main.rs:2114:28:2114:28 | x | | main.rs:2113:24:2113:31 | T | +| main.rs:2117:26:2117:26 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2117:51:2119:5 | { ... } | | main.rs:2117:23:2117:23 | A | +| main.rs:2118:9:2118:9 | t | | main.rs:2117:29:2117:43 | impl ... | +| main.rs:2118:9:2118:17 | t.get_a() | | main.rs:2117:23:2117:23 | A | +| main.rs:2121:16:2135:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2122:13:2122:13 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2122:17:2122:20 | f1(...) | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2123:9:2123:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2123:9:2123:14 | x.f1() | | {EXTERNAL LOCATION} | () | +| main.rs:2124:9:2124:9 | x | | main.rs:2076:16:2076:35 | impl ... + ... | +| main.rs:2124:9:2124:14 | x.f2() | | {EXTERNAL LOCATION} | () | +| main.rs:2125:13:2125:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2125:17:2125:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2126:13:2126:13 | b | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2126:17:2126:33 | uses_my_trait1(...) | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2126:32:2126:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:13:2127:13 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2127:17:2127:32 | get_a_my_trait(...) | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2128:13:2128:13 | c | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2128:17:2128:33 | uses_my_trait2(...) | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2128:32:2128:32 | a | | main.rs:2097:28:2097:43 | impl ... | +| main.rs:2129:13:2129:13 | d | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2129:17:2129:34 | uses_my_trait2(...) | | main.rs:2057:5:2057:14 | S2 | +| main.rs:2129:32:2129:33 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:13:2130:13 | e | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:17:2130:35 | get_a_my_trait2(...) | | main.rs:2105:43:2105:57 | impl ... | +| main.rs:2130:17:2130:35 | get_a_my_trait2(...) | impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:17:2130:43 | ... .get_a() | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2130:33:2130:34 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:13:2133:13 | f | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | T | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2133:17:2133:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:17:2133:44 | ... .unwrap() | | main.rs:2109:50:2109:64 | impl ... | +| main.rs:2133:17:2133:44 | ... .unwrap() | impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:17:2133:52 | ... .get_a() | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2133:33:2133:34 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:13:2134:13 | g | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T0 | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T1 | main.rs:2113:61:2113:75 | impl ... | +| main.rs:2134:17:2134:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:37 | ... .0 | | main.rs:2113:44:2113:58 | impl ... | +| main.rs:2134:17:2134:37 | ... .0 | impl(T) | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:17:2134:45 | ... .get_a() | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2134:33:2134:34 | S1 | | main.rs:2055:5:2056:14 | S1 | +| main.rs:2145:16:2145:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2145:16:2145:20 | SelfParam | TRef | main.rs:2141:5:2142:13 | S | +| main.rs:2145:31:2147:9 | { ... } | | main.rs:2141:5:2142:13 | S | +| main.rs:2146:13:2146:13 | S | | main.rs:2141:5:2142:13 | S | +| main.rs:2156:26:2158:9 | { ... } | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2156:26:2158:9 | { ... } | T | main.rs:2155:10:2155:10 | T | +| main.rs:2157:13:2157:38 | MyVec {...} | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2157:13:2157:38 | MyVec {...} | T | main.rs:2155:10:2155:10 | T | +| main.rs:2157:27:2157:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2157:27:2157:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2157:27:2157:36 | ...::new(...) | T | main.rs:2155:10:2155:10 | T | +| main.rs:2160:17:2160:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2160:17:2160:25 | SelfParam | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2160:28:2160:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2160:38:2162:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2161:13:2161:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2161:13:2161:16 | self | TRefMut | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2161:13:2161:16 | self | TRefMut.T | main.rs:2155:10:2155:10 | T | +| main.rs:2161:13:2161:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2161:13:2161:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2161:13:2161:21 | self.data | T | main.rs:2155:10:2155:10 | T | +| main.rs:2161:13:2161:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2161:28:2161:32 | value | | main.rs:2155:10:2155:10 | T | +| main.rs:2169:18:2169:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2169:18:2169:22 | SelfParam | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2169:18:2169:22 | SelfParam | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2169:25:2169:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2169:56:2171:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2169:56:2171:9 | { ... } | TRef | main.rs:2165:10:2165:10 | T | +| main.rs:2170:13:2170:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2170:13:2170:29 | &... | TRef | main.rs:2165:10:2165:10 | T | +| main.rs:2170:14:2170:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2170:14:2170:17 | self | TRef | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2170:14:2170:17 | self | TRef.T | main.rs:2165:10:2165:10 | T | +| main.rs:2170:14:2170:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2170:14:2170:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2170:14:2170:22 | self.data | T | main.rs:2165:10:2165:10 | T | +| main.rs:2170:14:2170:29 | ...[index] | | main.rs:2165:10:2165:10 | T | +| main.rs:2170:24:2170:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2174:22:2174:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2174:22:2174:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2174:22:2174:26 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2174:35:2176:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2175:13:2175:13 | x | | main.rs:2141:5:2142:13 | S | +| main.rs:2175:17:2175:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2175:17:2175:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2175:17:2175:21 | slice | TRef.TSlice | main.rs:2141:5:2142:13 | S | +| main.rs:2175:17:2175:24 | slice[0] | | main.rs:2141:5:2142:13 | S | +| main.rs:2175:17:2175:30 | ... .foo() | | main.rs:2141:5:2142:13 | S | +| main.rs:2175:23:2175:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2178:37:2178:37 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2178:43:2178:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2182:9:2182:9 | a | | main.rs:2178:20:2178:34 | T | +| main.rs:2182:11:2182:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2185:16:2196:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2186:17:2186:19 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2186:17:2186:19 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2186:23:2186:34 | ...::new(...) | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2186:23:2186:34 | ...::new(...) | T | main.rs:2141:5:2142:13 | S | +| main.rs:2187:9:2187:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2187:9:2187:11 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2187:9:2187:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2187:18:2187:18 | S | | main.rs:2141:5:2142:13 | S | +| main.rs:2188:9:2188:11 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2188:9:2188:11 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2188:9:2188:14 | vec[0] | | main.rs:2141:5:2142:13 | S | +| main.rs:2188:9:2188:20 | ... .foo() | | main.rs:2141:5:2142:13 | S | +| main.rs:2188:13:2188:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2190:13:2190:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2190:13:2190:14 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2190:21:2190:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2190:26:2190:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2190:26:2190:28 | [...] | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2190:27:2190:27 | S | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:13:2191:13 | x | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:17:2191:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2191:17:2191:18 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2191:17:2191:21 | xs[0] | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:17:2191:27 | ... .foo() | | main.rs:2141:5:2142:13 | S | +| main.rs:2191:20:2191:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2193:29:2193:31 | vec | | main.rs:2150:5:2153:5 | MyVec | +| main.rs:2193:29:2193:31 | vec | T | main.rs:2141:5:2142:13 | S | +| main.rs:2193:34:2193:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2195:9:2195:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2195:23:2195:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2195:23:2195:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2195:23:2195:25 | &xs | TRef.TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2195:24:2195:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2195:24:2195:25 | xs | TArray | main.rs:2141:5:2142:13 | S | +| main.rs:2200:16:2202:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2201:13:2201:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2201:17:2201:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2201:25:2201:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:25:2201:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2201:25:2201:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2201:25:2201:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2201:25:2201:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2201:38:2201:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2201:38:2201:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2210:19:2210:22 | SelfParam | | main.rs:2206:5:2211:5 | Self [trait MyAdd] | +| main.rs:2210:25:2210:27 | rhs | | main.rs:2206:17:2206:26 | Rhs | +| main.rs:2217:19:2217:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:25:2217:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2217:45:2219:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2218:13:2218:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:19:2226:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:25:2226:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2226:25:2226:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2226:46:2228:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2227:13:2227:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2227:14:2227:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2227:14:2227:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:19:2235:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2235:25:2235:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2235:46:2241:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2236:13:2240:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2236:13:2240:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2236:16:2236:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2236:22:2238:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2236:22:2238:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2237:17:2237:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2237:17:2237:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2238:20:2240:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2238:20:2240:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2239:17:2239:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2239:17:2239:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2250:19:2250:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:19:2250:22 | SelfParam | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:25:2250:29 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2250:25:2250:29 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2250:54:2252:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:13:2251:39 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:15:2251:22 | (...) | | main.rs:2246:10:2246:17 | T | +| main.rs:2251:16:2251:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:16:2251:19 | self | T | main.rs:2246:10:2246:17 | T | +| main.rs:2251:16:2251:21 | self.0 | | main.rs:2246:10:2246:17 | T | +| main.rs:2251:31:2251:35 | other | | main.rs:2244:5:2244:19 | S | +| main.rs:2251:31:2251:35 | other | T | main.rs:2246:10:2246:17 | T | +| main.rs:2251:31:2251:37 | other.0 | | main.rs:2246:10:2246:17 | T | +| main.rs:2259:19:2259:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2259:19:2259:22 | SelfParam | T | main.rs:2255:10:2255:17 | T | +| main.rs:2259:25:2259:29 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2259:51:2261:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:13:2260:37 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:15:2260:22 | (...) | | main.rs:2255:10:2255:17 | T | +| main.rs:2260:16:2260:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2260:16:2260:19 | self | T | main.rs:2255:10:2255:17 | T | +| main.rs:2260:16:2260:21 | self.0 | | main.rs:2255:10:2255:17 | T | +| main.rs:2260:31:2260:35 | other | | main.rs:2255:10:2255:17 | T | +| main.rs:2271:19:2271:22 | SelfParam | | main.rs:2244:5:2244:19 | S | +| main.rs:2271:19:2271:22 | SelfParam | T | main.rs:2264:14:2264:14 | T | +| main.rs:2271:25:2271:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2271:25:2271:29 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2271:55:2273:9 | { ... } | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:13:2272:37 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:15:2272:22 | (...) | | main.rs:2264:14:2264:14 | T | +| main.rs:2272:16:2272:19 | self | | main.rs:2244:5:2244:19 | S | +| main.rs:2272:16:2272:19 | self | T | main.rs:2264:14:2264:14 | T | +| main.rs:2272:16:2272:21 | self.0 | | main.rs:2264:14:2264:14 | T | +| main.rs:2272:31:2272:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2272:31:2272:35 | other | TRef | main.rs:2264:14:2264:14 | T | +| main.rs:2278:20:2278:24 | value | | main.rs:2276:18:2276:18 | T | +| main.rs:2283:20:2283:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2283:40:2285:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2284:13:2284:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2290:20:2290:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2290:41:2296:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2291:13:2295:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2291:13:2295:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2291:16:2291:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2291:22:2293:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2291:22:2293:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2292:17:2292:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2292:17:2292:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2293:20:2295:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2293:20:2295:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2294:17:2294:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2294:17:2294:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2301:21:2301:25 | value | | main.rs:2299:19:2299:19 | T | +| main.rs:2301:31:2301:31 | x | | main.rs:2299:5:2302:5 | Self [trait MyFrom2] | +| main.rs:2306:21:2306:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:33:2306:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2306:48:2308:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2307:13:2307:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:21:2313:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2313:34:2313:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2313:49:2319:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2314:13:2318:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2314:16:2314:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2314:22:2316:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2315:17:2315:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2316:20:2318:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2317:17:2317:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2324:15:2324:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2327:15:2327:15 | x | | main.rs:2322:5:2328:5 | Self [trait MySelfTrait] | +| main.rs:2332:15:2332:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2332:31:2334:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:13:2333:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:13:2333:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2333:17:2333:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2337:15:2337:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2337:32:2339:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:13:2338:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:13:2338:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2338:17:2338:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2344:15:2344:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2344:31:2346:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2345:13:2345:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2345:13:2345:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2349:15:2349:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2349:32:2351:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2350:13:2350:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2354:16:2379:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2355:13:2355:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2355:22:2355:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2355:22:2355:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:9:2356:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:9:2356:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2356:18:2356:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:9:2357:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:9:2357:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:18:2357:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2357:18:2357:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2357:19:2357:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:9:2358:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:9:2358:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2358:18:2358:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2360:9:2360:15 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2360:9:2360:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:9:2360:31 | ... .my_add(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2360:11:2360:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:24:2360:30 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2360:24:2360:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2360:26:2360:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:9:2361:15 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2361:9:2361:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:11:2361:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2361:24:2361:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:9:2362:15 | S(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2362:9:2362:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:9:2362:29 | ... .my_add(...) | | main.rs:2244:5:2244:19 | S | +| main.rs:2362:11:2362:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:24:2362:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2362:24:2362:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2362:25:2362:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:13:2364:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:17:2364:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2364:30:2364:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:13:2365:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:17:2365:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2365:30:2365:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2366:13:2366:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:22:2366:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2366:38:2366:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:9:2367:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2367:23:2367:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2367:30:2367:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2368:9:2368:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2368:23:2368:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2368:29:2368:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:9:2369:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2369:27:2369:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2369:34:2369:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:9:2371:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2371:17:2371:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:9:2372:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2372:17:2372:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:9:2373:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2373:18:2373:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:9:2374:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2374:18:2374:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2375:9:2375:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2375:25:2375:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2376:9:2376:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2376:25:2376:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:9:2377:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2377:25:2377:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2378:9:2378:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2378:25:2378:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2386:26:2388:9 | { ... } | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2387:13:2387:25 | MyCallable {...} | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:17:2390:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2390:17:2390:21 | SelfParam | TRef | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2390:31:2392:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2391:13:2391:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2391:13:2391:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2395:16:2502:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:9:2398:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2398:13:2398:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:18:2398:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2398:18:2398:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:19:2398:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:22:2398:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:25:2398:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2398:28:2398:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:9:2399:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2399:18:2399:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2399:18:2399:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:18:2399:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | +| main.rs:2399:19:2399:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:22:2399:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:25:2399:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:32:2399:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2399:32:2399:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:2399:40:2399:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2399:43:2399:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:9:2400:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2400:13:2400:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:18:2400:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2400:18:2400:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:18:2400:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2400:18:2400:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:19:2400:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:22:2400:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:25:2400:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2400:40:2400:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:13:2402:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:13:2402:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:13:2402:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:21:2402:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2402:21:2402:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:21:2402:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:22:2402:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:27:2402:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:27:2402:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2402:30:2402:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2402:30:2402:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:9:2403:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2403:13:2403:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2403:13:2403:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:18:2403:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2403:18:2403:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2403:18:2403:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2403:24:2403:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2405:13:2405:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:13:2405:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2405:21:2405:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2405:21:2405:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2405:22:2405:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2405:28:2405:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2406:9:2406:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2406:13:2406:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2406:18:2406:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2406:18:2406:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2406:24:2406:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2408:13:2408:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2408:13:2408:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:26:2408:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:31:2408:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2408:31:2408:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:31:2408:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:32:2408:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:32:2408:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:35:2408:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:35:2408:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2408:38:2408:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2408:38:2408:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:9:2409:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2409:13:2409:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:18:2409:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2409:18:2409:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2409:24:2409:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2411:13:2411:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2411:13:2411:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:26:2411:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2411:31:2411:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2411:31:2411:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2411:31:2411:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:32:2411:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2411:32:2411:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2411:35:2411:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2412:9:2412:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2412:13:2412:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2412:18:2412:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2412:18:2412:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2412:24:2412:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2414:17:2414:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:17:2414:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2414:17:2414:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:28:2414:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2414:28:2414:48 | [...] | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2414:28:2414:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:29:2414:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:29:2414:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:36:2414:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:36:2414:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2414:43:2414:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2414:43:2414:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:9:2415:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2415:13:2415:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2415:13:2415:13 | s | TRef | {EXTERNAL LOCATION} | & | +| main.rs:2415:13:2415:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:18:2415:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2415:18:2415:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2415:18:2415:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2415:18:2415:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:19:2415:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2415:19:2415:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2415:19:2415:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2415:28:2415:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:9:2416:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2416:13:2416:13 | s | | {EXTERNAL LOCATION} | &mut | +| main.rs:2416:13:2416:13 | s | TRefMut | {EXTERNAL LOCATION} | & | +| main.rs:2416:13:2416:13 | s | TRefMut.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2416:18:2416:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | +| main.rs:2416:18:2416:30 | &mut strings1 | TRefMut | {EXTERNAL LOCATION} | [;] | +| main.rs:2416:18:2416:30 | &mut strings1 | TRefMut.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2416:18:2416:30 | &mut strings1 | TRefMut.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2416:23:2416:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2416:23:2416:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2416:23:2416:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2416:32:2416:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:9:2417:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2417:13:2417:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2417:13:2417:13 | s | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2417:18:2417:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:18:2417:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2417:18:2417:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2417:27:2417:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2419:13:2419:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2419:13:2419:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2420:9:2424:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2420:9:2424:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2421:13:2421:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2421:26:2421:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2421:26:2421:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2422:13:2422:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2422:26:2422:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2422:26:2422:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2423:13:2423:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2423:26:2423:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2423:26:2423:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2425:9:2425:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2425:13:2425:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2425:18:2425:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2425:18:2425:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2425:27:2425:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2427:13:2427:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2427:13:2427:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2427:13:2427:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2428:9:2432:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2428:9:2432:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2428:9:2432:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2428:10:2432:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2428:10:2432:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2429:13:2429:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2429:26:2429:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2429:26:2429:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2430:13:2430:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2430:26:2430:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2430:26:2430:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2431:13:2431:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2431:26:2431:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2431:26:2431:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2433:9:2433:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2433:13:2433:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2433:13:2433:13 | s | TRef | {EXTERNAL LOCATION} | String | +| main.rs:2433:18:2433:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2433:18:2433:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2433:18:2433:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2433:27:2433:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2435:13:2435:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:13:2435:21 | callables | TArray | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:25:2435:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2435:25:2435:81 | [...] | TArray | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:26:2435:42 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:45:2435:61 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2435:64:2435:80 | ...::new(...) | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2436:9:2440:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2436:13:2436:13 | c | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2437:12:2437:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2437:12:2437:20 | callables | TArray | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2438:9:2440:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2439:17:2439:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2439:26:2439:26 | c | | main.rs:2383:5:2383:24 | MyCallable | +| main.rs:2439:26:2439:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:9:2444:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2444:13:2444:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:18:2444:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:18:2444:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2444:18:2444:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:21:2444:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2444:24:2444:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:9:2445:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2445:13:2445:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2445:13:2445:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:13:2445:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:18:2445:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2445:18:2445:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | +| main.rs:2445:18:2445:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:18:2445:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:19:2445:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:19:2445:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2445:19:2445:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:19:2445:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:24:2445:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2445:24:2445:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2445:28:2445:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2446:13:2446:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2446:13:2446:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2446:21:2446:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2446:21:2446:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2446:21:2446:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2446:24:2446:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2447:9:2447:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2447:13:2447:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2447:18:2447:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2447:18:2447:22 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2447:24:2447:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2448:13:2448:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2448:26:2448:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:9:2449:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2449:18:2449:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2449:19:2449:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2449:19:2449:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:20:2449:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:26:2449:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:32:2449:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2449:38:2449:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2449:50:2449:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2451:13:2451:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2451:13:2451:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2452:9:2455:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2452:9:2455:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2453:20:2453:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2454:18:2454:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:9:2456:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2456:13:2456:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:18:2456:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2456:18:2456:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2456:25:2456:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2460:13:2460:17 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2460:21:2460:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2460:26:2460:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:29:2460:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2460:32:2460:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2461:9:2461:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2461:18:2461:22 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2461:24:2461:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2463:13:2463:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2463:13:2463:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2463:13:2463:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:32:2463:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2463:32:2463:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:32:2463:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:32:2463:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2463:32:2463:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2463:32:2463:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:33:2463:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2463:39:2463:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:42:2463:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2464:9:2464:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2464:13:2464:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:18:2464:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2464:18:2464:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2464:18:2464:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2464:25:2464:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2466:22:2466:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2466:22:2466:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2466:22:2466:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:23:2466:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2466:29:2466:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2466:32:2466:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2467:9:2467:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2467:25:2467:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2469:13:2469:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:13:2469:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2469:13:2469:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:13:2469:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:21:2469:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2469:21:2469:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2469:21:2469:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:21:2469:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:31:2469:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2469:31:2469:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:31:2469:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:32:2469:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2469:38:2469:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2469:41:2469:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2470:9:2470:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2470:13:2470:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2470:13:2470:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:18:2470:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2470:18:2470:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2470:18:2470:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2470:18:2470:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2470:24:2470:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2472:13:2472:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2472:13:2472:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2472:13:2472:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2472:13:2472:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:32:2472:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2472:32:2472:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:32:2472:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:32:2472:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2472:32:2472:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2472:32:2472:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | +| main.rs:2472:32:2472:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:33:2472:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2472:39:2472:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2472:42:2472:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2473:9:2473:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2473:13:2473:13 | u | | {EXTERNAL LOCATION} | & | +| main.rs:2473:13:2473:13 | u | TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:18:2473:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2473:18:2473:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2473:18:2473:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2473:18:2473:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2473:24:2473:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2475:17:2475:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:17:2475:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2475:17:2475:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2475:25:2475:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2475:25:2475:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2475:25:2475:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2476:9:2476:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2476:9:2476:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2476:9:2476:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2476:9:2476:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2476:20:2476:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:9:2477:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2477:13:2477:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:18:2477:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2477:18:2477:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2477:18:2477:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2477:24:2477:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2479:13:2479:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:23:2479:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:28:2479:37 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:28:2479:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:33:2479:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2479:36:2479:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2479:40:2479:49 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:40:2479:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2479:45:2479:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2479:48:2479:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2481:13:2481:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2481:17:2484:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2481:28:2481:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2481:36:2484:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:13:2483:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2482:29:2483:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2486:17:2486:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:17:2486:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2486:17:2486:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2486:17:2486:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2486:17:2486:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2486:17:2486:20 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2486:17:2486:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2486:24:2486:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2486:24:2486:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2486:24:2486:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2486:24:2486:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2486:24:2486:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2486:24:2486:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2486:24:2486:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:9:2487:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2487:9:2487:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2487:9:2487:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2487:9:2487:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2487:9:2487:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:9:2487:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2487:9:2487:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:9:2487:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2487:9:2487:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2487:9:2487:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:9:2487:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2487:9:2487:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:21:2487:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2487:24:2487:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2487:24:2487:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2487:24:2487:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2487:24:2487:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2487:33:2487:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2487:33:2487:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:9:2488:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2488:9:2488:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2488:9:2488:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2488:9:2488:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2488:9:2488:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:9:2488:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2488:9:2488:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:9:2488:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2488:9:2488:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2488:9:2488:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:9:2488:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2488:9:2488:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:21:2488:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2488:24:2488:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2488:24:2488:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2488:24:2488:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2488:24:2488:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2488:33:2488:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2488:33:2488:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:9:2489:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2489:13:2489:15 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2489:13:2489:15 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:20:2489:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2489:20:2489:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:20:2489:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2489:20:2489:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2489:20:2489:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2489:20:2489:23 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2489:20:2489:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:20:2489:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2489:20:2489:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2489:20:2489:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2489:20:2489:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2489:20:2489:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2489:20:2489:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2489:32:2489:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:9:2490:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2490:13:2490:17 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2490:13:2490:17 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2490:13:2490:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2490:13:2490:17 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2490:13:2490:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2490:22:2490:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2490:22:2490:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2490:22:2490:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2490:22:2490:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2490:22:2490:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2490:22:2490:25 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2490:22:2490:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2490:22:2490:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2490:22:2490:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2490:22:2490:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2490:22:2490:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2490:22:2490:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2490:22:2490:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2490:36:2490:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:9:2491:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2491:13:2491:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2491:13:2491:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2491:13:2491:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:13:2491:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:13:2491:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:14:2491:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2491:14:2491:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:19:2491:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2491:19:2491:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2491:19:2491:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:19:2491:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:19:2491:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:29:2491:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2491:29:2491:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:29:2491:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2491:29:2491:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2491:29:2491:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:29:2491:32 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:29:2491:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:29:2491:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2491:29:2491:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2491:29:2491:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2491:29:2491:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2491:29:2491:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2491:29:2491:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2491:41:2491:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:9:2492:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2492:13:2492:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2492:13:2492:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2492:13:2492:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:13:2492:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:13:2492:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:14:2492:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2492:14:2492:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:19:2492:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2492:19:2492:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2492:19:2492:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:19:2492:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:19:2492:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:29:2492:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2492:29:2492:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | +| main.rs:2492:29:2492:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:29:2492:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2492:29:2492:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | +| main.rs:2492:29:2492:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:29:2492:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:29:2492:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:30:2492:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2492:30:2492:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2492:30:2492:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2492:30:2492:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2492:30:2492:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2492:30:2492:33 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2492:30:2492:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2492:35:2492:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2496:17:2496:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2496:26:2496:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2496:26:2496:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2498:13:2498:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2498:17:2501:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2498:23:2498:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2498:23:2498:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2498:27:2498:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2499:9:2501:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2500:13:2500:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2500:13:2500:18 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2500:18:2500:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2512:40:2514:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2512:40:2514:9 | { ... } | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2512:40:2514:9 | { ... } | T.T | main.rs:2511:10:2511:19 | T | +| main.rs:2513:13:2513:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2513:13:2513:16 | None | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2513:13:2513:16 | None | T.T | main.rs:2511:10:2511:19 | T | +| main.rs:2516:30:2518:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2516:30:2518:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2517:13:2517:28 | S1(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2517:13:2517:28 | S1(...) | T | main.rs:2511:10:2511:19 | T | +| main.rs:2517:16:2517:27 | ...::default(...) | | main.rs:2511:10:2511:19 | T | +| main.rs:2520:19:2520:22 | SelfParam | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:19:2520:22 | SelfParam | T | main.rs:2511:10:2511:19 | T | +| main.rs:2520:33:2522:9 | { ... } | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2520:33:2522:9 | { ... } | T | main.rs:2511:10:2511:19 | T | +| main.rs:2521:13:2521:16 | self | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2521:13:2521:16 | self | T | main.rs:2511:10:2511:19 | T | +| main.rs:2533:15:2533:15 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2533:26:2535:5 | { ... } | | main.rs:2533:12:2533:12 | T | +| main.rs:2534:9:2534:9 | x | | main.rs:2533:12:2533:12 | T | +| main.rs:2537:16:2559:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2538:13:2538:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:13:2538:14 | x1 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2538:13:2538:14 | x1 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2538:34:2538:48 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2539:13:2539:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:13:2539:14 | x2 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:13:2539:14 | x2 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2539:18:2539:38 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:13:2540:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:13:2540:14 | x3 | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:13:2540:14 | x3 | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T | main.rs:2506:5:2506:20 | S1 | +| main.rs:2540:18:2540:32 | ...::assoc_fun(...) | T.T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:13:2541:14 | x4 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:13:2541:14 | x4 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:18:2541:48 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:18:2541:48 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2541:35:2541:47 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2541:35:2541:47 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:13:2542:14 | x5 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:13:2542:14 | x5 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:18:2542:42 | ...::method(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:18:2542:42 | ...::method(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2542:29:2542:41 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2542:29:2542:41 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2543:13:2543:14 | x6 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2543:13:2543:14 | x6 | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2543:18:2543:45 | S4::<...>(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2543:18:2543:45 | S4::<...>(...) | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2543:27:2543:44 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2544:13:2544:14 | x7 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2544:13:2544:14 | x7 | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2544:18:2544:23 | S4(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2544:18:2544:23 | S4(...) | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2544:21:2544:22 | S2 | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2545:13:2545:14 | x8 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2545:13:2545:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2545:18:2545:22 | S4(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2545:18:2545:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2545:21:2545:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2546:13:2546:14 | x9 | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2546:13:2546:14 | x9 | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2546:18:2546:34 | S4(...) | | main.rs:2527:5:2527:27 | S4 | +| main.rs:2546:18:2546:34 | S4(...) | T4 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2546:21:2546:33 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:13:2547:15 | x10 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:13:2547:15 | x10 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2547:19:2550:9 | S5::<...> {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2549:20:2549:37 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:13:2551:15 | x11 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2551:13:2551:15 | x11 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:19:2551:34 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2551:19:2551:34 | S5 {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2551:31:2551:32 | S2 | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2552:13:2552:15 | x12 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:13:2552:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:19:2552:33 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2552:19:2552:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2552:31:2552:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2553:13:2553:15 | x13 | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:13:2553:15 | x13 | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2553:19:2556:9 | S5 {...} | | main.rs:2529:5:2531:5 | S5 | +| main.rs:2553:19:2556:9 | S5 {...} | T5 | main.rs:2508:5:2509:14 | S2 | +| main.rs:2555:20:2555:32 | ...::default(...) | | main.rs:2508:5:2509:14 | S2 | +| main.rs:2557:13:2557:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:19:2557:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2557:30:2557:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2558:13:2558:15 | x15 | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:13:2558:15 | x15 | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2558:19:2558:37 | ...::default(...) | | main.rs:2506:5:2506:20 | S1 | +| main.rs:2558:19:2558:37 | ...::default(...) | T | main.rs:2508:5:2509:14 | S2 | +| main.rs:2567:35:2569:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2567:35:2569:9 | { ... } | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2567:35:2569:9 | { ... } | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:13:2568:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2568:13:2568:26 | TupleExpr | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:13:2568:26 | TupleExpr | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:14:2568:18 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2568:21:2568:25 | S1 {...} | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:16:2570:19 | SelfParam | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2570:22:2570:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2573:16:2607:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2574:13:2574:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:13:2574:13 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:13:2574:13 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2574:17:2574:30 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:17:2575:17 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:17:2575:17 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2575:21:2575:34 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:13:2576:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:13:2576:18 | TuplePat | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:13:2576:18 | TuplePat | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:14:2576:14 | c | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:17:2576:17 | d | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2576:22:2576:35 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:13:2577:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:13:2577:22 | TuplePat | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:13:2577:22 | TuplePat | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:18:2577:18 | e | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:21:2577:21 | f | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2577:26:2577:39 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:13:2578:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:13:2578:26 | TuplePat | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:13:2578:26 | TuplePat | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:18:2578:18 | g | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:25:2578:25 | h | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2578:30:2578:43 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2580:9:2580:9 | a | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:9 | a | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:11 | a.0 | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2580:9:2580:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2581:9:2581:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2581:9:2581:9 | b | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:9 | b | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:11 | b.1 | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2581:9:2581:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2582:9:2582:9 | c | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2582:9:2582:15 | c.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2583:9:2583:9 | d | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2583:9:2583:15 | d.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2584:9:2584:9 | e | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2584:9:2584:15 | e.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2585:9:2585:9 | f | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2585:9:2585:15 | f.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2586:9:2586:9 | g | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2586:9:2586:15 | g.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2587:9:2587:9 | h | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2587:9:2587:15 | h.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2592:13:2592:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:17:2592:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:13:2593:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2593:17:2593:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2594:13:2594:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2594:13:2594:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:13:2594:16 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2594:20:2594:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2594:20:2594:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:20:2594:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2594:21:2594:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:24:2594:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2595:13:2595:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:22:2595:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2595:22:2595:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:22:2595:25 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2595:22:2595:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:13:2596:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2596:23:2596:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2596:23:2596:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:23:2596:26 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2596:23:2596:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2598:13:2598:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2598:13:2598:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:13:2598:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:20:2598:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2598:20:2598:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:20:2598:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2598:20:2598:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:20:2598:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:21:2598:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2598:24:2598:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2599:9:2602:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2599:15:2599:18 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2599:15:2599:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2599:15:2599:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:13:2600:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2600:13:2600:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:13:2600:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:14:2600:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:17:2600:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2600:23:2600:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2600:30:2600:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2600:30:2600:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2600:30:2600:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2600:30:2600:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2601:13:2601:13 | _ | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2601:13:2601:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2601:13:2601:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2601:18:2601:35 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2601:25:2601:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2601:25:2601:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2601:25:2601:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2603:13:2603:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2603:17:2603:20 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2603:17:2603:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2603:17:2603:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2603:17:2603:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2605:13:2605:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2605:13:2605:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:13:2605:13 | y | TRef.T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:13:2605:13 | y | TRef.T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:17:2605:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2605:17:2605:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:17:2605:31 | &... | TRef.T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:17:2605:31 | &... | TRef.T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2605:18:2605:31 | ...::get_pair(...) | T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2606:9:2606:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2606:9:2606:9 | y | TRef.T0 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:9 | y | TRef.T1 | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:11 | y.0 | | main.rs:2563:5:2564:16 | S1 | +| main.rs:2606:9:2606:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2612:27:2634:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2613:13:2613:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:13:2613:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:13:2613:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2613:27:2613:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2613:27:2613:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2613:27:2613:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2613:36:2613:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2616:9:2624:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2616:15:2616:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2616:15:2616:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2616:15:2616:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:13:2617:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2617:13:2617:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2617:13:2617:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:17:2617:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2617:24:2619:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:17:2618:37 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2618:26:2618:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2618:26:2618:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2620:13:2620:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2620:13:2620:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2620:13:2620:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2620:22:2623:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2622:17:2622:52 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2622:26:2622:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:13:2627:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:13:2627:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:13:2627:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2627:13:2627:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:13:2627:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:26:2627:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:26:2627:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:26:2627:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2627:26:2627:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:26:2627:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:35:2627:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2627:35:2627:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2627:35:2627:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:44:2627:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2628:9:2633:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2628:15:2628:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2628:15:2628:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2628:15:2628:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2628:15:2628:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2628:15:2628:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:13:2629:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2629:13:2629:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2629:13:2629:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2629:13:2629:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2629:13:2629:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:26:2632:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:17:2631:60 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2631:26:2631:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:36:2645:9 | { ... } | | main.rs:2640:5:2640:22 | Path | +| main.rs:2644:13:2644:19 | Path {...} | | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:29:2647:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2647:29:2647:33 | SelfParam | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2647:59:2649:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2647:59:2649:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2647:59:2649:9 | { ... } | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2648:13:2648:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2648:13:2648:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | +| main.rs:2648:13:2648:30 | Ok(...) | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2648:16:2648:29 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2655:39:2657:9 | { ... } | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2656:13:2656:22 | PathBuf {...} | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:18:2665:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2665:18:2665:22 | SelfParam | TRef | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2665:34:2669:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2665:34:2669:9 | { ... } | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2667:33:2667:43 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2668:13:2668:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2668:13:2668:17 | &path | TRef | main.rs:2640:5:2640:22 | Path | +| main.rs:2668:14:2668:17 | path | | main.rs:2640:5:2640:22 | Path | +| main.rs:2672:16:2680:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2673:21:2673:31 | ...::new(...) | | main.rs:2640:5:2640:22 | Path | +| main.rs:2674:13:2674:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2674:13:2674:17 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2674:13:2674:17 | path2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2674:21:2674:25 | path1 | | main.rs:2640:5:2640:22 | Path | +| main.rs:2674:21:2674:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2674:21:2674:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | +| main.rs:2674:21:2674:40 | path1.canonicalize() | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2675:13:2675:17 | path3 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2675:21:2675:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2675:21:2675:25 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2675:21:2675:25 | path2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2675:21:2675:34 | path2.unwrap() | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2677:13:2677:20 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2677:24:2677:37 | ...::new(...) | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:13:2678:20 | pathbuf2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2678:13:2678:20 | pathbuf2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2678:13:2678:20 | pathbuf2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:24:2678:31 | pathbuf1 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2678:24:2678:46 | pathbuf1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2678:24:2678:46 | pathbuf1.canonicalize() | E | {EXTERNAL LOCATION} | () | +| main.rs:2678:24:2678:46 | pathbuf1.canonicalize() | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2679:13:2679:20 | pathbuf3 | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2679:24:2679:31 | pathbuf2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2679:24:2679:31 | pathbuf2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2679:24:2679:31 | pathbuf2 | T | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2679:24:2679:40 | pathbuf2.unwrap() | | main.rs:2652:5:2652:25 | PathBuf | +| main.rs:2685:14:2685:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2685:14:2685:18 | SelfParam | TRef | main.rs:2684:5:2686:5 | Self [trait MyTrait] | +| main.rs:2692:14:2692:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2692:14:2692:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2692:14:2692:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2692:28:2694:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:13:2693:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2693:13:2693:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2693:13:2693:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:13:2693:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:14:2698:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2698:14:2698:18 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2698:14:2698:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2698:28:2700:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:16 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:18 | self.0 | | main.rs:2688:5:2689:19 | S | +| main.rs:2699:13:2699:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:13:2699:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2704:15:2704:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2704:15:2704:19 | SelfParam | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2704:15:2704:19 | SelfParam | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2704:33:2706:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2704:33:2706:9 | { ... } | T.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:13:2705:24 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2705:13:2705:24 | S(...) | T | main.rs:2688:5:2689:19 | S | +| main.rs:2705:13:2705:24 | S(...) | T.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:15:2705:23 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2705:15:2705:23 | S(...) | T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:17:2705:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2705:17:2705:20 | self | TRef | main.rs:2688:5:2689:19 | S | +| main.rs:2705:17:2705:20 | self | TRef.T | main.rs:2703:10:2703:16 | T | +| main.rs:2705:17:2705:22 | self.0 | | main.rs:2703:10:2703:16 | T | +| main.rs:2709:14:2709:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2709:48:2726:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2709:48:2726:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2709:48:2726:5 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2709:48:2726:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:13:2710:13 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2710:13:2710:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:17:2715:9 | if b {...} else {...} | | main.rs:2688:5:2689:19 | S | +| main.rs:2710:17:2715:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2710:20:2710:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2710:22:2713:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2710:22:2713:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2711:17:2711:17 | y | | main.rs:2688:5:2689:19 | S | +| main.rs:2711:17:2711:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2711:21:2711:38 | ...::default(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2711:21:2711:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2712:13:2712:13 | y | | main.rs:2688:5:2689:19 | S | +| main.rs:2712:13:2712:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2713:16:2715:9 | { ... } | | main.rs:2688:5:2689:19 | S | +| main.rs:2713:16:2715:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:13:2714:16 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2714:13:2714:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:15:2714:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:13:2719:13 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2719:13:2719:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:17:2719:20 | S(...) | | main.rs:2688:5:2689:19 | S | +| main.rs:2719:17:2719:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:19:2719:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:9:2725:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2720:9:2725:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:9:2725:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:12:2720:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2720:14:2723:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2720:14:2723:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2720:14:2723:9 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2720:14:2723:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:14:2723:9 | { ... } | T.T | main.rs:2688:5:2689:19 | S | +| main.rs:2720:14:2723:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2720:14:2723:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2721:17:2721:17 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2721:17:2721:17 | x | T | main.rs:2688:5:2689:19 | S | +| main.rs:2721:17:2721:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2721:21:2721:21 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2721:21:2721:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2721:21:2721:26 | x.m2() | | main.rs:2688:5:2689:19 | S | +| main.rs:2721:21:2721:26 | x.m2() | T | main.rs:2688:5:2689:19 | S | +| main.rs:2721:21:2721:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2722:13:2722:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2722:13:2722:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2722:13:2722:23 | ...::new(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2722:13:2722:23 | ...::new(...) | T | main.rs:2688:5:2689:19 | S | +| main.rs:2722:13:2722:23 | ...::new(...) | T.T | main.rs:2688:5:2689:19 | S | +| main.rs:2722:13:2722:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2722:13:2722:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2722:22:2722:22 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2722:22:2722:22 | x | T | main.rs:2688:5:2689:19 | S | +| main.rs:2722:22:2722:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2723:16:2725:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2723:16:2725:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2723:16:2725:9 | { ... } | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2723:16:2725:9 | { ... } | T | main.rs:2688:5:2689:19 | S | +| main.rs:2723:16:2725:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2723:16:2725:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2724:13:2724:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2724:13:2724:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2724:13:2724:23 | ...::new(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2724:13:2724:23 | ...::new(...) | T | main.rs:2688:5:2689:19 | S | +| main.rs:2724:13:2724:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2724:13:2724:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2724:22:2724:22 | x | | main.rs:2688:5:2689:19 | S | +| main.rs:2724:22:2724:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2730:22:2734:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2731:18:2731:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2731:33:2733:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:13:2732:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:13:2732:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:2732:17:2732:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2739:11:2739:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2739:30:2747:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2741:13:2741:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2741:17:2745:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2742:13:2744:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2742:16:2742:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2742:21:2744:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2743:24:2743:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2746:9:2746:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2750:20:2757:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2753:26:2753:27 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2755:9:2755:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2755:18:2755:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2755:18:2755:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2756:9:2756:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2759:20:2761:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2760:16:2760:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2764:11:2764:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2764:30:2772:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2765:13:2765:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2765:17:2769:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2766:13:2768:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2766:16:2766:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2766:21:2768:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2767:24:2767:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2770:9:2770:30 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2770:18:2770:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2770:18:2770:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:29:2770:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2771:9:2771:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2776:16:2823:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2777:13:2777:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2777:13:2777:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2777:17:2777:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2777:17:2777:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2778:13:2778:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2778:13:2778:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2778:30:2778:30 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2778:30:2778:30 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:13:2779:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2779:13:2779:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:17:2779:35 | ...::None | | {EXTERNAL LOCATION} | Option | +| main.rs:2779:17:2779:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:13:2780:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2780:13:2780:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:17:2780:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | +| main.rs:2780:17:2780:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2782:26:2782:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:2782:26:2782:28 | opt | T | main.rs:2782:23:2782:23 | T | +| main.rs:2782:42:2782:42 | x | | main.rs:2782:23:2782:23 | T | +| main.rs:2782:48:2782:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2784:13:2784:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2784:13:2784:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:17:2784:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2784:17:2784:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:9:2785:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2785:20:2785:20 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:2785:20:2785:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:23:2785:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2792:13:2792:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2792:13:2792:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2792:13:2792:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2792:17:2792:39 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2792:17:2792:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2792:17:2792:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2792:37:2792:37 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:13:2793:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:13:2793:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:13:2793:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2793:40:2793:40 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2793:40:2793:40 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2793:40:2793:40 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:13:2794:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:13:2794:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2794:13:2794:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:17:2794:52 | ...::A {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2794:17:2794:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2794:17:2794:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2794:50:2794:50 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:13:2796:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:13:2796:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:13:2796:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2796:17:2798:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2797:20:2797:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2800:29:2800:29 | e | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2800:29:2800:29 | e | T1 | main.rs:2800:26:2800:26 | T | +| main.rs:2800:29:2800:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2800:53:2800:53 | x | | main.rs:2800:26:2800:26 | T | +| main.rs:2800:59:2800:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2803:13:2803:13 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2803:13:2803:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2803:13:2803:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2803:17:2805:9 | ...::B {...} | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2803:17:2805:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2803:17:2805:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2804:20:2804:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2806:9:2806:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2806:23:2806:23 | x | | main.rs:2787:9:2790:9 | MyEither | +| main.rs:2806:23:2806:23 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2806:23:2806:23 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:2806:26:2806:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:13:2808:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2808:13:2808:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2808:13:2808:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:17:2808:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2808:17:2808:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:2808:17:2808:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2808:28:2808:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2809:13:2809:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2809:13:2809:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2809:13:2809:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2809:38:2809:38 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2809:38:2809:38 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2809:38:2809:38 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:13:2810:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2810:13:2810:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2810:13:2810:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:17:2810:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2810:17:2810:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:2810:17:2810:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2810:43:2810:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:13:2811:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2811:13:2811:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:2811:13:2811:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:17:2811:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2811:17:2811:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:2811:17:2811:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2811:43:2811:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2813:29:2813:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:2813:29:2813:31 | res | E | main.rs:2813:26:2813:26 | E | +| main.rs:2813:29:2813:31 | res | T | main.rs:2813:23:2813:23 | T | +| main.rs:2813:48:2813:48 | x | | main.rs:2813:26:2813:26 | E | +| main.rs:2813:54:2813:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2815:13:2815:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2815:13:2815:13 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:2815:13:2815:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2815:17:2815:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2815:17:2815:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | +| main.rs:2815:17:2815:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2815:28:2815:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2816:9:2816:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2816:20:2816:20 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:2816:20:2816:20 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:2816:20:2816:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2816:23:2816:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:2818:17:2818:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:17:2818:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:17:2818:17 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2818:21:2818:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2818:21:2818:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2818:21:2818:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:9:2819:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2819:9:2819:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2819:9:2819:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:9:2819:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2819:16:2819:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2821:13:2821:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:2821:17:2821:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:9:2822:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:2822:9:2822:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:2822:9:2822:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2822:9:2822:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2822:16:2822:16 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:2829:14:2829:17 | SelfParam | | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:14:2832:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2832:14:2832:18 | SelfParam | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:21:2832:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2832:21:2832:25 | other | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2832:44:2834:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2832:44:2834:9 | { ... } | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2833:13:2833:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2833:13:2833:16 | self | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2833:13:2833:20 | self.f() | | {EXTERNAL LOCATION} | & | +| main.rs:2833:13:2833:20 | self.f() | TRef | main.rs:2827:5:2835:5 | Self [trait MyTrait] | +| main.rs:2839:14:2839:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:2839:28:2841:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:13:2840:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:2846:14:2846:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:2846:28:2848:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2847:13:2847:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:2853:14:2853:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2853:14:2853:17 | SelfParam | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2853:28:2855:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2853:28:2855:9 | { ... } | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2854:13:2854:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2854:13:2854:16 | self | TRef | main.rs:2851:10:2851:10 | T | +| main.rs:2858:25:2862:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:2859:17:2859:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2859:17:2859:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2859:21:2859:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2859:21:2859:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2860:9:2860:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2860:9:2860:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2860:9:2860:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:2860:13:2860:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2860:13:2860:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2860:13:2860:17 | x.f() | | {EXTERNAL LOCATION} | i32 | +| main.rs:2860:13:2860:17 | x.f() | | {EXTERNAL LOCATION} | usize | +| main.rs:2861:9:2861:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2861:9:2861:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2864:12:2872:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2865:13:2865:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2865:24:2865:24 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2865:24:2865:24 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:2866:13:2866:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2866:13:2866:13 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2866:17:2866:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:2866:17:2866:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2866:18:2866:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2867:13:2867:13 | z | | {EXTERNAL LOCATION} | & | +| main.rs:2867:13:2867:13 | z | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:2867:17:2867:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:2867:17:2867:22 | x.g(...) | | {EXTERNAL LOCATION} | & | +| main.rs:2867:17:2867:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:2867:21:2867:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2867:21:2867:21 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2869:13:2869:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2869:17:2869:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2870:13:2870:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2870:24:2870:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2870:24:2870:24 | 1 | | {EXTERNAL LOCATION} | usize | +| main.rs:2871:13:2871:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:2871:17:2871:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2871:17:2871:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2871:23:2871:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:2881:11:2916:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2882:5:2882:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2883:5:2883:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:5:2884:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:20:2884:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2884:41:2884:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2885:5:2885:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2886:5:2886:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2887:5:2887:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2888:5:2888:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2889:5:2889:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2890:5:2890:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2891:5:2891:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2892:5:2892:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2893:5:2893:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2894:5:2894:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2895:5:2895:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2896:5:2896:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2897:5:2897:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2898:5:2898:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2899:5:2899:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2900:5:2900:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2900:5:2900:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2901:5:2901:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2902:5:2902:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2903:5:2903:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2904:5:2904:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2905:5:2905:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2906:5:2906:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2907:5:2907:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2908:5:2908:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2909:5:2909:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2910:5:2910:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2911:5:2911:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2912:5:2912:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2913:5:2913:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2914:5:2914:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2914:5:2914:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2914:5:2914:20 | ...::f(...) | T | main.rs:2684:5:2686:5 | dyn MyTrait | +| main.rs:2914:5:2914:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2914:16:2914:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2915:5:2915:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | @@ -11523,7 +11386,6 @@ inferType | pattern_matching.rs:17:18:17:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:17:18:17:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:20:17:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:19:5:25:5 | match value { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:19:11:19:15 | value | | {EXTERNAL LOCATION} | Option | @@ -11539,7 +11401,6 @@ inferType | pattern_matching.rs:22:22:22:29 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:22:22:22:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:24:22:27 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:24:9:24:12 | None | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:24:9:24:12 | None | T | {EXTERNAL LOCATION} | i32 | @@ -11555,7 +11416,6 @@ inferType | pattern_matching.rs:28:14:28:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:28:14:28:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:16:28:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:9:29:12 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:16:29:20 | value | | {EXTERNAL LOCATION} | Option | @@ -11566,7 +11426,6 @@ inferType | pattern_matching.rs:30:14:30:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:30:14:30:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:16:30:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:32:9:32:14 | value2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:32:9:32:14 | value2 | TRef | {EXTERNAL LOCATION} | Option | @@ -11595,7 +11454,6 @@ inferType | pattern_matching.rs:35:18:35:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:35:18:35:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:20:35:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:9:38:14 | value3 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:18:38:19 | 42 | | {EXTERNAL LOCATION} | i32 | @@ -11613,7 +11471,6 @@ inferType | pattern_matching.rs:41:18:41:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:41:18:41:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:20:41:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:41:20:41:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:44:9:44:14 | value4 | | {EXTERNAL LOCATION} | Option | @@ -11638,7 +11495,6 @@ inferType | pattern_matching.rs:47:18:47:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:20:47:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:47:20:47:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:50:13:50:18 | value5 | | {EXTERNAL LOCATION} | & | @@ -11844,7 +11700,6 @@ inferType | pattern_matching.rs:175:22:175:42 | "Literal pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:175:22:175:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:45:175:57 | literal_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:10:177:10 | 1 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:15:180:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11855,7 +11710,6 @@ inferType | pattern_matching.rs:179:22:179:43 | "Negative literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:179:22:179:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:46:179:61 | negative_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:9:181:9 | 0 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:14:184:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11866,7 +11720,6 @@ inferType | pattern_matching.rs:183:22:183:39 | "Zero literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:183:22:183:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:42:183:53 | zero_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:9:185:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:14:185:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11883,7 +11736,6 @@ inferType | pattern_matching.rs:192:22:192:37 | "Pi matched: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:192:22:192:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:40:192:47 | pi_match | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:9:194:9 | _ | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:14:194:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11906,7 +11758,6 @@ inferType | pattern_matching.rs:201:22:201:41 | "String literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:201:22:201:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:44:201:54 | hello_match | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:201:44:201:54 | hello_match | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:203:9:203:9 | _ | | {EXTERNAL LOCATION} | & | @@ -11925,7 +11776,6 @@ inferType | pattern_matching.rs:210:22:210:39 | "True literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:210:22:210:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:42:210:51 | true_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:9:212:13 | false | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:18:215:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11936,7 +11786,6 @@ inferType | pattern_matching.rs:214:22:214:40 | "False literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:214:22:214:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:43:214:53 | false_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:219:30:277:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:220:9:220:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -11952,7 +11801,6 @@ inferType | pattern_matching.rs:226:22:226:45 | "Identifier pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:226:22:226:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:48:226:58 | bound_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:231:5:236:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:231:11:231:16 | &value | | {EXTERNAL LOCATION} | & | @@ -11973,7 +11821,6 @@ inferType | pattern_matching.rs:234:22:234:49 | "Reference identifier: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:234:22:234:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:52:234:60 | ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -11993,7 +11840,6 @@ inferType | pattern_matching.rs:244:22:244:45 | "Mutable identifier: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:244:22:244:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:48:244:56 | mut_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:249:9:249:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:249:9:249:20 | option_value | T | {EXTERNAL LOCATION} | i32 | @@ -12015,7 +11861,6 @@ inferType | pattern_matching.rs:253:22:253:49 | "@ pattern with literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:253:22:253:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:52:253:59 | at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12030,7 +11875,6 @@ inferType | pattern_matching.rs:257:22:257:47 | "@ pattern with range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:257:22:257:63 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:50:257:63 | range_at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12043,7 +11887,6 @@ inferType | pattern_matching.rs:261:22:261:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:261:22:261:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:40:261:49 | some_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:263:9:263:22 | ...::None | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:263:9:263:22 | ...::None | T | {EXTERNAL LOCATION} | i32 | @@ -12053,7 +11896,6 @@ inferType | pattern_matching.rs:264:22:264:33 | "None value\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:264:22:264:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:269:13:269:23 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:269:27:269:30 | 5i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:270:5:276:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12083,7 +11925,6 @@ inferType | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:274:22:274:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:279:28:290:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:280:9:280:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:280:17:280:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12104,7 +11945,6 @@ inferType | pattern_matching.rs:287:22:287:47 | "Wildcard pattern for: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:287:22:287:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:50:287:65 | wildcard_context | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:292:25:324:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:293:9:293:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12122,7 +11962,6 @@ inferType | pattern_matching.rs:299:22:299:42 | "Range inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:299:22:299:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:45:299:59 | range_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:10 | 11 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:12 | RangePat | | {EXTERNAL LOCATION} | i32 | @@ -12134,7 +11973,6 @@ inferType | pattern_matching.rs:303:22:303:40 | "Range from 11: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:303:22:303:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:43:303:52 | range_from | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:9:305:12 | RangePat | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:12:305:12 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -12146,7 +11984,6 @@ inferType | pattern_matching.rs:307:22:307:47 | "Range to 0 inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:307:22:307:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:50:307:67 | range_to_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:9:309:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:14:309:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12165,7 +12002,6 @@ inferType | pattern_matching.rs:316:22:316:41 | "Lowercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:316:22:316:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:44:316:57 | lowercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:11 | 'A' | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:17 | RangePat | | {EXTERNAL LOCATION} | char | @@ -12178,7 +12014,6 @@ inferType | pattern_matching.rs:320:22:320:41 | "Uppercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:320:22:320:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:44:320:57 | uppercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:9:322:9 | _ | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:14:322:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12202,7 +12037,6 @@ inferType | pattern_matching.rs:334:22:334:45 | "Dereferenced match: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:334:22:334:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:48:334:58 | deref_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:336:9:336:10 | &... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:336:9:336:10 | &... | TRef | {EXTERNAL LOCATION} | i32 | @@ -12215,7 +12049,6 @@ inferType | pattern_matching.rs:338:22:338:47 | "Dereferenced binding: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:338:22:338:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:50:338:60 | deref_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:342:5:347:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | &mut | @@ -12235,7 +12068,6 @@ inferType | pattern_matching.rs:345:22:345:46 | "Mutable ref pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:345:22:345:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:349:5:354:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12257,7 +12089,6 @@ inferType | pattern_matching.rs:352:22:352:44 | "Reference pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:352:22:352:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:47:352:57 | ref_pattern | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -12279,7 +12110,6 @@ inferType | pattern_matching.rs:364:22:364:41 | "Origin point: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:364:22:364:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:44:364:49 | origin | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:9:366:25 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:17:366:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12294,7 +12124,6 @@ inferType | pattern_matching.rs:369:22:369:56 | "Point on x-axis: x={}, point=... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:369:22:369:80 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:59:369:66 | x_axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:369:69:369:80 | x_axis_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:371:9:371:27 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | @@ -12307,7 +12136,6 @@ inferType | pattern_matching.rs:373:22:373:44 | "Point with x=10: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:373:22:373:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:47:373:57 | ten_x_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:9:375:22 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:17:375:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12322,7 +12150,6 @@ inferType | pattern_matching.rs:378:22:378:46 | "General point: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:378:22:378:68 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:49:378:57 | general_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:378:60:378:68 | general_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:383:9:383:13 | shape | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12344,7 +12171,6 @@ inferType | pattern_matching.rs:394:22:394:39 | "Rectangle: {}x{}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:394:22:394:64 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:42:394:51 | rect_width | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:394:54:394:64 | rect_height | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:396:9:396:9 | _ | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12372,7 +12198,6 @@ inferType | pattern_matching.rs:407:22:407:37 | "Pure red: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:407:22:407:48 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:40:407:48 | red_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:9:409:22 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:15:409:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12390,7 +12215,6 @@ inferType | pattern_matching.rs:414:17:414:37 | "Color: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:414:17:415:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:415:17:415:29 | red_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:32:415:46 | green_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:49:415:62 | blue_component | | {EXTERNAL LOCATION} | u8 | @@ -12408,7 +12232,6 @@ inferType | pattern_matching.rs:424:22:424:42 | "Reddish color: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:424:22:424:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:45:424:57 | reddish_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:9:426:20 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:15:426:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12421,7 +12244,6 @@ inferType | pattern_matching.rs:428:22:428:45 | "Any color with red: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:428:22:428:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:48:428:54 | any_red | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:434:9:434:15 | wrapper | | pattern_matching.rs:432:5:433:24 | Wrapper | | pattern_matching.rs:434:19:434:29 | Wrapper(...) | | pattern_matching.rs:432:5:433:24 | Wrapper | @@ -12438,7 +12260,6 @@ inferType | pattern_matching.rs:438:22:438:34 | "Wrapped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:438:22:438:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:37:438:49 | wrapped_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:443:25:498:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:444:9:444:13 | tuple | | {EXTERNAL LOCATION} | (T_3) | @@ -12492,7 +12313,6 @@ inferType | pattern_matching.rs:450:22:450:40 | "Exact tuple: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:450:22:450:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:43:450:53 | exact_tuple | | {EXTERNAL LOCATION} | (T_3) | | pattern_matching.rs:450:43:450:53 | exact_tuple | T0 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:450:43:450:53 | exact_tuple | T1 | {EXTERNAL LOCATION} | i32 | @@ -12526,7 +12346,6 @@ inferType | pattern_matching.rs:456:22:456:42 | "Tuple: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:456:22:456:79 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:45:456:54 | first_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i64 | @@ -12551,7 +12370,6 @@ inferType | pattern_matching.rs:464:22:464:40 | "First element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:464:22:464:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:9:469:12 | unit | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:16:469:17 | TupleExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:470:5:475:5 | match unit { ... } | | {EXTERNAL LOCATION} | () | @@ -12565,7 +12383,6 @@ inferType | pattern_matching.rs:473:22:473:39 | "Unit value: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:473:22:473:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:42:473:51 | unit_value | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:478:9:478:14 | single | | {EXTERNAL LOCATION} | (T_1) | | pattern_matching.rs:478:9:478:14 | single | T0 | {EXTERNAL LOCATION} | i32 | @@ -12586,7 +12403,6 @@ inferType | pattern_matching.rs:482:22:482:47 | "Single element tuple: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:482:22:482:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:50:482:60 | single_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | TRef | {EXTERNAL LOCATION} | (T_2) | @@ -12613,13 +12429,11 @@ inferType | pattern_matching.rs:489:18:489:24 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:489:18:489:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:9:490:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:490:18:490:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef.T0 | {EXTERNAL LOCATION} | i32 | @@ -12643,13 +12457,11 @@ inferType | pattern_matching.rs:496:14:496:20 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:496:14:496:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:5:497:24 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:497:14:497:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:500:33:520:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:501:9:501:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:501:17:501:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12665,7 +12477,6 @@ inferType | pattern_matching.rs:507:22:507:48 | "Parenthesized pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:507:22:507:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:51:507:61 | paren_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:512:9:512:13 | tuple | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:512:9:512:13 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -12695,7 +12506,6 @@ inferType | pattern_matching.rs:517:22:517:53 | "Parenthesized in tuple: {}, {... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:517:22:517:71 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:56:517:62 | paren_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:517:65:517:71 | paren_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:522:25:563:1 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12733,7 +12543,6 @@ inferType | pattern_matching.rs:529:22:529:40 | "Empty slice: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:529:22:529:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:43:529:53 | empty_slice | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12746,7 +12555,6 @@ inferType | pattern_matching.rs:533:22:533:41 | "Single element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:533:22:533:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:535:9:535:23 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12756,7 +12564,6 @@ inferType | pattern_matching.rs:538:22:538:43 | "Two elements: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:538:22:538:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:540:9:540:34 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12766,7 +12573,6 @@ inferType | pattern_matching.rs:545:17:545:53 | "First: {}, last: {}, middle l... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:545:17:548:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:554:9:554:13 | array | | {EXTERNAL LOCATION} | [;] | | pattern_matching.rs:554:9:554:13 | array | TArray | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:554:17:554:28 | [...] | | {EXTERNAL LOCATION} | [;] | @@ -12785,7 +12591,6 @@ inferType | pattern_matching.rs:560:22:560:49 | "Array elements: {}, {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:560:22:560:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:565:24:601:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:567:27:567:28 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:568:9:568:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12801,7 +12606,6 @@ inferType | pattern_matching.rs:573:22:573:43 | "Matches constant: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:573:22:573:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:46:573:56 | const_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:9:575:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:14:575:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12821,7 +12625,6 @@ inferType | pattern_matching.rs:582:22:582:35 | "None variant\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:582:22:582:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:584:24:584:24 | x | | {EXTERNAL LOCATION} | i32 | @@ -12833,7 +12636,6 @@ inferType | pattern_matching.rs:586:22:586:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:586:22:586:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:40:586:49 | some_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:591:5:600:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:591:11:591:51 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | @@ -12852,7 +12654,6 @@ inferType | pattern_matching.rs:594:22:594:35 | "Ok value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:594:22:594:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:38:594:45 | ok_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | E | {EXTERNAL LOCATION} | usize | @@ -12866,7 +12667,6 @@ inferType | pattern_matching.rs:598:22:598:32 | "Error: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:598:22:598:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:35:598:43 | err_value | | {EXTERNAL LOCATION} | usize | | pattern_matching.rs:603:22:638:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:604:9:604:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12885,7 +12685,6 @@ inferType | pattern_matching.rs:610:22:610:39 | "Small number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:610:22:610:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:42:610:50 | small_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:10 | 10 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:15 | 10 \| 20 | | {EXTERNAL LOCATION} | i32 | @@ -12898,7 +12697,6 @@ inferType | pattern_matching.rs:614:22:614:39 | "Round number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:614:22:614:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:42:614:50 | round_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:9:616:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:14:616:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12927,7 +12725,6 @@ inferType | pattern_matching.rs:625:22:625:46 | "Point on axis: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:625:22:625:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:49:625:54 | axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:625:57:625:62 | axis_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:627:9:627:9 | _ | | pattern_matching.rs:135:1:140:1 | Point | @@ -12949,7 +12746,6 @@ inferType | pattern_matching.rs:634:22:634:35 | "In range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:634:22:634:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:38:634:51 | range_or_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:9:636:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:14:636:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12985,7 +12781,6 @@ inferType | pattern_matching.rs:647:22:647:42 | "First with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:647:22:647:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:5:656:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:11:651:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:651:11:651:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13003,7 +12798,6 @@ inferType | pattern_matching.rs:654:22:654:41 | "Last with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:654:22:654:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:5:664:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:11:658:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:658:11:658:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13021,7 +12815,6 @@ inferType | pattern_matching.rs:662:22:662:45 | "First and last: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:662:22:662:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:667:9:667:13 | point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:17:667:38 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:28:667:29 | 10 | | {EXTERNAL LOCATION} | i32 | @@ -13038,30 +12831,25 @@ inferType | pattern_matching.rs:671:22:671:39 | "X coordinate: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:671:22:671:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:42:671:47 | rest_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:676:25:696:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:5:678:19 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:17:678:18 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:678:17:678:18 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:678:17:678:18 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:5:679:18 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | x | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:679:17:679:17 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:5:694:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:29 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:694:21:694:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:28:694:29 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:5:695:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:28 | match 10i32 { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:695:21:695:28 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:28:695:28 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:698:34:724:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:700:9:700:20 | complex_data | | {EXTERNAL LOCATION} | (T_2) | @@ -13112,7 +12900,6 @@ inferType | pattern_matching.rs:709:17:709:57 | "Complex nested: y={}, green={... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:709:17:710:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:710:17:710:24 | nested_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:710:27:710:34 | nested_g | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:710:37:710:44 | nested_b | | {EXTERNAL LOCATION} | u8 | @@ -13145,7 +12932,6 @@ inferType | pattern_matching.rs:716:22:716:50 | "Alternative complex: x={:?}\\n... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:716:22:716:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:53:716:65 | alt_complex_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:719:9:719:13 | other | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:719:9:719:13 | other | T0 | pattern_matching.rs:135:1:140:1 | Point | @@ -13165,7 +12951,6 @@ inferType | pattern_matching.rs:721:22:721:47 | "Other complex data: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:721:22:721:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:50:721:62 | other_complex | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:721:50:721:62 | other_complex | T0 | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:721:50:721:62 | other_complex | T1 | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13362,7 +13147,6 @@ inferType | pattern_matching.rs:798:18:798:42 | "Point in loop: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:798:18:798:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:45:798:50 | loop_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:798:53:798:58 | loop_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:802:9:802:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13385,7 +13169,6 @@ inferType | pattern_matching.rs:805:18:805:44 | "If let with @ pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:805:18:805:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:47:805:54 | if_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:809:13:809:17 | stack | | {EXTERNAL LOCATION} | Vec | | pattern_matching.rs:809:13:809:17 | stack | A | {EXTERNAL LOCATION} | Global | @@ -13413,7 +13196,6 @@ inferType | pattern_matching.rs:812:18:812:29 | "Popped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:812:18:812:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:32:812:42 | while_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:9:816:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:17:816:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -13431,7 +13213,6 @@ inferType | pattern_matching.rs:820:22:820:35 | "Positive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:820:22:820:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:38:820:44 | guard_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:9:822:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:14:822:15 | { ... } | | {EXTERNAL LOCATION} | () | From fd5658dfe8fc5e5d24fef2b49d4dcc16a0221335 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 Jan 2026 12:22:29 +0100 Subject: [PATCH 178/263] Rust: Tweak tests for associated types --- .../type-inference/associated_types.rs | 300 ++++--- .../type-inference/type-inference.expected | 799 +++++++++--------- 2 files changed, 592 insertions(+), 507 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs index 6ea5dc29575..85de0e05aa0 100644 --- a/rust/ql/test/library-tests/type-inference/associated_types.rs +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -1,14 +1,58 @@ -mod associated_type_in_trait { - #[derive(Debug)] - struct Wrapper { - field: A, - } +#[derive(Debug, Default, Copy, Clone)] +struct Wrapper(A); - impl Wrapper { - fn unwrap(self) -> A { - self.field // $ fieldof=Wrapper - } +impl Wrapper { + fn unwrap(self) -> A { + self.0 // $ fieldof=Wrapper } +} + +#[derive(Debug, Default)] +struct S; + +#[derive(Debug, Default)] +struct S2; + +#[derive(Debug, Default)] +struct S3; + +trait GetSet { + type Output; + + // GetSet::get + fn get(&self) -> Self::Output; + + // GetSet::set + fn set(&self, _a: Self::Output) {} +} + +trait AnotherGet: GetSet { + type AnotherOutput; + + // AnotherGet::get_another + fn get_another(&self) -> Self::AnotherOutput; +} + +impl GetSet for S { + type Output = S3; + + // S::get + fn get(&self) -> Self::Output { + S3 + } +} + +impl GetSet for Wrapper { + type Output = T; + + // Wrapper::get + fn get(&self) -> Self::Output { + self.0 // $ fieldof=Wrapper + } +} + +mod default_method_using_associated_type { + use super::*; trait MyTrait { type AssociatedType; @@ -22,22 +66,103 @@ mod associated_type_in_trait { Self: Sized, { self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType - Self::AssociatedType::default() + let _default = Self::AssociatedType::default(); // $ MISSING: target=default _default:AssociatedType + Self::AssociatedType::default() // $ MISSING: target=default } } + impl MyTrait for S { + type AssociatedType = S3; + + // S::m1 + fn m1(self) -> Self::AssociatedType { + S3 + } + } + + impl MyTrait for S2 { + // Associated type definition with a type argument + type AssociatedType = Wrapper; + + fn m1(self) -> Self::AssociatedType { + Wrapper(self) + } + } + + pub fn test() { + let x1 = S; + // Call to method in `impl` block + println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():S3 + + let x2 = S; + // Call to default method in `trait` block + let y = x2.m2(); // $ target=m2 type=y:S3 + println!("{:?}", y); + + let x5 = S2; + println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 + let x6 = S2; + println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 + } +} + +// Tests for signatures that access associated types from type parameters +mod type_param_access_associated_type { + use super::*; + + fn tp_with_as(thing: T) -> ::Output { + thing.get() // $ target=GetSet::get + } + + fn tp_without_as(thing: T) -> T::Output { + thing.get() // $ target=GetSet::get + } + + pub fn test() { + let _o1 = tp_with_as(S); // $ target=tp_with_as MISSING: type=_o1:S3 + let _o2 = tp_without_as(S); // $ target=tp_without_as MISSING: type=_o2:S3 + } +} + +mod generic_associated_type { + use super::*; + trait MyTraitAssoc2 { type GenericAssociatedType; - // MyTrait::put + // MyTraitAssoc2::put fn put(&self, a: A) -> Self::GenericAssociatedType; - fn putTwo(&self, a: A, b: A) -> Self::GenericAssociatedType { - self.put(a); // $ target=MyTrait::put - self.put(b) // $ target=MyTrait::put + // MyTraitAssoc2::put_two + fn put_two(&self, a: A, b: A) -> Self::GenericAssociatedType { + self.put(a); // $ target=MyTraitAssoc2::put + self.put(b) // $ target=MyTraitAssoc2::put } } + impl MyTraitAssoc2 for S { + // Associated type with a type parameter + type GenericAssociatedType = Wrapper; + + // S::put + fn put(&self, a: A) -> Wrapper { + Wrapper(a) + } + } + + pub fn test() { + let s = S; + // Call to the method in `impl` block + let _g1 = s.put(1i32); // $ target=S::put type=_g1:A.i32 + + // Call to default implementation in `trait` block + let _g2 = s.put_two(true, false); // $ target=MyTraitAssoc2::put_two MISSING: type=_g2:A.bool + } +} + +mod multiple_associated_types { + use super::*; + // A generic trait with multiple associated types. trait TraitMultipleAssoc { type Assoc1; @@ -50,62 +175,12 @@ mod associated_type_in_trait { fn get_two(&self) -> Self::Assoc2; } - #[derive(Debug, Default)] - struct S; - - #[derive(Debug, Default)] - struct S2; - - #[derive(Debug, Default)] - struct AT; - - impl MyTrait for S { - type AssociatedType = AT; - - // S::m1 - fn m1(self) -> Self::AssociatedType { - AT - } - } - - impl MyTraitAssoc2 for S { - // Associated type with a type parameter - type GenericAssociatedType = Wrapper; - - // S::put - fn put(&self, a: A) -> Wrapper { - Wrapper { field: a } - } - } - - impl MyTrait for S2 { - // Associated type definition with a type argument - type AssociatedType = Wrapper; - - fn m1(self) -> Self::AssociatedType { - Wrapper { field: self } - } - } - - // NOTE: This implementation is just to make it possible to call `m2` on `S2.` - impl Default for Wrapper { - fn default() -> Self { - Wrapper { field: S2 } - } - } - - // Function that returns an associated type from a trait bound - - fn g(thing: T) -> ::AssociatedType { - thing.m1() // $ target=MyTrait::m1 - } - - impl TraitMultipleAssoc for AT { + impl TraitMultipleAssoc for S3 { type Assoc1 = S; type Assoc2 = S2; - fn get_zero(&self) -> AT { - AT + fn get_zero(&self) -> S3 { + S3 } fn get_one(&self) -> Self::Assoc1 { @@ -118,82 +193,59 @@ mod associated_type_in_trait { } pub fn test() { - let x1 = S; - // Call to method in `impl` block - println!("{:?}", x1.m1()); // $ target=S::m1 type=x1.m1():AT - - let x2 = S; - // Call to default method in `trait` block - let y = x2.m2(); // $ target=m2 type=y:AT - println!("{:?}", y); - - let x3 = S; - // Call to the method in `impl` block - println!("{:?}", x3.put(1).unwrap()); // $ target=S::put target=unwrap - - // Call to default implementation in `trait` block - println!("{:?}", x3.putTwo(2, 3).unwrap()); // $ target=putTwo target=unwrap - - let x4 = g(S); // $ target=g $ MISSING: type=x4:AT - println!("{:?}", x4); - - let x5 = S2; - println!("{:?}", x5.m1()); // $ target=m1 type=x5.m1():A.S2 - let x6 = S2; - println!("{:?}", x6.m2()); // $ target=m2 type=x6.m2():A.S2 - - let assoc_zero = AT.get_zero(); // $ target=get_zero type=assoc_zero:AT - let assoc_one = AT.get_one(); // $ target=get_one type=assoc_one:S - let assoc_two = AT.get_two(); // $ target=get_two type=assoc_two:S2 + let _assoc_zero = S3.get_zero(); // $ target=get_zero type=_assoc_zero:S3 + let _assoc_one = S3.get_one(); // $ target=get_one type=_assoc_one:S + let _assoc_two = S3.get_two(); // $ target=get_two type=_assoc_two:S2 } } mod associated_type_in_supertrait { - trait Supertrait { - type Content; - // Supertrait::insert - fn insert(&self, content: Self::Content); - } + use super::*; - trait Subtrait: Supertrait { + trait Subtrait: GetSet { // Subtrait::get_content - fn get_content(&self) -> Self::Content; + fn get_content(&self) -> Self::Output; } // A subtrait declared using a `where` clause. trait Subtrait2 where - Self: Supertrait, + Self: GetSet, { // Subtrait2::insert_two - fn insert_two(&self, c1: Self::Content, c2: Self::Content) { - self.insert(c1); // $ target=Supertrait::insert - self.insert(c2); // $ target=Supertrait::insert + fn insert_two(&self, c1: Self::Output, c2: Self::Output) { + self.set(c1); // $ target=GetSet::set + self.set(c2); // $ target=GetSet::set } } struct MyType(T); - impl Supertrait for MyType { - type Content = T; - fn insert(&self, _content: Self::Content) { + impl GetSet for MyType { + type Output = T; + + fn get(&self) -> Self::Output { + self.0 // $ fieldof=MyType + } + + fn set(&self, _content: Self::Output) { println!("Inserting content: "); } } - impl Subtrait for MyType { + impl Subtrait for MyType { // MyType::get_content - fn get_content(&self) -> Self::Content { - (*self).0.clone() // $ fieldof=MyType target=clone target=deref + fn get_content(&self) -> Self::Output { + (*self).0 // $ fieldof=MyType target=deref } } - fn get_content(item: &T) -> T::Content { + fn get_content(item: &T) -> T::Output { item.get_content() // $ target=Subtrait::get_content } - fn insert_three(item: &T, c1: T::Content, c2: T::Content, c3: T::Content) { - item.insert(c1); // $ target=Supertrait::insert + fn insert_three(item: &T, c1: T::Output, c2: T::Output, c3: T::Output) { + item.set(c1); // $ target=GetSet::set item.insert_two(c2, c3); // $ target=Subtrait2::insert_two } @@ -207,30 +259,30 @@ mod associated_type_in_supertrait { } mod generic_associated_type_name_clash { - struct GenS(GenT); + use super::*; - trait TraitWithAssocType { - type Output; - fn get_input(self) -> Self::Output; - } + struct ST(T); - impl TraitWithAssocType for GenS { + impl GetSet for ST { // This is not a recursive type, the `Output` on the right-hand side // refers to the type parameter of the impl block just above. type Output = Result; - fn get_input(self) -> Self::Output { - Ok(self.0) // $ fieldof=GenS type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output + fn get(&self) -> Self::Output { + Ok(self.0) // $ fieldof=ST type=Ok(...):Result type=Ok(...):T.Output type=Ok(...):E.Output } } pub fn test() { - let _y = GenS(true).get_input(); // $ type=_y:Result type=_y:T.bool type=_y:E.bool target=get_input + let _y = ST(true).get(); // $ type=_y:Result type=_y:T.bool type=_y:E.bool target=get } } pub fn test() { - associated_type_in_trait::test(); // $ target=test + default_method_using_associated_type::test(); // $ target=test + type_param_access_associated_type::test(); // $ target=test + generic_associated_type::test(); // $ target=test + multiple_associated_types::test(); // $ target=test associated_type_in_supertrait::test(); // $ target=test generic_associated_type_name_clash::test(); // $ target=test } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 422e691ddf9..24b8ea7a067 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1,146 +1,163 @@ inferCertainType -| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | -| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | -| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | -| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | -| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | -| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:5:15:5:18 | SelfParam | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:5:15:5:18 | SelfParam | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:5:26:7:5 | { ... } | | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:6:9:6:12 | self | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:6:9:6:12 | self | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:23:12:23:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | +| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | +| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | +| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -4543,247 +4560,263 @@ inferCertainType | raw_pointer.rs:59:5:59:30 | raw_type_from_deref(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:59:25:59:29 | false | | {EXTERNAL LOCATION} | bool | inferType -| associated_types.rs:8:19:8:22 | SelfParam | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:8:19:8:22 | SelfParam | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:8:30:10:9 | { ... } | | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:9:13:9:16 | self | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:9:13:9:16 | self | A | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:9:13:9:22 | self.field | | associated_types.rs:7:10:7:10 | A | -| associated_types.rs:17:15:17:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:19:15:19:18 | SelfParam | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:23:9:26:9 | { ... } | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:24:13:24:16 | self | | associated_types.rs:13:5:27:5 | Self [trait MyTrait] | -| associated_types.rs:24:13:24:21 | self.m1() | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:25:13:25:43 | ...::default(...) | | associated_types.rs:14:9:14:28 | AssociatedType | -| associated_types.rs:33:19:33:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:19:33:23 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:33:26:33:26 | a | | associated_types.rs:33:16:33:16 | A | -| associated_types.rs:35:22:35:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:35:22:35:26 | SelfParam | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:35:29:35:29 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:35:35:35 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:35:75:38:9 | { ... } | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:36:13:36:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:36:13:36:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:36:13:36:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:36:22:36:22 | a | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:37:13:37:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:37:13:37:16 | self | TRef | associated_types.rs:29:5:39:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:37:13:37:23 | self.put(...) | | associated_types.rs:30:9:30:52 | GenericAssociatedType | -| associated_types.rs:37:22:37:22 | b | | associated_types.rs:35:19:35:19 | A | -| associated_types.rs:46:21:46:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:46:21:46:25 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:48:20:48:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:48:20:48:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:50:20:50:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:20:50:24 | SelfParam | TRef | associated_types.rs:41:5:51:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:66:15:66:18 | SelfParam | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:66:45:68:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:67:13:67:14 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:76:19:76:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:76:19:76:23 | SelfParam | TRef | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:76:26:76:26 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:76:46:78:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:76:46:78:9 | { ... } | A | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:77:13:77:32 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:77:13:77:32 | Wrapper {...} | A | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:77:30:77:30 | a | | associated_types.rs:76:16:76:16 | A | -| associated_types.rs:85:15:85:18 | SelfParam | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:85:45:87:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:85:45:87:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:86:13:86:35 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:86:13:86:35 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:86:30:86:33 | self | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:92:30:94:9 | { ... } | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:92:30:94:9 | { ... } | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:93:13:93:33 | Wrapper {...} | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:93:13:93:33 | Wrapper {...} | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:93:30:93:31 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:99:22:99:26 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:100:9:100:13 | thing | | associated_types.rs:99:10:99:19 | T | -| associated_types.rs:107:21:107:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:107:21:107:25 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:107:34:109:9 | { ... } | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:108:13:108:14 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:20:111:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:111:20:111:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:111:43:113:9 | { ... } | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:112:13:112:13 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:115:20:115:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:115:20:115:24 | SelfParam | TRef | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:115:43:117:9 | { ... } | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:116:13:116:14 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:120:19:148:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:121:13:121:14 | x1 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:121:18:121:18 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:123:9:123:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:123:18:123:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:123:18:123:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:18:123:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:123:26:123:27 | x1 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:123:26:123:32 | x1.m1() | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:125:13:125:14 | x2 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:125:18:125:18 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:127:13:127:13 | y | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:127:17:127:18 | x2 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:127:17:127:23 | x2.m2() | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:128:9:128:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:128:18:128:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:128:18:128:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:18:128:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:128:26:128:26 | y | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:130:13:130:14 | x3 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:130:18:130:18 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:132:9:132:44 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:132:18:132:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:132:18:132:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:18:132:43 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:132:26:132:27 | x3 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:132:26:132:34 | x3.put(...) | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:132:26:132:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:132:26:132:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:132:33:132:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:135:9:135:50 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:135:18:135:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:135:18:135:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:18:135:49 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:135:26:135:27 | x3 | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:135:26:135:40 | x3.putTwo(...) | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:135:36:135:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:135:39:135:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:137:20:137:20 | S | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:138:9:138:28 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:18:138:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:138:18:138:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:138:18:138:27 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:140:13:140:14 | x5 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:140:18:140:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:141:9:141:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:141:18:141:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:141:18:141:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:18:141:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:141:26:141:27 | x5 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:141:26:141:32 | x5.m1() | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:141:26:141:32 | x5.m1() | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:142:13:142:14 | x6 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:142:18:142:19 | S2 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:143:9:143:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:143:18:143:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:143:18:143:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:18:143:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:143:26:143:27 | x6 | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:143:26:143:32 | x6.m2() | | associated_types.rs:2:5:5:5 | Wrapper | -| associated_types.rs:143:26:143:32 | x6.m2() | A | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:145:13:145:22 | assoc_zero | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:145:26:145:27 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:145:26:145:38 | AT.get_zero() | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:146:13:146:21 | assoc_one | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:146:25:146:26 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:146:25:146:36 | AT.get_one() | | associated_types.rs:53:5:54:13 | S | -| associated_types.rs:147:13:147:21 | assoc_two | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:147:25:147:26 | AT | | associated_types.rs:59:5:60:14 | AT | -| associated_types.rs:147:25:147:36 | AT.get_two() | | associated_types.rs:56:5:57:14 | S2 | -| associated_types.rs:155:19:155:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:155:19:155:23 | SelfParam | TRef | associated_types.rs:152:5:156:5 | Self [trait Supertrait] | -| associated_types.rs:155:26:155:32 | content | | associated_types.rs:153:9:153:21 | Content | -| associated_types.rs:160:24:160:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:160:24:160:28 | SelfParam | TRef | associated_types.rs:158:5:161:5 | Self [trait Subtrait] | -| associated_types.rs:169:23:169:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:169:23:169:27 | SelfParam | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:169:68:172:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:170:13:170:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:170:13:170:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:170:13:170:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:171:13:171:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:13:171:16 | self | TRef | associated_types.rs:163:5:173:5 | Self [trait Subtrait2] | -| associated_types.rs:171:13:171:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:179:19:179:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:179:19:179:23 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:179:19:179:23 | SelfParam | TRef.T | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:26:179:33 | _content | | associated_types.rs:177:10:177:10 | T | -| associated_types.rs:179:51:181:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:13:180:43 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:180:22:180:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:180:22:180:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:180:22:180:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:186:24:186:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:24:186:28 | SelfParam | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:186:24:186:28 | SelfParam | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:186:48:188:9 | { ... } | | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:13:187:19 | (...) | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:13:187:19 | (...) | T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:13:187:21 | ... .0 | | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:13:187:29 | ... .clone() | | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:14:187:18 | * ... | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:14:187:18 | * ... | T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:187:15:187:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:187:15:187:18 | self | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:187:15:187:18 | self | TRef.T | associated_types.rs:184:10:184:17 | T | -| associated_types.rs:191:33:191:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:191:33:191:36 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:192:9:192:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:192:9:192:12 | item | TRef | associated_types.rs:191:20:191:30 | T | -| associated_types.rs:195:35:195:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:195:35:195:38 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:195:93:198:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:196:9:196:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:196:9:196:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:196:9:196:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:197:9:197:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:197:9:197:12 | item | TRef | associated_types.rs:195:21:195:32 | T | -| associated_types.rs:197:9:197:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:200:19:206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:201:13:201:17 | item1 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:201:13:201:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:201:21:201:33 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:201:21:201:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:201:28:201:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:202:25:202:29 | item1 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:202:25:202:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:204:13:204:17 | item2 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:204:13:204:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:204:21:204:32 | MyType(...) | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:204:21:204:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:204:28:204:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:205:37:205:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:205:37:205:42 | &item2 | TRef | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:205:37:205:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:205:38:205:42 | item2 | | associated_types.rs:175:5:175:24 | MyType | -| associated_types.rs:205:38:205:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:214:22:214:25 | SelfParam | | associated_types.rs:212:5:215:5 | Self [trait TraitWithAssocType] | -| associated_types.rs:222:22:222:25 | SelfParam | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:222:22:222:25 | SelfParam | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:222:44:224:9 | { ... } | E | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:222:44:224:9 | { ... } | T | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:13:223:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:223:13:223:22 | Ok(...) | E | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:13:223:22 | Ok(...) | T | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:16:223:19 | self | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:223:16:223:19 | self | GenT | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:223:16:223:21 | self.0 | | associated_types.rs:217:10:217:15 | Output | -| associated_types.rs:227:19:229:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:228:13:228:14 | _y | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:228:13:228:14 | _y | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:13:228:14 | _y | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:18:228:27 | GenS(...) | | associated_types.rs:210:5:210:28 | GenS | -| associated_types.rs:228:18:228:27 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:18:228:39 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:228:18:228:39 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:18:228:39 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:228:23:228:26 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:232:15:236:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:233:5:233:36 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:234:5:234:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:235:5:235:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:5:15:5:18 | SelfParam | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:5:15:5:18 | SelfParam | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:5:26:7:5 | { ... } | | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:6:9:6:12 | self | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:6:9:6:12 | self | A | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:6:9:6:14 | self.0 | | associated_types.rs:4:6:4:6 | A | +| associated_types.rs:23:12:23:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | +| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:41:9:41:10 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:50:9:50:14 | self.0 | | associated_types.rs:45:6:45:12 | T | +| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | +| associated_types.rs:68:13:68:21 | self.m1() | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:70:13:70:43 | ...::default(...) | | associated_types.rs:58:9:58:28 | AssociatedType | +| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:79:13:79:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:88:13:88:25 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:88:13:88:25 | Wrapper(...) | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:93:13:93:14 | x1 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:93:18:93:18 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:95:9:95:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:95:26:95:27 | x1 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:95:26:95:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:97:13:97:14 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:97:18:97:18 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:99:13:99:13 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:99:17:99:18 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:99:17:99:23 | x2.m2() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:100:9:100:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:100:26:100:26 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:102:13:102:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:102:18:102:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:103:9:103:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:103:26:103:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:103:26:103:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:103:26:103:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:104:13:104:14 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:104:18:104:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:105:9:105:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:105:26:105:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:105:26:105:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:105:26:105:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | +| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | +| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:122:30:122:30 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:123:33:123:33 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | +| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:138:13:138:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:139:13:139:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | +| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | +| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:149:13:149:22 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:149:13:149:22 | Wrapper(...) | A | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | +| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:154:13:154:13 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:154:17:154:17 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:156:13:156:15 | _g1 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:156:13:156:15 | _g1 | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:156:19:156:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:156:19:156:29 | s.put(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:156:19:156:29 | s.put(...) | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:13:159:15 | _g2 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:159:19:159:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:159:19:159:40 | s.put_two(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:183:13:183:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:187:13:187:13 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:191:13:191:14 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:196:13:196:23 | _assoc_zero | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:196:27:196:28 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:196:27:196:39 | S3.get_zero() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:197:13:197:22 | _assoc_one | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:197:26:197:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:197:26:197:37 | S3.get_one() | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:198:13:198:22 | _assoc_two | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:198:26:198:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:198:26:198:37 | S3.get_two() | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | +| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:217:13:217:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | +| associated_types.rs:218:13:218:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:228:13:228:18 | self.0 | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | +| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:13:232:43 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:238:47:240:9 | { ... } | | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:13:239:19 | (...) | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:13:239:19 | (...) | T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:13:239:21 | ... .0 | | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:14:239:18 | * ... | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:14:239:18 | * ... | T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | +| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | +| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:248:9:248:20 | item.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | +| associated_types.rs:249:9:249:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:253:13:253:17 | item1 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:253:13:253:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:253:21:253:33 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:253:21:253:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:254:25:254:29 | item1 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:254:25:254:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:256:13:256:17 | item2 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:256:13:256:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:256:21:256:32 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:256:21:256:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:257:37:257:42 | &item2 | TRef | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:257:37:257:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:257:38:257:42 | item2 | | associated_types.rs:222:5:222:24 | MyType | +| associated_types.rs:257:38:257:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:13:272:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:272:13:272:22 | Ok(...) | E | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:13:272:22 | Ok(...) | T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:272:16:272:21 | self.0 | | associated_types.rs:266:10:266:21 | Output | +| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:277:13:277:14 | _y | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:277:13:277:14 | _y | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:13:277:14 | _y | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:18:277:25 | ST(...) | | associated_types.rs:264:5:264:20 | ST | +| associated_types.rs:277:18:277:25 | ST(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:18:277:31 | ... .get() | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:277:18:277:31 | ... .get() | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:18:277:31 | ... .get() | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | From 62193540f75b50dd50fb8fdbe51fe37c62c4bc9c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 11:10:22 +0100 Subject: [PATCH 179/263] Rust: Add additional tests for associated types --- .../type-inference/associated_types.rs | 76 ++ .../type-inference/type-inference.expected | 937 ++++++++++-------- 2 files changed, 621 insertions(+), 392 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs index 85de0e05aa0..d62df911745 100644 --- a/rust/ql/test/library-tests/type-inference/associated_types.rs +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -26,6 +26,10 @@ trait GetSet { fn set(&self, _a: Self::Output) {} } +fn get + ?Sized>(item: &T) -> O { + item.get() // $ target=GetSet::get +} + trait AnotherGet: GetSet { type AnotherOutput; @@ -124,6 +128,55 @@ mod type_param_access_associated_type { } } +// Tests for specifying associated types using equalities, e.g., `Trait` +mod equality_on_associated_type { + use super::*; + + fn _in_same_trait(x: T) + where + T: GetSet, + { + let _a = x.get(); // $ target=GetSet::get type=_a:char + } + + // Here we specify `Output` from `GetSet` through the subtrait `AnotherGet`. + fn _in_subtrait(x: T) + where + T: AnotherGet, + { + let _a1 = x.get(); // $ target=GetSet::get MISSING: type=_a1:i32 + let _a2 = get(&x); // $ target=get MISSING: type=_a2:i32 + let _b = x.get_another(); // $ type=_b:bool target=AnotherGet::get_another + } + + // Here we specify the associated types as two separate trait bounds + fn _two_bounds(x: T) + where + T: AnotherGet, + T: GetSet, + { + let _a1 = x.get(); // $ target=GetSet::get type=_a1:i32 + let _a2 = get(&x); // $ target=get type=_a2:i32 + let _b = x.get_another(); // $ type=_b:bool target=AnotherGet::get_another + } + + trait AssocNameClash: GetSet { + type Output; // This name clashes with GetSet::Output + + // AssocNameClash::get2 + fn get2(&self) -> ::Output; + } + + fn _two_bounds_name_clash(x: T) + where + T: AssocNameClash, + T: GetSet, + { + let _a = x.get(); // $ type=_a:i32 target=GetSet::get + let _b = x.get2(); // $ target=AssocNameClash::get2 MISSING: type=_b:char + } +} + mod generic_associated_type { use super::*; @@ -278,6 +331,29 @@ mod generic_associated_type_name_clash { } } +// Tests for associated types in `dyn` trait objects +mod dyn_trait { + use super::*; + + fn _assoc_type_from_trait(t: &dyn GetSet) { + // Explicit deref + let _a1 = (*t).get(); // $ target=deref target=GetSet::get type=_a1:i32 + + // Auto-deref + let _a2 = t.get(); // $ target=GetSet::get type=_a2:i32 + + let _a3 = get(t); // $ target=get type=_a3:i32 + } + + fn _assoc_type_from_supertrait(t: &dyn AnotherGet) { + let _a1 = (*t).get(); // $ target=deref target=GetSet::get MISSING: type=_a1:i32 + let _a2 = t.get(); // $ target=GetSet::get MISSING: type=_a2:i32 + let _a3 = get(t); // $ target=get MISSING: type=_a3:i32 + let _b1 = (*t).get_another(); // $ target=deref target=AnotherGet::get_another type=_b1:bool + let _b2 = t.get_another(); // $ target=AnotherGet::get_another type=_b2:bool + } +} + pub fn test() { default_method_using_associated_type::test(); // $ target=test type_param_access_associated_type::test(); // $ target=test diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 24b8ea7a067..83e07dd6ed6 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -10,154 +10,212 @@ inferCertainType | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | -| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | -| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | -| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:29:58:31:1 | { ... } | | associated_types.rs:29:8:29:8 | O | +| associated_types.rs:30:5:30:8 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:30:5:30:8 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:37:20:37:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:20:37:24 | SelfParam | TRef | associated_types.rs:33:1:38:1 | Self [trait AnotherGet] | +| associated_types.rs:44:12:44:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:44:12:44:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:44:35:46:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:53:12:53:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:53:12:53:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:53:12:53:16 | SelfParam | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:53:35:55:5 | { ... } | | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:54:9:54:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:54:9:54:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:54:9:54:12 | self | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:91:15:91:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:91:45:93:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:91:45:93:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:21:92:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:96:19:110:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:99:18:99:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:104:18:104:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:107:18:107:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:109:18:109:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:117:30:117:34 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:121:33:121:37 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:122:9:122:13 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:125:19:128:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:135:26:135:26 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:138:5:140:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:139:18:139:18 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:143:24:143:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:146:5:150:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:147:19:147:19 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:148:23:148:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:24:148:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:149:18:149:18 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:153:23:153:23 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:157:5:161:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:158:19:158:19 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:159:23:159:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:159:24:159:24 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:160:18:160:18 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:167:17:167:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:167:17:167:21 | SelfParam | TRef | associated_types.rs:163:5:168:5 | Self [trait AssocNameClash] | +| associated_types.rs:170:34:170:34 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:174:5:177:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:175:18:175:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:176:18:176:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:187:19:187:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:19:187:23 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:187:26:187:26 | a | | associated_types.rs:187:16:187:16 | A | +| associated_types.rs:190:23:190:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:192:13:192:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:13:192:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:192:22:192:22 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:201:19:201:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:201:19:201:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:201:26:201:26 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:201:46:203:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:201:46:203:9 | { ... } | A | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:202:21:202:21 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:206:19:213:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:209:25:209:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:212:29:212:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:212:35:212:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:224:21:224:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:224:21:224:25 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:226:20:226:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:226:20:226:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:228:20:228:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:20:228:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:235:21:235:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:235:21:235:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:235:34:237:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:20:239:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:20:239:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:43:241:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:243:20:243:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:20:243:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:243:43:245:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:248:19:252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:260:24:260:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | +| associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:280:39:282:9 | { ... } | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:281:13:281:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:281:13:281:16 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:281:13:281:16 | self | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:16:284:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:284:16:284:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:284:16:284:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:23:284:30 | _content | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:47:286:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:285:22:285:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:291:24:291:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:291:24:291:28 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:291:24:291:28 | SelfParam | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:15:292:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:292:15:292:18 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:15:292:18 | self | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:296:33:296:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:296:33:296:36 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:297:9:297:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:297:9:297:12 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:300:35:300:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:300:35:300:38 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:300:90:303:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:301:9:301:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:301:9:301:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:302:9:302:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:302:9:302:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:305:19:311:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:306:28:306:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:309:28:309:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:310:37:310:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:324:16:324:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:324:16:324:20 | SelfParam | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:324:16:324:20 | SelfParam | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:324:39:326:9 | { ... } | E | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:16:325:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:325:16:325:19 | self | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:325:16:325:19 | self | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:329:19:331:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:330:21:330:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:338:31:338:31 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:338:31:338:31 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:338:31:338:31 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:338:61:346:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:340:21:340:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:340:21:340:21 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:21:340:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:19:343:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:343:19:343:19 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:343:19:343:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:23:345:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:345:23:345:23 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:345:23:345:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:359:5:359:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:360:5:360:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:361:5:361:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:362:5:362:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:363:5:363:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | @@ -4572,251 +4630,346 @@ inferType | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:33:20:33:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:33:20:33:24 | SelfParam | TRef | associated_types.rs:29:1:34:1 | Self [trait AnotherGet] | -| associated_types.rs:40:12:40:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:40:12:40:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:40:35:42:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:41:9:41:10 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:49:12:49:16 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:49:12:49:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:49:12:49:16 | SelfParam | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:49:35:51:5 | { ... } | | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:50:9:50:12 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:50:9:50:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:50:9:50:12 | self | TRef.A | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:50:9:50:14 | self.0 | | associated_types.rs:45:6:45:12 | T | -| associated_types.rs:61:15:61:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:63:15:63:18 | SelfParam | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:67:9:71:9 | { ... } | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:68:13:68:16 | self | | associated_types.rs:57:5:72:5 | Self [trait MyTrait] | -| associated_types.rs:68:13:68:21 | self.m1() | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:70:13:70:43 | ...::default(...) | | associated_types.rs:58:9:58:28 | AssociatedType | -| associated_types.rs:78:15:78:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:78:45:80:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:79:13:79:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:87:15:87:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:87:45:89:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:87:45:89:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:88:13:88:25 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:88:13:88:25 | Wrapper(...) | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:88:21:88:24 | self | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:92:19:106:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:93:13:93:14 | x1 | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:93:18:93:18 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:95:9:95:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:95:18:95:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:95:18:95:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:18:95:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:95:26:95:27 | x1 | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:95:26:95:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:97:13:97:14 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:29:58:31:1 | { ... } | | associated_types.rs:29:8:29:8 | O | +| associated_types.rs:30:5:30:8 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:30:5:30:8 | item | TRef | associated_types.rs:29:11:29:40 | T | +| associated_types.rs:30:5:30:14 | item.get() | | associated_types.rs:29:8:29:8 | O | +| associated_types.rs:37:20:37:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:37:20:37:24 | SelfParam | TRef | associated_types.rs:33:1:38:1 | Self [trait AnotherGet] | +| associated_types.rs:44:12:44:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:44:12:44:16 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:44:35:46:5 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:45:9:45:10 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:53:12:53:16 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:53:12:53:16 | SelfParam | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:53:12:53:16 | SelfParam | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:53:35:55:5 | { ... } | | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:54:9:54:12 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:54:9:54:12 | self | TRef | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:54:9:54:12 | self | TRef.A | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:54:9:54:14 | self.0 | | associated_types.rs:49:6:49:12 | T | +| associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | +| associated_types.rs:72:13:72:21 | self.m1() | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:74:13:74:43 | ...::default(...) | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:83:13:83:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:91:15:91:18 | SelfParam | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:91:45:93:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:91:45:93:9 | { ... } | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:13:92:25 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:92:13:92:25 | Wrapper(...) | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:92:21:92:24 | self | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:96:19:110:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:97:13:97:14 | x1 | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:97:18:97:18 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:99:13:99:13 | y | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:99:17:99:18 | x2 | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:99:17:99:23 | x2.m2() | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:100:9:100:27 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:100:18:100:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:100:18:100:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:18:100:26 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:100:26:100:26 | y | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:102:13:102:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:102:18:102:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:103:9:103:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:103:18:103:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:103:18:103:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:18:103:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:103:26:103:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:103:26:103:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:103:26:103:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:104:13:104:14 | x6 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:104:18:104:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:105:9:105:33 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:105:18:105:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:105:18:105:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:18:105:32 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:105:26:105:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:105:26:105:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:105:26:105:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:113:30:113:34 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:114:9:114:13 | thing | | associated_types.rs:113:19:113:27 | T | -| associated_types.rs:117:33:117:37 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:22:117:30 | T | -| associated_types.rs:121:19:124:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:122:30:122:30 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:123:33:123:33 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:134:19:134:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:134:19:134:23 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:134:26:134:26 | a | | associated_types.rs:134:16:134:16 | A | -| associated_types.rs:137:23:137:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:137:23:137:27 | SelfParam | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:137:30:137:30 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:36:137:36 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:137:76:140:9 | { ... } | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:138:13:138:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:138:13:138:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:138:13:138:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:138:22:138:22 | a | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:139:13:139:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:139:13:139:16 | self | TRef | associated_types.rs:130:5:141:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:139:13:139:23 | self.put(...) | | associated_types.rs:131:9:131:52 | GenericAssociatedType | -| associated_types.rs:139:22:139:22 | b | | associated_types.rs:137:20:137:20 | A | -| associated_types.rs:148:19:148:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:148:19:148:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:148:26:148:26 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:148:46:150:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:148:46:150:9 | { ... } | A | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:149:13:149:22 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:149:13:149:22 | Wrapper(...) | A | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:149:21:149:21 | a | | associated_types.rs:148:16:148:16 | A | -| associated_types.rs:153:19:160:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:154:13:154:13 | s | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:154:17:154:17 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:156:13:156:15 | _g1 | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:156:13:156:15 | _g1 | A | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:156:19:156:19 | s | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:156:19:156:29 | s.put(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:156:19:156:29 | s.put(...) | A | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:156:25:156:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | -| associated_types.rs:159:13:159:15 | _g2 | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:159:19:159:19 | s | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:159:19:159:40 | s.put_two(...) | | associated_types.rs:1:1:2:21 | Wrapper | -| associated_types.rs:159:29:159:32 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:159:35:159:39 | false | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:171:21:171:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:171:21:171:25 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:173:20:173:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:173:20:173:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:175:20:175:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:175:20:175:24 | SelfParam | TRef | associated_types.rs:166:5:176:5 | Self [trait TraitMultipleAssoc] | -| associated_types.rs:182:21:182:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:182:21:182:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:182:34:184:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:183:13:183:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:20:186:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:186:20:186:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:186:43:188:9 | { ... } | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:187:13:187:13 | S | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:190:20:190:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:190:20:190:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:190:43:192:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:191:13:191:14 | S2 | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:195:19:199:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:196:13:196:23 | _assoc_zero | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:196:27:196:28 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:196:27:196:39 | S3.get_zero() | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:197:13:197:22 | _assoc_one | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:197:26:197:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:197:26:197:37 | S3.get_one() | | associated_types.rs:10:1:11:9 | S | -| associated_types.rs:198:13:198:22 | _assoc_two | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:198:26:198:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | -| associated_types.rs:198:26:198:37 | S3.get_two() | | associated_types.rs:13:1:14:10 | S2 | -| associated_types.rs:207:24:207:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:207:24:207:28 | SelfParam | TRef | associated_types.rs:205:5:208:5 | Self [trait Subtrait] | -| associated_types.rs:216:23:216:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:216:23:216:27 | SelfParam | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:216:66:219:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:217:13:217:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:217:13:217:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:217:13:217:24 | self.set(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:218:13:218:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:218:13:218:16 | self | TRef | associated_types.rs:210:5:220:5 | Self [trait Subtrait2] | -| associated_types.rs:218:13:218:24 | self.set(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:227:16:227:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:227:16:227:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:227:16:227:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:227:39:229:9 | { ... } | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:228:13:228:16 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:228:13:228:16 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:228:13:228:16 | self | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:228:13:228:18 | self.0 | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:16:231:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:231:16:231:20 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:231:16:231:20 | SelfParam | TRef.T | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:23:231:30 | _content | | associated_types.rs:224:10:224:16 | T | -| associated_types.rs:231:47:233:9 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:13:232:43 | MacroExpr | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| associated_types.rs:232:22:232:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| associated_types.rs:232:22:232:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:232:22:232:42 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:238:24:238:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:238:24:238:28 | SelfParam | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:238:24:238:28 | SelfParam | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:238:47:240:9 | { ... } | | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:13:239:19 | (...) | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:13:239:19 | (...) | T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:13:239:21 | ... .0 | | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:14:239:18 | * ... | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:14:239:18 | * ... | T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:239:15:239:18 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:239:15:239:18 | self | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:239:15:239:18 | self | TRef.T | associated_types.rs:236:10:236:16 | T | -| associated_types.rs:243:33:243:36 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:243:33:243:36 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:244:9:244:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:244:9:244:12 | item | TRef | associated_types.rs:243:20:243:30 | T | -| associated_types.rs:247:35:247:38 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:247:35:247:38 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:247:90:250:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:248:9:248:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:248:9:248:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:248:9:248:20 | item.set(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:249:9:249:12 | item | | {EXTERNAL LOCATION} | & | -| associated_types.rs:249:9:249:12 | item | TRef | associated_types.rs:247:21:247:32 | T | -| associated_types.rs:249:9:249:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:252:19:258:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:253:13:253:17 | item1 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:253:13:253:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:253:21:253:33 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:253:21:253:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:253:28:253:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:254:25:254:29 | item1 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:254:25:254:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| associated_types.rs:256:13:256:17 | item2 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:256:13:256:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:256:21:256:32 | MyType(...) | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:256:21:256:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:256:28:256:31 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:257:37:257:42 | &item2 | | {EXTERNAL LOCATION} | & | -| associated_types.rs:257:37:257:42 | &item2 | TRef | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:257:37:257:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:257:38:257:42 | item2 | | associated_types.rs:222:5:222:24 | MyType | -| associated_types.rs:257:38:257:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:271:16:271:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| associated_types.rs:271:16:271:20 | SelfParam | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:271:16:271:20 | SelfParam | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:271:39:273:9 | { ... } | E | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:271:39:273:9 | { ... } | T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:13:272:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:272:13:272:22 | Ok(...) | E | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:13:272:22 | Ok(...) | T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:16:272:19 | self | | {EXTERNAL LOCATION} | & | -| associated_types.rs:272:16:272:19 | self | TRef | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:272:16:272:19 | self | TRef.T | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:272:16:272:21 | self.0 | | associated_types.rs:266:10:266:21 | Output | -| associated_types.rs:276:19:278:5 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:277:13:277:14 | _y | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:277:13:277:14 | _y | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:13:277:14 | _y | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:18:277:25 | ST(...) | | associated_types.rs:264:5:264:20 | ST | -| associated_types.rs:277:18:277:25 | ST(...) | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:18:277:31 | ... .get() | | {EXTERNAL LOCATION} | Result | -| associated_types.rs:277:18:277:31 | ... .get() | E | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:18:277:31 | ... .get() | T | {EXTERNAL LOCATION} | bool | -| associated_types.rs:277:21:277:24 | true | | {EXTERNAL LOCATION} | bool | -| associated_types.rs:281:15:288:1 | { ... } | | {EXTERNAL LOCATION} | () | -| associated_types.rs:282:5:282:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:283:5:283:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:284:5:284:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:285:5:285:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:286:5:286:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| associated_types.rs:287:5:287:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:9:99:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:99:18:99:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:99:18:99:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:26:99:27 | x1 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:99:26:99:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:101:13:101:14 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:101:18:101:18 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:103:13:103:13 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:103:17:103:18 | x2 | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:103:17:103:23 | x2.m2() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:104:9:104:27 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:104:18:104:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:104:18:104:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:26:104:26 | y | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:106:13:106:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:106:18:106:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:107:9:107:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:107:18:107:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:107:18:107:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:26:107:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:107:26:107:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:107:26:107:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:108:13:108:14 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:108:18:108:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:109:9:109:33 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:109:18:109:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:109:18:109:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:26:109:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:109:26:109:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:109:26:109:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:117:30:117:34 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:118:9:118:13 | thing | | associated_types.rs:117:19:117:27 | T | +| associated_types.rs:121:33:121:37 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:122:9:122:13 | thing | | associated_types.rs:121:22:121:30 | T | +| associated_types.rs:125:19:128:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:126:30:126:30 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:127:33:127:33 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:135:26:135:26 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:138:5:140:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:139:13:139:14 | _a | | {EXTERNAL LOCATION} | char | +| associated_types.rs:139:18:139:18 | x | | associated_types.rs:135:23:135:23 | T | +| associated_types.rs:139:18:139:24 | x.get() | | {EXTERNAL LOCATION} | char | +| associated_types.rs:143:24:143:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:146:5:150:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:147:19:147:19 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:148:23:148:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:148:23:148:24 | &x | TRef | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:148:24:148:24 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:149:13:149:14 | _b | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:149:18:149:18 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:149:18:149:32 | x.get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:153:23:153:23 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:157:5:161:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:158:13:158:15 | _a1 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:158:19:158:19 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:158:19:158:25 | x.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:13:159:15 | _a2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:19:159:25 | get(...) | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:159:23:159:24 | &x | | {EXTERNAL LOCATION} | & | +| associated_types.rs:159:23:159:24 | &x | TRef | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:159:24:159:24 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:160:13:160:14 | _b | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:160:18:160:18 | x | | associated_types.rs:153:20:153:20 | T | +| associated_types.rs:160:18:160:32 | x.get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:167:17:167:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:167:17:167:21 | SelfParam | TRef | associated_types.rs:163:5:168:5 | Self [trait AssocNameClash] | +| associated_types.rs:170:34:170:34 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:174:5:177:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:175:13:175:14 | _a | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:175:18:175:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:175:18:175:24 | x.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:176:18:176:18 | x | | associated_types.rs:170:31:170:31 | T | +| associated_types.rs:187:19:187:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:187:19:187:23 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:187:26:187:26 | a | | associated_types.rs:187:16:187:16 | A | +| associated_types.rs:190:23:190:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:191:13:191:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:192:13:192:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:192:13:192:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | +| associated_types.rs:192:13:192:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:192:22:192:22 | b | | associated_types.rs:190:20:190:20 | A | +| associated_types.rs:201:19:201:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:201:19:201:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:201:26:201:26 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:201:46:203:9 | { ... } | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:201:46:203:9 | { ... } | A | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:202:13:202:22 | Wrapper(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:202:13:202:22 | Wrapper(...) | A | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:202:21:202:21 | a | | associated_types.rs:201:16:201:16 | A | +| associated_types.rs:206:19:213:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:207:13:207:13 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:207:17:207:17 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:209:13:209:15 | _g1 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:209:13:209:15 | _g1 | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:209:19:209:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:209:19:209:29 | s.put(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:209:19:209:29 | s.put(...) | A | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:209:25:209:28 | 1i32 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:212:13:212:15 | _g2 | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:212:19:212:19 | s | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:212:19:212:40 | s.put_two(...) | | associated_types.rs:1:1:2:21 | Wrapper | +| associated_types.rs:212:29:212:32 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:212:35:212:39 | false | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:224:21:224:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:224:21:224:25 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:226:20:226:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:226:20:226:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:228:20:228:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:228:20:228:24 | SelfParam | TRef | associated_types.rs:219:5:229:5 | Self [trait TraitMultipleAssoc] | +| associated_types.rs:235:21:235:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:235:21:235:25 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:235:34:237:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:236:13:236:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:20:239:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:239:20:239:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:239:43:241:9 | { ... } | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:240:13:240:13 | S | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:243:20:243:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:243:20:243:24 | SelfParam | TRef | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:243:43:245:9 | { ... } | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:244:13:244:14 | S2 | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:248:19:252:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:249:13:249:23 | _assoc_zero | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:249:27:249:28 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:249:27:249:39 | S3.get_zero() | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:250:13:250:22 | _assoc_one | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:250:26:250:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:250:26:250:37 | S3.get_one() | | associated_types.rs:10:1:11:9 | S | +| associated_types.rs:251:13:251:22 | _assoc_two | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:251:26:251:27 | S3 | | associated_types.rs:16:1:17:10 | S3 | +| associated_types.rs:251:26:251:37 | S3.get_two() | | associated_types.rs:13:1:14:10 | S2 | +| associated_types.rs:260:24:260:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | +| associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:270:13:270:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:271:13:271:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:280:39:282:9 | { ... } | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:281:13:281:16 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:281:13:281:16 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:281:13:281:16 | self | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:281:13:281:18 | self.0 | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:16:284:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:284:16:284:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:284:16:284:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:23:284:30 | _content | | associated_types.rs:277:10:277:16 | T | +| associated_types.rs:284:47:286:9 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:13:285:43 | MacroExpr | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| associated_types.rs:285:22:285:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| associated_types.rs:285:22:285:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:291:24:291:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:291:24:291:28 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:291:24:291:28 | SelfParam | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:291:47:293:9 | { ... } | | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:13:292:19 | (...) | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:13:292:19 | (...) | T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:13:292:21 | ... .0 | | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:14:292:18 | * ... | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:14:292:18 | * ... | T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:292:15:292:18 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:292:15:292:18 | self | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:292:15:292:18 | self | TRef.T | associated_types.rs:289:10:289:16 | T | +| associated_types.rs:296:33:296:36 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:296:33:296:36 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:297:9:297:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:297:9:297:12 | item | TRef | associated_types.rs:296:20:296:30 | T | +| associated_types.rs:300:35:300:38 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:300:35:300:38 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:300:90:303:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:301:9:301:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:301:9:301:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:301:9:301:20 | item.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:302:9:302:12 | item | | {EXTERNAL LOCATION} | & | +| associated_types.rs:302:9:302:12 | item | TRef | associated_types.rs:300:21:300:32 | T | +| associated_types.rs:302:9:302:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:305:19:311:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:306:13:306:17 | item1 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:306:13:306:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:306:21:306:33 | MyType(...) | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:306:21:306:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:306:28:306:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:307:25:307:29 | item1 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:307:25:307:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| associated_types.rs:309:13:309:17 | item2 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:309:13:309:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:309:21:309:32 | MyType(...) | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:309:21:309:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:309:28:309:31 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:310:37:310:42 | &item2 | | {EXTERNAL LOCATION} | & | +| associated_types.rs:310:37:310:42 | &item2 | TRef | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:310:37:310:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:310:38:310:42 | item2 | | associated_types.rs:275:5:275:24 | MyType | +| associated_types.rs:310:38:310:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:324:16:324:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| associated_types.rs:324:16:324:20 | SelfParam | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:324:16:324:20 | SelfParam | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:324:39:326:9 | { ... } | E | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:324:39:326:9 | { ... } | T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:13:325:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:325:13:325:22 | Ok(...) | E | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:13:325:22 | Ok(...) | T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:16:325:19 | self | | {EXTERNAL LOCATION} | & | +| associated_types.rs:325:16:325:19 | self | TRef | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:325:16:325:19 | self | TRef.T | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:325:16:325:21 | self.0 | | associated_types.rs:319:10:319:21 | Output | +| associated_types.rs:329:19:331:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:330:13:330:14 | _y | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:330:13:330:14 | _y | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:13:330:14 | _y | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:18:330:25 | ST(...) | | associated_types.rs:317:5:317:20 | ST | +| associated_types.rs:330:18:330:25 | ST(...) | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:18:330:31 | ... .get() | | {EXTERNAL LOCATION} | Result | +| associated_types.rs:330:18:330:31 | ... .get() | E | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:18:330:31 | ... .get() | T | {EXTERNAL LOCATION} | bool | +| associated_types.rs:330:21:330:24 | true | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:338:31:338:31 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:338:31:338:31 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:338:31:338:31 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:338:61:346:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:340:13:340:15 | _a1 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:19:340:22 | (...) | | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:19:340:22 | (...) | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:19:340:28 | ... .get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:20:340:21 | * ... | | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:20:340:21 | * ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:340:21:340:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:340:21:340:21 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:340:21:340:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:13:343:15 | _a2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:19:343:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:343:19:343:19 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:343:19:343:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:343:19:343:25 | t.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:13:345:15 | _a3 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:19:345:24 | get(...) | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:345:23:345:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:345:23:345:23 | t | TRef | associated_types.rs:19:1:27:1 | dyn GetSet | +| associated_types.rs:345:23:345:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:349:19:349:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:19:349:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:20:349:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:20:349:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:13:352:15 | _b1 | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:19:352:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:19:352:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:19:352:36 | ... .get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:20:352:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:20:352:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:13:353:15 | _b2 | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | +| associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:33 | t.get_another() | | {EXTERNAL LOCATION} | bool | +| associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:359:5:359:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:360:5:360:35 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:361:5:361:37 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:362:5:362:41 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:363:5:363:46 | ...::test(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:15:18:15:22 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:15:18:15:22 | SelfParam | TRef | blanket_impl.rs:9:5:10:14 | S2 | | blanket_impl.rs:15:42:17:9 | { ... } | | {EXTERNAL LOCATION} | & | From a19ad5e557811528a22521fe3f5a871af3ff96e5 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 14:24:45 +0100 Subject: [PATCH 180/263] Rust: Associated types are inherited as type parameters by traits and dyn traits --- .../rust/elements/internal/TraitImpl.qll | 7 ++ .../rust/internal/typeinference/Type.qll | 73 ++++++++++++------- .../internal/typeinference/TypeInference.qll | 19 +++-- .../internal/typeinference/TypeMention.qll | 60 ++++++++------- .../type-inference/associated_types.rs | 12 +-- .../type-inference/type-inference.expected | 54 +++++++++++--- 6 files changed, 148 insertions(+), 77 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll index 83ba43020d7..bb9ffa83244 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/TraitImpl.qll @@ -5,6 +5,7 @@ */ private import codeql.rust.elements.internal.generated.Trait +private import codeql.rust.internal.PathResolution as PathResolution /** * INTERNAL: This module contains the customizable definition of `Trait` and should not @@ -67,5 +68,11 @@ module Impl { * `where` clauses for `Self`. */ TypeBound getATypeBound() { result = this.getTypeBound(_) } + + /** Gets a direct supertrait of this trait, if any. */ + Trait getSupertrait() { + result = + PathResolution::resolvePath(this.getATypeBound().getTypeRepr().(PathTypeRepr).getPath()) + } } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index df08d84edd0..a37baf92311 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -9,10 +9,17 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.frameworks.stdlib.Stdlib private import codeql.rust.frameworks.stdlib.Builtins as Builtins +/** Gets a type alias of `trait` or of a supertrait of `trait`. */ +private TypeAlias getTraitTypeAlias(Trait trait) { + result = trait.getSupertrait*().getAssocItemList().getAnAssocItem() +} + /** - * Holds if a dyn trait type should have a type parameter associated with `n`. A - * dyn trait type inherits the type parameters of the trait it implements. That - * includes the type parameters corresponding to associated types. + * Holds if a dyn trait type for the trait `trait` should have a type parameter + * associated with `n`. + * + * A dyn trait type inherits the type parameters of the trait it implements. + * That includes the type parameters corresponding to associated types. * * For instance in * ```rust @@ -24,10 +31,7 @@ private import codeql.rust.frameworks.stdlib.Builtins as Builtins */ private predicate dynTraitTypeParameter(Trait trait, AstNode n) { trait = any(DynTraitTypeRepr dt).getTrait() and - ( - n = trait.getGenericParamList().getATypeParam() or - n = trait.(TraitItemNode).getAnAssocItem().(TypeAlias) - ) + n = [trait.getGenericParamList().getATypeParam().(AstNode), getTraitTypeAlias(trait)] } cached @@ -39,8 +43,10 @@ newtype TType = TNeverType() or TUnknownType() or TTypeParamTypeParameter(TypeParam t) or - TAssociatedTypeTypeParameter(TypeAlias t) { any(TraitItemNode trait).getAnAssocItem() = t } or - TDynTraitTypeParameter(AstNode n) { dynTraitTypeParameter(_, n) } or + TAssociatedTypeTypeParameter(Trait trait, TypeAlias typeAlias) { + getTraitTypeAlias(trait) = typeAlias + } or + TDynTraitTypeParameter(Trait trait, AstNode n) { dynTraitTypeParameter(trait, n) } or TImplTraitTypeParameter(ImplTraitTypeRepr implTrait, TypeParam tp) { implTraitTypeParam(implTrait, _, tp) } or @@ -270,17 +276,10 @@ class DynTraitType extends Type, TDynTraitType { DynTraitType() { this = TDynTraitType(trait) } override DynTraitTypeParameter getPositionalTypeParameter(int i) { - result = TDynTraitTypeParameter(trait.getGenericParamList().getTypeParam(i)) + result.getTypeParam() = trait.getGenericParamList().getTypeParam(i) } - override TypeParameter getATypeParameter() { - result = super.getATypeParameter() - or - exists(AstNode n | - dynTraitTypeParameter(trait, n) and - result = TDynTraitTypeParameter(n) - ) - } + override DynTraitTypeParameter getATypeParameter() { result.getTrait() = trait } Trait getTrait() { result = trait } @@ -427,30 +426,54 @@ class TypeParamTypeParameter extends TypeParameter, TTypeParamTypeParameter { * // ... * } * ``` + * Furthermore, associated types of a supertrait induce a corresponding type + * parameter in any subtraits. E.g., if we have a trait `SubTrait: ATrait` then + * `SubTrait` also has a type parameter for the associated type + * `AssociatedType`. */ class AssociatedTypeTypeParameter extends TypeParameter, TAssociatedTypeTypeParameter { + private Trait trait; private TypeAlias typeAlias; - AssociatedTypeTypeParameter() { this = TAssociatedTypeTypeParameter(typeAlias) } + AssociatedTypeTypeParameter() { this = TAssociatedTypeTypeParameter(trait, typeAlias) } TypeAlias getTypeAlias() { result = typeAlias } /** Gets the trait that contains this associated type declaration. */ - TraitItemNode getTrait() { result.getAnAssocItem() = typeAlias } + TraitItemNode getTrait() { result = trait } - override ItemNode getDeclaringItem() { result = this.getTrait() } + /** + * Holds if this associated type type parameter corresponds directly its + * trait, that is, it is not inherited from a supertrait. + */ + predicate isDirect() { trait.(TraitItemNode).getAnAssocItem() = typeAlias } - override string toString() { result = typeAlias.getName().getText() } + override ItemNode getDeclaringItem() { result = trait } + + override string toString() { + result = typeAlias.getName().getText() + "[" + trait.getName().toString() + "]" + } override Location getLocation() { result = typeAlias.getLocation() } } +/** Gets the associated type type parameter corresponding directly to `typeAlias`. */ +AssociatedTypeTypeParameter getAssociatedTypeTypeParameter(TypeAlias typeAlias) { + result.isDirect() and result.getTypeAlias() = typeAlias +} + +/** Gets the dyn type type parameter corresponding directly to `typeAlias`. */ +DynTraitTypeParameter getDynTraitTypeParameter(TypeAlias typeAlias) { + result.getTraitTypeParameter() = getAssociatedTypeTypeParameter(typeAlias) +} + class DynTraitTypeParameter extends TypeParameter, TDynTraitTypeParameter { + private Trait trait; private AstNode n; - DynTraitTypeParameter() { this = TDynTraitTypeParameter(n) } + DynTraitTypeParameter() { this = TDynTraitTypeParameter(trait, n) } - Trait getTrait() { dynTraitTypeParameter(result, n) } + Trait getTrait() { result = trait } /** Gets the dyn trait type that this type parameter belongs to. */ DynTraitType getDynTraitType() { result.getTrait() = this.getTrait() } @@ -465,7 +488,7 @@ class DynTraitTypeParameter extends TypeParameter, TDynTraitTypeParameter { TypeParameter getTraitTypeParameter() { result.(TypeParamTypeParameter).getTypeParam() = n or - result.(AssociatedTypeTypeParameter).getTypeAlias() = n + result = TAssociatedTypeTypeParameter(trait, n) } private string toStringInner() { diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 46454ec88b0..3be7565ebaa 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -90,7 +90,7 @@ private module Input1 implements InputSig1 { tp = rank[result](TypeParameter tp0, int kind, int id1, int id2 | kind = 1 and - id1 = 0 and + id1 = idOfTypeParameterAstNode(tp0.(DynTraitTypeParameter).getTrait()) and id2 = idOfTypeParameterAstNode([ tp0.(DynTraitTypeParameter).getTypeParam().(AstNode), @@ -102,10 +102,13 @@ private module Input1 implements InputSig1 { id2 = idOfTypeParameterAstNode(tp0.(ImplTraitTypeParameter).getTypeParam()) or kind = 3 and + id1 = idOfTypeParameterAstNode(tp0.(AssociatedTypeTypeParameter).getTrait()) and + id2 = idOfTypeParameterAstNode(tp0.(AssociatedTypeTypeParameter).getTypeAlias()) + or + kind = 4 and id1 = 0 and exists(AstNode node | id2 = idOfTypeParameterAstNode(node) | node = tp0.(TypeParamTypeParameter).getTypeParam() or - node = tp0.(AssociatedTypeTypeParameter).getTypeAlias() or node = tp0.(SelfTypeParameter).getTrait() or node = tp0.(ImplTraitTypeTypeParameter).getImplTraitTypeRepr() ) @@ -3507,12 +3510,12 @@ private DynTraitType getFutureTraitType() { result.getTrait() instanceof FutureT pragma[nomagic] private AssociatedTypeTypeParameter getFutureOutputTypeParameter() { - result.getTypeAlias() = any(FutureTrait ft).getOutputType() + result = getAssociatedTypeTypeParameter(any(FutureTrait ft).getOutputType()) } pragma[nomagic] private DynTraitTypeParameter getDynFutureOutputTypeParameter() { - result = TDynTraitTypeParameter(any(FutureTrait ft).getOutputType()) + result.getTraitTypeParameter() = getFutureOutputTypeParameter() } pragma[nomagic] @@ -3824,20 +3827,20 @@ private Type invokedClosureFnTypeAt(InvokedClosureExpr ce, TypePath path) { /** Gets the path to a closure's return type. */ private TypePath closureReturnPath() { - result = TypePath::singleton(TDynTraitTypeParameter(any(FnOnceTrait t).getOutputType())) + result = TypePath::singleton(getDynTraitTypeParameter(any(FnOnceTrait t).getOutputType())) } /** Gets the path to a closure with arity `arity`s `index`th parameter type. */ pragma[nomagic] private TypePath closureParameterPath(int arity, int index) { result = - TypePath::cons(TDynTraitTypeParameter(any(FnOnceTrait t).getTypeParam()), + TypePath::cons(TDynTraitTypeParameter(_, any(FnOnceTrait t).getTypeParam()), TypePath::singleton(getTupleTypeParameter(arity, index))) } /** Gets the path to the return type of the `FnOnce` trait. */ private TypePath fnReturnPath() { - result = TypePath::singleton(TAssociatedTypeTypeParameter(any(FnOnceTrait t).getOutputType())) + result = TypePath::singleton(getAssociatedTypeTypeParameter(any(FnOnceTrait t).getOutputType())) } /** @@ -3898,7 +3901,7 @@ private Type inferClosureExprType(AstNode n, TypePath path) { result = TDynTraitType(any(FnOnceTrait t)) // always exists because of the mention in `builtins/mentions.rs` or n = ce and - path = TypePath::singleton(TDynTraitTypeParameter(any(FnOnceTrait t).getTypeParam())) and + path = TypePath::singleton(TDynTraitTypeParameter(_, any(FnOnceTrait t).getTypeParam())) and result.(TupleType).getArity() = ce.getNumberOfParams() or // Propagate return type annotation to body diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 41146e22c1b..1e2ca53b9cd 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -148,30 +148,11 @@ class NonAliasPathTypeMention extends PathTypeMention { TypeItemNode getResolved() { result = resolved } - /** - * Gets a type alias with the name `name` of the trait that this path resolves - * to, if any. - */ - pragma[nomagic] - private TypeAlias getResolvedTraitAlias(string name) { - result = resolved.(TraitItemNode).getAnAssocItem() and - name = result.getName().getText() - } - pragma[nomagic] private TypeRepr getAssocTypeArg(string name) { result = this.getSegment().getGenericArgList().getAssocTypeArg(name) } - /** Gets the type argument for the associated type `alias`, if any. */ - pragma[nomagic] - private TypeRepr getAnAssocTypeArgument(TypeAlias alias) { - exists(string name | - alias = this.getResolvedTraitAlias(name) and - result = this.getAssocTypeArg(name) - ) - } - /** * Gets the type mention that instantiates the implicit `Self` type parameter * for this path, if it occurs in the position of a trait bound. @@ -239,7 +220,7 @@ class NonAliasPathTypeMention extends PathTypeMention { tp = TTypeParamTypeParameter(t.getTypeParam()) and result = s.getParenthesizedArgList().(TypeMention).resolveTypeAt(path) or - tp = TAssociatedTypeTypeParameter(t.getOutputType()) and + tp = TAssociatedTypeTypeParameter(t, t.getOutputType()) and ( result = s.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(path) or @@ -249,6 +230,28 @@ class NonAliasPathTypeMention extends PathTypeMention { path.isEmpty() ) ) + or + // If `path` is the supertrait of a trait block then any associated types + // of the supertrait should be instantiated with the subtrait's + // corresponding copies. + // + // As an example, for + // ```rust + // trait Sub: Super { + // // ^^^^^ this + // ``` + // we do something to the effect of: + // ```rust + // trait Sub: Super + // ``` + // Where `Assoc` is an associated type of `Super` and `Assoc[Sub]` denotes + // the copy of the type parameter inherited into `Sub`. + exists(Trait subtrait, TypeAlias alias | + subtrait.getATypeBound().getTypeRepr().(PathTypeRepr).getPath() = this and + result = TAssociatedTypeTypeParameter(subtrait, alias) and + tp = TAssociatedTypeTypeParameter(resolved, alias) and + path.isEmpty() + ) } pragma[nomagic] @@ -259,9 +262,10 @@ class NonAliasPathTypeMention extends PathTypeMention { /** Gets the type mention in this path for the type parameter `tp`, if any. */ pragma[nomagic] private TypeMention getTypeMentionForTypeParameter(TypeParameter tp) { - exists(TypeAlias alias | - result = this.getAnAssocTypeArgument(alias) and - tp = TAssociatedTypeTypeParameter(alias) + exists(TypeAlias alias, string name | + result = this.getAssocTypeArg(name) and + tp = TAssociatedTypeTypeParameter(resolved, alias) and + alias = resolved.(TraitItemNode).getASuccessor(name) ) or // If `path` is the trait of an `impl` block then any associated types @@ -281,7 +285,8 @@ class NonAliasPathTypeMention extends PathTypeMention { this = impl.getTraitPath() and alias = impl.getASuccessor(pragma[only_bind_into](name)) and result = alias.getTypeRepr() and - tp = TAssociatedTypeTypeParameter(this.getResolvedAlias(pragma[only_bind_into](name))) + tp = + TAssociatedTypeTypeParameter(resolved, this.getResolvedAlias(pragma[only_bind_into](name))) ) } @@ -299,7 +304,7 @@ class NonAliasPathTypeMention extends PathTypeMention { or result = TTypeParamTypeParameter(resolved) or - result = TAssociatedTypeTypeParameter(resolved) + result = TAssociatedTypeTypeParameter(resolvePath(this.getQualifier()), resolved) } override Type resolvePathTypeAt(TypePath typePath) { @@ -384,9 +389,8 @@ class TraitMention extends TypeMention instanceof TraitItemNode { result = TSelfTypeParameter(this) or exists(TypeAlias alias | - alias = super.getAnAssocItem() and typePath = TypePath::singleton(result) and - result = TAssociatedTypeTypeParameter(alias) + result = TAssociatedTypeTypeParameter(this, alias) ) or exists(TypeParam tp | @@ -540,7 +544,7 @@ class DynTraitTypeReprMention extends TypeMention instanceof DynTraitTypeRepr { // impl Trait for (dyn Trait) // ``` // To achieve this: -// - `DynTypeAbstraction` is an abstraction over type parameters of the trait. +// - `DynTypeAbstraction` is an abstraction over the type parameters of the trait. // - `DynTypeBoundListMention` (this class) is a type mention which has `dyn // Trait` at the root and which for every type parameter of `dyn Trait` has the // corresponding type parameter of the trait. diff --git a/rust/ql/test/library-tests/type-inference/associated_types.rs b/rust/ql/test/library-tests/type-inference/associated_types.rs index d62df911745..b08be0264a0 100644 --- a/rust/ql/test/library-tests/type-inference/associated_types.rs +++ b/rust/ql/test/library-tests/type-inference/associated_types.rs @@ -69,7 +69,7 @@ mod default_method_using_associated_type { Self::AssociatedType: Default, Self: Sized, { - self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType + self.m1(); // $ target=MyTrait::m1 type=self.m1():AssociatedType[MyTrait] let _default = Self::AssociatedType::default(); // $ MISSING: target=default _default:AssociatedType Self::AssociatedType::default() // $ MISSING: target=default } @@ -144,8 +144,8 @@ mod equality_on_associated_type { where T: AnotherGet, { - let _a1 = x.get(); // $ target=GetSet::get MISSING: type=_a1:i32 - let _a2 = get(&x); // $ target=get MISSING: type=_a2:i32 + let _a1 = x.get(); // $ target=GetSet::get type=_a1:i32 + let _a2 = get(&x); // $ target=get type=_a2:i32 let _b = x.get_another(); // $ type=_b:bool target=AnotherGet::get_another } @@ -346,9 +346,9 @@ mod dyn_trait { } fn _assoc_type_from_supertrait(t: &dyn AnotherGet) { - let _a1 = (*t).get(); // $ target=deref target=GetSet::get MISSING: type=_a1:i32 - let _a2 = t.get(); // $ target=GetSet::get MISSING: type=_a2:i32 - let _a3 = get(t); // $ target=get MISSING: type=_a3:i32 + let _a1 = (*t).get(); // $ target=deref target=GetSet::get type=_a1:i32 + let _a2 = t.get(); // $ target=GetSet::get type=_a2:i32 + let _a3 = get(t); // $ target=get type=_a3:i32 let _b1 = (*t).get_another(); // $ target=deref target=AnotherGet::get_another type=_b1:bool let _b2 = t.get_another(); // $ target=AnotherGet::get_another type=_b2:bool } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 83e07dd6ed6..8be31b1b9d1 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -8,7 +8,7 @@ inferCertainType | associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | -| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output[GetSet] | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | | associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | @@ -29,7 +29,7 @@ inferCertainType | associated_types.rs:54:9:54:12 | self | TRef.A | associated_types.rs:49:6:49:12 | T | | associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | | associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | -| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | | associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | | associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | @@ -87,7 +87,7 @@ inferCertainType | associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | | associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | -| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | | associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | @@ -124,11 +124,15 @@ inferCertainType | associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | | associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:30:269:31 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | +| associated_types.rs:269:48:269:49 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:270:22:270:23 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:271:22:271:23 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | | associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | @@ -193,22 +197,28 @@ inferCertainType | associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:359:5:359:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | @@ -4628,7 +4638,7 @@ inferType | associated_types.rs:23:12:23:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | | associated_types.rs:26:12:26:16 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:26:12:26:16 | SelfParam | TRef | associated_types.rs:19:1:27:1 | Self [trait GetSet] | -| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output | +| associated_types.rs:26:19:26:20 | _a | | associated_types.rs:20:5:20:16 | Output[GetSet] | | associated_types.rs:26:37:26:38 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:29:43:29:46 | item | | {EXTERNAL LOCATION} | & | | associated_types.rs:29:43:29:46 | item | TRef | associated_types.rs:29:11:29:40 | T | @@ -4652,10 +4662,10 @@ inferType | associated_types.rs:54:9:54:14 | self.0 | | associated_types.rs:49:6:49:12 | T | | associated_types.rs:65:15:65:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | | associated_types.rs:67:15:67:18 | SelfParam | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | -| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:71:9:75:9 | { ... } | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | | associated_types.rs:72:13:72:16 | self | | associated_types.rs:61:5:76:5 | Self [trait MyTrait] | -| associated_types.rs:72:13:72:21 | self.m1() | | associated_types.rs:62:9:62:28 | AssociatedType | -| associated_types.rs:74:13:74:43 | ...::default(...) | | associated_types.rs:62:9:62:28 | AssociatedType | +| associated_types.rs:72:13:72:21 | self.m1() | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | +| associated_types.rs:74:13:74:43 | ...::default(...) | | associated_types.rs:62:9:62:28 | AssociatedType[MyTrait] | | associated_types.rs:82:15:82:18 | SelfParam | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:82:45:84:9 | { ... } | | associated_types.rs:16:1:17:10 | S3 | | associated_types.rs:83:13:83:14 | S3 | | associated_types.rs:16:1:17:10 | S3 | @@ -4720,7 +4730,11 @@ inferType | associated_types.rs:139:18:139:24 | x.get() | | {EXTERNAL LOCATION} | char | | associated_types.rs:143:24:143:24 | x | | associated_types.rs:143:21:143:21 | T | | associated_types.rs:146:5:150:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:147:13:147:15 | _a1 | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:147:19:147:19 | x | | associated_types.rs:143:21:143:21 | T | +| associated_types.rs:147:19:147:25 | x.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:148:13:148:15 | _a2 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:148:19:148:25 | get(...) | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:148:23:148:24 | &x | | {EXTERNAL LOCATION} | & | | associated_types.rs:148:23:148:24 | &x | TRef | associated_types.rs:143:21:143:21 | T | | associated_types.rs:148:24:148:24 | x | | associated_types.rs:143:21:143:21 | T | @@ -4755,14 +4769,14 @@ inferType | associated_types.rs:190:23:190:27 | SelfParam | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | | associated_types.rs:190:30:190:30 | a | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:190:36:190:36 | b | | associated_types.rs:190:20:190:20 | A | -| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:190:76:193:9 | { ... } | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:191:13:191:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:191:13:191:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:191:13:191:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:191:13:191:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:191:22:191:22 | a | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:192:13:192:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:192:13:192:16 | self | TRef | associated_types.rs:183:5:194:5 | Self [trait MyTraitAssoc2] | -| associated_types.rs:192:13:192:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType | +| associated_types.rs:192:13:192:23 | self.put(...) | | associated_types.rs:184:9:184:52 | GenericAssociatedType[MyTraitAssoc2] | | associated_types.rs:192:22:192:22 | b | | associated_types.rs:190:20:190:20 | A | | associated_types.rs:201:19:201:23 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:201:19:201:23 | SelfParam | TRef | associated_types.rs:10:1:11:9 | S | @@ -4818,13 +4832,17 @@ inferType | associated_types.rs:260:24:260:28 | SelfParam | TRef | associated_types.rs:258:5:261:5 | Self [trait Subtrait] | | associated_types.rs:269:23:269:27 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:269:23:269:27 | SelfParam | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | +| associated_types.rs:269:30:269:31 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | +| associated_types.rs:269:48:269:49 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:269:66:272:9 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:270:13:270:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:270:13:270:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | | associated_types.rs:270:13:270:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:270:22:270:23 | c1 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:271:13:271:16 | self | | {EXTERNAL LOCATION} | & | | associated_types.rs:271:13:271:16 | self | TRef | associated_types.rs:263:5:273:5 | Self [trait Subtrait2] | | associated_types.rs:271:13:271:24 | self.set(...) | | {EXTERNAL LOCATION} | () | +| associated_types.rs:271:22:271:23 | c2 | | associated_types.rs:20:5:20:16 | Output[Subtrait2] | | associated_types.rs:280:16:280:20 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:280:16:280:20 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | | associated_types.rs:280:16:280:20 | SelfParam | TRef.T | associated_types.rs:277:10:277:16 | T | @@ -4935,33 +4953,49 @@ inferType | associated_types.rs:348:36:348:36 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:348:36:348:36 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:348:36:348:36 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:348:36:348:36 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:348:92:354:5 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:349:13:349:15 | _a1 | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:349:19:349:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:19:349:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:19:349:22 | (...) | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:349:19:349:28 | ... .get() | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:349:20:349:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:20:349:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:20:349:21 | * ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:349:21:349:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:349:21:349:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:349:21:349:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:349:21:349:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:350:13:350:15 | _a2 | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:350:19:350:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:350:19:350:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:350:19:350:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:350:19:350:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:350:19:350:25 | t.get() | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:351:13:351:15 | _a3 | | {EXTERNAL LOCATION} | i32 | +| associated_types.rs:351:19:351:24 | get(...) | | {EXTERNAL LOCATION} | i32 | | associated_types.rs:351:23:351:23 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:351:23:351:23 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:351:23:351:23 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:351:23:351:23 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:13:352:15 | _b1 | | {EXTERNAL LOCATION} | bool | | associated_types.rs:352:19:352:22 | (...) | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:19:352:22 | (...) | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:19:352:22 | (...) | dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:19:352:36 | ... .get_another() | | {EXTERNAL LOCATION} | bool | | associated_types.rs:352:20:352:21 | * ... | | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:20:352:21 | * ... | dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:20:352:21 | * ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:352:21:352:21 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:352:21:352:21 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:352:21:352:21 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:352:21:352:21 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:353:13:353:15 | _b2 | | {EXTERNAL LOCATION} | bool | | associated_types.rs:353:19:353:19 | t | | {EXTERNAL LOCATION} | & | | associated_types.rs:353:19:353:19 | t | TRef | associated_types.rs:33:1:38:1 | dyn AnotherGet | | associated_types.rs:353:19:353:19 | t | TRef.dyn(AnotherOutput) | {EXTERNAL LOCATION} | bool | +| associated_types.rs:353:19:353:19 | t | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | | associated_types.rs:353:19:353:33 | t.get_another() | | {EXTERNAL LOCATION} | bool | | associated_types.rs:357:15:364:1 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:358:5:358:48 | ...::test(...) | | {EXTERNAL LOCATION} | () | From 465400115f64e5afc1116d68ca21f03703810943 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 15:36:35 +0100 Subject: [PATCH 181/263] Rust: Adapt type inference consistency query exceptions --- .../rust/internal/typeinference/TypeInferenceConsistency.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll index 11ad9bef2a2..cde873f3685 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInferenceConsistency.qll @@ -18,6 +18,8 @@ query predicate illFormedTypeMention(TypeMention tm) { any(PathTypeMention ptm | exists(ptm.resolvePathTypeAt(TypePath::nil())) and not exists(ptm.resolveType()) + or + ptm.(NonAliasPathTypeMention).getResolved() instanceof TypeAlias ) and // Only include inconsistencies in the source, as we otherwise get // inconsistencies from library code in every project. From ca3e2db2174967efad5fdebb9d7c20b00b903f3a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 14 Jan 2026 16:00:59 +0100 Subject: [PATCH 182/263] Rust: Accept changes to expected files --- .../PathResolutionConsistency.expected | 2 +- .../type-inference/type-inference.expected | 226 ++++++++++++++++++ 2 files changed, 227 insertions(+), 1 deletion(-) diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 28242d86a7b..8dba0e3cf27 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ multipleResolvedTargets -| main.rs:3087:13:3087:17 | x.f() | +| main.rs:2860:13:2860:17 | x.f() | diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 8be31b1b9d1..b4edd40f0f7 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -4683,6 +4683,7 @@ inferType | associated_types.rs:99:18:99:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:99:18:99:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:99:18:99:32 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:99:26:99:27 | x1 | | associated_types.rs:10:1:11:9 | S | | associated_types.rs:99:26:99:32 | x1.m1() | | associated_types.rs:16:1:17:10 | S3 | | associated_types.rs:101:13:101:14 | x2 | | associated_types.rs:10:1:11:9 | S | @@ -4695,6 +4696,7 @@ inferType | associated_types.rs:104:18:104:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:104:18:104:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:104:18:104:26 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:104:26:104:26 | y | | associated_types.rs:16:1:17:10 | S3 | | associated_types.rs:106:13:106:14 | x5 | | associated_types.rs:13:1:14:10 | S2 | | associated_types.rs:106:18:106:19 | S2 | | associated_types.rs:13:1:14:10 | S2 | @@ -4703,6 +4705,7 @@ inferType | associated_types.rs:107:18:107:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:107:18:107:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:107:18:107:32 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:107:26:107:27 | x5 | | associated_types.rs:13:1:14:10 | S2 | | associated_types.rs:107:26:107:32 | x5.m1() | | associated_types.rs:1:1:2:21 | Wrapper | | associated_types.rs:107:26:107:32 | x5.m1() | A | associated_types.rs:13:1:14:10 | S2 | @@ -4713,6 +4716,7 @@ inferType | associated_types.rs:109:18:109:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:109:18:109:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:109:18:109:32 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:109:26:109:27 | x6 | | associated_types.rs:13:1:14:10 | S2 | | associated_types.rs:109:26:109:32 | x6.m2() | | associated_types.rs:1:1:2:21 | Wrapper | | associated_types.rs:109:26:109:32 | x6.m2() | A | associated_types.rs:13:1:14:10 | S2 | @@ -4861,6 +4865,7 @@ inferType | associated_types.rs:285:22:285:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | | associated_types.rs:285:22:285:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | +| associated_types.rs:285:22:285:42 | { ... } | | {EXTERNAL LOCATION} | () | | associated_types.rs:291:24:291:28 | SelfParam | | {EXTERNAL LOCATION} | & | | associated_types.rs:291:24:291:28 | SelfParam | TRef | associated_types.rs:275:5:275:24 | MyType | | associated_types.rs:291:24:291:28 | SelfParam | TRef.T | associated_types.rs:289:10:289:16 | T | @@ -5036,6 +5041,7 @@ inferType | blanket_impl.rs:47:18:47:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:47:20:47:21 | x1 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:13:48:14 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:48:18:48:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -5049,6 +5055,7 @@ inferType | blanket_impl.rs:49:18:49:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:49:18:49:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:49:18:49:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:49:20:49:21 | x2 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:13:50:14 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:50:18:50:19 | S1 | | blanket_impl.rs:6:5:7:14 | S1 | @@ -5058,6 +5065,7 @@ inferType | blanket_impl.rs:51:18:51:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:51:18:51:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:51:18:51:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:51:20:51:21 | x3 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:13:52:14 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:52:18:52:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -5071,6 +5079,7 @@ inferType | blanket_impl.rs:53:18:53:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:53:18:53:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:53:18:53:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:53:20:53:21 | x4 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:13:54:14 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:54:18:54:35 | ...::duplicate(...) | | blanket_impl.rs:6:5:7:14 | S1 | @@ -5082,6 +5091,7 @@ inferType | blanket_impl.rs:55:18:55:25 | "{x5:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:55:18:55:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:55:18:55:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:55:20:55:21 | x5 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:13:56:14 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:56:18:56:19 | S2 | | blanket_impl.rs:9:5:10:14 | S2 | @@ -5091,6 +5101,7 @@ inferType | blanket_impl.rs:57:18:57:25 | "{x6:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:57:18:57:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:57:18:57:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:57:20:57:21 | x6 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:13:58:14 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:58:18:58:22 | (...) | | {EXTERNAL LOCATION} | & | @@ -5104,6 +5115,7 @@ inferType | blanket_impl.rs:59:18:59:25 | "{x7:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:59:18:59:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:59:18:59:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:59:20:59:21 | x7 | | blanket_impl.rs:6:5:7:14 | S1 | | blanket_impl.rs:68:24:68:24 | x | | {EXTERNAL LOCATION} | i64 | | blanket_impl.rs:68:32:68:32 | y | | blanket_impl.rs:67:5:69:5 | Self [trait Trait1] | @@ -5129,6 +5141,7 @@ inferType | blanket_impl.rs:91:18:91:25 | "{x1:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:91:18:91:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:91:18:91:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:91:20:91:21 | x1 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:13:92:14 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:92:18:92:43 | ...::assoc_func1(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -5139,6 +5152,7 @@ inferType | blanket_impl.rs:93:18:93:25 | "{x2:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:93:18:93:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:93:18:93:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:93:20:93:21 | x2 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:13:94:14 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:94:18:94:39 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -5149,6 +5163,7 @@ inferType | blanket_impl.rs:95:18:95:25 | "{x3:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:95:18:95:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:95:18:95:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:95:20:95:21 | x3 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:13:96:14 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:96:18:96:43 | ...::assoc_func2(...) | | blanket_impl.rs:64:5:65:14 | S1 | @@ -5159,6 +5174,7 @@ inferType | blanket_impl.rs:97:18:97:25 | "{x4:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:97:18:97:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:97:18:97:25 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:97:20:97:21 | x4 | | blanket_impl.rs:64:5:65:14 | S1 | | blanket_impl.rs:108:22:108:26 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:108:22:108:26 | SelfParam | TRef | blanket_impl.rs:107:5:109:5 | Self [trait Flag] | @@ -5313,6 +5329,7 @@ inferType | blanket_impl.rs:278:22:278:41 | "Executor::execute1\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:278:22:278:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:278:22:278:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:281:24:281:28 | SelfParam | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:281:24:281:28 | SelfParam | TRef | blanket_impl.rs:276:10:276:22 | T | | blanket_impl.rs:281:31:281:36 | _query | | blanket_impl.rs:281:21:281:21 | E | @@ -5322,6 +5339,7 @@ inferType | blanket_impl.rs:282:22:282:41 | "Executor::execute2\\n" | TRef | {EXTERNAL LOCATION} | str | | blanket_impl.rs:282:22:282:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | +| blanket_impl.rs:282:22:282:41 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:290:16:300:5 | { ... } | | {EXTERNAL LOCATION} | () | | blanket_impl.rs:291:13:291:13 | c | | blanket_impl.rs:286:5:286:29 | MySqlConnection | | blanket_impl.rs:291:17:291:34 | MySqlConnection {...} | | blanket_impl.rs:286:5:286:29 | MySqlConnection | @@ -5934,6 +5952,7 @@ inferType | dereference.rs:214:22:214:38 | "In struct impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:214:22:214:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | +| dereference.rs:214:22:214:38 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:220:16:220:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:220:16:220:20 | SelfParam | TRef | dereference.rs:205:5:205:17 | Foo | | dereference.rs:220:23:222:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -5942,6 +5961,7 @@ inferType | dereference.rs:221:22:221:37 | "In trait impl!\\n" | TRef | {EXTERNAL LOCATION} | str | | dereference.rs:221:22:221:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | +| dereference.rs:221:22:221:37 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:225:19:228:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:226:17:226:17 | f | | dereference.rs:205:5:205:17 | Foo | | dereference.rs:226:21:226:26 | Foo {...} | | dereference.rs:205:5:205:17 | Foo | @@ -5971,6 +5991,7 @@ inferType | dyn_type.rs:29:17:29:42 | ...::format(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | +| dyn_type.rs:29:17:29:42 | { ... } | | {EXTERNAL LOCATION} | String | | dyn_type.rs:29:33:29:36 | self | | {EXTERNAL LOCATION} | & | | dyn_type.rs:29:33:29:36 | self | TRef | dyn_type.rs:21:1:24:1 | MyStruct | | dyn_type.rs:29:33:29:42 | self.value | | {EXTERNAL LOCATION} | i32 | @@ -6228,6 +6249,7 @@ inferType | main.rs:27:18:27:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:27:18:27:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:27:18:27:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:27:26:27:26 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:27:26:27:28 | x.a | | main.rs:3:5:4:13 | S | | main.rs:30:29:30:29 | x | | main.rs:16:5:19:5 | GenericThing | @@ -6242,6 +6264,7 @@ inferType | main.rs:32:18:32:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:32:18:32:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:32:18:32:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:32:26:32:26 | a | | {EXTERNAL LOCATION} | bool | | main.rs:35:31:63:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:37:13:37:13 | x | | main.rs:16:5:19:5 | GenericThing | @@ -6254,6 +6277,7 @@ inferType | main.rs:38:18:38:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:38:18:38:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:38:18:38:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:38:26:38:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:38:26:38:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:38:26:38:28 | x.a | | main.rs:3:5:4:13 | S | @@ -6267,6 +6291,7 @@ inferType | main.rs:42:18:42:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:42:18:42:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:42:18:42:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:42:26:42:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:42:26:42:26 | x | A | main.rs:3:5:4:13 | S | | main.rs:42:26:42:28 | x.a | | main.rs:3:5:4:13 | S | @@ -6279,6 +6304,7 @@ inferType | main.rs:49:18:49:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:49:18:49:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:49:18:49:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:49:26:49:26 | x | | main.rs:21:5:23:5 | OptionS | | main.rs:49:26:49:28 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:49:26:49:28 | x.a | T | main.rs:3:5:4:13 | S | @@ -6295,6 +6321,7 @@ inferType | main.rs:55:18:55:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:55:18:55:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:55:18:55:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:55:26:55:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:55:26:55:26 | x | A | main.rs:10:5:14:5 | MyOption | | main.rs:55:26:55:26 | x | A.T | main.rs:3:5:4:13 | S | @@ -6320,6 +6347,7 @@ inferType | main.rs:62:18:62:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:62:18:62:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:62:18:62:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:62:26:62:26 | a | | main.rs:10:5:14:5 | MyOption | | main.rs:62:26:62:26 | a | T | main.rs:3:5:4:13 | S | | main.rs:65:16:68:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6337,6 +6365,7 @@ inferType | main.rs:85:18:85:33 | "main.rs::m1::f\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:85:18:85:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:85:18:85:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:86:13:86:13 | x | | main.rs:72:5:72:21 | Foo | | main.rs:86:17:86:22 | Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:87:13:87:13 | y | | main.rs:72:5:72:21 | Foo | @@ -6350,6 +6379,7 @@ inferType | main.rs:92:18:92:33 | "main.rs::m1::g\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:92:18:92:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:92:18:92:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:93:9:93:9 | x | | main.rs:72:5:72:21 | Foo | | main.rs:93:9:93:14 | x.m1() | | main.rs:72:5:72:21 | Foo | | main.rs:94:9:94:9 | y | | main.rs:72:5:72:21 | Foo | @@ -6380,6 +6410,7 @@ inferType | main.rs:131:26:131:31 | "foo!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:131:26:131:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:131:26:131:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:137:25:137:29 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:137:25:137:29 | SelfParam | TRef | main.rs:135:9:140:9 | Self [trait Bar] | | main.rs:137:32:139:13 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6388,6 +6419,7 @@ inferType | main.rs:138:26:138:31 | "bar!\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:138:26:138:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:138:26:138:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:149:15:170:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:150:13:150:13 | x | | main.rs:142:9:142:21 | X | | main.rs:150:17:150:17 | X | | main.rs:142:9:142:21 | X | @@ -6446,6 +6478,7 @@ inferType | main.rs:209:18:209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:209:18:209:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:209:18:209:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:209:26:209:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:209:26:209:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:209:26:209:28 | x.a | | main.rs:179:5:180:14 | S1 | @@ -6454,6 +6487,7 @@ inferType | main.rs:210:18:210:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:210:18:210:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:210:18:210:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:210:26:210:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:210:26:210:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:210:26:210:28 | y.a | | main.rs:181:5:182:14 | S2 | @@ -6462,6 +6496,7 @@ inferType | main.rs:212:18:212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:212:18:212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:212:18:212:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:212:26:212:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:212:26:212:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:212:26:212:31 | x.m1() | | main.rs:179:5:180:14 | S1 | @@ -6470,6 +6505,7 @@ inferType | main.rs:213:18:213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:213:18:213:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:213:18:213:33 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:213:26:213:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:213:26:213:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:213:26:213:31 | y.m1() | | main.rs:174:5:177:5 | MyThing | @@ -6490,6 +6526,7 @@ inferType | main.rs:218:18:218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:218:18:218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:218:18:218:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:218:26:218:26 | x | | main.rs:174:5:177:5 | MyThing | | main.rs:218:26:218:26 | x | A | main.rs:179:5:180:14 | S1 | | main.rs:218:26:218:31 | x.m2() | | main.rs:179:5:180:14 | S1 | @@ -6498,6 +6535,7 @@ inferType | main.rs:219:18:219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:219:18:219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:219:18:219:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:219:26:219:26 | y | | main.rs:174:5:177:5 | MyThing | | main.rs:219:26:219:26 | y | A | main.rs:181:5:182:14 | S2 | | main.rs:219:26:219:31 | y.m2() | | main.rs:181:5:182:14 | S2 | @@ -6642,6 +6680,7 @@ inferType | main.rs:378:18:378:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:378:18:378:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:378:18:378:38 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:378:26:378:33 | thing_s1 | | main.rs:224:5:227:5 | MyThing | | main.rs:378:26:378:33 | thing_s1 | A | main.rs:235:5:236:14 | S1 | | main.rs:378:26:378:38 | thing_s1.m1() | | main.rs:235:5:236:14 | S1 | @@ -6650,6 +6689,7 @@ inferType | main.rs:379:18:379:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:379:18:379:40 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:379:18:379:40 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:379:26:379:33 | thing_s2 | | main.rs:224:5:227:5 | MyThing | | main.rs:379:26:379:33 | thing_s2 | A | main.rs:237:5:238:14 | S2 | | main.rs:379:26:379:38 | thing_s2.m1() | | main.rs:224:5:227:5 | MyThing | @@ -6664,6 +6704,7 @@ inferType | main.rs:381:18:381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:381:18:381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:381:18:381:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:381:26:381:27 | s3 | | main.rs:239:5:240:14 | S3 | | main.rs:383:13:383:14 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:383:13:383:14 | p1 | P1 | main.rs:235:5:236:14 | S1 | @@ -6678,6 +6719,7 @@ inferType | main.rs:384:18:384:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:384:18:384:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:384:18:384:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:384:26:384:27 | p1 | | main.rs:229:5:233:5 | MyPair | | main.rs:384:26:384:27 | p1 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:384:26:384:27 | p1 | P2 | main.rs:235:5:236:14 | S1 | @@ -6695,6 +6737,7 @@ inferType | main.rs:387:18:387:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:387:18:387:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:387:18:387:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:387:26:387:27 | p2 | | main.rs:229:5:233:5 | MyPair | | main.rs:387:26:387:27 | p2 | P1 | main.rs:235:5:236:14 | S1 | | main.rs:387:26:387:27 | p2 | P2 | main.rs:237:5:238:14 | S2 | @@ -6716,6 +6759,7 @@ inferType | main.rs:393:18:393:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:393:18:393:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:393:18:393:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:393:26:393:27 | p3 | | main.rs:229:5:233:5 | MyPair | | main.rs:393:26:393:27 | p3 | P1 | main.rs:224:5:227:5 | MyThing | | main.rs:393:26:393:27 | p3 | P1.A | main.rs:235:5:236:14 | S1 | @@ -6739,6 +6783,7 @@ inferType | main.rs:398:18:398:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:398:18:398:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:398:18:398:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:398:26:398:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:399:13:399:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:399:17:399:17 | a | | main.rs:229:5:233:5 | MyPair | @@ -6750,6 +6795,7 @@ inferType | main.rs:400:18:400:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:400:18:400:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:400:18:400:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:400:26:400:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:406:13:406:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:406:13:406:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6769,6 +6815,7 @@ inferType | main.rs:408:18:408:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:408:18:408:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:408:18:408:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:408:26:408:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:409:13:409:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:409:17:409:17 | b | | main.rs:229:5:233:5 | MyPair | @@ -6780,6 +6827,7 @@ inferType | main.rs:410:18:410:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:410:18:410:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:410:18:410:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:410:26:410:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:414:13:414:13 | x | | main.rs:235:5:236:14 | S1 | | main.rs:414:17:414:39 | call_trait_m1(...) | | main.rs:235:5:236:14 | S1 | @@ -6790,6 +6838,7 @@ inferType | main.rs:415:18:415:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:415:18:415:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:415:18:415:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:415:26:415:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:416:13:416:13 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:416:13:416:13 | y | A | main.rs:237:5:238:14 | S2 | @@ -6802,6 +6851,7 @@ inferType | main.rs:417:18:417:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:417:18:417:28 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:417:18:417:28 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:417:26:417:26 | y | | main.rs:224:5:227:5 | MyThing | | main.rs:417:26:417:26 | y | A | main.rs:237:5:238:14 | S2 | | main.rs:417:26:417:28 | y.a | | main.rs:237:5:238:14 | S2 | @@ -6823,6 +6873,7 @@ inferType | main.rs:422:18:422:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:422:18:422:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:422:18:422:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:422:26:422:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:423:13:423:13 | y | | main.rs:235:5:236:14 | S1 | | main.rs:423:17:423:26 | get_snd(...) | | main.rs:235:5:236:14 | S1 | @@ -6834,6 +6885,7 @@ inferType | main.rs:424:18:424:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:424:18:424:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:424:18:424:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:424:26:424:26 | y | | main.rs:235:5:236:14 | S1 | | main.rs:427:13:427:13 | b | | main.rs:229:5:233:5 | MyPair | | main.rs:427:13:427:13 | b | P1 | main.rs:237:5:238:14 | S2 | @@ -6853,6 +6905,7 @@ inferType | main.rs:429:18:429:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:429:18:429:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:429:18:429:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:429:26:429:26 | x | | main.rs:235:5:236:14 | S1 | | main.rs:430:13:430:13 | y | | main.rs:237:5:238:14 | S2 | | main.rs:430:17:430:26 | get_snd(...) | | main.rs:237:5:238:14 | S2 | @@ -6864,6 +6917,7 @@ inferType | main.rs:431:18:431:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:431:18:431:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:431:18:431:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:431:26:431:26 | y | | main.rs:237:5:238:14 | S2 | | main.rs:433:13:433:13 | c | | main.rs:229:5:233:5 | MyPair | | main.rs:433:13:433:13 | c | P1 | main.rs:239:5:240:14 | S3 | @@ -6986,6 +7040,7 @@ inferType | main.rs:571:18:571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:571:18:571:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:571:18:571:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:571:26:571:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:571:26:571:42 | x.common_method() | | main.rs:446:5:447:14 | S1 | | main.rs:572:9:572:46 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -6993,6 +7048,7 @@ inferType | main.rs:572:18:572:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:572:18:572:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:572:18:572:45 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:572:26:572:45 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:572:44:572:44 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:9:573:45 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -7000,6 +7056,7 @@ inferType | main.rs:573:18:573:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:573:18:573:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:573:18:573:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:573:26:573:26 | x | | main.rs:446:5:447:14 | S1 | | main.rs:573:26:573:44 | x.common_method_2() | | main.rs:446:5:447:14 | S1 | | main.rs:574:9:574:48 | MacroExpr | | {EXTERNAL LOCATION} | () | @@ -7007,6 +7064,7 @@ inferType | main.rs:574:18:574:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:574:18:574:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:574:18:574:47 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:574:26:574:47 | ...::common_method_2(...) | | main.rs:446:5:447:14 | S1 | | main.rs:574:46:574:46 | x | | main.rs:446:5:447:14 | S1 | | main.rs:576:13:576:13 | y | | main.rs:479:5:479:22 | S2 | @@ -7019,6 +7077,7 @@ inferType | main.rs:577:18:577:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:577:18:577:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:577:18:577:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:577:26:577:26 | y | | main.rs:479:5:479:22 | S2 | | main.rs:577:26:577:26 | y | T2 | main.rs:446:5:447:14 | S1 | | main.rs:577:26:577:42 | y.common_method() | | main.rs:446:5:447:14 | S1 | @@ -7027,6 +7086,7 @@ inferType | main.rs:578:18:578:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:578:18:578:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:578:18:578:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:578:26:578:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:578:50:578:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:578:50:578:55 | S2(...) | T2 | main.rs:446:5:447:14 | S1 | @@ -7041,6 +7101,7 @@ inferType | main.rs:581:18:581:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:581:18:581:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:581:18:581:42 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:581:26:581:26 | z | | main.rs:479:5:479:22 | S2 | | main.rs:581:26:581:26 | z | T2 | {EXTERNAL LOCATION} | i32 | | main.rs:581:26:581:42 | z.common_method() | | main.rs:446:5:447:14 | S1 | @@ -7049,6 +7110,7 @@ inferType | main.rs:582:18:582:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:582:18:582:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:582:18:582:49 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:582:26:582:49 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:582:44:582:48 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:582:44:582:48 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -7058,6 +7120,7 @@ inferType | main.rs:583:18:583:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:583:18:583:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:583:18:583:56 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:583:26:583:56 | ...::common_method(...) | | main.rs:446:5:447:14 | S1 | | main.rs:583:51:583:55 | S2(...) | | main.rs:479:5:479:22 | S2 | | main.rs:583:51:583:55 | S2(...) | T2 | {EXTERNAL LOCATION} | i32 | @@ -7072,6 +7135,7 @@ inferType | main.rs:586:18:586:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:586:18:586:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:586:18:586:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:586:26:586:26 | w | | main.rs:517:5:518:22 | S3 | | main.rs:586:26:586:26 | w | T3 | main.rs:446:5:447:14 | S1 | | main.rs:586:26:586:31 | w.m(...) | | {EXTERNAL LOCATION} | & | @@ -7083,6 +7147,7 @@ inferType | main.rs:587:18:587:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:587:18:587:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:587:18:587:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:587:26:587:37 | ...::m(...) | | {EXTERNAL LOCATION} | & | | main.rs:587:26:587:37 | ...::m(...) | TRef | main.rs:517:5:518:22 | S3 | | main.rs:587:26:587:37 | ...::m(...) | TRef.T3 | main.rs:446:5:447:14 | S1 | @@ -7132,6 +7197,7 @@ inferType | main.rs:622:18:622:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:622:18:622:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:622:18:622:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:622:26:622:27 | s1 | | main.rs:619:35:619:42 | I | | main.rs:625:65:625:65 | x | | main.rs:625:46:625:62 | T | | main.rs:625:71:629:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7143,6 +7209,7 @@ inferType | main.rs:628:18:628:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:628:18:628:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:628:18:628:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:628:26:628:27 | s2 | | main.rs:625:36:625:43 | I | | main.rs:631:49:631:49 | x | | main.rs:631:30:631:46 | T | | main.rs:631:55:634:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7154,6 +7221,7 @@ inferType | main.rs:633:18:633:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:633:18:633:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:633:18:633:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:633:26:633:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:636:53:636:53 | x | | main.rs:636:34:636:50 | T | | main.rs:636:59:639:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7165,6 +7233,7 @@ inferType | main.rs:638:18:638:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:638:18:638:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:638:18:638:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:638:26:638:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:641:43:641:43 | x | | main.rs:641:40:641:40 | T | | main.rs:644:5:647:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7176,6 +7245,7 @@ inferType | main.rs:646:18:646:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:646:18:646:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:646:18:646:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:646:26:646:26 | s | | main.rs:601:5:602:14 | S1 | | main.rs:650:16:650:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | | main.rs:652:16:652:19 | SelfParam | | main.rs:649:5:653:5 | Self [trait Pair] | @@ -7202,6 +7272,7 @@ inferType | main.rs:668:18:668:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:668:18:668:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:668:18:668:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:668:32:668:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:668:36:668:37 | s2 | | main.rs:604:5:605:14 | S2 | | main.rs:671:69:671:69 | x | | main.rs:671:52:671:66 | T | @@ -7218,6 +7289,7 @@ inferType | main.rs:675:18:675:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:675:18:675:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:675:18:675:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:675:32:675:33 | s1 | | main.rs:601:5:602:14 | S1 | | main.rs:675:36:675:37 | s2 | | main.rs:671:41:671:49 | T2 | | main.rs:678:50:678:50 | x | | main.rs:678:41:678:47 | T | @@ -7234,6 +7306,7 @@ inferType | main.rs:682:18:682:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:682:18:682:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:682:18:682:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:682:32:682:33 | s1 | | {EXTERNAL LOCATION} | bool | | main.rs:682:36:682:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:685:54:685:54 | x | | main.rs:685:41:685:51 | T | @@ -7250,6 +7323,7 @@ inferType | main.rs:689:18:689:29 | "{:?}, {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:689:18:689:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:689:18:689:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:689:32:689:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:689:36:689:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:697:18:697:22 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -7416,6 +7490,7 @@ inferType | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:849:26:849:26 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:849:26:849:26 | x | T | main.rs:743:5:744:14 | S1 | | main.rs:849:26:849:31 | x.m1() | | main.rs:743:5:744:14 | S1 | @@ -7424,6 +7499,7 @@ inferType | main.rs:850:18:850:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:850:18:850:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:850:26:850:26 | y | | main.rs:738:5:741:5 | MyThing | | main.rs:850:26:850:26 | y | T | main.rs:745:5:746:14 | S2 | | main.rs:850:26:850:31 | y.m1() | | main.rs:745:5:746:14 | S2 | @@ -7442,6 +7518,7 @@ inferType | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:855:26:855:26 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:855:26:855:26 | x | T | main.rs:743:5:744:14 | S1 | | main.rs:855:26:855:31 | x.m2() | | main.rs:743:5:744:14 | S1 | @@ -7450,6 +7527,7 @@ inferType | main.rs:856:18:856:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:856:18:856:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:856:26:856:26 | y | | main.rs:738:5:741:5 | MyThing | | main.rs:856:26:856:26 | y | T | main.rs:745:5:746:14 | S2 | | main.rs:856:26:856:31 | y.m2() | | main.rs:745:5:746:14 | S2 | @@ -7472,6 +7550,7 @@ inferType | main.rs:862:18:862:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:862:18:862:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:862:26:862:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:863:13:863:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:863:17:863:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | @@ -7482,6 +7561,7 @@ inferType | main.rs:864:18:864:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:864:18:864:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:864:26:864:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:865:13:865:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:865:17:865:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | @@ -7492,6 +7572,7 @@ inferType | main.rs:866:18:866:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:866:18:866:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:866:26:866:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:867:13:867:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:867:17:867:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | @@ -7502,6 +7583,7 @@ inferType | main.rs:868:18:868:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:868:18:868:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:868:26:868:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:869:13:869:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:869:17:869:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | @@ -7512,6 +7594,7 @@ inferType | main.rs:870:18:870:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:870:18:870:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:870:26:870:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:871:13:871:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:871:17:871:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | @@ -7522,6 +7605,7 @@ inferType | main.rs:872:18:872:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:872:18:872:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:872:26:872:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:873:13:873:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:873:17:873:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | @@ -7532,6 +7616,7 @@ inferType | main.rs:874:18:874:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:874:18:874:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:874:26:874:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:875:13:875:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:875:17:875:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | @@ -7542,6 +7627,7 @@ inferType | main.rs:876:18:876:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:876:18:876:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:876:26:876:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:877:13:877:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:877:17:877:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | @@ -7552,6 +7638,7 @@ inferType | main.rs:878:18:878:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:878:18:878:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:878:26:878:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:879:13:879:13 | a | | main.rs:745:5:746:14 | S2 | | main.rs:879:17:879:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | @@ -7562,6 +7649,7 @@ inferType | main.rs:880:18:880:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:880:18:880:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:880:26:880:26 | a | | main.rs:745:5:746:14 | S2 | | main.rs:882:13:882:14 | x3 | | main.rs:738:5:741:5 | MyThing | | main.rs:882:13:882:14 | x3 | T | main.rs:738:5:741:5 | MyThing | @@ -7591,6 +7679,7 @@ inferType | main.rs:890:18:890:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:890:18:890:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:890:26:890:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:891:13:891:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:891:17:891:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | @@ -7602,6 +7691,7 @@ inferType | main.rs:892:18:892:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:892:18:892:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:892:26:892:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:893:13:893:13 | a | | main.rs:743:5:744:14 | S1 | | main.rs:893:17:893:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | @@ -7613,6 +7703,7 @@ inferType | main.rs:894:18:894:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:894:18:894:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:894:26:894:26 | a | | main.rs:743:5:744:14 | S1 | | main.rs:895:13:895:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:895:17:895:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | @@ -7624,6 +7715,7 @@ inferType | main.rs:896:18:896:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:896:18:896:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:896:26:896:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:897:13:897:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:897:17:897:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | @@ -7635,6 +7727,7 @@ inferType | main.rs:898:18:898:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:898:18:898:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:898:26:898:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:899:13:899:13 | b | | main.rs:745:5:746:14 | S2 | | main.rs:899:17:899:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | @@ -7646,6 +7739,7 @@ inferType | main.rs:900:18:900:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:900:26:900:26 | b | | main.rs:745:5:746:14 | S2 | | main.rs:901:13:901:13 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:901:17:901:26 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | @@ -7683,6 +7777,7 @@ inferType | main.rs:931:18:931:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:931:18:931:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:931:18:931:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:931:26:931:26 | x | | main.rs:907:5:911:5 | MyEnum | | main.rs:931:26:931:26 | x | A | main.rs:913:5:914:14 | S1 | | main.rs:931:26:931:31 | x.m1() | | main.rs:913:5:914:14 | S1 | @@ -7691,6 +7786,7 @@ inferType | main.rs:932:18:932:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:932:18:932:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:932:18:932:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:932:26:932:26 | y | | main.rs:907:5:911:5 | MyEnum | | main.rs:932:26:932:26 | y | A | main.rs:915:5:916:14 | S2 | | main.rs:932:26:932:31 | y.m1() | | main.rs:915:5:916:14 | S2 | @@ -7760,6 +7856,7 @@ inferType | main.rs:1012:18:1012:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1012:18:1012:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1012:18:1012:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1012:26:1012:26 | a | | main.rs:937:5:940:5 | MyThing | | main.rs:1012:26:1012:26 | a | A | main.rs:947:5:948:14 | S1 | | main.rs:1015:16:1039:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -7778,6 +7875,7 @@ inferType | main.rs:1019:18:1019:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1019:18:1019:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1019:18:1019:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1019:26:1019:26 | x | | main.rs:937:5:940:5 | MyThing | | main.rs:1019:26:1019:26 | x | A | main.rs:947:5:948:14 | S1 | | main.rs:1019:26:1019:31 | x.m1() | | main.rs:947:5:948:14 | S1 | @@ -7786,6 +7884,7 @@ inferType | main.rs:1020:18:1020:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1020:18:1020:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1020:18:1020:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1020:26:1020:26 | y | | main.rs:937:5:940:5 | MyThing | | main.rs:1020:26:1020:26 | y | A | main.rs:949:5:950:14 | S2 | | main.rs:1020:26:1020:31 | y.m1() | | main.rs:949:5:950:14 | S2 | @@ -7804,6 +7903,7 @@ inferType | main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1025:18:1025:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1025:18:1025:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1025:26:1025:26 | x | | main.rs:937:5:940:5 | MyThing | | main.rs:1025:26:1025:26 | x | A | main.rs:947:5:948:14 | S1 | | main.rs:1025:26:1025:31 | x.m2() | | main.rs:947:5:948:14 | S1 | @@ -7812,6 +7912,7 @@ inferType | main.rs:1026:18:1026:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1026:18:1026:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:18:1026:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1026:26:1026:26 | y | | main.rs:937:5:940:5 | MyThing | | main.rs:1026:26:1026:26 | y | A | main.rs:949:5:950:14 | S2 | | main.rs:1026:26:1026:31 | y.m2() | | main.rs:949:5:950:14 | S2 | @@ -7830,6 +7931,7 @@ inferType | main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1031:18:1031:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1031:18:1031:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1031:26:1031:26 | x | | main.rs:942:5:945:5 | MyThing2 | | main.rs:1031:26:1031:26 | x | A | main.rs:947:5:948:14 | S1 | | main.rs:1031:26:1031:31 | x.m3() | | main.rs:947:5:948:14 | S1 | @@ -7838,6 +7940,7 @@ inferType | main.rs:1032:18:1032:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1032:18:1032:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1032:18:1032:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1032:26:1032:26 | y | | main.rs:942:5:945:5 | MyThing2 | | main.rs:1032:26:1032:26 | y | A | main.rs:949:5:950:14 | S2 | | main.rs:1032:26:1032:31 | y.m3() | | main.rs:949:5:950:14 | S2 | @@ -7882,6 +7985,7 @@ inferType | main.rs:1074:18:1074:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1074:18:1074:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1074:18:1074:31 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1074:26:1074:31 | id(...) | | {EXTERNAL LOCATION} | & | | main.rs:1074:26:1074:31 | id(...) | TRef | main.rs:1045:5:1046:14 | S1 | | main.rs:1074:29:1074:30 | &x | | {EXTERNAL LOCATION} | & | @@ -7894,6 +7998,7 @@ inferType | main.rs:1077:18:1077:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1077:18:1077:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1077:18:1077:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1077:26:1077:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | | main.rs:1077:26:1077:37 | id::<...>(...) | TRef | main.rs:1045:5:1046:14 | S1 | | main.rs:1077:35:1077:36 | &x | | {EXTERNAL LOCATION} | & | @@ -7906,6 +8011,7 @@ inferType | main.rs:1081:18:1081:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1081:18:1081:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1081:18:1081:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1081:26:1081:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | | main.rs:1081:26:1081:44 | id::<...>(...) | TRef | main.rs:1051:5:1051:25 | dyn Trait | | main.rs:1081:42:1081:43 | &x | | {EXTERNAL LOCATION} | & | @@ -7980,6 +8086,7 @@ inferType | main.rs:1134:18:1134:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1134:18:1134:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1134:18:1134:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1134:26:1134:26 | x | | main.rs:1117:5:1118:14 | S3 | | main.rs:1145:16:1165:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1147:13:1147:14 | p1 | | main.rs:1092:5:1098:5 | PairOption | @@ -7995,6 +8102,7 @@ inferType | main.rs:1148:18:1148:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1148:18:1148:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1148:18:1148:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1148:26:1148:27 | p1 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1148:26:1148:27 | p1 | Fst | main.rs:1111:5:1112:14 | S1 | | main.rs:1148:26:1148:27 | p1 | Snd | main.rs:1114:5:1115:14 | S2 | @@ -8009,6 +8117,7 @@ inferType | main.rs:1152:18:1152:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1152:18:1152:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1152:18:1152:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1152:26:1152:27 | p2 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1152:26:1152:27 | p2 | Fst | main.rs:1111:5:1112:14 | S1 | | main.rs:1152:26:1152:27 | p2 | Snd | main.rs:1114:5:1115:14 | S2 | @@ -8024,6 +8133,7 @@ inferType | main.rs:1156:18:1156:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1156:18:1156:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1156:18:1156:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1156:26:1156:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1156:26:1156:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | | main.rs:1156:26:1156:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | @@ -8038,6 +8148,7 @@ inferType | main.rs:1160:18:1160:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1160:18:1160:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1160:18:1160:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1160:26:1160:27 | p3 | | main.rs:1092:5:1098:5 | PairOption | | main.rs:1160:26:1160:27 | p3 | Fst | main.rs:1114:5:1115:14 | S2 | | main.rs:1160:26:1160:27 | p3 | Snd | main.rs:1117:5:1118:14 | S3 | @@ -8109,6 +8220,7 @@ inferType | main.rs:1209:18:1209:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1209:18:1209:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1209:18:1209:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1209:26:1209:27 | x1 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1209:26:1209:27 | x1 | T | main.rs:1204:5:1205:13 | S | | main.rs:1211:17:1211:18 | x2 | | main.rs:1169:5:1173:5 | MyOption | @@ -8124,6 +8236,7 @@ inferType | main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1213:18:1213:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1213:18:1213:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1213:26:1213:27 | x2 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1213:26:1213:27 | x2 | T | main.rs:1204:5:1205:13 | S | | main.rs:1215:17:1215:18 | x3 | | main.rs:1169:5:1173:5 | MyOption | @@ -8139,6 +8252,7 @@ inferType | main.rs:1217:18:1217:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1217:18:1217:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1217:18:1217:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1217:26:1217:27 | x3 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1217:26:1217:27 | x3 | T | main.rs:1204:5:1205:13 | S | | main.rs:1219:17:1219:18 | x4 | | main.rs:1169:5:1173:5 | MyOption | @@ -8157,6 +8271,7 @@ inferType | main.rs:1221:18:1221:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1221:18:1221:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1221:18:1221:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1221:26:1221:27 | x4 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1221:26:1221:27 | x4 | T | main.rs:1204:5:1205:13 | S | | main.rs:1223:13:1223:14 | x5 | | main.rs:1169:5:1173:5 | MyOption | @@ -8172,6 +8287,7 @@ inferType | main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1224:18:1224:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:18:1224:37 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1224:26:1224:27 | x5 | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1224:26:1224:27 | x5 | T | main.rs:1169:5:1173:5 | MyOption | | main.rs:1224:26:1224:27 | x5 | T.T | main.rs:1204:5:1205:13 | S | @@ -8190,6 +8306,7 @@ inferType | main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1227:18:1227:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:61 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1227:26:1227:61 | ...::flatten(...) | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1227:26:1227:61 | ...::flatten(...) | T | main.rs:1204:5:1205:13 | S | | main.rs:1227:59:1227:60 | x6 | | main.rs:1169:5:1173:5 | MyOption | @@ -8216,6 +8333,7 @@ inferType | main.rs:1235:18:1235:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1235:18:1235:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1235:18:1235:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1235:26:1235:32 | from_if | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1235:26:1235:32 | from_if | T | main.rs:1204:5:1205:13 | S | | main.rs:1238:13:1238:22 | from_match | | main.rs:1169:5:1173:5 | MyOption | @@ -8237,6 +8355,7 @@ inferType | main.rs:1242:18:1242:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1242:18:1242:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1242:18:1242:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1242:26:1242:35 | from_match | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1242:26:1242:35 | from_match | T | main.rs:1204:5:1205:13 | S | | main.rs:1245:13:1245:21 | from_loop | | main.rs:1169:5:1173:5 | MyOption | @@ -8259,6 +8378,7 @@ inferType | main.rs:1251:18:1251:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1251:18:1251:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1251:18:1251:34 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1251:26:1251:34 | from_loop | | main.rs:1169:5:1173:5 | MyOption | | main.rs:1251:26:1251:34 | from_loop | T | main.rs:1204:5:1205:13 | S | | main.rs:1269:15:1269:18 | SelfParam | | main.rs:1257:5:1258:19 | S | @@ -8325,6 +8445,7 @@ inferType | main.rs:1302:18:1302:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1302:18:1302:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1302:18:1302:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1302:26:1302:27 | x1 | | main.rs:1257:5:1258:19 | S | | main.rs:1302:26:1302:27 | x1 | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1302:26:1302:32 | x1.m1() | | main.rs:1260:5:1261:14 | S2 | @@ -8338,6 +8459,7 @@ inferType | main.rs:1306:18:1306:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1306:18:1306:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1306:18:1306:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1306:26:1306:27 | x2 | | main.rs:1257:5:1258:19 | S | | main.rs:1306:26:1306:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1306:26:1306:32 | x2.m2() | | {EXTERNAL LOCATION} | & | @@ -8347,6 +8469,7 @@ inferType | main.rs:1307:18:1307:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1307:18:1307:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1307:18:1307:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1307:26:1307:27 | x2 | | main.rs:1257:5:1258:19 | S | | main.rs:1307:26:1307:27 | x2 | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1307:26:1307:32 | x2.m3() | | {EXTERNAL LOCATION} | & | @@ -8361,6 +8484,7 @@ inferType | main.rs:1311:18:1311:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1311:18:1311:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1311:18:1311:41 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1311:26:1311:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | | main.rs:1311:26:1311:41 | ...::m2(...) | TRef | main.rs:1260:5:1261:14 | S2 | | main.rs:1311:38:1311:40 | &x3 | | {EXTERNAL LOCATION} | & | @@ -8373,6 +8497,7 @@ inferType | main.rs:1312:18:1312:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1312:18:1312:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:18:1312:41 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1312:26:1312:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | | main.rs:1312:26:1312:41 | ...::m3(...) | TRef | main.rs:1260:5:1261:14 | S2 | | main.rs:1312:38:1312:40 | &x3 | | {EXTERNAL LOCATION} | & | @@ -8394,6 +8519,7 @@ inferType | main.rs:1316:18:1316:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1316:18:1316:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1316:18:1316:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1316:26:1316:27 | x4 | | {EXTERNAL LOCATION} | & | | main.rs:1316:26:1316:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1316:26:1316:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8404,6 +8530,7 @@ inferType | main.rs:1317:18:1317:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1317:18:1317:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1317:18:1317:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1317:26:1317:27 | x4 | | {EXTERNAL LOCATION} | & | | main.rs:1317:26:1317:27 | x4 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1317:26:1317:27 | x4 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8423,6 +8550,7 @@ inferType | main.rs:1321:18:1321:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1321:18:1321:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1321:18:1321:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1321:26:1321:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1321:26:1321:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1321:26:1321:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8432,6 +8560,7 @@ inferType | main.rs:1322:18:1322:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1322:18:1322:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1322:18:1322:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1322:26:1322:27 | x5 | | {EXTERNAL LOCATION} | & | | main.rs:1322:26:1322:27 | x5 | TRef | main.rs:1257:5:1258:19 | S | | main.rs:1322:26:1322:27 | x5 | TRef.T | main.rs:1260:5:1261:14 | S2 | @@ -8450,6 +8579,7 @@ inferType | main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1327:18:1327:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1327:18:1327:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1327:26:1327:30 | (...) | | main.rs:1257:5:1258:19 | S | | main.rs:1327:26:1327:30 | (...) | T | main.rs:1260:5:1261:14 | S2 | | main.rs:1327:26:1327:35 | ... .m1() | | main.rs:1260:5:1261:14 | S2 | @@ -8479,6 +8609,7 @@ inferType | main.rs:1333:18:1333:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1333:18:1333:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1333:18:1333:27 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1333:26:1333:27 | x7 | | main.rs:1257:5:1258:19 | S | | main.rs:1333:26:1333:27 | x7 | T | {EXTERNAL LOCATION} | & | | main.rs:1333:26:1333:27 | x7 | T.TRef | main.rs:1260:5:1261:14 | S2 | @@ -8506,6 +8637,7 @@ inferType | main.rs:1344:18:1344:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1344:18:1344:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1344:18:1344:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1344:26:1344:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1347:13:1347:20 | my_thing | | {EXTERNAL LOCATION} | & | | main.rs:1347:13:1347:20 | my_thing | TRef | main.rs:1263:5:1266:5 | MyInt | @@ -8522,6 +8654,7 @@ inferType | main.rs:1349:18:1349:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1349:18:1349:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1349:18:1349:26 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1349:26:1349:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1356:16:1356:20 | SelfParam | | {EXTERNAL LOCATION} | & | | main.rs:1356:16:1356:20 | SelfParam | TRef | main.rs:1354:5:1362:5 | Self [trait MyTrait] | @@ -8705,6 +8838,7 @@ inferType | main.rs:1447:18:1447:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1447:18:1447:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1447:18:1447:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1447:26:1447:29 | flag | | main.rs:1404:5:1407:5 | MyFlag | | main.rs:1462:43:1465:5 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1462:43:1465:5 | { ... } | E | main.rs:1454:5:1455:14 | S1 | @@ -8786,6 +8920,7 @@ inferType | main.rs:1489:22:1489:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1489:22:1489:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1489:22:1489:30 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1490:13:1490:34 | ...::Ok::<...>(...) | E | main.rs:1454:5:1455:14 | S1 | | main.rs:1492:9:1492:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | @@ -8807,6 +8942,7 @@ inferType | main.rs:1498:22:1498:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1498:22:1498:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1498:22:1498:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1498:30:1498:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1501:9:1503:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1501:16:1501:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8822,6 +8958,7 @@ inferType | main.rs:1502:22:1502:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1502:22:1502:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1502:22:1502:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1502:30:1502:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1505:9:1507:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1505:16:1505:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8837,6 +8974,7 @@ inferType | main.rs:1506:22:1506:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1506:22:1506:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1506:22:1506:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1506:30:1506:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1509:9:1511:9 | if ... {...} | | {EXTERNAL LOCATION} | () | | main.rs:1509:16:1509:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | @@ -8856,6 +8994,7 @@ inferType | main.rs:1510:22:1510:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1510:22:1510:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1510:22:1510:35 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1510:30:1510:35 | result | | main.rs:1454:5:1455:14 | S1 | | main.rs:1516:16:1607:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1517:13:1517:13 | x | | {EXTERNAL LOCATION} | i32 | @@ -11103,6 +11242,7 @@ inferType | main.rs:2618:26:2618:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2618:26:2618:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2618:26:2618:36 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2620:13:2620:17 | box ... | | {EXTERNAL LOCATION} | Box | | main.rs:2620:13:2620:17 | box ... | A | {EXTERNAL LOCATION} | Global | | main.rs:2620:13:2620:17 | box ... | T | {EXTERNAL LOCATION} | i32 | @@ -11112,6 +11252,7 @@ inferType | main.rs:2622:26:2622:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2622:26:2622:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2622:26:2622:51 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2627:13:2627:22 | nested_box | | {EXTERNAL LOCATION} | Box | | main.rs:2627:13:2627:22 | nested_box | A | {EXTERNAL LOCATION} | Global | | main.rs:2627:13:2627:22 | nested_box | T | {EXTERNAL LOCATION} | Box | @@ -11143,6 +11284,7 @@ inferType | main.rs:2631:26:2631:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2631:26:2631:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2631:26:2631:59 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2643:36:2645:9 | { ... } | | main.rs:2640:5:2640:22 | Path | | main.rs:2644:13:2644:19 | Path {...} | | main.rs:2640:5:2640:22 | Path | | main.rs:2647:29:2647:33 | SelfParam | | {EXTERNAL LOCATION} | & | @@ -11328,6 +11470,7 @@ inferType | main.rs:2755:18:2755:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2755:18:2755:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2755:18:2755:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2756:9:2756:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:2759:20:2761:5 | { ... } | | {EXTERNAL LOCATION} | i32 | | main.rs:2760:16:2760:16 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -11344,6 +11487,7 @@ inferType | main.rs:2770:18:2770:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:2770:18:2770:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2770:18:2770:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2770:29:2770:29 | a | | {EXTERNAL LOCATION} | () | | main.rs:2771:9:2771:9 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:2776:16:2823:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11606,6 +11750,7 @@ inferType | pattern_matching.rs:17:18:17:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:17:18:17:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:17:18:17:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:17:20:17:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:19:5:25:5 | match value { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:19:11:19:15 | value | | {EXTERNAL LOCATION} | Option | @@ -11621,6 +11766,7 @@ inferType | pattern_matching.rs:22:22:22:29 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:22:22:22:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:22:22:22:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:22:24:22:27 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:24:9:24:12 | None | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:24:9:24:12 | None | T | {EXTERNAL LOCATION} | i32 | @@ -11636,6 +11782,7 @@ inferType | pattern_matching.rs:28:14:28:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:28:14:28:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:28:14:28:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:28:16:28:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:9:29:12 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:29:16:29:20 | value | | {EXTERNAL LOCATION} | Option | @@ -11646,6 +11793,7 @@ inferType | pattern_matching.rs:30:14:30:21 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:30:14:30:21 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:30:14:30:21 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:30:16:30:19 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:32:9:32:14 | value2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:32:9:32:14 | value2 | TRef | {EXTERNAL LOCATION} | Option | @@ -11674,6 +11822,7 @@ inferType | pattern_matching.rs:35:18:35:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:35:18:35:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:35:18:35:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:35:20:35:23 | mesg | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:9:38:14 | value3 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:38:18:38:19 | 42 | | {EXTERNAL LOCATION} | i32 | @@ -11691,6 +11840,7 @@ inferType | pattern_matching.rs:41:18:41:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:41:18:41:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:41:18:41:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:41:20:41:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:41:20:41:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:44:9:44:14 | value4 | | {EXTERNAL LOCATION} | Option | @@ -11715,6 +11865,7 @@ inferType | pattern_matching.rs:47:18:47:25 | "{mesg}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:47:18:47:25 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:47:18:47:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:47:20:47:23 | mesg | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:47:20:47:23 | mesg | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:50:13:50:18 | value5 | | {EXTERNAL LOCATION} | & | @@ -11920,6 +12071,7 @@ inferType | pattern_matching.rs:175:22:175:42 | "Literal pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:175:22:175:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:175:22:175:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:175:45:175:57 | literal_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:10:177:10 | 1 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:177:15:180:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11930,6 +12082,7 @@ inferType | pattern_matching.rs:179:22:179:43 | "Negative literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:179:22:179:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:179:22:179:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:179:46:179:61 | negative_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:9:181:9 | 0 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:181:14:184:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11940,6 +12093,7 @@ inferType | pattern_matching.rs:183:22:183:39 | "Zero literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:183:22:183:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:183:22:183:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:183:42:183:53 | zero_literal | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:9:185:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:185:14:185:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11956,6 +12110,7 @@ inferType | pattern_matching.rs:192:22:192:37 | "Pi matched: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:192:22:192:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:192:22:192:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:192:40:192:47 | pi_match | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:9:194:9 | _ | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:194:14:194:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -11978,6 +12133,7 @@ inferType | pattern_matching.rs:201:22:201:41 | "String literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:201:22:201:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:201:22:201:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:201:44:201:54 | hello_match | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:201:44:201:54 | hello_match | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:203:9:203:9 | _ | | {EXTERNAL LOCATION} | & | @@ -11996,6 +12152,7 @@ inferType | pattern_matching.rs:210:22:210:39 | "True literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:210:22:210:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:210:22:210:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:210:42:210:51 | true_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:9:212:13 | false | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:212:18:215:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12006,6 +12163,7 @@ inferType | pattern_matching.rs:214:22:214:40 | "False literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:214:22:214:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:214:22:214:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:214:43:214:53 | false_match | | {EXTERNAL LOCATION} | bool | | pattern_matching.rs:219:30:277:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:220:9:220:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12021,6 +12179,7 @@ inferType | pattern_matching.rs:226:22:226:45 | "Identifier pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:226:22:226:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:226:22:226:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:226:48:226:58 | bound_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:231:5:236:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:231:11:231:16 | &value | | {EXTERNAL LOCATION} | & | @@ -12041,6 +12200,7 @@ inferType | pattern_matching.rs:234:22:234:49 | "Reference identifier: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:234:22:234:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:234:22:234:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:234:52:234:60 | ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:234:52:234:60 | ref_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -12060,6 +12220,7 @@ inferType | pattern_matching.rs:244:22:244:45 | "Mutable identifier: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:244:22:244:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:244:22:244:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:244:48:244:56 | mut_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:249:9:249:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:249:9:249:20 | option_value | T | {EXTERNAL LOCATION} | i32 | @@ -12081,6 +12242,7 @@ inferType | pattern_matching.rs:253:22:253:49 | "@ pattern with literal: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:253:22:253:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:253:22:253:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:253:52:253:59 | at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:255:9:255:35 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12095,6 +12257,7 @@ inferType | pattern_matching.rs:257:22:257:47 | "@ pattern with range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:257:22:257:63 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:257:22:257:63 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:257:50:257:63 | range_at_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:259:9:259:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | @@ -12107,6 +12270,7 @@ inferType | pattern_matching.rs:261:22:261:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:261:22:261:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:261:22:261:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:261:40:261:49 | some_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:263:9:263:22 | ...::None | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:263:9:263:22 | ...::None | T | {EXTERNAL LOCATION} | i32 | @@ -12116,6 +12280,7 @@ inferType | pattern_matching.rs:264:22:264:33 | "None value\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:264:22:264:33 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:269:13:269:23 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:269:27:269:30 | 5i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:270:5:276:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12145,6 +12310,7 @@ inferType | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:274:22:274:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:274:22:274:38 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:279:28:290:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:280:9:280:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:280:17:280:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12165,6 +12331,7 @@ inferType | pattern_matching.rs:287:22:287:47 | "Wildcard pattern for: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:287:22:287:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:287:22:287:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:287:50:287:65 | wildcard_context | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:292:25:324:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:293:9:293:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12182,6 +12349,7 @@ inferType | pattern_matching.rs:299:22:299:42 | "Range inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:299:22:299:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:299:22:299:59 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:299:45:299:59 | range_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:10 | 11 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:301:9:301:12 | RangePat | | {EXTERNAL LOCATION} | i32 | @@ -12193,6 +12361,7 @@ inferType | pattern_matching.rs:303:22:303:40 | "Range from 11: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:303:22:303:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:303:22:303:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:303:43:303:52 | range_from | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:9:305:12 | RangePat | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:305:12:305:12 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -12204,6 +12373,7 @@ inferType | pattern_matching.rs:307:22:307:47 | "Range to 0 inclusive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:307:22:307:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:307:22:307:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:307:50:307:67 | range_to_inclusive | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:9:309:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:309:14:309:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12222,6 +12392,7 @@ inferType | pattern_matching.rs:316:22:316:41 | "Lowercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:316:22:316:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:316:22:316:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:316:44:316:57 | lowercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:11 | 'A' | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:318:9:318:17 | RangePat | | {EXTERNAL LOCATION} | char | @@ -12234,6 +12405,7 @@ inferType | pattern_matching.rs:320:22:320:41 | "Uppercase char: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:320:22:320:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:320:22:320:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:320:44:320:57 | uppercase_char | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:9:322:9 | _ | | {EXTERNAL LOCATION} | char | | pattern_matching.rs:322:14:322:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12257,6 +12429,7 @@ inferType | pattern_matching.rs:334:22:334:45 | "Dereferenced match: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:334:22:334:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:334:22:334:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:334:48:334:58 | deref_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:336:9:336:10 | &... | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:336:9:336:10 | &... | TRef | {EXTERNAL LOCATION} | i32 | @@ -12269,6 +12442,7 @@ inferType | pattern_matching.rs:338:22:338:47 | "Dereferenced binding: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:338:22:338:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:50:338:60 | deref_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:342:5:347:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | &mut | @@ -12288,6 +12462,7 @@ inferType | pattern_matching.rs:345:22:345:46 | "Mutable ref pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:345:22:345:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:345:22:345:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:345:49:345:61 | mut_ref_bound | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:349:5:354:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12309,6 +12484,7 @@ inferType | pattern_matching.rs:352:22:352:44 | "Reference pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:352:22:352:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:352:22:352:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:352:47:352:57 | ref_pattern | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef | {EXTERNAL LOCATION} | & | | pattern_matching.rs:352:47:352:57 | ref_pattern | TRef.TRef | {EXTERNAL LOCATION} | i32 | @@ -12330,6 +12506,7 @@ inferType | pattern_matching.rs:364:22:364:41 | "Origin point: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:364:22:364:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:364:22:364:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:364:44:364:49 | origin | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:9:366:25 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:366:17:366:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12344,6 +12521,7 @@ inferType | pattern_matching.rs:369:22:369:56 | "Point on x-axis: x={}, point=... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:369:22:369:80 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:369:22:369:80 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:369:59:369:66 | x_axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:369:69:369:80 | x_axis_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:371:9:371:27 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | @@ -12356,6 +12534,7 @@ inferType | pattern_matching.rs:373:22:373:44 | "Point with x=10: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:373:22:373:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:373:22:373:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:373:47:373:57 | ten_x_point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:9:375:22 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:375:17:375:17 | x | | {EXTERNAL LOCATION} | i32 | @@ -12370,6 +12549,7 @@ inferType | pattern_matching.rs:378:22:378:46 | "General point: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:378:22:378:68 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:378:22:378:68 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:378:49:378:57 | general_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:378:60:378:68 | general_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:383:9:383:13 | shape | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12391,6 +12571,7 @@ inferType | pattern_matching.rs:394:22:394:39 | "Rectangle: {}x{}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:394:22:394:64 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:394:22:394:64 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:394:42:394:51 | rect_width | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:394:54:394:64 | rect_height | | {EXTERNAL LOCATION} | f64 | | pattern_matching.rs:396:9:396:9 | _ | | pattern_matching.rs:145:1:150:1 | Shape | @@ -12418,6 +12599,7 @@ inferType | pattern_matching.rs:407:22:407:37 | "Pure red: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:407:22:407:48 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:407:22:407:48 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:407:40:407:48 | red_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:9:409:22 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:409:15:409:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12435,6 +12617,7 @@ inferType | pattern_matching.rs:414:17:414:37 | "Color: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:414:17:415:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:414:17:415:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:415:17:415:29 | red_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:32:415:46 | green_component | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:415:49:415:62 | blue_component | | {EXTERNAL LOCATION} | u8 | @@ -12452,6 +12635,7 @@ inferType | pattern_matching.rs:424:22:424:42 | "Reddish color: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:424:22:424:57 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:424:22:424:57 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:424:45:424:57 | reddish_color | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:9:426:20 | Color(...) | | pattern_matching.rs:142:1:143:25 | Color | | pattern_matching.rs:426:15:426:15 | r | | {EXTERNAL LOCATION} | u8 | @@ -12464,6 +12648,7 @@ inferType | pattern_matching.rs:428:22:428:45 | "Any color with red: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:428:22:428:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:428:22:428:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:428:48:428:54 | any_red | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:434:9:434:15 | wrapper | | pattern_matching.rs:432:5:433:24 | Wrapper | | pattern_matching.rs:434:19:434:29 | Wrapper(...) | | pattern_matching.rs:432:5:433:24 | Wrapper | @@ -12480,6 +12665,7 @@ inferType | pattern_matching.rs:438:22:438:34 | "Wrapped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:438:22:438:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:438:22:438:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:438:37:438:49 | wrapped_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:443:25:498:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:444:9:444:13 | tuple | | {EXTERNAL LOCATION} | (T_3) | @@ -12533,6 +12719,7 @@ inferType | pattern_matching.rs:450:22:450:40 | "Exact tuple: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:450:22:450:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:450:22:450:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:450:43:450:53 | exact_tuple | | {EXTERNAL LOCATION} | (T_3) | | pattern_matching.rs:450:43:450:53 | exact_tuple | T0 | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:450:43:450:53 | exact_tuple | T1 | {EXTERNAL LOCATION} | i32 | @@ -12566,6 +12753,7 @@ inferType | pattern_matching.rs:456:22:456:42 | "Tuple: ({}, {}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:456:22:456:79 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:456:22:456:79 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:456:45:456:54 | first_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:456:57:456:67 | second_elem | | {EXTERNAL LOCATION} | i64 | @@ -12590,6 +12778,7 @@ inferType | pattern_matching.rs:464:22:464:40 | "First element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:464:22:464:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:464:22:464:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:9:469:12 | unit | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:469:16:469:17 | TupleExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:470:5:475:5 | match unit { ... } | | {EXTERNAL LOCATION} | () | @@ -12603,6 +12792,7 @@ inferType | pattern_matching.rs:473:22:473:39 | "Unit value: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:473:22:473:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:473:22:473:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:473:42:473:51 | unit_value | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:478:9:478:14 | single | | {EXTERNAL LOCATION} | (T_1) | | pattern_matching.rs:478:9:478:14 | single | T0 | {EXTERNAL LOCATION} | i32 | @@ -12623,6 +12813,7 @@ inferType | pattern_matching.rs:482:22:482:47 | "Single element tuple: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:482:22:482:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:482:22:482:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:482:50:482:60 | single_elem | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:487:9:487:18 | ref_tuple1 | TRef | {EXTERNAL LOCATION} | (T_2) | @@ -12649,11 +12840,13 @@ inferType | pattern_matching.rs:489:18:489:24 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:489:18:489:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:489:18:489:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:9:490:28 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:490:18:490:24 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:490:18:490:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:490:18:490:27 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:494:9:494:18 | ref_tuple2 | TRef.T0 | {EXTERNAL LOCATION} | i32 | @@ -12677,11 +12870,13 @@ inferType | pattern_matching.rs:496:14:496:20 | "n: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:496:14:496:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:496:14:496:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:5:497:24 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:497:14:497:20 | "m: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:497:14:497:23 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:497:14:497:23 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:500:33:520:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:501:9:501:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:501:17:501:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -12697,6 +12892,7 @@ inferType | pattern_matching.rs:507:22:507:48 | "Parenthesized pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:507:22:507:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:507:22:507:61 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:507:51:507:61 | paren_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:512:9:512:13 | tuple | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:512:9:512:13 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -12726,6 +12922,7 @@ inferType | pattern_matching.rs:517:22:517:53 | "Parenthesized in tuple: {}, {... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:517:22:517:71 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:517:22:517:71 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:517:56:517:62 | paren_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:517:65:517:71 | paren_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:522:25:563:1 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12763,6 +12960,7 @@ inferType | pattern_matching.rs:529:22:529:40 | "Empty slice: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:529:22:529:53 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:529:22:529:53 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:529:43:529:53 | empty_slice | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:529:43:529:53 | empty_slice | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12775,6 +12973,7 @@ inferType | pattern_matching.rs:533:22:533:41 | "Single element: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:533:22:533:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:533:22:533:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:535:9:535:23 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:535:9:535:23 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12784,6 +12983,7 @@ inferType | pattern_matching.rs:538:22:538:43 | "Two elements: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:538:22:538:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:538:22:538:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:540:9:540:34 | SlicePat | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef | {EXTERNAL LOCATION} | [] | | pattern_matching.rs:540:9:540:34 | SlicePat | TRef.TSlice | {EXTERNAL LOCATION} | i32 | @@ -12793,6 +12993,7 @@ inferType | pattern_matching.rs:545:17:545:53 | "First: {}, last: {}, middle l... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:545:17:548:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:545:17:548:34 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:554:9:554:13 | array | | {EXTERNAL LOCATION} | [;] | | pattern_matching.rs:554:9:554:13 | array | TArray | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:554:17:554:28 | [...] | | {EXTERNAL LOCATION} | [;] | @@ -12811,6 +13012,7 @@ inferType | pattern_matching.rs:560:22:560:49 | "Array elements: {}, {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:560:22:560:70 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:560:22:560:70 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:565:24:601:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:567:27:567:28 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:568:9:568:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12826,6 +13028,7 @@ inferType | pattern_matching.rs:573:22:573:43 | "Matches constant: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:573:22:573:56 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:573:22:573:56 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:573:46:573:56 | const_match | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:9:575:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:575:14:575:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12845,6 +13048,7 @@ inferType | pattern_matching.rs:582:22:582:35 | "None variant\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:582:22:582:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:582:22:582:35 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | | pattern_matching.rs:152:1:156:1 | MyOption | | pattern_matching.rs:584:9:584:25 | ...::Some(...) | T | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:584:24:584:24 | x | | {EXTERNAL LOCATION} | i32 | @@ -12856,6 +13060,7 @@ inferType | pattern_matching.rs:586:22:586:37 | "Some value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:586:22:586:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:586:22:586:49 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:586:40:586:49 | some_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:591:5:600:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:591:11:591:51 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | @@ -12874,6 +13079,7 @@ inferType | pattern_matching.rs:594:22:594:35 | "Ok value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:594:22:594:45 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:594:22:594:45 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:594:38:594:45 | ok_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | | pattern_matching.rs:596:9:596:35 | ...::Err(...) | E | {EXTERNAL LOCATION} | usize | @@ -12887,6 +13093,7 @@ inferType | pattern_matching.rs:598:22:598:32 | "Error: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:598:22:598:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:598:22:598:43 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:598:35:598:43 | err_value | | {EXTERNAL LOCATION} | usize | | pattern_matching.rs:603:22:638:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:604:9:604:13 | value | | {EXTERNAL LOCATION} | i32 | @@ -12905,6 +13112,7 @@ inferType | pattern_matching.rs:610:22:610:39 | "Small number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:610:22:610:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:610:22:610:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:610:42:610:50 | small_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:10 | 10 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:612:9:612:15 | 10 \| 20 | | {EXTERNAL LOCATION} | i32 | @@ -12917,6 +13125,7 @@ inferType | pattern_matching.rs:614:22:614:39 | "Round number: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:614:22:614:50 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:614:22:614:50 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:614:42:614:50 | round_num | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:9:616:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:616:14:616:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12945,6 +13154,7 @@ inferType | pattern_matching.rs:625:22:625:46 | "Point on axis: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:625:22:625:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:625:22:625:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:625:49:625:54 | axis_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:625:57:625:62 | axis_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:627:9:627:9 | _ | | pattern_matching.rs:135:1:140:1 | Point | @@ -12966,6 +13176,7 @@ inferType | pattern_matching.rs:634:22:634:35 | "In range: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:634:22:634:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:634:22:634:51 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:634:38:634:51 | range_or_value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:9:636:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:636:14:636:15 | { ... } | | {EXTERNAL LOCATION} | () | @@ -13001,6 +13212,7 @@ inferType | pattern_matching.rs:647:22:647:42 | "First with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:647:22:647:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:647:22:647:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:5:656:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:651:11:651:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:651:11:651:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13018,6 +13230,7 @@ inferType | pattern_matching.rs:654:22:654:41 | "Last with rest: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:654:22:654:52 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:654:22:654:52 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:5:664:5 | match tuple { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:658:11:658:15 | tuple | | {EXTERNAL LOCATION} | (T_4) | | pattern_matching.rs:658:11:658:15 | tuple | T0 | {EXTERNAL LOCATION} | i32 | @@ -13035,6 +13248,7 @@ inferType | pattern_matching.rs:662:22:662:45 | "First and last: {}, {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:662:22:662:67 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:662:22:662:67 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:667:9:667:13 | point | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:17:667:38 | Point {...} | | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:667:28:667:29 | 10 | | {EXTERNAL LOCATION} | i32 | @@ -13051,25 +13265,30 @@ inferType | pattern_matching.rs:671:22:671:39 | "X coordinate: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:671:22:671:47 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:671:22:671:47 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:671:42:671:47 | rest_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:676:25:696:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:5:678:19 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:678:17:678:18 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:678:17:678:18 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:678:17:678:18 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:5:679:18 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:679:17:679:17 | x | | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:679:17:679:17 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:5:694:30 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | 42i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:694:21:694:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:21:694:29 | match 42i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:694:21:694:29 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:694:28:694:29 | 42 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:5:695:29 | MacroExpr | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | 10i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:695:21:695:25 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:21:695:28 | match 10i32 { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:695:21:695:28 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:695:28:695:28 | x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:698:34:724:1 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:700:9:700:20 | complex_data | | {EXTERNAL LOCATION} | (T_2) | @@ -13120,6 +13339,7 @@ inferType | pattern_matching.rs:709:17:709:57 | "Complex nested: y={}, green={... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:709:17:710:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:709:17:710:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:710:17:710:24 | nested_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:710:27:710:34 | nested_g | | {EXTERNAL LOCATION} | u8 | | pattern_matching.rs:710:37:710:44 | nested_b | | {EXTERNAL LOCATION} | u8 | @@ -13152,6 +13372,7 @@ inferType | pattern_matching.rs:716:22:716:50 | "Alternative complex: x={:?}\\n... | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:716:22:716:65 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:716:22:716:65 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:716:53:716:65 | alt_complex_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:719:9:719:13 | other | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:719:9:719:13 | other | T0 | pattern_matching.rs:135:1:140:1 | Point | @@ -13171,6 +13392,7 @@ inferType | pattern_matching.rs:721:22:721:47 | "Other complex data: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:721:22:721:62 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:721:22:721:62 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:721:50:721:62 | other_complex | | {EXTERNAL LOCATION} | (T_2) | | pattern_matching.rs:721:50:721:62 | other_complex | T0 | pattern_matching.rs:135:1:140:1 | Point | | pattern_matching.rs:721:50:721:62 | other_complex | T1 | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13367,6 +13589,7 @@ inferType | pattern_matching.rs:798:18:798:42 | "Point in loop: ({}, {})\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:798:18:798:58 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:798:18:798:58 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:798:45:798:50 | loop_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:798:53:798:58 | loop_y | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:802:9:802:20 | option_value | | pattern_matching.rs:152:1:156:1 | MyOption | @@ -13389,6 +13612,7 @@ inferType | pattern_matching.rs:805:18:805:44 | "If let with @ pattern: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:805:18:805:54 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:805:18:805:54 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:805:47:805:54 | if_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:809:13:809:17 | stack | | {EXTERNAL LOCATION} | Vec | | pattern_matching.rs:809:13:809:17 | stack | A | {EXTERNAL LOCATION} | Global | @@ -13416,6 +13640,7 @@ inferType | pattern_matching.rs:812:18:812:29 | "Popped: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:812:18:812:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:812:18:812:42 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:812:32:812:42 | while_let_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:9:816:13 | value | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:816:17:816:21 | 42i32 | | {EXTERNAL LOCATION} | i32 | @@ -13433,6 +13658,7 @@ inferType | pattern_matching.rs:820:22:820:35 | "Positive: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:820:22:820:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | +| pattern_matching.rs:820:22:820:44 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:820:38:820:44 | guard_x | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:9:822:9 | _ | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:822:14:822:15 | { ... } | | {EXTERNAL LOCATION} | () | From 8cbe17a62b5541816633af3452faf0ffa9848bef Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 Jan 2026 07:23:34 +0100 Subject: [PATCH 183/263] Rust: Fix bad join on name column --- .../rust/internal/typeinference/TypeMention.qll | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 1e2ca53b9cd..b38be2a9711 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -149,7 +149,7 @@ class NonAliasPathTypeMention extends PathTypeMention { TypeItemNode getResolved() { result = resolved } pragma[nomagic] - private TypeRepr getAssocTypeArg(string name) { + private TypeMention getAssocTypeArg(string name) { result = this.getSegment().getGenericArgList().getAssocTypeArg(name) } @@ -254,18 +254,23 @@ class NonAliasPathTypeMention extends PathTypeMention { ) } - pragma[nomagic] + bindingset[name] private TypeAlias getResolvedAlias(string name) { result = resolved.(TraitItemNode).getAssocItem(name) } + bindingset[name] + private TypeAlias getResolvedTraitAssocType(string name) { + result = resolved.(TraitItemNode).getASuccessor(name) + } + /** Gets the type mention in this path for the type parameter `tp`, if any. */ pragma[nomagic] private TypeMention getTypeMentionForTypeParameter(TypeParameter tp) { exists(TypeAlias alias, string name | result = this.getAssocTypeArg(name) and tp = TAssociatedTypeTypeParameter(resolved, alias) and - alias = resolved.(TraitItemNode).getASuccessor(name) + alias = this.getResolvedTraitAssocType(name) ) or // If `path` is the trait of an `impl` block then any associated types @@ -283,10 +288,9 @@ class NonAliasPathTypeMention extends PathTypeMention { // the rhs. of the type alias is a type argument to the trait. exists(ImplItemNode impl, TypeAlias alias, string name | this = impl.getTraitPath() and - alias = impl.getASuccessor(pragma[only_bind_into](name)) and + alias = impl.getASuccessor(name) and result = alias.getTypeRepr() and - tp = - TAssociatedTypeTypeParameter(resolved, this.getResolvedAlias(pragma[only_bind_into](name))) + tp = TAssociatedTypeTypeParameter(resolved, this.getResolvedAlias(name)) ) } From 6e0a1ba233540fff836fbc481477a8ddca82800e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 15 Jan 2026 07:05:33 +0000 Subject: [PATCH 184/263] List more covered java frameworks explicitly --- .../library-coverage/coverage.rst | 22 +++++++++++++++++-- .../library-coverage/frameworks.csv | 20 ++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index 93a10c9d294..faddc4e4272 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -15,13 +15,31 @@ Java framework & library support `Apache Commons Text `_,``org.apache.commons.text``,,272,,,,,,, `Apache HttpComponents `_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,183,122,,3,,,,119 `Apache Log4j 2 `_,``org.apache.logging.log4j``,,8,359,,,,,, + `Apache Struts `_,"``org.apache.struts2``, ``org.apache.struts.beanvalidation.validation.interceptor``",,3877,14,,,,,, + `Apache Velocity `_,"``org.apache.velocity.app``, ``org.apache.velocity.runtime``",,,8,,,,,, + `Couchbase `_,``com.couchbase.client.*``,,,,,,,,, + `FreeMarker `_,"``freemarker.cache``, ``freemarker.template``",,,8,,,,,, + `Google Gson `_,``com.google.gson``,,52,,,,,,, `Google Guava `_,``com.google.common.*``,,730,43,9,,,,, - JBoss Logging,``org.jboss.logging``,,,324,,,,,, + `Groovy `_,"``groovy.lang``, ``groovy.text``, ``groovy.util``, ``org.codehaus.groovy.control``",,,33,,,,,, + `Hibernate `_,``org.hibernate``,,,7,,,7,,, + `JBoss Logging `_,``org.jboss.logging``,,,324,,,,,, `JSON-java `_,``org.json``,,236,,,,,,, + `Jackson `_,``com.fasterxml.jackson.*``,,9,2,2,,,,, Java Standard Library,``java.*``,10,4628,260,99,,9,,,26 Java extensions,"``javax.*``, ``jakarta.*``",101,4185,90,10,4,2,1,1,4 + `Jetty `_,``org.eclipse.jetty.client``,,,2,,,,,,2 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 + `MongoDB `_,``com.mongodb``,,,10,,,,,, + `Netty `_,``io.netty.*``,15,490,23,7,,,,,16 + `OkHttp `_,``okhttp3``,,50,4,,,,,,4 + `RabbitMQ `_,``com.rabbitmq.client``,21,7,,,,,,, + `Retrofit `_,``retrofit2``,,1,1,,,,,,1 + `SLF4J `_,``org.slf4j``,,6,55,,,,,, + `SnakeYAML `_,``org.yaml.snakeyaml``,,1,,,,,,, `Spring `_,``org.springframework.*``,46,492,143,26,,28,14,,35 - Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.google.gson``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.mongodb``, ``com.opensymphony.xwork2``, ``com.rabbitmq.client``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.text``, ``groovy.util``, ``hudson``, ``io.jsonwebtoken``, ``io.netty.bootstrap``, ``io.netty.buffer``, ``io.netty.channel``, ``io.netty.handler.codec``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.struts.beanvalidation.validation.interceptor``, ``org.apache.struts2``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.eclipse.jetty.client``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.hibernate``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.jooq``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``org.yaml.snakeyaml``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",144,10529,927,140,6,22,18,,208 + `Thymeleaf `_,``org.thymeleaf``,,2,2,,,,,, + `jOOQ `_,``org.jooq``,,,1,,,1,,, + Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",108,6034,757,131,6,14,18,,185 Totals,,363,26371,2656,404,16,128,33,1,409 diff --git a/java/documentation/library-coverage/frameworks.csv b/java/documentation/library-coverage/frameworks.csv index 61ba9db6195..c2862f93b28 100644 --- a/java/documentation/library-coverage/frameworks.csv +++ b/java/documentation/library-coverage/frameworks.csv @@ -10,7 +10,25 @@ Apache Commons Lang,https://commons.apache.org/proper/commons-lang/,org.apache.c Apache Commons Text,https://commons.apache.org/proper/commons-text/,org.apache.commons.text Apache HttpComponents,https://hc.apache.org/,org.apache.hc.core5.* org.apache.http Apache Log4j 2,https://logging.apache.org/log4j/2.0/,org.apache.logging.log4j +Apache Struts,https://struts.apache.org/,org.apache.struts2 org.apache.struts.beanvalidation.validation.interceptor +Apache Velocity,https://velocity.apache.org/,org.apache.velocity.app org.apache.velocity.runtime +Couchbase,https://couchbase.com/,com.couchbase.client.* +FreeMarker,https://freemarker.apache.org/,freemarker.cache freemarker.template +Google Gson,https://github.com/google/gson,com.google.gson Google Guava,https://guava.dev/,com.google.common.* -JBoss Logging,,org.jboss.logging +Groovy,https://groovy-lang.org/,groovy.lang groovy.text groovy.util org.codehaus.groovy.control +Hibernate,https://hibernate.org/,org.hibernate +Jackson,https://github.com/FasterXML/jackson,com.fasterxml.jackson.* +JBoss Logging,https://github.com/jboss-logging/jboss-logging,org.jboss.logging +Jetty,https://eclipse.dev/jetty/,org.eclipse.jetty.client +jOOQ,https://www.jooq.org/,org.jooq JSON-java,https://github.com/stleary/JSON-java,org.json +MongoDB,https://www.mongodb.com/,com.mongodb +Netty,https://netty.io/,io.netty.* +OkHttp,https://square.github.io/okhttp/,okhttp3 +RabbitMQ,https://www.rabbitmq.com/,com.rabbitmq.client +Retrofit,https://square.github.io/retrofit/,retrofit2 +SLF4J,https://www.slf4j.org/,org.slf4j +SnakeYAML,https://github.com/snakeyaml/snakeyaml,org.yaml.snakeyaml Spring,https://spring.io/,org.springframework.* +Thymeleaf,https://www.thymeleaf.org/,org.thymeleaf From b4bbafa96f4e0d341bcee202f13157b1bcc50982 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 15 Jan 2026 10:19:33 +0100 Subject: [PATCH 185/263] Make `compile-queries.yml` sharded based on language --- .github/workflows/compile-queries.yml | 42 +++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/.github/workflows/compile-queries.yml b/.github/workflows/compile-queries.yml index 36171543cac..c8f6301bb53 100644 --- a/.github/workflows/compile-queries.yml +++ b/.github/workflows/compile-queries.yml @@ -17,9 +17,41 @@ permissions: contents: read jobs: - compile-queries: + detect-changes: if: github.repository_owner == 'github' + runs-on: ubuntu-latest + outputs: + languages: ${{ steps.detect.outputs.languages }} + steps: + - uses: actions/checkout@v5 + - name: Detect changed languages + id: detect + run: | + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + # For PRs, detect which languages have changes + changed_files=$(gh pr view ${{ github.event.pull_request.number }} --json files --jq '.files.[].path') + languages=() + for lang in actions cpp csharp go java javascript python ql ruby rust swift; do + if echo "$changed_files" | grep -qE "^($lang/|shared/)" ; then + languages+=("$lang") + fi + done + echo "languages=$(jq -c -n '$ARGS.positional' --args "${languages[@]}")" >> $GITHUB_OUTPUT + else + # For pushes to main/rc branches, run all languages + echo 'languages=["actions","cpp","csharp","go","java","javascript","python","ql","ruby","rust","swift"]' >> $GITHUB_OUTPUT + fi + env: + GH_TOKEN: ${{ github.token }} + + compile-queries: + needs: detect-changes + if: github.repository_owner == 'github' && needs.detect-changes.outputs.languages != '[]' runs-on: ubuntu-latest-xl + strategy: + fail-fast: false + matrix: + language: ${{ fromJson(needs.detect-changes.outputs.languages) }} steps: - uses: actions/checkout@v5 @@ -31,16 +63,16 @@ jobs: id: query-cache uses: ./.github/actions/cache-query-compilation with: - key: all-queries + key: ${{ matrix.language }}-queries - name: check formatting - run: find shared */ql -type f \( -name "*.qll" -o -name "*.ql" \) -print0 | xargs -0 -n 3000 -P 10 codeql query format -q --check-only + run: find shared ${{ matrix.language }}/ql -type f \( -name "*.qll" -o -name "*.ql" \) -print0 | xargs -0 -n 3000 -P 10 codeql query format -q --check-only - name: compile queries - check-only # run with --check-only if running in a PR (github.sha != main) if : ${{ github.event_name == 'pull_request' }} shell: bash - run: codeql query compile -q -j0 */ql/{src,examples} --keep-going --warnings=error --check-only --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 + run: codeql query compile -q -j0 ${{ matrix.language }}/ql/{src,examples} --keep-going --warnings=error --check-only --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 - name: compile queries - full # do full compile if running on main - this populates the cache if : ${{ github.event_name != 'pull_request' }} shell: bash - run: codeql query compile -q -j0 */ql/{src,examples} --keep-going --warnings=error --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 + run: codeql query compile -q -j0 ${{ matrix.language }}/ql/{src,examples} --keep-going --warnings=error --compilation-cache "${{ steps.query-cache.outputs.cache-dir }}" --compilation-cache-size=500 --ram=56000 From 15f3c38041e5c8ca53375cf6ede3b60e4bc8a4a6 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 Jan 2026 11:34:58 +0100 Subject: [PATCH 186/263] Rust: QLDoc fixes --- rust/ql/lib/codeql/rust/internal/typeinference/Type.qll | 4 ++-- .../ql/lib/codeql/rust/internal/typeinference/TypeMention.qll | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index a37baf92311..acf20905b6a 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -457,12 +457,12 @@ class AssociatedTypeTypeParameter extends TypeParameter, TAssociatedTypeTypePara override Location getLocation() { result = typeAlias.getLocation() } } -/** Gets the associated type type parameter corresponding directly to `typeAlias`. */ +/** Gets the associated type type-parameter corresponding directly to `typeAlias`. */ AssociatedTypeTypeParameter getAssociatedTypeTypeParameter(TypeAlias typeAlias) { result.isDirect() and result.getTypeAlias() = typeAlias } -/** Gets the dyn type type parameter corresponding directly to `typeAlias`. */ +/** Gets the dyn type type-parameter corresponding directly to `typeAlias`. */ DynTraitTypeParameter getDynTraitTypeParameter(TypeAlias typeAlias) { result.getTraitTypeParameter() = getAssociatedTypeTypeParameter(typeAlias) } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index b38be2a9711..840e5198f9c 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -245,7 +245,7 @@ class NonAliasPathTypeMention extends PathTypeMention { // trait Sub: Super // ``` // Where `Assoc` is an associated type of `Super` and `Assoc[Sub]` denotes - // the copy of the type parameter inherited into `Sub`. + // the copy of the type parameter inherited by `Sub`. exists(Trait subtrait, TypeAlias alias | subtrait.getATypeBound().getTypeRepr().(PathTypeRepr).getPath() = this and result = TAssociatedTypeTypeParameter(subtrait, alias) and From 97e0b4e9fd0aa47f8313d0ef3f6c5997f7c636d7 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 15 Jan 2026 10:33:35 +0000 Subject: [PATCH 187/263] Use parameter name to only select correct overloads --- .../frameworks/spring/SpringWebClient.qll | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll index 991a1c72981..64c00f830ed 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringWebClient.qll @@ -42,31 +42,7 @@ private class SpringRestTemplateMethodWithUriVariablesParameter extends Method { SpringRestTemplateMethodWithUriVariablesParameter() { this.getDeclaringType() instanceof SpringRestTemplate and - ( - this.hasName("delete") and pos = 1 - or - this.hasName("exchange") and pos = 4 - or - this.hasName("execute") and pos = 4 - or - this.hasName("getForEntity") and pos = 2 - or - this.hasName("getForObject") and pos = 2 - or - this.hasName("headForHeaders") and pos = 1 - or - this.hasName("optionsForAllow") and pos = 1 - or - this.hasName("patchForObject") and pos = 3 - or - this.hasName("postForEntity") and pos = 3 - or - this.hasName("postForLocation") and pos = 2 - or - this.hasName("postForObject") and pos = 3 - or - this.hasName("put") and pos = 2 - ) + this.getParameter(pos).getName() = "uriVariables" } int getUriVariablesPosition() { result = pos } From 196f6e19315f923093cb17716b4fdbacdf185d1e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 Jan 2026 11:53:30 +0100 Subject: [PATCH 188/263] Rust: Add type inference tests for closures and function traits --- .../library-tests/type-inference/closure.rs | 74 +++++ .../type-inference/type-inference.expected | 314 ++++++++++++++---- 2 files changed, 318 insertions(+), 70 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/closure.rs b/rust/ql/test/library-tests/type-inference/closure.rs index e5a9c83aa07..652106621a3 100644 --- a/rust/ql/test/library-tests/type-inference/closure.rs +++ b/rust/ql/test/library-tests/type-inference/closure.rs @@ -68,6 +68,80 @@ mod fn_once_trait { } } +mod fn_mut_trait { + fn return_type i64>(mut f: F) { + let _return = f(true); // $ MISSING: type=_return:i64 + } + + fn return_type_omitted(mut f: F) { + let _return = f(true); // $ MISSING: type=_return:() + } + + fn argument_type i64>(mut f: F) { + let arg = Default::default(); // $ MISSING: target=default type=arg:bool + f(arg); + } + + fn apply B>(mut f: F, a: A) -> B { + f(a) + } + + fn apply_two(mut f: impl FnMut(i64) -> i64) -> i64 { + f(2) + } + + fn test() { + let f = |x: bool| -> i64 { + if x { + 1 + } else { + 0 + } + }; + let _r = apply(f, true); // $ target=apply MISSING: type=_r:i64 + + let f = |x| x + 1; // $ MISSING: type=x:i64 target=add + let _r2 = apply_two(f); // $ target=apply_two certainType=_r2:i64 + } +} + +mod fn_trait { + fn return_type i64>(f: F) { + let _return = f(true); // $ MISSING: type=_return:i64 + } + + fn return_type_omitted(f: F) { + let _return = f(true); // $ MISSING: type=_return:() + } + + fn argument_type i64>(f: F) { + let arg = Default::default(); // $ MISSING: target=default type=arg:bool + f(arg); + } + + fn apply B>(f: F, a: A) -> B { + f(a) + } + + fn apply_two(f: impl Fn(i64) -> i64) -> i64 { + f(2) + } + + fn test() { + let f = |x: bool| -> i64 { + if x { + 1 + } else { + 0 + } + }; + let _r = apply(f, true); // $ target=apply MISSING: type=_r:i64 + + let f = |x| x + 1; // $ MISSING: type=x:i64 target=add + let _r2 = apply_two(f); // $ target=apply_two certainType=_r2:i64 + } +} + mod dyn_fn_once { fn apply_boxed B + ?Sized>(f: Box, arg: A) -> B { f(arg) diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index b4edd40f0f7..b3d998158cf 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -478,34 +478,84 @@ inferCertainType | closure.rs:64:27:64:30 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:67:13:67:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:67:19:67:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:72:54:72:54 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:72:54:72:54 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:72:54:72:54 | f | T | closure.rs:72:26:72:51 | F | -| closure.rs:72:65:72:67 | arg | | closure.rs:72:20:72:20 | A | -| closure.rs:72:78:74:5 | { ... } | | closure.rs:72:23:72:23 | B | -| closure.rs:73:9:73:9 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:73:9:73:9 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:73:9:73:9 | f | T | closure.rs:72:26:72:51 | F | -| closure.rs:73:11:73:13 | arg | | closure.rs:72:20:72:20 | A | -| closure.rs:76:30:76:30 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:76:30:76:30 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:76:30:76:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:76:30:76:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:76:30:76:30 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | -| closure.rs:76:30:76:30 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | -| closure.rs:76:58:76:60 | arg | | closure.rs:76:24:76:24 | A | -| closure.rs:76:66:79:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:77:31:77:31 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:77:31:77:31 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:77:31:77:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:77:31:77:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:77:31:77:31 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | -| closure.rs:77:31:77:31 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | -| closure.rs:77:34:77:36 | arg | | closure.rs:76:24:76:24 | A | -| closure.rs:78:31:78:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| closure.rs:78:31:78:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| closure.rs:78:41:78:41 | _ | | {EXTERNAL LOCATION} | i64 | -| closure.rs:78:49:78:52 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:72:47:72:47 | f | | closure.rs:72:20:72:40 | F | +| closure.rs:72:53:74:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:73:23:73:23 | f | | closure.rs:72:20:72:40 | F | +| closure.rs:73:25:73:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:76:48:76:48 | f | | closure.rs:76:28:76:41 | F | +| closure.rs:76:54:78:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:77:23:77:23 | f | | closure.rs:76:28:76:41 | F | +| closure.rs:77:25:77:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:80:49:80:49 | f | | closure.rs:80:22:80:42 | F | +| closure.rs:80:55:83:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:82:9:82:9 | f | | closure.rs:80:22:80:42 | F | +| closure.rs:85:42:85:42 | f | | closure.rs:85:20:85:35 | F | +| closure.rs:85:48:85:48 | a | | closure.rs:85:14:85:14 | A | +| closure.rs:85:59:87:5 | { ... } | | closure.rs:85:17:85:17 | B | +| closure.rs:86:9:86:9 | f | | closure.rs:85:20:85:35 | F | +| closure.rs:86:11:86:11 | a | | closure.rs:85:14:85:14 | A | +| closure.rs:89:22:89:22 | f | | closure.rs:89:25:89:46 | impl ... | +| closure.rs:89:56:91:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:90:9:90:9 | f | | closure.rs:89:25:89:46 | impl ... | +| closure.rs:93:15:105:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:94:18:94:18 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:95:16:95:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:101:27:101:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:104:13:104:15 | _r2 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:104:19:104:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:109:40:109:40 | f | | closure.rs:109:20:109:37 | F | +| closure.rs:109:46:111:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:110:23:110:23 | f | | closure.rs:109:20:109:37 | F | +| closure.rs:110:25:110:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:113:41:113:41 | f | | closure.rs:113:28:113:38 | F | +| closure.rs:113:47:115:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:114:23:114:23 | f | | closure.rs:113:28:113:38 | F | +| closure.rs:114:25:114:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:117:42:117:42 | f | | closure.rs:117:22:117:39 | F | +| closure.rs:117:48:120:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:119:9:119:9 | f | | closure.rs:117:22:117:39 | F | +| closure.rs:122:35:122:35 | f | | closure.rs:122:20:122:32 | F | +| closure.rs:122:41:122:41 | a | | closure.rs:122:14:122:14 | A | +| closure.rs:122:52:124:5 | { ... } | | closure.rs:122:17:122:17 | B | +| closure.rs:123:9:123:9 | f | | closure.rs:122:20:122:32 | F | +| closure.rs:123:11:123:11 | a | | closure.rs:122:14:122:14 | A | +| closure.rs:126:18:126:18 | f | | closure.rs:126:21:126:39 | impl ... | +| closure.rs:126:49:128:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:127:9:127:9 | f | | closure.rs:126:21:126:39 | impl ... | +| closure.rs:130:15:142:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:131:18:131:18 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:132:16:132:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:138:27:138:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:141:13:141:15 | _r2 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:141:19:141:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:146:54:146:54 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:146:54:146:54 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:146:54:146:54 | f | T | closure.rs:146:26:146:51 | F | +| closure.rs:146:65:146:67 | arg | | closure.rs:146:20:146:20 | A | +| closure.rs:146:78:148:5 | { ... } | | closure.rs:146:23:146:23 | B | +| closure.rs:147:9:147:9 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:147:9:147:9 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:147:9:147:9 | f | T | closure.rs:146:26:146:51 | F | +| closure.rs:147:11:147:13 | arg | | closure.rs:146:20:146:20 | A | +| closure.rs:150:30:150:30 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:150:30:150:30 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:150:30:150:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:150:30:150:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:150:30:150:30 | f | T.dyn(Args).T0 | closure.rs:150:24:150:24 | A | +| closure.rs:150:30:150:30 | f | T.dyn(Output) | closure.rs:150:27:150:27 | B | +| closure.rs:150:58:150:60 | arg | | closure.rs:150:24:150:24 | A | +| closure.rs:150:66:153:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:151:31:151:31 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:151:31:151:31 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:151:31:151:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:151:31:151:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:151:31:151:31 | f | T.dyn(Args).T0 | closure.rs:150:24:150:24 | A | +| closure.rs:151:31:151:31 | f | T.dyn(Output) | closure.rs:150:27:150:27 | B | +| closure.rs:151:34:151:36 | arg | | closure.rs:150:24:150:24 | A | +| closure.rs:152:31:152:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| closure.rs:152:31:152:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| closure.rs:152:41:152:41 | _ | | {EXTERNAL LOCATION} | i64 | +| closure.rs:152:49:152:52 | true | | {EXTERNAL LOCATION} | bool | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | @@ -5546,48 +5596,172 @@ inferType | closure.rs:67:19:67:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:67:29:67:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | | closure.rs:67:29:67:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:72:54:72:54 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:72:54:72:54 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:72:54:72:54 | f | T | closure.rs:72:26:72:51 | F | -| closure.rs:72:65:72:67 | arg | | closure.rs:72:20:72:20 | A | -| closure.rs:72:78:74:5 | { ... } | | closure.rs:72:23:72:23 | B | -| closure.rs:73:9:73:9 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:73:9:73:9 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:73:9:73:9 | f | T | closure.rs:72:26:72:51 | F | -| closure.rs:73:9:73:14 | f(...) | | closure.rs:72:23:72:23 | B | -| closure.rs:73:11:73:13 | arg | | closure.rs:72:20:72:20 | A | -| closure.rs:76:30:76:30 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:76:30:76:30 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:76:30:76:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:76:30:76:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:76:30:76:30 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | -| closure.rs:76:30:76:30 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | -| closure.rs:76:58:76:60 | arg | | closure.rs:76:24:76:24 | A | -| closure.rs:76:66:79:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:77:13:77:15 | _r1 | | closure.rs:76:27:76:27 | B | -| closure.rs:77:19:77:37 | apply_boxed(...) | | closure.rs:76:27:76:27 | B | -| closure.rs:77:31:77:31 | f | | {EXTERNAL LOCATION} | Box | -| closure.rs:77:31:77:31 | f | A | {EXTERNAL LOCATION} | Global | -| closure.rs:77:31:77:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:77:31:77:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:77:31:77:31 | f | T.dyn(Args).T0 | closure.rs:76:24:76:24 | A | -| closure.rs:77:31:77:31 | f | T.dyn(Output) | closure.rs:76:27:76:27 | B | -| closure.rs:77:34:77:36 | arg | | closure.rs:76:24:76:24 | A | -| closure.rs:78:13:78:15 | _r2 | | {EXTERNAL LOCATION} | bool | -| closure.rs:78:19:78:57 | apply_boxed(...) | | {EXTERNAL LOCATION} | bool | -| closure.rs:78:31:78:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| closure.rs:78:31:78:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| closure.rs:78:31:78:53 | ...::new(...) | T | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:78:31:78:53 | ...::new(...) | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:78:31:78:53 | ...::new(...) | T.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | -| closure.rs:78:31:78:53 | ...::new(...) | T.dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:78:40:78:52 | \|...\| true | | {EXTERNAL LOCATION} | dyn FnOnce | -| closure.rs:78:40:78:52 | \|...\| true | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:78:40:78:52 | \|...\| true | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | -| closure.rs:78:40:78:52 | \|...\| true | dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:78:41:78:41 | _ | | {EXTERNAL LOCATION} | i64 | -| closure.rs:78:49:78:52 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:78:56:78:56 | 3 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:72:47:72:47 | f | | closure.rs:72:20:72:40 | F | +| closure.rs:72:53:74:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:73:23:73:23 | f | | closure.rs:72:20:72:40 | F | +| closure.rs:73:25:73:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:76:48:76:48 | f | | closure.rs:76:28:76:41 | F | +| closure.rs:76:54:78:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:77:23:77:23 | f | | closure.rs:76:28:76:41 | F | +| closure.rs:77:25:77:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:80:49:80:49 | f | | closure.rs:80:22:80:42 | F | +| closure.rs:80:55:83:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:82:9:82:9 | f | | closure.rs:80:22:80:42 | F | +| closure.rs:85:42:85:42 | f | | closure.rs:85:20:85:35 | F | +| closure.rs:85:48:85:48 | a | | closure.rs:85:14:85:14 | A | +| closure.rs:85:59:87:5 | { ... } | | closure.rs:85:17:85:17 | B | +| closure.rs:86:9:86:9 | f | | closure.rs:85:20:85:35 | F | +| closure.rs:86:9:86:12 | f(...) | | closure.rs:85:17:85:17 | B | +| closure.rs:86:11:86:11 | a | | closure.rs:85:14:85:14 | A | +| closure.rs:89:22:89:22 | f | | closure.rs:89:25:89:46 | impl ... | +| closure.rs:89:56:91:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:90:9:90:9 | f | | closure.rs:89:25:89:46 | impl ... | +| closure.rs:90:9:90:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:90:11:90:11 | 2 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:93:15:105:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:94:13:94:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:94:13:94:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:94:13:94:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:94:13:94:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:94:13:94:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:94:17:100:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:94:17:100:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:94:17:100:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:94:17:100:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:94:17:100:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:94:18:94:18 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:94:34:100:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:94:34:100:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:95:13:99:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| closure.rs:95:13:99:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| closure.rs:95:16:95:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:95:18:97:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:95:18:97:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:96:17:96:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:96:17:96:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:97:20:99:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:97:20:99:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:98:17:98:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:98:17:98:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:101:24:101:24 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:101:24:101:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:101:24:101:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:101:24:101:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:101:24:101:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:101:27:101:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:103:13:103:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:103:13:103:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:103:17:103:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:103:17:103:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:103:25:103:25 | 1 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:104:13:104:15 | _r2 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:104:19:104:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:104:29:104:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:104:29:104:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:109:40:109:40 | f | | closure.rs:109:20:109:37 | F | +| closure.rs:109:46:111:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:110:23:110:23 | f | | closure.rs:109:20:109:37 | F | +| closure.rs:110:25:110:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:113:41:113:41 | f | | closure.rs:113:28:113:38 | F | +| closure.rs:113:47:115:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:114:23:114:23 | f | | closure.rs:113:28:113:38 | F | +| closure.rs:114:25:114:28 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:117:42:117:42 | f | | closure.rs:117:22:117:39 | F | +| closure.rs:117:48:120:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:119:9:119:9 | f | | closure.rs:117:22:117:39 | F | +| closure.rs:122:35:122:35 | f | | closure.rs:122:20:122:32 | F | +| closure.rs:122:41:122:41 | a | | closure.rs:122:14:122:14 | A | +| closure.rs:122:52:124:5 | { ... } | | closure.rs:122:17:122:17 | B | +| closure.rs:123:9:123:9 | f | | closure.rs:122:20:122:32 | F | +| closure.rs:123:9:123:12 | f(...) | | closure.rs:122:17:122:17 | B | +| closure.rs:123:11:123:11 | a | | closure.rs:122:14:122:14 | A | +| closure.rs:126:18:126:18 | f | | closure.rs:126:21:126:39 | impl ... | +| closure.rs:126:49:128:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:127:9:127:9 | f | | closure.rs:126:21:126:39 | impl ... | +| closure.rs:127:9:127:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:127:11:127:11 | 2 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:130:15:142:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:131:13:131:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:131:13:131:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:131:13:131:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:131:13:131:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:131:13:131:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:131:17:137:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:131:17:137:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:131:17:137:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:131:17:137:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:131:17:137:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:131:18:131:18 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:131:34:137:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:131:34:137:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:132:13:136:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| closure.rs:132:13:136:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| closure.rs:132:16:132:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:132:18:134:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:132:18:134:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:133:17:133:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:133:17:133:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:134:20:136:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| closure.rs:134:20:136:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:135:17:135:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:135:17:135:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:138:24:138:24 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:138:24:138:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:138:24:138:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:138:24:138:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:138:24:138:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:138:27:138:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:140:13:140:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:140:13:140:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:140:17:140:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:140:17:140:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:140:25:140:25 | 1 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:141:13:141:15 | _r2 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:141:19:141:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:141:29:141:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:141:29:141:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:146:54:146:54 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:146:54:146:54 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:146:54:146:54 | f | T | closure.rs:146:26:146:51 | F | +| closure.rs:146:65:146:67 | arg | | closure.rs:146:20:146:20 | A | +| closure.rs:146:78:148:5 | { ... } | | closure.rs:146:23:146:23 | B | +| closure.rs:147:9:147:9 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:147:9:147:9 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:147:9:147:9 | f | T | closure.rs:146:26:146:51 | F | +| closure.rs:147:9:147:14 | f(...) | | closure.rs:146:23:146:23 | B | +| closure.rs:147:11:147:13 | arg | | closure.rs:146:20:146:20 | A | +| closure.rs:150:30:150:30 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:150:30:150:30 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:150:30:150:30 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:150:30:150:30 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:150:30:150:30 | f | T.dyn(Args).T0 | closure.rs:150:24:150:24 | A | +| closure.rs:150:30:150:30 | f | T.dyn(Output) | closure.rs:150:27:150:27 | B | +| closure.rs:150:58:150:60 | arg | | closure.rs:150:24:150:24 | A | +| closure.rs:150:66:153:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:151:13:151:15 | _r1 | | closure.rs:150:27:150:27 | B | +| closure.rs:151:19:151:37 | apply_boxed(...) | | closure.rs:150:27:150:27 | B | +| closure.rs:151:31:151:31 | f | | {EXTERNAL LOCATION} | Box | +| closure.rs:151:31:151:31 | f | A | {EXTERNAL LOCATION} | Global | +| closure.rs:151:31:151:31 | f | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:151:31:151:31 | f | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:151:31:151:31 | f | T.dyn(Args).T0 | closure.rs:150:24:150:24 | A | +| closure.rs:151:31:151:31 | f | T.dyn(Output) | closure.rs:150:27:150:27 | B | +| closure.rs:151:34:151:36 | arg | | closure.rs:150:24:150:24 | A | +| closure.rs:152:13:152:15 | _r2 | | {EXTERNAL LOCATION} | bool | +| closure.rs:152:19:152:57 | apply_boxed(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:152:31:152:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| closure.rs:152:31:152:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| closure.rs:152:31:152:53 | ...::new(...) | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:152:31:152:53 | ...::new(...) | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:152:31:152:53 | ...::new(...) | T.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:152:31:152:53 | ...::new(...) | T.dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:152:40:152:52 | \|...\| true | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:152:40:152:52 | \|...\| true | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:152:40:152:52 | \|...\| true | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:152:40:152:52 | \|...\| true | dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:152:41:152:41 | _ | | {EXTERNAL LOCATION} | i64 | +| closure.rs:152:49:152:52 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:152:56:152:56 | 3 | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | From 27a437a5141953f21e39095aa5c9d5899a0cacf6 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 Jan 2026 10:15:01 +0000 Subject: [PATCH 189/263] C++: Modify test to reveal a bug. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 30 +++++++++--------- .../modelgenerator/internal/CaptureModels.qll | 2 +- .../dataflow/ir-barrier-guards/test.cpp | 8 ++++- .../dataflow/ir-barrier-guards/test.ql | 31 ++++++++++++------- 4 files changed, 41 insertions(+), 30 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 1185b6a0c9c..55325f055ce 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -156,7 +156,7 @@ class Node extends TIRDataFlowNode { * If `isGLValue()` holds, then the type of this node * should be thought of as "pointer to `getType()`". */ - DataFlowType getType() { none() } // overridden in subclasses + Type getType() { none() } // overridden in subclasses /** Gets the instruction corresponding to this node, if any. */ Instruction asInstruction() { result = this.(InstructionNode).getInstruction() } @@ -541,7 +541,7 @@ class Node extends TIRDataFlowNode { /** * Gets an upper bound on the type of this node. */ - DataFlowType getTypeBound() { result = this.getType() } + Type getTypeBound() { result = this.getType() } /** Gets the location of this element. */ cached @@ -585,7 +585,7 @@ private class Node0 extends Node, TNode0 { override string toStringImpl() { result = node.toString() } - override DataFlowType getType() { result = node.getType() } + override Type getType() { result = node.getType() } override predicate isGLValue() { node.isGLValue() } } @@ -704,7 +704,7 @@ class SsaSynthNode extends Node, TSsaSynthNode { override Declaration getFunction() { result = node.getBasicBlock().getEnclosingFunction() } - override DataFlowType getType() { result = node.getSourceVariable().getType() } + override Type getType() { result = node.getSourceVariable().getType() } override predicate isGLValue() { node.getSourceVariable().isGLValue() } @@ -732,7 +732,7 @@ class SsaIteratorNode extends Node, TSsaIteratorNode { override Declaration getFunction() { result = node.getFunction() } - override DataFlowType getType() { result = node.getType() } + override Type getType() { result = node.getType() } final override Location getLocationImpl() { result = node.getLocation() } @@ -792,7 +792,7 @@ class FinalGlobalValue extends Node, TFinalGlobalValue { override Declaration getFunction() { result = globalUse.getIRFunction().getFunction() } - override DataFlowType getType() { + override Type getType() { exists(int indirectionIndex | indirectionIndex = globalUse.getIndirectionIndex() and result = getTypeImpl(globalUse.getUnderlyingType(), indirectionIndex) @@ -826,7 +826,7 @@ class InitialGlobalValue extends Node, TInitialGlobalValue { final override predicate isGLValue() { globalDef.getIndirectionIndex() = 0 } - override DataFlowType getType() { result = globalDef.getUnderlyingType() } + override Type getType() { result = globalDef.getUnderlyingType() } final override Location getLocationImpl() { result = globalDef.getLocation() } @@ -853,7 +853,7 @@ class BodyLessParameterNodeImpl extends Node, TBodyLessParameterNodeImpl { /** Gets the indirection index of this node. */ int getIndirectionIndex() { result = indirectionIndex } - override DataFlowType getType() { + override Type getType() { result = getTypeImpl(p.getUnderlyingType(), this.getIndirectionIndex()) } @@ -1117,8 +1117,8 @@ private module RawIndirectNodes { override predicate isGLValue() { this.getOperand().isGLValue() } - override DataFlowType getType() { - exists(int sub, DataFlowType type, boolean isGLValue | + override Type getType() { + exists(int sub, Type type, boolean isGLValue | type = getOperandType(this.getOperand(), isGLValue) and if isGLValue = true then sub = 1 else sub = 0 | @@ -1163,7 +1163,7 @@ private module RawIndirectNodes { override predicate isGLValue() { this.getInstruction().isGLValue() } - override DataFlowType getType() { + override Type getType() { exists(int sub, DataFlowType type, boolean isGLValue | type = getInstructionType(this.getInstruction(), isGLValue) and if isGLValue = true then sub = 1 else sub = 0 @@ -1263,7 +1263,7 @@ class FinalParameterNode extends Node, TFinalParameterNode { result.asSourceCallable() = this.getFunction() } - override DataFlowType getType() { result = getTypeImpl(p.getUnderlyingType(), indirectionIndex) } + override Type getType() { result = getTypeImpl(p.getUnderlyingType(), indirectionIndex) } final override Location getLocationImpl() { // Parameters can have multiple locations. When there's a unique location we use @@ -1539,7 +1539,7 @@ abstract class PostUpdateNode extends Node { */ abstract Node getPreUpdateNode(); - final override DataFlowType getType() { result = this.getPreUpdateNode().getType() } + final override Type getType() { result = this.getPreUpdateNode().getType() } } /** @@ -1632,9 +1632,7 @@ class VariableNode extends Node, TGlobalLikeVariableNode { result.asSourceCallable() = v } - override DataFlowType getType() { - result = getTypeImpl(v.getUnderlyingType(), indirectionIndex - 1) - } + override Type getType() { result = getTypeImpl(v.getUnderlyingType(), indirectionIndex - 1) } final override Location getLocationImpl() { // Certain variables (such as parameters) can have multiple locations. diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 28892c5b820..ba1221d112b 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -78,7 +78,7 @@ module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig indirect_barrier=glval indirect_barrier=int } } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql index 20610c55385..5961da37122 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql @@ -13,26 +13,33 @@ predicate instructionGuardChecks(IRGuardCondition gc, Instruction checked, boole module BarrierGuard = DataFlow::InstructionBarrierGuard; -predicate indirectBarrierGuard(DataFlow::Node node, int indirectionIndex) { - node = BarrierGuard::getAnIndirectBarrierNode(indirectionIndex) +predicate indirectBarrierGuard(DataFlow::Node node, string s) { + node = BarrierGuard::getAnIndirectBarrierNode(_) and + if node.isGLValue() + then s = "glval<" + node.getType().toString().replaceAll(" ", "") + ">" + else s = node.getType().toString().replaceAll(" ", "") } -predicate barrierGuard(DataFlow::Node node) { node = BarrierGuard::getABarrierNode() } +predicate barrierGuard(DataFlow::Node node, string s) { + node = BarrierGuard::getABarrierNode() and + if node.isGLValue() + then s = "glval<" + node.getType().toString().replaceAll(" ", "") + ">" + else s = node.getType().toString().replaceAll(" ", "") +} module Test implements TestSig { - string getARelevantTag() { result = "barrier" } + string getARelevantTag() { result = ["barrier", "indirect_barrier"] } predicate hasActualResult(Location location, string element, string tag, string value) { - exists(DataFlow::Node node | - barrierGuard(node) and - value = "" + exists(DataFlow::Node node, string s | + indirectBarrierGuard(node, s) and + value = s and + tag = "indirect_barrier" or - exists(int indirectionIndex | - indirectBarrierGuard(node, indirectionIndex) and - value = indirectionIndex.toString() - ) + barrierGuard(node, s) and + value = s and + tag = "barrier" | - tag = "barrier" and element = node.toString() and location = node.getLocation() ) From 28681508f3ac1977309a3608268fd6b483757f15 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 Jan 2026 11:13:43 +0000 Subject: [PATCH 190/263] C++: Fix bug and accept test changes. --- .../semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll | 11 +++++++++-- .../library-tests/dataflow/ir-barrier-guards/test.cpp | 4 ++-- shared/controlflow/codeql/controlflow/Guards.qll | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll index 8dc3513b444..c4f5885cf6d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll @@ -1064,8 +1064,15 @@ module BarrierGuardWithIntParam { DataFlowIntegrationInput::Guard g, SsaImpl::Definition def, IRGuards::GuardValue val, int indirectionIndex ) { - IRGuards::Guards_v1::ParameterizedValidationWrapper::guardChecksDef(g, - def, val, indirectionIndex) + exists(Instruction e | + IRGuards::Guards_v1::ParameterizedValidationWrapper::guardChecks(g, + e, val, indirectionIndex) + | + indirectionIndex = 0 and + def.(Definition).getAUse().getDef() = e + or + def.(Definition).getAnIndirectUse(indirectionIndex).getDef() = e + ) } Node getABarrierNode(int indirectionIndex) { diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp index e9ea0790175..9d9a89c7008 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp @@ -4,12 +4,12 @@ void sink(int); void testCheckArgument(int* p) { if (checkArgument(p)) { - sink(*p); // $ barrier=int indirect_barrier=int barrier=int* indirect_barrier=int* + sink(*p); // $ indirect_barrier=int barrier=int* } } void testCheckArgument(int p) { if (checkArgument(&p)) { - sink(p); // $ barrier=glval indirect_barrier=glval indirect_barrier=int + sink(p); // $ barrier=glval indirect_barrier=int } } \ No newline at end of file diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index b313afcdb6b..f6774db1eb9 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -1364,7 +1364,7 @@ module Make< /** * Holds if the guard `g` validates the expression `e` upon evaluating to `val`. */ - private predicate guardChecks(Guard g, Expr e, GuardValue val, P par) { + predicate guardChecks(Guard g, Expr e, GuardValue val, P par) { guardChecks0(g, e, val, par) or exists(NonOverridableMethodCall call, ParameterPosition ppos, ArgumentPosition apos | From 6da7890ff528b3e6b8221f2fa0e86475e763e57a Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 Jan 2026 18:31:54 +0000 Subject: [PATCH 191/263] C++: Add indirect barrier guard to 'cpp/unbounded-write' to prevent FPs after fixing conflation. --- cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql b/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql index 4d33ede9315..8cb0122b668 100644 --- a/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql +++ b/cpp/ql/src/Security/CWE/CWE-120/UnboundedWrite.ql @@ -122,7 +122,8 @@ module Config implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { // Block flow if the node is guarded by any <, <= or = operations. - node = DataFlow::BarrierGuard::getABarrierNode() + node = DataFlow::BarrierGuard::getABarrierNode() or + node = DataFlow::BarrierGuard::getAnIndirectBarrierNode() } predicate observeDiffInformedIncrementalMode() { any() } From 549307a6bd19a831d87a7ff9be3f68a720b41ca6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Jan 2026 00:26:48 +0000 Subject: [PATCH 192/263] Add changed framework coverage reports --- java/documentation/library-coverage/coverage.csv | 2 ++ java/documentation/library-coverage/coverage.rst | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index 2da774f260f..c0cac724f93 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -24,6 +24,8 @@ com.azure.identity,3,,,,,1,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, com.caucho.burlap.io,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, com.caucho.hessian.io,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, com.cedarsoftware.util.io,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,, +com.couchbase.client.core.env,15,,1,,,,9,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +com.couchbase.client.java,10,,,,,,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6,,,,,,,,,,,,,,, com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, com.esotericsoftware.yamlbeans,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index faddc4e4272..fc3b041d08e 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -17,7 +17,7 @@ Java framework & library support `Apache Log4j 2 `_,``org.apache.logging.log4j``,,8,359,,,,,, `Apache Struts `_,"``org.apache.struts2``, ``org.apache.struts.beanvalidation.validation.interceptor``",,3877,14,,,,,, `Apache Velocity `_,"``org.apache.velocity.app``, ``org.apache.velocity.runtime``",,,8,,,,,, - `Couchbase `_,``com.couchbase.client.*``,,,,,,,,, + `Couchbase `_,``com.couchbase.client.*``,,1,25,,,6,,, `FreeMarker `_,"``freemarker.cache``, ``freemarker.template``",,,8,,,,,, `Google Gson `_,``com.google.gson``,,52,,,,,,, `Google Guava `_,``com.google.common.*``,,730,43,9,,,,, @@ -41,5 +41,5 @@ Java framework & library support `Thymeleaf `_,``org.thymeleaf``,,2,2,,,,,, `jOOQ `_,``org.jooq``,,,1,,,1,,, Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",108,6034,757,131,6,14,18,,185 - Totals,,363,26371,2656,404,16,128,33,1,409 + Totals,,363,26372,2681,404,16,134,33,1,409 From dabc5d54c902088ab84aa3e293ffe1e5d6cf2065 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 Jan 2026 12:16:51 +0100 Subject: [PATCH 193/263] Rust: Improve type inference for closures and function traits --- .../codeql/rust/frameworks/stdlib/Stdlib.qll | 31 +++++- .../internal/typeinference/TypeInference.qll | 25 +++-- .../internal/typeinference/TypeMention.qll | 4 +- .../library-tests/type-inference/closure.rs | 16 +-- .../type-inference/type-inference.expected | 104 +++++++++++------- rust/tools/builtins/mentions.rs | 2 +- 6 files changed, 121 insertions(+), 61 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index 114c283bbdb..e242a887798 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -143,23 +143,46 @@ class FutureTrait extends Trait { TypeAlias getOutputType() { result = this.(TraitItemNode).getAssocItem("Output") } } +/** A function trait `FnOnce`, `FnMut`, or `Fn`. */ +class AnyFnTrait extends Trait { + /** Gets the `Args` type parameter of this trait. */ + TypeParam getTypeParam() { result = this.getGenericParamList().getGenericParam(0) } +} + /** * The [`FnOnce` trait][1]. * * [1]: https://doc.rust-lang.org/std/ops/trait.FnOnce.html */ -class FnOnceTrait extends Trait { +class FnOnceTrait extends AnyFnTrait { pragma[nomagic] FnOnceTrait() { this.getCanonicalPath() = "core::ops::function::FnOnce" } - /** Gets the type parameter of this trait. */ - TypeParam getTypeParam() { result = this.getGenericParamList().getGenericParam(0) } - /** Gets the `Output` associated type. */ pragma[nomagic] TypeAlias getOutputType() { result = this.(TraitItemNode).getAssocItem("Output") } } +/** + * The [`FnMut` trait][1]. + * + * [1]: https://doc.rust-lang.org/std/ops/trait.FnMut.html + */ +class FnMutTrait extends AnyFnTrait { + pragma[nomagic] + FnMutTrait() { this.getCanonicalPath() = "core::ops::function::FnMut" } +} + +/** + * The [`Fn` trait][1]. + * + * [1]: https://doc.rust-lang.org/std/ops/trait.Fn.html + */ +class FnTrait extends AnyFnTrait { + pragma[nomagic] + FnTrait() { this.getCanonicalPath() = "core::ops::function::Fn" } +} + /** * The [`Iterator` trait][1]. * diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 3be7565ebaa..c85c4312229 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -3825,16 +3825,29 @@ private Type invokedClosureFnTypeAt(InvokedClosureExpr ce, TypePath path) { _, path, result) } +/** + * Gets the root type of a closure. + * + * We model closures as `dyn Fn` trait object types. A closure might implement + * only `Fn`, `FnMut`, or `FnOnce`. But since `Fn` is a subtrait of the others, + * giving closures the type `dyn Fn` works well in practice—even if not entirely + * accurate. + */ +private DynTraitType closureRootType() { + result = TDynTraitType(any(FnTrait t)) // always exists because of the mention in `builtins/mentions.rs` +} + /** Gets the path to a closure's return type. */ private TypePath closureReturnPath() { - result = TypePath::singleton(getDynTraitTypeParameter(any(FnOnceTrait t).getOutputType())) + result = + TypePath::singleton(TDynTraitTypeParameter(any(FnTrait t), any(FnOnceTrait t).getOutputType())) } /** Gets the path to a closure with arity `arity`s `index`th parameter type. */ pragma[nomagic] private TypePath closureParameterPath(int arity, int index) { result = - TypePath::cons(TDynTraitTypeParameter(_, any(FnOnceTrait t).getTypeParam()), + TypePath::cons(TDynTraitTypeParameter(_, any(FnTrait t).getTypeParam()), TypePath::singleton(getTupleTypeParameter(arity, index))) } @@ -3872,9 +3885,7 @@ private Type inferDynamicCallExprType(Expr n, TypePath path) { or // _If_ the invoked expression has the type of a closure, then we propagate // the surrounding types into the closure. - exists(int arity, TypePath path0 | - ce.getTypeAt(TypePath::nil()).(DynTraitType).getTrait() instanceof FnOnceTrait - | + exists(int arity, TypePath path0 | ce.getTypeAt(TypePath::nil()) = closureRootType() | // Propagate the type of arguments to the parameter types of closure exists(int index, ArgList args | n = ce and @@ -3898,10 +3909,10 @@ private Type inferClosureExprType(AstNode n, TypePath path) { exists(ClosureExpr ce | n = ce and path.isEmpty() and - result = TDynTraitType(any(FnOnceTrait t)) // always exists because of the mention in `builtins/mentions.rs` + result = closureRootType() or n = ce and - path = TypePath::singleton(TDynTraitTypeParameter(_, any(FnOnceTrait t).getTypeParam())) and + path = TypePath::singleton(TDynTraitTypeParameter(_, any(FnTrait t).getTypeParam())) and result.(TupleType).getArity() = ce.getNumberOfParams() or // Propagate return type annotation to body diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 840e5198f9c..b38cd56f61f 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -212,7 +212,7 @@ class NonAliasPathTypeMention extends PathTypeMention { // associated types of `Fn` and `FnMut` yet. // // [1]: https://doc.rust-lang.org/reference/paths.html#grammar-TypePathFn - exists(FnOnceTrait t, PathSegment s | + exists(AnyFnTrait t, PathSegment s | t = resolved and s = this.getSegment() and s.hasParenthesizedArgList() @@ -220,7 +220,7 @@ class NonAliasPathTypeMention extends PathTypeMention { tp = TTypeParamTypeParameter(t.getTypeParam()) and result = s.getParenthesizedArgList().(TypeMention).resolveTypeAt(path) or - tp = TAssociatedTypeTypeParameter(t, t.getOutputType()) and + tp = TAssociatedTypeTypeParameter(t, any(FnOnceTrait tr).getOutputType()) and ( result = s.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(path) or diff --git a/rust/ql/test/library-tests/type-inference/closure.rs b/rust/ql/test/library-tests/type-inference/closure.rs index 652106621a3..cc756a6b267 100644 --- a/rust/ql/test/library-tests/type-inference/closure.rs +++ b/rust/ql/test/library-tests/type-inference/closure.rs @@ -70,15 +70,15 @@ mod fn_once_trait { mod fn_mut_trait { fn return_type i64>(mut f: F) { - let _return = f(true); // $ MISSING: type=_return:i64 + let _return = f(true); // $ type=_return:i64 } fn return_type_omitted(mut f: F) { - let _return = f(true); // $ MISSING: type=_return:() + let _return = f(true); // $ type=_return:() } fn argument_type i64>(mut f: F) { - let arg = Default::default(); // $ MISSING: target=default type=arg:bool + let arg = Default::default(); // $ target=default type=arg:bool f(arg); } @@ -98,7 +98,7 @@ mod fn_mut_trait { 0 } }; - let _r = apply(f, true); // $ target=apply MISSING: type=_r:i64 + let _r = apply(f, true); // $ target=apply type=_r:i64 let f = |x| x + 1; // $ MISSING: type=x:i64 target=add let _r2 = apply_two(f); // $ target=apply_two certainType=_r2:i64 @@ -107,15 +107,15 @@ mod fn_mut_trait { mod fn_trait { fn return_type i64>(f: F) { - let _return = f(true); // $ MISSING: type=_return:i64 + let _return = f(true); // $ type=_return:i64 } fn return_type_omitted(f: F) { - let _return = f(true); // $ MISSING: type=_return:() + let _return = f(true); // $ type=_return:() } fn argument_type i64>(f: F) { - let arg = Default::default(); // $ MISSING: target=default type=arg:bool + let arg = Default::default(); // $ target=default type=arg:bool f(arg); } @@ -135,7 +135,7 @@ mod fn_trait { 0 } }; - let _r = apply(f, true); // $ target=apply MISSING: type=_r:i64 + let _r = apply(f, true); // $ target=apply type=_r:i64 let f = |x| x + 1; // $ MISSING: type=x:i64 target=add let _r2 = apply_two(f); // $ target=apply_two certainType=_r2:i64 diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index b3d998158cf..197ce9ae47f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -5420,12 +5420,12 @@ inferType | blanket_impl.rs:299:47:299:67 | "SELECT * FROM users" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:299:47:299:67 | "SELECT * FROM users" | TRef | {EXTERNAL LOCATION} | str | | closure.rs:4:19:31:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:6:13:6:22 | my_closure | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:6:13:6:22 | my_closure | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:6:13:6:22 | my_closure | dyn(Args) | {EXTERNAL LOCATION} | (T_2) | | closure.rs:6:13:6:22 | my_closure | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:6:13:6:22 | my_closure | dyn(Args).T1 | {EXTERNAL LOCATION} | bool | | closure.rs:6:13:6:22 | my_closure | dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:6:26:6:38 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:6:26:6:38 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:6:26:6:38 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_2) | | closure.rs:6:26:6:38 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:6:26:6:38 | \|...\| ... | dyn(Args).T1 | {EXTERNAL LOCATION} | bool | @@ -5437,11 +5437,11 @@ inferType | closure.rs:6:38:6:38 | b | | {EXTERNAL LOCATION} | bool | | closure.rs:8:13:8:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:8:22:8:25 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:9:13:9:19 | add_one | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:9:13:9:19 | add_one | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:9:13:9:19 | add_one | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:9:13:9:19 | add_one | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:9:13:9:19 | add_one | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:9:23:9:34 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:9:23:9:34 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:9:23:9:34 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:9:23:9:34 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:9:23:9:34 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | @@ -5450,7 +5450,7 @@ inferType | closure.rs:9:27:9:34 | ... + ... | | {EXTERNAL LOCATION} | i64 | | closure.rs:9:31:9:34 | 1i64 | | {EXTERNAL LOCATION} | i64 | | closure.rs:10:13:10:14 | _y | | {EXTERNAL LOCATION} | i64 | -| closure.rs:10:18:10:24 | add_one | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:10:18:10:24 | add_one | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:10:18:10:24 | add_one | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:10:18:10:24 | add_one | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:10:18:10:24 | add_one | dyn(Output) | {EXTERNAL LOCATION} | i64 | @@ -5458,55 +5458,55 @@ inferType | closure.rs:10:26:10:26 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:13:13:13:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:13:17:13:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:14:13:14:20 | add_zero | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:14:13:14:20 | add_zero | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:14:13:14:20 | add_zero | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:14:13:14:20 | add_zero | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:14:13:14:20 | add_zero | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:14:24:14:33 | \|...\| n | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:14:24:14:33 | \|...\| n | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:14:24:14:33 | \|...\| n | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:14:24:14:33 | \|...\| n | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:14:24:14:33 | \|...\| n | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:14:25:14:25 | n | | {EXTERNAL LOCATION} | i64 | | closure.rs:14:33:14:33 | n | | {EXTERNAL LOCATION} | i64 | | closure.rs:15:13:15:14 | _y | | {EXTERNAL LOCATION} | i64 | -| closure.rs:15:18:15:25 | add_zero | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:15:18:15:25 | add_zero | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:15:18:15:25 | add_zero | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:15:18:15:25 | add_zero | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:15:18:15:25 | add_zero | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:15:18:15:28 | add_zero(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:15:27:15:27 | x | | {EXTERNAL LOCATION} | i64 | -| closure.rs:17:13:17:21 | _get_bool | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:17:13:17:21 | _get_bool | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:17:13:17:21 | _get_bool | dyn(Args) | {EXTERNAL LOCATION} | () | | closure.rs:17:13:17:21 | _get_bool | dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:17:25:21:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:17:25:21:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:17:25:21:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | () | | closure.rs:17:25:21:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | bool | | closure.rs:17:36:21:9 | { ... } | | {EXTERNAL LOCATION} | bool | | closure.rs:19:17:19:17 | b | | {EXTERNAL LOCATION} | bool | | closure.rs:19:21:19:38 | ...::default(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:20:13:20:13 | b | | {EXTERNAL LOCATION} | bool | -| closure.rs:24:13:24:14 | id | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:24:13:24:14 | id | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:24:13:24:14 | id | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:24:13:24:14 | id | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:24:13:24:14 | id | dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:24:18:24:22 | \|...\| b | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:24:18:24:22 | \|...\| b | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:24:18:24:22 | \|...\| b | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:24:18:24:22 | \|...\| b | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:24:18:24:22 | \|...\| b | dyn(Output) | {EXTERNAL LOCATION} | bool | | closure.rs:24:19:24:19 | b | | {EXTERNAL LOCATION} | bool | | closure.rs:24:22:24:22 | b | | {EXTERNAL LOCATION} | bool | | closure.rs:25:13:25:14 | _b | | {EXTERNAL LOCATION} | bool | -| closure.rs:25:18:25:19 | id | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:25:18:25:19 | id | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:25:18:25:19 | id | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:25:18:25:19 | id | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:25:18:25:19 | id | dyn(Output) | {EXTERNAL LOCATION} | bool | | closure.rs:25:18:25:25 | id(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:25:21:25:24 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:28:13:28:15 | id2 | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:28:13:28:15 | id2 | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:28:13:28:15 | id2 | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:28:13:28:15 | id2 | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:28:13:28:15 | id2 | dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:28:19:28:23 | \|...\| b | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:28:19:28:23 | \|...\| b | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:28:19:28:23 | \|...\| b | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:28:19:28:23 | \|...\| b | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:28:19:28:23 | \|...\| b | dyn(Output) | {EXTERNAL LOCATION} | bool | @@ -5515,7 +5515,7 @@ inferType | closure.rs:29:13:29:15 | arg | | {EXTERNAL LOCATION} | bool | | closure.rs:29:19:29:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:30:13:30:15 | _b2 | | {EXTERNAL LOCATION} | bool | -| closure.rs:30:25:30:27 | id2 | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:30:25:30:27 | id2 | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:30:25:30:27 | id2 | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:30:25:30:27 | id2 | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:30:25:30:27 | id2 | dyn(Output) | {EXTERNAL LOCATION} | bool | @@ -5553,12 +5553,12 @@ inferType | closure.rs:53:11:53:11 | 2 | | {EXTERNAL LOCATION} | i32 | | closure.rs:53:11:53:11 | 2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:56:15:68:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:57:13:57:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:57:13:57:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:57:13:57:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:57:13:57:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:57:13:57:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:57:13:57:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:57:17:63:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:57:17:63:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:57:17:63:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:57:17:63:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:57:17:63:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | @@ -5581,32 +5581,40 @@ inferType | closure.rs:64:13:64:14 | _r | | {EXTERNAL LOCATION} | i64 | | closure.rs:64:18:64:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | | closure.rs:64:18:64:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:64:24:64:24 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:64:24:64:24 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:64:24:64:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:64:24:64:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:64:24:64:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:64:24:64:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:64:27:64:30 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:66:13:66:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:66:13:66:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:66:13:66:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:66:17:66:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:66:17:66:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:66:17:66:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:66:25:66:25 | 1 | | {EXTERNAL LOCATION} | i32 | | closure.rs:67:13:67:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:67:19:67:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:67:29:67:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:67:29:67:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:67:29:67:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:72:47:72:47 | f | | closure.rs:72:20:72:40 | F | | closure.rs:72:53:74:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:73:13:73:19 | _return | | {EXTERNAL LOCATION} | i64 | | closure.rs:73:23:73:23 | f | | closure.rs:72:20:72:40 | F | +| closure.rs:73:23:73:29 | f(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:73:25:73:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:76:48:76:48 | f | | closure.rs:76:28:76:41 | F | | closure.rs:76:54:78:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:77:13:77:19 | _return | | {EXTERNAL LOCATION} | () | | closure.rs:77:23:77:23 | f | | closure.rs:76:28:76:41 | F | +| closure.rs:77:23:77:29 | f(...) | | {EXTERNAL LOCATION} | () | | closure.rs:77:25:77:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:80:49:80:49 | f | | closure.rs:80:22:80:42 | F | | closure.rs:80:55:83:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:81:13:81:15 | arg | | {EXTERNAL LOCATION} | bool | +| closure.rs:81:19:81:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:82:9:82:9 | f | | closure.rs:80:22:80:42 | F | +| closure.rs:82:9:82:14 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:82:11:82:13 | arg | | {EXTERNAL LOCATION} | bool | | closure.rs:85:42:85:42 | f | | closure.rs:85:20:85:35 | F | | closure.rs:85:48:85:48 | a | | closure.rs:85:14:85:14 | A | | closure.rs:85:59:87:5 | { ... } | | closure.rs:85:17:85:17 | B | @@ -5618,13 +5626,14 @@ inferType | closure.rs:90:9:90:9 | f | | closure.rs:89:25:89:46 | impl ... | | closure.rs:90:9:90:12 | f(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:90:11:90:11 | 2 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:90:11:90:11 | 2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:93:15:105:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:94:13:94:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:94:13:94:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:94:13:94:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:94:13:94:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:94:13:94:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:94:13:94:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:94:17:100:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:94:17:100:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:94:17:100:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:94:17:100:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:94:17:100:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | @@ -5643,32 +5652,44 @@ inferType | closure.rs:97:20:99:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:98:17:98:17 | 0 | | {EXTERNAL LOCATION} | i32 | | closure.rs:98:17:98:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:101:24:101:24 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:101:13:101:14 | _r | | {EXTERNAL LOCATION} | i32 | +| closure.rs:101:13:101:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:101:18:101:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | +| closure.rs:101:18:101:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:101:24:101:24 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:101:24:101:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:101:24:101:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:101:24:101:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:101:24:101:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:101:27:101:30 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:103:13:103:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:103:13:103:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:103:13:103:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:103:17:103:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:103:17:103:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:103:17:103:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:103:25:103:25 | 1 | | {EXTERNAL LOCATION} | i32 | | closure.rs:104:13:104:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:104:19:104:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:104:29:104:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:104:29:104:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:104:29:104:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:109:40:109:40 | f | | closure.rs:109:20:109:37 | F | | closure.rs:109:46:111:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:110:13:110:19 | _return | | {EXTERNAL LOCATION} | i64 | | closure.rs:110:23:110:23 | f | | closure.rs:109:20:109:37 | F | +| closure.rs:110:23:110:29 | f(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:110:25:110:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:113:41:113:41 | f | | closure.rs:113:28:113:38 | F | | closure.rs:113:47:115:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:114:13:114:19 | _return | | {EXTERNAL LOCATION} | () | | closure.rs:114:23:114:23 | f | | closure.rs:113:28:113:38 | F | +| closure.rs:114:23:114:29 | f(...) | | {EXTERNAL LOCATION} | () | | closure.rs:114:25:114:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:117:42:117:42 | f | | closure.rs:117:22:117:39 | F | | closure.rs:117:48:120:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:118:13:118:15 | arg | | {EXTERNAL LOCATION} | bool | +| closure.rs:118:19:118:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:119:9:119:9 | f | | closure.rs:117:22:117:39 | F | +| closure.rs:119:9:119:14 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:119:11:119:13 | arg | | {EXTERNAL LOCATION} | bool | | closure.rs:122:35:122:35 | f | | closure.rs:122:20:122:32 | F | | closure.rs:122:41:122:41 | a | | closure.rs:122:14:122:14 | A | | closure.rs:122:52:124:5 | { ... } | | closure.rs:122:17:122:17 | B | @@ -5680,13 +5701,14 @@ inferType | closure.rs:127:9:127:9 | f | | closure.rs:126:21:126:39 | impl ... | | closure.rs:127:9:127:12 | f(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:127:11:127:11 | 2 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:127:11:127:11 | 2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:130:15:142:5 | { ... } | | {EXTERNAL LOCATION} | () | -| closure.rs:131:13:131:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:131:13:131:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:131:13:131:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:131:13:131:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:131:13:131:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:131:13:131:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | -| closure.rs:131:17:137:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:131:17:137:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:131:17:137:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:131:17:137:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:131:17:137:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | @@ -5705,20 +5727,24 @@ inferType | closure.rs:134:20:136:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:135:17:135:17 | 0 | | {EXTERNAL LOCATION} | i32 | | closure.rs:135:17:135:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:138:24:138:24 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:138:13:138:14 | _r | | {EXTERNAL LOCATION} | i32 | +| closure.rs:138:13:138:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:138:18:138:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | +| closure.rs:138:18:138:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:138:24:138:24 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:138:24:138:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:138:24:138:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:138:24:138:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:138:24:138:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:138:27:138:30 | true | | {EXTERNAL LOCATION} | bool | -| closure.rs:140:13:140:13 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:140:13:140:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:140:13:140:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| closure.rs:140:17:140:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:140:17:140:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:140:17:140:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:140:25:140:25 | 1 | | {EXTERNAL LOCATION} | i32 | | closure.rs:141:13:141:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:141:19:141:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | -| closure.rs:141:29:141:29 | f | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:141:29:141:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:141:29:141:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:146:54:146:54 | f | | {EXTERNAL LOCATION} | Box | | closure.rs:146:54:146:54 | f | A | {EXTERNAL LOCATION} | Global | @@ -5751,11 +5777,11 @@ inferType | closure.rs:152:19:152:57 | apply_boxed(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:152:31:152:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | | closure.rs:152:31:152:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| closure.rs:152:31:152:53 | ...::new(...) | T | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:152:31:152:53 | ...::new(...) | T | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:152:31:152:53 | ...::new(...) | T.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:152:31:152:53 | ...::new(...) | T.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:152:31:152:53 | ...::new(...) | T.dyn(Output) | {EXTERNAL LOCATION} | bool | -| closure.rs:152:40:152:52 | \|...\| true | | {EXTERNAL LOCATION} | dyn FnOnce | +| closure.rs:152:40:152:52 | \|...\| true | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:152:40:152:52 | \|...\| true | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:152:40:152:52 | \|...\| true | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:152:40:152:52 | \|...\| true | dyn(Output) | {EXTERNAL LOCATION} | bool | @@ -9060,7 +9086,7 @@ inferType | main.rs:1480:17:1480:18 | TryExpr | | {EXTERNAL LOCATION} | Result | | main.rs:1480:17:1480:18 | TryExpr | T | main.rs:1454:5:1455:14 | S1 | | main.rs:1480:17:1480:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1480:24:1480:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1480:24:1480:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:1480:24:1480:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | main.rs:1481:9:1481:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1481:9:1481:22 | ...::Ok(...) | E | main.rs:1457:5:1458:14 | S2 | @@ -9083,7 +9109,7 @@ inferType | main.rs:1488:22:1491:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1488:22:1491:10 | ... .and_then(...) | E | main.rs:1454:5:1455:14 | S1 | | main.rs:1488:33:1488:37 | value | | main.rs:1486:20:1486:27 | T | -| main.rs:1488:49:1491:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1488:49:1491:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:1488:49:1491:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | main.rs:1488:49:1491:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | | main.rs:1488:49:1491:9 | \|...\| ... | dyn(Output).E | main.rs:1454:5:1455:14 | S1 | @@ -10648,7 +10674,7 @@ inferType | main.rs:2399:19:2399:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2399:22:2399:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2399:25:2399:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2399:32:2399:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2399:32:2399:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:2399:32:2399:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | main.rs:2399:40:2399:40 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2399:43:2399:44 | { ... } | | {EXTERNAL LOCATION} | () | diff --git a/rust/tools/builtins/mentions.rs b/rust/tools/builtins/mentions.rs index a3731164893..3170c1bfbdf 100644 --- a/rust/tools/builtins/mentions.rs +++ b/rust/tools/builtins/mentions.rs @@ -3,4 +3,4 @@ use std::future::Future; fn mention_dyn_future(f: &dyn Future) {} -fn mention_dyn_fn_once(f: &dyn FnOnce() -> F) {} +fn mention_dyn_fn_once(f: &dyn Fn() -> F) {} From 9ab29f9be0ad968f60864f777787df21c136119c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 10:05:45 +0100 Subject: [PATCH 194/263] Rust: Add a change note for type inference improvements for closures --- .../ql/lib/change-notes/2026-01-16-type-inference-closures.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rust/ql/lib/change-notes/2026-01-16-type-inference-closures.md diff --git a/rust/ql/lib/change-notes/2026-01-16-type-inference-closures.md b/rust/ql/lib/change-notes/2026-01-16-type-inference-closures.md new file mode 100644 index 00000000000..1e093b74dbe --- /dev/null +++ b/rust/ql/lib/change-notes/2026-01-16-type-inference-closures.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added type inference support for the `FnMut(..) -> ..` and `Fn(..) -> ..` traits. They now work in type parameter bounds and are implemented by closures. \ No newline at end of file From c0b35694734e4eed6ff0d2f376851a2fdd2e55bf Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 10:28:09 +0100 Subject: [PATCH 195/263] Rust: Move `TypeAbstraction` into separate file --- .../typeinference/FunctionOverloading.qll | 1 + .../internal/typeinference/FunctionType.qll | 3 +- .../rust/internal/typeinference/Type.qll | 52 ----------------- .../typeinference/TypeAbstraction.qll | 56 +++++++++++++++++++ .../internal/typeinference/TypeInference.qll | 4 +- 5 files changed, 62 insertions(+), 54 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index e67fb05485f..5814493c389 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -8,6 +8,7 @@ private import rust private import codeql.rust.internal.PathResolution private import Type +private import TypeAbstraction private import TypeMention private import TypeInference private import FunctionType diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll index 8a72c967867..e3257865619 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll @@ -1,8 +1,9 @@ private import rust private import codeql.rust.internal.PathResolution -private import TypeInference private import Type +private import TypeAbstraction private import TypeMention +private import TypeInference private newtype TFunctionPosition = TArgumentFunctionPosition(ArgumentPosition pos) or diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index acf20905b6a..9a31782caf2 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -569,58 +569,6 @@ class ImplTraitTypeTypeParameter extends ImplTraitType, TypeParameter { override TypeParameter getPositionalTypeParameter(int i) { none() } } -/** - * A type abstraction. I.e., a place in the program where type variables are - * introduced. - * - * Example: - * ```rust - * impl Foo { } - * // ^^^^^^ a type abstraction - * ``` - */ -abstract class TypeAbstraction extends AstNode { - abstract TypeParameter getATypeParameter(); -} - -final class ImplTypeAbstraction extends TypeAbstraction, Impl { - override TypeParamTypeParameter getATypeParameter() { - result.getTypeParam() = this.getGenericParamList().getATypeParam() - } -} - -final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { - override TypeParameter getATypeParameter() { - result = any(DynTraitTypeParameter tp | tp.getTrait() = this.getTrait()).getTraitTypeParameter() - } -} - -final class TraitTypeAbstraction extends TypeAbstraction, Trait { - override TypeParameter getATypeParameter() { - result.(TypeParamTypeParameter).getTypeParam() = this.getGenericParamList().getATypeParam() - or - result.(AssociatedTypeTypeParameter).getTrait() = this - or - result.(SelfTypeParameter).getTrait() = this - } -} - -final class TypeBoundTypeAbstraction extends TypeAbstraction, TypeBound { - override TypeParameter getATypeParameter() { none() } -} - -final class SelfTypeBoundTypeAbstraction extends TypeAbstraction, Name { - SelfTypeBoundTypeAbstraction() { any(TraitTypeAbstraction trait).getName() = this } - - override TypeParameter getATypeParameter() { none() } -} - -final class ImplTraitTypeReprAbstraction extends TypeAbstraction, ImplTraitTypeRepr { - override TypeParameter getATypeParameter() { - implTraitTypeParam(this, _, result.(TypeParamTypeParameter).getTypeParam()) - } -} - /** * Holds if `t` is a valid complex [`self` root type][1]. * diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll new file mode 100644 index 00000000000..6a9dba92b83 --- /dev/null +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll @@ -0,0 +1,56 @@ +private import rust +private import codeql.rust.elements.internal.generated.Raw +private import codeql.rust.elements.internal.generated.Synth +private import Type + +/** + * A type abstraction. I.e., a place in the program where type variables are + * introduced. + * + * Example: + * ```rust + * impl Foo { } + * // ^^^^^^ a type abstraction + * ``` + */ +abstract class TypeAbstraction extends AstNode { + abstract TypeParameter getATypeParameter(); +} + +final class ImplTypeAbstraction extends TypeAbstraction, Impl { + override TypeParamTypeParameter getATypeParameter() { + result.getTypeParam() = this.getGenericParamList().getATypeParam() + } +} + +final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { + override TypeParameter getATypeParameter() { + result = any(DynTraitTypeParameter tp | tp.getTrait() = this.getTrait()).getTraitTypeParameter() + } +} + +final class TraitTypeAbstraction extends TypeAbstraction, Trait { + override TypeParameter getATypeParameter() { + result.(TypeParamTypeParameter).getTypeParam() = this.getGenericParamList().getATypeParam() + or + result.(AssociatedTypeTypeParameter).getTrait() = this + or + result.(SelfTypeParameter).getTrait() = this + } +} + +final class TypeBoundTypeAbstraction extends TypeAbstraction, TypeBound { + override TypeParameter getATypeParameter() { none() } +} + +final class SelfTypeBoundTypeAbstraction extends TypeAbstraction, Name { + SelfTypeBoundTypeAbstraction() { any(TraitTypeAbstraction trait).getName() = this } + + override TypeParameter getATypeParameter() { none() } +} + +final class ImplTraitTypeReprAbstraction extends TypeAbstraction, ImplTraitTypeRepr { + override TypeParamTypeParameter getATypeParameter() { + exists(TImplTraitTypeParameter(this, result.getTypeParam())) + } +} diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 3be7565ebaa..c579a4168d8 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -5,6 +5,8 @@ private import codeql.util.Option private import rust private import codeql.rust.internal.PathResolution private import Type +private import TypeAbstraction +private import TypeAbstraction as TA private import Type as T private import TypeMention private import codeql.rust.internal.typeinference.DerefChain @@ -37,7 +39,7 @@ private module Input1 implements InputSig1 { class TypeParameter = T::TypeParameter; - class TypeAbstraction = T::TypeAbstraction; + class TypeAbstraction = TA::TypeAbstraction; class TypeArgumentPosition extends TTypeArgumentPosition { int asMethodTypeArgumentPosition() { this = TMethodTypeArgumentPosition(result) } From a11693268ba01ba2120dc53dd4237ed9f8ccaeea Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 10:36:24 +0100 Subject: [PATCH 196/263] Rust: Avoid duplicated entries in `conditionSatisfiesConstraint` for dyn trait types --- .../typeinference/TypeAbstraction.qll | 21 +++++++++++++++++++ .../internal/typeinference/TypeMention.qll | 10 ++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll index 6a9dba92b83..1f9dd0b44b0 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll @@ -23,7 +23,28 @@ final class ImplTypeAbstraction extends TypeAbstraction, Impl { } } +private predicate idDynTraitTypeRepr(Raw::DynTraitTypeRepr x, Raw::DynTraitTypeRepr y) { x = y } + +private predicate idOfDynTraitTypeRepr(Raw::DynTraitTypeRepr x, int y) = + equivalenceRelation(idDynTraitTypeRepr/2)(x, y) + +private int idOfDynTraitTypeRepr(DynTraitTypeRepr node) { + idOfDynTraitTypeRepr(Synth::convertAstNodeToRaw(node), result) +} + +/** Holds if `dt` is the (arbitrarily chosen) canonical dyn trait type abstraction for `trait`. */ +private predicate canonicalDynTraitTypeAbstraction(DynTraitTypeRepr dt, Trait trait) { + dt = min(DynTraitTypeRepr d | d.getTrait() = trait | d order by idOfDynTraitTypeRepr(d)) +} + final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { + DynTypeAbstraction() { + // We pick a "canonical" `dyn Trait` in order to avoid including multiple + // entries in `conditionSatisfiesConstraint` with the exact same effect when + // `dyn Trait` occurs multiple times for the same trait. + canonicalDynTraitTypeAbstraction(this, this.getTrait()) + } + override TypeParameter getATypeParameter() { result = any(DynTraitTypeParameter tp | tp.getTrait() = this.getTrait()).getTraitTypeParameter() } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 840e5198f9c..25cb28a7ac4 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -4,6 +4,7 @@ private import rust private import codeql.rust.internal.PathResolution private import codeql.rust.frameworks.stdlib.Stdlib private import Type +private import TypeAbstraction private import TypeInference /** An AST node that may mention a type. */ @@ -563,7 +564,14 @@ class DynTypeBoundListMention extends TypeMention instanceof TypeBoundList { private Trait trait; DynTypeBoundListMention() { - exists(DynTraitTypeRepr dyn | this = dyn.getTypeBoundList() and trait = dyn.getTrait()) + exists(DynTraitTypeRepr dyn | + // We only need this type mention when the `dyn Trait` is a type + // abstraction, that is, when it's "canonical" and used in + // `conditionSatisfiesConstraint`. + dyn instanceof DynTypeAbstraction and + this = dyn.getTypeBoundList() and + trait = dyn.getTrait() + ) } override Type resolveTypeAt(TypePath path) { From 6b3d863f700fde77f777cc68e21b0626a5f3f8ce Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 11:11:50 +0100 Subject: [PATCH 197/263] Rust: Remove trait parameter from `canonicalDynTraitTypeAbstraction` --- .../rust/internal/typeinference/TypeAbstraction.qll | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll index 1f9dd0b44b0..d5163be1b6e 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeAbstraction.qll @@ -33,8 +33,10 @@ private int idOfDynTraitTypeRepr(DynTraitTypeRepr node) { } /** Holds if `dt` is the (arbitrarily chosen) canonical dyn trait type abstraction for `trait`. */ -private predicate canonicalDynTraitTypeAbstraction(DynTraitTypeRepr dt, Trait trait) { - dt = min(DynTraitTypeRepr d | d.getTrait() = trait | d order by idOfDynTraitTypeRepr(d)) +private predicate canonicalDynTraitTypeAbstraction(DynTraitTypeRepr dt) { + exists(Trait trait | + dt = min(DynTraitTypeRepr d | d.getTrait() = trait | d order by idOfDynTraitTypeRepr(d)) + ) } final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { @@ -42,7 +44,7 @@ final class DynTypeAbstraction extends TypeAbstraction, DynTraitTypeRepr { // We pick a "canonical" `dyn Trait` in order to avoid including multiple // entries in `conditionSatisfiesConstraint` with the exact same effect when // `dyn Trait` occurs multiple times for the same trait. - canonicalDynTraitTypeAbstraction(this, this.getTrait()) + canonicalDynTraitTypeAbstraction(this) } override TypeParameter getATypeParameter() { From 78b88d3a4423cd42e848871d3bff4bdad06d5d15 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 Jan 2026 11:26:05 +0100 Subject: [PATCH 198/263] Rust: Fix grammar in QLDoc Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../ql/lib/codeql/rust/internal/typeinference/TypeInference.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index c85c4312229..8759058d84c 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -3843,7 +3843,7 @@ private TypePath closureReturnPath() { TypePath::singleton(TDynTraitTypeParameter(any(FnTrait t), any(FnOnceTrait t).getOutputType())) } -/** Gets the path to a closure with arity `arity`s `index`th parameter type. */ +/** Gets the path to a closure with arity `arity`'s `index`th parameter type. */ pragma[nomagic] private TypePath closureParameterPath(int arity, int index) { result = From 98949937ddcfdb098f79bac530122b318a184e7b Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 Jan 2026 11:30:43 +0100 Subject: [PATCH 199/263] C#: Add CFG support for null conditional assignments and include eg. field access in the CFG. --- .../internal/ControlFlowGraphImpl.qll | 61 +++++++++++++------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index 96fe5703090..288e2c4d8ff 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -429,7 +429,7 @@ module Expressions { not this instanceof ObjectCreation and not this instanceof ArrayCreation and not this instanceof QualifiedWriteAccess and - not this instanceof AccessorWrite and + not this instanceof QualifiedAccessorWrite and not this instanceof NoNodeExpr and not this instanceof SwitchExpr and not this instanceof SwitchCaseExpr and @@ -448,6 +448,10 @@ module Expressions { /** * A qualified write access. In a qualified write access, the access itself is * not evaluated, only the qualifier and the indexer arguments (if any). + * + * Note that the successor declaration in `QualifiedAccessorWrite` ensures that the access itself + * is evaluated after the qualifier and the indexer arguments (if any) + * and the right hand side of the assignment. */ private class QualifiedWriteAccess extends ControlFlowTree instanceof WriteAccess, QualifiableExpr { @@ -470,25 +474,25 @@ module Expressions { final override predicate last(AstNode last, Completion c) { // Skip the access in a qualified write access last(getLastExprChild(this), last, c) + or + // Qualifier exits with a null completion + super.isConditional() and + last(super.getQualifier(), last, c) and + c.(NullnessCompletion).isNull() } final override predicate succ(AstNode pred, AstNode succ, Completion c) { exists(int i | last(getExprChild(this, i), pred, c) and c instanceof NormalCompletion and + (i != 0 or not c.(NullnessCompletion).isNull()) and first(getExprChild(this, i + 1), succ) ) } } - private class StatOrDynAccessorCall_ = - @dynamic_member_access_expr or @dynamic_element_access_expr or @call_access_expr; - - /** A normal or a (potential) dynamic call to an accessor. */ - private class StatOrDynAccessorCall extends Expr, StatOrDynAccessorCall_ { } - /** - * An expression that writes via an accessor call, for example `x.Prop = 0`, + * An expression that writes via an accessor, for example `x.Prop = 0`, * where `Prop` is a property. * * Accessor writes need special attention, because we need to model the fact @@ -498,13 +502,20 @@ module Expressions { * ```csharp * x -> 0 -> set_Prop -> x.Prop = 0 * ``` + * + * For consistency, control flow is implemented this way for all accessor writes. + * For example, `x.Field = 0`, where `Field` is a field, we want a CFG that looks like + * + * ```csharp + * x -> 0 -> x.Field -> x.Field = 0 + * ``` */ - class AccessorWrite extends PostOrderTree instanceof Expr { + private class QualifiedAccessorWrite extends PostOrderTree instanceof Expr { AssignableDefinition def; - AccessorWrite() { + QualifiedAccessorWrite() { def.getExpr() = this and - def.getTargetAccess().(WriteAccess) instanceof StatOrDynAccessorCall and + def.getTargetAccess().(WriteAccess) instanceof QualifiableExpr and not this instanceof AssignOperationWithExpandedAssignment } @@ -512,10 +523,11 @@ module Expressions { * Gets the `i`th accessor being called in this write. More than one call * can happen in tuple assignments. */ - StatOrDynAccessorCall getCall(int i) { + QualifiableExpr getAccess(int i) { result = rank[i + 1](AssignableDefinitions::TupleAssignmentDefinition tdef | - tdef.getExpr() = this and tdef.getTargetAccess() instanceof StatOrDynAccessorCall + tdef.getExpr() = this and + tdef.getTargetAccess() instanceof QualifiableExpr | tdef order by tdef.getEvaluationOrder() ).getTargetAccess() @@ -528,7 +540,13 @@ module Expressions { final override predicate propagatesAbnormal(AstNode child) { child = getExprChild(this, _) or - child = this.getCall(_) + child = this.getAccess(_) + } + + final override predicate last(AstNode last, Completion c) { + PostOrderTree.super.last(last, c) + or + last(getExprChild(this, 0), last, c) and c.(NullnessCompletion).isNull() } final override predicate first(AstNode first) { first(getExprChild(this, 0), first) } @@ -538,24 +556,25 @@ module Expressions { exists(int i | last(getExprChild(this, i), pred, c) and c instanceof NormalCompletion and + (i != 0 or not c.(NullnessCompletion).isNull()) and first(getExprChild(this, i + 1), succ) ) or // Flow from last element of last child to first accessor call last(getLastExprChild(this), pred, c) and - succ = this.getCall(0) and + succ = this.getAccess(0) and c instanceof NormalCompletion or // Flow from one call to the next - exists(int i | pred = this.getCall(i) | - succ = this.getCall(i + 1) and + exists(int i | pred = this.getAccess(i) | + succ = this.getAccess(i + 1) and c.isValidFor(pred) and c instanceof NormalCompletion ) or // Post-order: flow from last call to element itself - exists(int last | last = max(int i | exists(this.getCall(i))) | - pred = this.getCall(last) and + exists(int last | last = max(int i | exists(this.getAccess(i))) | + pred = this.getAccess(last) and succ = this and c.isValidFor(pred) and c instanceof NormalCompletion @@ -704,7 +723,9 @@ module Expressions { private class ConditionallyQualifiedExpr extends PostOrderTree instanceof QualifiableExpr { private Expr qualifier; - ConditionallyQualifiedExpr() { this.isConditional() and qualifier = getExprChild(this, 0) } + ConditionallyQualifiedExpr() { + this.isConditional() and qualifier = getExprChild(this, 0) and not this instanceof WriteAccess + } final override predicate propagatesAbnormal(AstNode child) { child = qualifier } From b061c4d08330643be317c5ffee06ab4489e6b09e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 14 Jan 2026 11:44:43 +0100 Subject: [PATCH 200/263] C#: Update test expected output. --- .../controlflow/graph/BasicBlock.expected | 50 ++-- .../controlflow/graph/Dominance.expected | 216 ++++++++++++------ .../graph/EnclosingCallable.expected | 35 +++ .../controlflow/graph/NodeGraph.expected | 108 ++++++--- .../csharp8/ispatternflow.expected | 3 +- .../csharp8/switchexprcontrolflow.expected | 3 +- .../csharp8/switchstmtctrlflow.expected | 3 +- .../dataflow/local/TaintTrackingStep.expected | 1 + .../signanalysis/SignAnalysis.expected | 2 + .../test/library-tests/obinit/ObInit.expected | 10 +- .../standalone/controlflow/cfg.expected | 8 +- 11 files changed, 296 insertions(+), 143 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index 99d89a29c13..ee6adc184a4 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -3,14 +3,14 @@ | AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | exit set_Item | 4 | | AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | exit add_Event | 4 | | AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | exit remove_Event | 4 | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | exit M1 | 33 | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | exit M2 | 41 | +| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | exit M1 | 34 | +| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | exit M2 | 42 | | AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | exit M3 | 17 | | AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | exit M4 | 20 | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | exit M5 | 33 | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | exit M6 | 42 | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | exit M7 | 24 | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | exit M8 | 30 | +| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | exit M5 | 34 | +| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | exit M6 | 43 | +| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | exit M7 | 25 | +| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | exit M8 | 31 | | AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | exit M9 | 58 | | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | 7 | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | exit M1 | 5 | @@ -490,8 +490,8 @@ | Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | 1 | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | 3 | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | 2 | -| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | ... = ... | 4 | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 5 | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | ... = ... | 5 | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 6 | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:220:13:220:36 | call to method WriteLine | 7 | | Finally.cs:222:9:225:9 | catch {...} | Finally.cs:224:13:224:38 | call to method WriteLine | 5 | | Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | exit M11 | 9 | @@ -539,21 +539,21 @@ | Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | exit M6 | 2 | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | 1 | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:39:11:39:11 | ; | 4 | -| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | exit | 14 | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | exit | 15 | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | exit Initializers | 4 | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | exit Initializers | 7 | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | exit Initializers | 7 | -| Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | exit M | 22 | -| Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | exit H | 5 | -| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | exit | 9 | +| Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | exit M | 23 | +| Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | exit H | 6 | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | exit | 11 | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor | 7 | -| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | exit | 6 | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 11 | -| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | exit Sub | 9 | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 13 | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | exit | 7 | +| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 12 | +| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | exit Sub | 10 | +| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 14 | | Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers | 7 | | Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | exit Compound | 7 | -| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | exit Test | 105 | +| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | exit Test | 116 | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | 7 | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:9:13:9:28 | ... == ... | 7 | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | 2 | @@ -629,7 +629,7 @@ | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | 3 | | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | enter | 1 | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | 2 | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:24:32:24:34 | ... = ... | 7 | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:24:32:24:34 | ... = ... | 8 | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | 2 | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | 1 | | MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | exit get_Item | 1 | @@ -645,7 +645,7 @@ | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | exit M2 | 4 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | enter C2 | 1 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | 1 | -| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | 9 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | 10 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | 1 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | 2 | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:27:21:29 | {...} | 3 | @@ -671,7 +671,7 @@ | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | 4 | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | 2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | 2 | -| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:22:32:22:34 | ... = ... | 7 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:22:32:22:34 | ... = ... | 8 | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | 3 | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | 4 | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | 1 | @@ -722,7 +722,7 @@ | NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:16:17:16:18 | "" | 5 | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | (...) ... | 5 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | exit M6 | 4 | -| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | exit | 10 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | exit | 11 | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial | 7 | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial | 7 | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | exit Patterns | 7 | @@ -1041,8 +1041,8 @@ | cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:19:127:21 | exit get_Prop | 4 | | cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | 1 | | cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | access to field Field | 2 | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | exit set_Prop | 8 | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 11 | +| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | exit set_Prop | 9 | +| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 12 | | cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | exit ControlFlow | 9 | | cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | exit ControlFlow | 8 | | cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | exit + | 9 | @@ -1104,7 +1104,7 @@ | cflow.cs:201:9:205:9 | {...} | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | 5 | | cflow.cs:208:10:208:11 | enter Do | cflow.cs:210:9:221:36 | do ... while (...); | 3 | | cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | 2 | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | ... > ... | 14 | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | ... > ... | 15 | | cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | continue; | 2 | | cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:32 | ... < ... | 6 | | cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | break; | 2 | @@ -1112,7 +1112,7 @@ | cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:226:27:226:64 | call to method Repeat | 5 | | cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | exit Foreach | 2 | | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | 1 | -| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | ... > ... | 15 | +| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | ... > ... | 16 | | cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | continue; | 2 | | cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:32 | ... < ... | 6 | | cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | break; | 2 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index 8240e61a419..f048e6d2a39 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -21,10 +21,11 @@ dominance | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | exit M1 | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:12:9:12:32 | ...; | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:22:12:25 | this access | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:13:9:13:30 | ...; | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:12 | this access | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:31 | access to field Field | -| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | +| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:18 | access to field Field | | AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:21:13:24 | this access | | AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | | AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:14:9:14:26 | ...; | @@ -54,11 +55,12 @@ dominance | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:21:9:21:36 | ...; | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:22:9:22:34 | ...; | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:12 | this access | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:29 | access to field x | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | +| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:20 | access to field Field | | AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:14 | access to field x | | AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:23:22:26 | this access | | AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | @@ -129,8 +131,9 @@ dominance | AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... = ... | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | -| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:32 | ... = ... | +| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:18 | access to field Field | | AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:45:9:45:31 | ...; | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field | @@ -163,8 +166,9 @@ dominance | AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... = ... | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access | -| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:36 | ... = ... | +| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:20 | access to field Field | | AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:52:9:52:35 | ...; | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x | @@ -204,13 +208,14 @@ dominance | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:10:58:13 | this access | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:22:58:25 | this access | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:22:58:30 | access to property Prop | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:37:58:40 | this access | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:37:58:43 | access to indexer | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:42:58:42 | 0 | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:9:58:85 | ... = ... | | AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:33:58:44 | (..., ...) | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:22:58:30 | access to property Prop | +| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:10:58:19 | access to field Field | | AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:59 | access to field Field | | AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:62:58:65 | this access | | AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:70 | access to property Prop | @@ -228,6 +233,7 @@ dominance | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:10:63:13 | this access | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:24:63:34 | access to property Prop | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:41:63:49 | access to indexer | @@ -236,7 +242,7 @@ dominance | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:48:63:48 | 0 | | AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:9:63:97 | ... = ... | | AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:37:63:50 | (..., ...) | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:24:63:34 | access to property Prop | +| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:10:63:21 | access to field Field | | AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:61 | access to field x | | AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | | AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:70:63:73 | this access | @@ -1763,13 +1769,15 @@ dominance | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:28 | ... = ... | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | | Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | -| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | +| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:22 | access to field Field | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:24 | ... = ... | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) | | Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:24 | ... = ... | +| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:18 | access to field Field | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:217:5:231:5 | {...} | | Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:216:10:216:12 | exit M11 | | Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | @@ -1900,10 +1908,11 @@ dominance | Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | exit | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | exit Initializers | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | exit Initializers (normal) | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:17 | ... = ... | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:9 | access to field F | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | @@ -1931,8 +1940,9 @@ dominance | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:44:14:44 | 0 | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:17:14:53 | object creation of type Initializers | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:13:14:53 | Initializers i = ... | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:44 | ... = ... | | Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:51:14:51 | 1 | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:44 | ... = ... | +| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:40 | access to field F | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:51 | ... = ... | | Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | | Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:47 | access to property G | @@ -1944,10 +1954,11 @@ dominance | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:59:15:60 | "" | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:42:15:61 | object creation of type Initializers | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:20 | ... = ... | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | -| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | access to field H | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | | Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | | Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | @@ -1956,46 +1967,52 @@ dominance | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | exit NoConstructor | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:27 | ... = ... | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | access to field F | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:27 | ... = ... | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | access to field G | | Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:17 | ... = ... | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | access to field H | | Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | call to method | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:30 | ... = ... | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:26 | this access | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:30 | ... = ... | +| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | access to field I | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | exit Sub | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:31:33:36 | ...; | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:35 | ... = ... | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:35:33:35 | access to parameter i | | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | -| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | +| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | access to field I | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | | Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:37 | ... = ... | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:29 | this access | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:37:35:37 | access to parameter j | -| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | +| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:29 | access to field I | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | | Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | @@ -2034,8 +2051,9 @@ dominance | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | exit Test (normal) | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:59:34:59:34 | 0 | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:57:13:65:9 | Compound compound = ... | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:76 | ... = ... | | Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:60:37:60:37 | 3 | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:76 | ... = ... | +| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:44 | ... = ... | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:48:59:48 | 1 | | Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:39:59:44 | "Zero" | @@ -2067,52 +2085,62 @@ dominance | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:74:60:78 | "One" | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:69 | ... + ... | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:70 | access to indexer | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:58 | ... = ... | | Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:62:30:62:30 | 0 | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:58 | ... = ... | +| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:22 | access to field ArrayField | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:39 | ... = ... | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:43:61:43 | access to parameter i | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:34:61:39 | "Zero" | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:39 | ... = ... | +| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:30 | access to array element | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:56 | ... = ... | | Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:47:61:47 | 1 | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:52:61:56 | "One" | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:47 | ... + ... | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:56 | ... = ... | +| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:48 | access to array element | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:60 | ... = ... | | Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:63:32:63:32 | 1 | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:60 | ... = ... | +| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:23 | access to field ArrayField2 | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:40 | ... = ... | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:44:62:44 | 1 | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:33:62:33 | 1 | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:38:62:40 | "i" | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:40 | ... = ... | +| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:34 | access to array element | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:58 | ... = ... | | Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:47 | access to parameter i | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:51:62:51 | 0 | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:56:62:58 | "1" | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:47:62:51 | ... + ... | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:58 | ... = ... | +| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:52 | access to array element | | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:60 | ... = ... | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:64:33:64:33 | 0 | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:13:63:25 | access to property ArrayProperty | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:41 | ... = ... | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:45:63:45 | access to parameter i | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:37:63:41 | "One" | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:41 | ... = ... | +| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:33 | access to array element | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:58 | ... = ... | | Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:49:63:49 | 2 | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:54:63:58 | "Two" | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:49 | ... + ... | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:58 | ... = ... | +| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:50 | access to array element | | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:63 | ... = ... | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:43 | ... = ... | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:47:64:47 | 1 | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:36:64:36 | 1 | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:41:64:43 | "i" | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:43 | ... = ... | +| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:37 | access to array element | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:61 | ... = ... | | Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:50 | access to parameter i | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:54:64:54 | 0 | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:59:64:61 | "1" | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | -| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | +| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:55 | access to array element | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | @@ -2339,9 +2367,10 @@ dominance | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:20 | ... = ... | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | access to field F | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationB.cs:12:37:12:40 | null | @@ -2366,10 +2395,11 @@ dominance | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:28 | ... = ... | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:24 | this access | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:28 | ... = ... | +| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | access to field F | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | @@ -2419,9 +2449,10 @@ dominance | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:27:4:35 | return ...; | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:20 | ... = ... | | MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:20:11:20 | 1 | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:20 | ... = ... | +| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | access to field F | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:31:12:40 | throw ... | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:48:13:51 | null | @@ -2525,9 +2556,10 @@ dominance | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | exit Partial | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:20 | ... = ... | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | access to field F | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | | PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | @@ -3462,20 +3494,22 @@ dominance | cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:66:127:83 | {...} | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | exit set_Prop | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:68:127:81 | ...; | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:80 | ... = ... | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:76:127:80 | access to parameter value | | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | exit set_Prop (normal) | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | -| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | +| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | access to field Field | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | | cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | | cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:17 | ... = ... | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:13 | this access | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:17 | ... = ... | +| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | access to field Field | | cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:5:134:15 | exit ControlFlow | | cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | @@ -3688,10 +3722,11 @@ dominance | cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} | | cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... = ... | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | -| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:24 | ... = ... | +| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:212:13:212:24 | ... = ... | cflow.cs:213:13:216:13 | if (...) ... | | cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... + ... | @@ -3724,10 +3759,11 @@ dominance | cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 | | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat | | cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... = ... | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | -| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:22 | ... = ... | +| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:228:13:228:22 | ... = ... | cflow.cs:229:13:232:13 | if (...) ... | | cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... + ... | @@ -3899,7 +3935,8 @@ postDominance | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:16:9:16:23 | ... -= ... | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:10:10:10:11 | enter M1 | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:9:12:32 | ...; | -| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:22:12:31 | access to field Field | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:22:12:31 | access to field Field | +| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:9:12:18 | access to field Field | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:11:5:17:5 | {...} | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:9:12:12 | this access | | AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:22:12:25 | this access | @@ -3932,7 +3969,8 @@ postDominance | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:19:10:19:11 | enter M2 | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:36 | ...; | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:9:21:12 | this access | -| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:24:21:35 | access to field Field | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:24:21:35 | access to field Field | +| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:9:21:20 | access to field Field | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:20:5:26:5 | {...} | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | @@ -4008,8 +4046,9 @@ postDominance | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:33 | ...; | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:12 | this access | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... + ... | | AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:23:44:32 | access to field Field | -| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:44:9:44:32 | ... + ... | +| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:44:9:44:18 | access to field Field | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:43:5:47:5 | {...} | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | | AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | @@ -4042,8 +4081,9 @@ postDominance | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:14 | access to field x | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... + ... | | AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:25:51:36 | access to field Field | -| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:51:9:51:36 | ... + ... | +| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:51:9:51:20 | access to field Field | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:50:5:54:5 | {...} | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:9:51:20 | access to field Field | | AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:28 | this access | @@ -4082,8 +4122,9 @@ postDominance | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:58:37:58:43 | access to indexer | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:57:5:59:5 | {...} | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:9:58:86 | ...; | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:49:58:85 | (..., ...) | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:10:58:13 | this access | -| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:49:58:85 | (..., ...) | +| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:10:58:19 | access to field Field | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:42:58:42 | 0 | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:22:58:25 | this access | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:22:58:30 | access to property Prop | @@ -4106,9 +4147,10 @@ postDominance | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:62:5:64:5 | {...} | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:9:63:98 | ...; | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:10:63:13 | this access | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:55:63:97 | (..., ...) | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | -| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:55:63:97 | (..., ...) | +| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:10:63:21 | access to field Field | | AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:48:63:48 | 0 | | AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | @@ -5594,11 +5636,13 @@ postDominance | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:17:209:47 | if (...) ... | | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:29 | ...; | -| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:26:211:28 | "0" | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:26:211:28 | "0" | +| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:13:211:22 | access to field Field | | Finally.cs:211:13:211:29 | ...; | Finally.cs:209:21:209:22 | access to parameter b3 | | Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:16 | this access | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:25 | ...; | -| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:22:213:24 | "1" | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:22:213:24 | "1" | +| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:9:213:18 | access to field Field | | Finally.cs:213:9:213:25 | ...; | Finally.cs:211:13:211:28 | ... = ... | | Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:12 | this access | | Finally.cs:216:10:216:12 | exit M11 | Finally.cs:216:10:216:12 | exit M11 (normal) | @@ -5729,8 +5773,9 @@ postDominance | Initializers.cs:3:7:3:18 | exit Initializers | Initializers.cs:3:7:3:18 | exit Initializers (normal) | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | {...} | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | enter Initializers | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:13:5:17 | ... + ... | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | enter | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:13:5:17 | ... + ... | +| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:9:5:9 | access to field F | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:9:5:9 | this access | | Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:17:5:17 | 1 | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:13 | access to field H | @@ -5760,7 +5805,8 @@ postDominance | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:34:14:35 | "" | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:9:14:54 | ... ...; | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:47:14:51 | ... = ... | -| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:40:14:40 | access to field F | | Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:17:14:53 | object creation of type Initializers | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:51:14:51 | 1 | | Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:47:14:47 | access to property G | @@ -5773,9 +5819,10 @@ postDominance | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:59:15:60 | "" | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:39:15:39 | access to local variable i | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:18:16:18:16 | exit H | Initializers.cs:18:16:18:16 | exit H (normal) | | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:20 | ... = ... | -| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:20:18:20 | 1 | +| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | access to field H | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | enter H | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | call to method | | Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | this access | @@ -5785,16 +5832,19 @@ postDominance | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | {...} | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | enter NoConstructor | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:27:22:27 | 0 | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | enter | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:27:22:27 | 0 | +| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:23:22:23 | access to field F | | Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | this access | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:27:23:27 | 1 | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:22:23:22:27 | ... = ... | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:27:23:27 | 1 | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:23:23:23 | access to field G | | Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | this access | | Initializers.cs:26:11:26:13 | exit | Initializers.cs:26:11:26:13 | exit (normal) | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:17:28:17 | 2 | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | enter | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:17:28:17 | 2 | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:13 | access to field H | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:9:31:11 | exit Sub | Initializers.cs:31:9:31:11 | exit Sub (normal) | @@ -5802,16 +5852,18 @@ postDominance | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | enter Sub | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | call to method | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:30:31:30 | 3 | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:31 | ...; | -| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:30:31:30 | 3 | +| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:26:31:26 | access to field I | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:24:31:33 | {...} | | Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | this access | | Initializers.cs:33:9:33:11 | exit Sub | Initializers.cs:33:9:33:11 | exit Sub (normal) | | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:31:33:35 | ... = ... | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:9:33:11 | enter Sub | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:22:33:25 | call to constructor Sub | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:35:33:35 | access to parameter i | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:31:33:36 | ...; | -| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:35:33:35 | access to parameter i | +| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:31:33:31 | access to field I | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:29:33:38 | {...} | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | this access | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to method | @@ -5820,8 +5872,9 @@ postDominance | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:29:35:37 | ... = ... | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | enter Sub | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:33:35:37 | ... + ... | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:38 | ...; | -| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:33:35:37 | ... + ... | +| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:29:35:29 | access to field I | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:27:35:40 | {...} | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:29:35:29 | this access | | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:37:35:37 | access to parameter j | @@ -5863,7 +5916,8 @@ postDominance | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:57:9:65:10 | ... ...; | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:64:13:64:63 | ... = ... | -| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:31:59:76 | { ..., ... } | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:31:59:76 | { ..., ... } | +| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:13:59:27 | access to field DictionaryField | | Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:60:59:74 | ... = ... | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:39:59:44 | "Zero" | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:33:59:35 | access to indexer | @@ -5896,23 +5950,29 @@ postDominance | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:69:60:69 | 1 | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:65 | access to parameter i | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:65:60:69 | ... + ... | -| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:26:61:58 | { ..., ... } | +| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:13:61:22 | access to field ArrayField | | Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:42:61:56 | ... = ... | -| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:34:61:39 | "Zero" | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:34:61:39 | "Zero" | +| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:28:61:30 | access to array element | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:60:13:60:80 | ... = ... | | Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:29:61:29 | 0 | -| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:52:61:56 | "One" | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:52:61:56 | "One" | +| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:42:61:48 | access to array element | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:28:61:39 | ... = ... | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:47:61:47 | 1 | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:43 | access to parameter i | | Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:43:61:47 | ... + ... | -| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:27:62:60 | { ..., ... } | +| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:13:62:23 | access to field ArrayField2 | | Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:43:62:58 | ... = ... | -| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:38:62:40 | "i" | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:38:62:40 | "i" | +| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:29:62:34 | access to array element | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:61:13:61:58 | ... = ... | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:30:62:30 | 0 | | Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:33:62:33 | 1 | -| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:56:62:58 | "1" | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:56:62:58 | "1" | +| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:43:62:52 | access to array element | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:29:62:40 | ... = ... | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:44:62:44 | 1 | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:51:62:51 | 0 | @@ -5921,10 +5981,12 @@ postDominance | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:29:63:60 | { ..., ... } | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:13:63:25 | access to property ArrayProperty | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:44:63:58 | ... = ... | -| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:37:63:41 | "One" | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:37:63:41 | "One" | +| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:31:63:33 | access to array element | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:62:13:62:60 | ... = ... | | Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:32:63:32 | 1 | -| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:54:63:58 | "Two" | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:54:63:58 | "Two" | +| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:44:63:50 | access to array element | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:31:63:41 | ... = ... | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:49:63:49 | 2 | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:45 | access to parameter i | @@ -5932,11 +5994,13 @@ postDominance | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:30:64:63 | { ..., ... } | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:46:64:61 | ... = ... | -| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:41:64:43 | "i" | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:41:64:43 | "i" | +| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:32:64:37 | access to array element | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:63:13:63:60 | ... = ... | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:33:64:33 | 0 | | Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:36:64:36 | 1 | -| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:59:64:61 | "1" | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:59:64:61 | "1" | +| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:46:64:55 | access to array element | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:32:64:43 | ... = ... | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:47:64:47 | 1 | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:54:64:54 | 0 | @@ -6162,7 +6226,8 @@ postDominance | MultiImplementationA.cs:11:7:11:8 | exit | MultiImplementationA.cs:11:7:11:8 | exit (normal) | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:24:32:24:34 | ... = ... | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationB.cs:22:32:22:34 | ... = ... | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:20:13:20 | 0 | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:20:13:20 | 0 | +| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:16:13:16 | access to field F | | MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | enter get_Item | | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | MultiImplementationB.cs:12:31:12:40 | throw ... | @@ -6188,8 +6253,9 @@ postDominance | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:24:20:28 | ... = ... | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:29 | ...; | -| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:28:20:28 | access to parameter i | +| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:24:20:24 | access to field F | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:22:20:31 | {...} | | MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | this access | | MultiImplementationA.cs:21:12:21:13 | exit C2 | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | @@ -6241,7 +6307,8 @@ postDominance | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:25:4:37 | {...} | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | enter M | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:20:11:20 | 1 | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:20:11:20 | 1 | +| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:16:11:16 | access to field F | | MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationB.cs:13:48:13:51 | null | @@ -6340,8 +6407,9 @@ postDominance | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:27:3:29 | {...} | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | enter Partial | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:20:3:20 | 0 | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | enter | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:20:3:20 | 0 | +| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:16 | access to field F | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to method | | PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | this access | @@ -7233,8 +7301,9 @@ postDominance | cflow.cs:127:62:127:64 | exit set_Prop | cflow.cs:127:62:127:64 | exit set_Prop (normal) | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:68:127:80 | ... = ... | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:62:127:64 | enter set_Prop | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:76:127:80 | access to parameter value | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:68:127:81 | ...; | -| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:76:127:80 | access to parameter value | +| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:68:127:72 | access to field Field | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:66:127:83 | {...} | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | this access | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to method | @@ -7243,8 +7312,9 @@ postDominance | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:131:9:131:17 | ... = ... | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | enter ControlFlow | | cflow.cs:130:5:132:5 | {...} | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:17:131:17 | access to parameter s | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:18 | ...; | -| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:17:131:17 | access to parameter s | +| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:9:131:13 | access to field Field | | cflow.cs:131:9:131:18 | ...; | cflow.cs:130:5:132:5 | {...} | | cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | this access | | cflow.cs:134:5:134:15 | exit ControlFlow | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | @@ -7456,10 +7526,11 @@ postDominance | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:209:5:222:5 | {...} | | cflow.cs:211:9:221:9 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | this access | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... + ... | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:25 | ...; | | cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:22:212:24 | "a" | -| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:212:13:212:24 | ... + ... | +| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:212:13:212:25 | ...; | cflow.cs:211:9:221:9 | {...} | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:212:13:212:24 | ... = ... | @@ -7491,10 +7562,11 @@ postDominance | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:57:226:59 | "a" | | cflow.cs:227:9:237:9 | {...} | cflow.cs:226:22:226:22 | String x | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | this access | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... + ... | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:23 | ...; | | cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:22:228:22 | access to local variable x | -| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:228:13:228:22 | ... + ... | +| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:228:13:228:23 | ...; | cflow.cs:227:9:237:9 | {...} | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:228:13:228:22 | ... = ... | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 14dcdb56b26..527b6eb9bca 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -27,6 +27,7 @@ nodeEnclosing | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:10:10:10:11 | M1 | @@ -61,6 +62,7 @@ nodeEnclosing | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:19:10:19:11 | M2 | @@ -140,6 +142,7 @@ nodeEnclosing | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:42:10:42:11 | M5 | @@ -175,6 +178,7 @@ nodeEnclosing | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:49:10:49:11 | M6 | @@ -216,6 +220,7 @@ nodeEnclosing | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | @@ -241,6 +246,7 @@ nodeEnclosing | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | @@ -1943,10 +1949,12 @@ nodeEnclosing | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:16 | this access | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:26:211:28 | "0" | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:12 | this access | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:213:22:213:24 | "1" | Finally.cs:195:10:195:12 | M10 | @@ -2095,6 +2103,7 @@ nodeEnclosing | Initializers.cs:3:7:3:18 | exit Initializers | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:3:7:3:18 | | @@ -2129,6 +2138,7 @@ nodeEnclosing | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:44:14:44 | 0 | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:12:10:12:10 | M | @@ -2152,15 +2162,18 @@ nodeEnclosing | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | NoConstructor | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | NoConstructor | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:27:22:27 | 0 | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:27:23:27 | 1 | Initializers.cs:20:11:20:23 | | | Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | | | Initializers.cs:26:11:26:13 | exit | Initializers.cs:26:11:26:13 | | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:26:11:26:13 | | @@ -2171,6 +2184,7 @@ nodeEnclosing | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:9:31:11 | Sub | @@ -2180,6 +2194,7 @@ nodeEnclosing | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:9:33:11 | Sub | @@ -2191,6 +2206,7 @@ nodeEnclosing | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:9:35:11 | Sub | @@ -2237,6 +2253,7 @@ nodeEnclosing | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:51:10:51:13 | Test | @@ -2270,22 +2287,28 @@ nodeEnclosing | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:52:61:56 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:38:62:40 | "i" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:51:10:51:13 | Test | @@ -2295,9 +2318,11 @@ nodeEnclosing | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:37:63:41 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:51:10:51:13 | Test | @@ -2306,10 +2331,12 @@ nodeEnclosing | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:41:64:43 | "i" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:51:10:51:13 | Test | @@ -2565,6 +2592,7 @@ nodeEnclosing | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:11:7:11:8 | exit | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:11:7:11:8 | | @@ -2601,6 +2629,7 @@ nodeEnclosing | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:12:20:13 | C2 | @@ -2667,6 +2696,7 @@ nodeEnclosing | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationA.cs:11:7:11:8 | | @@ -2794,6 +2824,7 @@ nodeEnclosing | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationA.cs:1:15:1:21 | | @@ -3824,6 +3855,7 @@ nodeEnclosing | cflow.cs:127:62:127:64 | exit set_Prop | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:62:127:64 | set_Prop | @@ -3835,6 +3867,7 @@ nodeEnclosing | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:130:5:132:5 | {...} | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:13 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:18 | ...; | cflow.cs:129:5:129:15 | ControlFlow | @@ -4068,6 +4101,7 @@ nodeEnclosing | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:208:10:208:11 | Do | | cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:208:10:208:11 | Do | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | this access | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | this access | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:24 | ... + ... | cflow.cs:208:10:208:11 | Do | @@ -4106,6 +4140,7 @@ nodeEnclosing | cflow.cs:226:62:226:63 | 10 | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:227:9:237:9 | {...} | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | this access | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | this access | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:22 | ... + ... | cflow.cs:224:10:224:16 | Foreach | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index b764e2fb2a5..4f74842f453 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -20,10 +20,11 @@ | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | exit M1 | | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:12:9:12:32 | ...; | | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:22:12:25 | this access | | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | | AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:13:9:13:30 | ...; | | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:12 | this access | | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:31 | access to field Field | | -| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | +| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:18 | access to field Field | | | AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:21:13:24 | this access | | | AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | | | AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:14:9:14:26 | ...; | | @@ -53,11 +54,12 @@ | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:21:9:21:36 | ...; | | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | | AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:22:9:22:34 | ...; | | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:12 | this access | | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:29 | access to field x | | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | +| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:20 | access to field Field | | | AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:14 | access to field x | | | AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:23:22:26 | this access | | | AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | | @@ -128,8 +130,9 @@ | AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; | | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... = ... | | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | | -| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:32 | ... = ... | | +| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:18 | access to field Field | | | AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:45:9:45:31 | ...; | | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access | | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field | | @@ -162,8 +165,9 @@ | AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x | | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... = ... | | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access | | -| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:36 | ... = ... | | +| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:20 | access to field Field | | | AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:52:9:52:35 | ...; | | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access | | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x | | @@ -203,13 +207,14 @@ | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:10:58:13 | this access | | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:22:58:25 | this access | | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:22:58:30 | access to property Prop | | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:37:58:40 | this access | | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:37:58:43 | access to indexer | | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:42:58:42 | 0 | | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:9:58:85 | ... = ... | | | AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:33:58:44 | (..., ...) | | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:22:58:30 | access to property Prop | | +| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:10:58:19 | access to field Field | | | AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:59 | access to field Field | | | AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:62:58:65 | this access | | | AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:70 | access to property Prop | | @@ -227,6 +232,7 @@ | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:10:63:13 | this access | | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:24:63:34 | access to property Prop | | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:41:63:49 | access to indexer | | @@ -235,7 +241,7 @@ | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:48:63:48 | 0 | | | AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:9:63:97 | ... = ... | | | AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:37:63:50 | (..., ...) | | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:24:63:34 | access to property Prop | | +| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:10:63:21 | access to field Field | | | AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:61 | access to field x | | | AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | | | AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:70:63:73 | this access | | @@ -2007,14 +2013,16 @@ | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:28 | ... = ... | | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | | | Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | | -| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | | +| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:22 | access to field Field | | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:24 | ... = ... | | | Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) | | | Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access | | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:24 | ... = ... | | +| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:18 | access to field Field | | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:217:5:231:5 | {...} | | | Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:216:10:216:12 | exit M11 | | | Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | | @@ -2164,10 +2172,11 @@ | Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | exit | | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | exit Initializers | | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | exit Initializers (normal) | | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:17 | ... = ... | | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:9 | access to field F | | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | | @@ -2195,8 +2204,9 @@ | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:44:14:44 | 0 | | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:17:14:53 | object creation of type Initializers | | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:13:14:53 | Initializers i = ... | | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:44 | ... = ... | | | Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:51:14:51 | 1 | | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:44 | ... = ... | | +| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:40 | access to field F | | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:51 | ... = ... | | | Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | | | Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:47 | access to property G | | @@ -2208,10 +2218,11 @@ | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:59:15:60 | "" | | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:42:15:61 | object creation of type Initializers | | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:20 | ... = ... | | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:20:18:20 | 1 | | | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | | | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | | -| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | access to field H | | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | | | Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | | | Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | | @@ -2220,46 +2231,52 @@ | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | exit NoConstructor | | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:27 | ... = ... | | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | access to field F | | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:27 | ... = ... | | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | access to field G | | | Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:17 | ... = ... | | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | access to field H | | | Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | | | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | call to method | | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:30 | ... = ... | | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:26 | this access | | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:30 | ... = ... | | +| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | access to field I | | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | | | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | exit Sub | | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:31:33:36 | ...; | | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:35 | ... = ... | | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:35:33:35 | access to parameter i | | | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | | -| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | | +| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | access to field I | | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | | | Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:37 | ... = ... | | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:29 | this access | | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:37:35:37 | access to parameter j | | -| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | | +| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:29 | access to field I | | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | | | Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | | @@ -2298,8 +2315,9 @@ | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | exit Test (normal) | | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:59:34:59:34 | 0 | | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:57:13:65:9 | Compound compound = ... | | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:76 | ... = ... | | | Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:60:37:60:37 | 3 | | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:76 | ... = ... | | +| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:44 | ... = ... | | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:48:59:48 | 1 | | | Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:39:59:44 | "Zero" | | @@ -2331,52 +2349,62 @@ | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:74:60:78 | "One" | | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:69 | ... + ... | | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:70 | access to indexer | | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:58 | ... = ... | | | Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:62:30:62:30 | 0 | | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:58 | ... = ... | | +| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:22 | access to field ArrayField | | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:39 | ... = ... | | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:43:61:43 | access to parameter i | | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:34:61:39 | "Zero" | | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:39 | ... = ... | | +| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:30 | access to array element | | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:56 | ... = ... | | | Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:47:61:47 | 1 | | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:52:61:56 | "One" | | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:47 | ... + ... | | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:56 | ... = ... | | +| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:48 | access to array element | | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:60 | ... = ... | | | Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:63:32:63:32 | 1 | | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:60 | ... = ... | | +| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:23 | access to field ArrayField2 | | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:40 | ... = ... | | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:44:62:44 | 1 | | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:33:62:33 | 1 | | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:38:62:40 | "i" | | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:40 | ... = ... | | +| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:34 | access to array element | | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:58 | ... = ... | | | Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:47 | access to parameter i | | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:51:62:51 | 0 | | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:56:62:58 | "1" | | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:47:62:51 | ... + ... | | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:58 | ... = ... | | +| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:52 | access to array element | | | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:60 | ... = ... | | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:64:33:64:33 | 0 | | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:13:63:25 | access to property ArrayProperty | | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:41 | ... = ... | | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:45:63:45 | access to parameter i | | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:37:63:41 | "One" | | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:41 | ... = ... | | +| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:33 | access to array element | | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:58 | ... = ... | | | Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:49:63:49 | 2 | | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:54:63:58 | "Two" | | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:49 | ... + ... | | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:58 | ... = ... | | +| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:50 | access to array element | | | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:63 | ... = ... | | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:43 | ... = ... | | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:47:64:47 | 1 | | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:36:64:36 | 1 | | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:41:64:43 | "i" | | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:43 | ... = ... | | +| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:37 | access to array element | | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:61 | ... = ... | | | Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:50 | access to parameter i | | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:54:64:54 | 0 | | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:59:64:61 | "1" | | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | | -| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | | +| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:55 | access to array element | | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | | LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | | @@ -2631,9 +2659,10 @@ | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:13:16:13:16 | this access | | | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationB.cs:11:16:11:16 | this access | | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:20 | ... = ... | | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | access to field F | | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationB.cs:12:37:12:40 | null | | @@ -2666,10 +2695,11 @@ | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:12:20:13 | exit C2 | | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:28 | ... = ... | | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:24 | this access | | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:28 | ... = ... | | +| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | access to field F | | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | | @@ -2730,9 +2760,10 @@ | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:27:4:35 | return ...; | | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:20 | ... = ... | | | MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:20:11:20 | 1 | | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:20 | ... = ... | | +| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | access to field F | | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | exception | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:31:12:40 | throw ... | | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:48:13:51 | null | | @@ -2859,9 +2890,10 @@ | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | exit Partial | | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:20 | ... = ... | | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | access to field F | | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | | | PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | | @@ -3922,20 +3954,22 @@ | cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:66:127:83 | {...} | | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | exit set_Prop | | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:68:127:81 | ...; | | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:80 | ... = ... | | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:76:127:80 | access to parameter value | | | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | exit set_Prop (normal) | | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | | -| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | | +| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | access to field Field | | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | | | cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | | | cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:17 | ... = ... | | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | | cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:13 | this access | | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:17 | ... = ... | | +| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | access to field Field | | | cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | | | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:5:134:15 | exit ControlFlow | | | cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | | @@ -4163,10 +4197,11 @@ | cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} | | | cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; | | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... = ... | | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" | | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field | | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | | -| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:24 | ... = ... | | +| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:17 | access to field Field | | | cflow.cs:212:13:212:24 | ... = ... | cflow.cs:213:13:216:13 | if (...) ... | | | cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access | | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... + ... | | @@ -4204,10 +4239,11 @@ | cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 | | | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat | | | cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; | | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... = ... | | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x | | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field | | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | | -| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:22 | ... = ... | | +| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:17 | access to field Field | | | cflow.cs:228:13:228:22 | ... = ... | cflow.cs:229:13:232:13 | if (...) ... | | | cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access | | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... + ... | | diff --git a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected index 553f416cd96..f8d1de5d7e9 100644 --- a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected +++ b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected @@ -6,8 +6,9 @@ | patterns.cs:7:20:7:41 | (...) ... | patterns.cs:7:16:7:41 | Object o = ... | semmle.label | successor | | patterns.cs:7:20:7:41 | object creation of type MyStruct | patterns.cs:7:39:7:39 | 2 | semmle.label | successor | | patterns.cs:7:33:7:41 | { ..., ... } | patterns.cs:7:20:7:41 | (...) ... | semmle.label | successor | +| patterns.cs:7:35:7:35 | access to field X | patterns.cs:7:35:7:39 | ... = ... | semmle.label | successor | | patterns.cs:7:35:7:39 | ... = ... | patterns.cs:7:33:7:41 | { ..., ... } | semmle.label | successor | -| patterns.cs:7:39:7:39 | 2 | patterns.cs:7:35:7:39 | ... = ... | semmle.label | successor | +| patterns.cs:7:39:7:39 | 2 | patterns.cs:7:35:7:35 | access to field X | semmle.label | successor | | patterns.cs:9:9:11:9 | if (...) ... | patterns.cs:9:13:9:13 | access to local variable o | semmle.label | successor | | patterns.cs:9:13:9:13 | access to local variable o | patterns.cs:9:18:9:29 | MyStruct ms1 | semmle.label | successor | | patterns.cs:9:13:9:29 | [false] ... is ... | patterns.cs:13:9:15:9 | if (...) ... | semmle.label | false | diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected index 83438c26f6e..c6ecf8bcfd9 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected @@ -108,8 +108,9 @@ | patterns.cs:125:13:125:38 | MyStruct s = ... | patterns.cs:126:9:132:10 | ... ...; | semmle.label | successor | | patterns.cs:125:17:125:38 | object creation of type MyStruct | patterns.cs:125:36:125:36 | 0 | semmle.label | successor | | patterns.cs:125:30:125:38 | { ..., ... } | patterns.cs:125:13:125:38 | MyStruct s = ... | semmle.label | successor | +| patterns.cs:125:32:125:32 | access to field X | patterns.cs:125:32:125:36 | ... = ... | semmle.label | successor | | patterns.cs:125:32:125:36 | ... = ... | patterns.cs:125:30:125:38 | { ..., ... } | semmle.label | successor | -| patterns.cs:125:36:125:36 | 0 | patterns.cs:125:32:125:36 | ... = ... | semmle.label | successor | +| patterns.cs:125:36:125:36 | 0 | patterns.cs:125:32:125:32 | access to field X | semmle.label | successor | | patterns.cs:126:9:132:10 | ... ...; | patterns.cs:126:17:126:17 | access to local variable s | semmle.label | successor | | patterns.cs:126:13:132:9 | Int32 r = ... | patterns.cs:134:9:148:9 | try {...} ... | semmle.label | successor | | patterns.cs:126:17:126:17 | access to local variable s | patterns.cs:128:13:128:20 | access to type MyStruct | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected index 64e16c2d7cf..06e4623611b 100644 --- a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected @@ -5,8 +5,9 @@ | patterns.cs:34:13:34:38 | MyStruct s = ... | patterns.cs:36:9:44:9 | switch (...) {...} | semmle.label | successor | | patterns.cs:34:17:34:38 | object creation of type MyStruct | patterns.cs:34:36:34:36 | 0 | semmle.label | successor | | patterns.cs:34:30:34:38 | { ..., ... } | patterns.cs:34:13:34:38 | MyStruct s = ... | semmle.label | successor | +| patterns.cs:34:32:34:32 | access to field X | patterns.cs:34:32:34:36 | ... = ... | semmle.label | successor | | patterns.cs:34:32:34:36 | ... = ... | patterns.cs:34:30:34:38 | { ..., ... } | semmle.label | successor | -| patterns.cs:34:36:34:36 | 0 | patterns.cs:34:32:34:36 | ... = ... | semmle.label | successor | +| patterns.cs:34:36:34:36 | 0 | patterns.cs:34:32:34:32 | access to field X | semmle.label | successor | | patterns.cs:36:9:44:9 | switch (...) {...} | patterns.cs:36:17:36:17 | access to local variable s | semmle.label | successor | | patterns.cs:36:17:36:17 | access to local variable s | patterns.cs:38:13:38:47 | case ...: | semmle.label | successor | | patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:18:38:29 | MyStruct ms1 | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index b2d395d4b83..0950638d830 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -1124,6 +1124,7 @@ | Splitting.cs:51:30:51:36 | { ..., ... } | Splitting.cs:51:17:51:36 | array creation of type String[] | | Splitting.cs:51:32:51:34 | "a" | Splitting.cs:51:30:51:36 | { ..., ... } | | Splitting.cs:52:9:52:9 | [post] access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | +| Splitting.cs:52:9:52:9 | access to local variable y | Splitting.cs:52:9:52:12 | access to array element | | Splitting.cs:52:9:52:9 | access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | | Splitting.cs:52:16:52:18 | "b" | Splitting.cs:52:9:52:9 | [post] access to local variable y | | Splitting.cs:52:16:52:18 | "b" | Splitting.cs:52:9:52:12 | access to array element | diff --git a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected index b0d97c4d6e4..9f87bf59eeb 100644 --- a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected +++ b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected @@ -95,6 +95,7 @@ | SignAnalysis.cs:120:9:120:10 | access to field f0 | positive | | SignAnalysis.cs:120:9:120:12 | ...++ | positive | | SignAnalysis.cs:121:34:121:35 | access to field f0 | strictlyPositive | +| SignAnalysis.cs:122:9:122:10 | access to field f0 | positive | | SignAnalysis.cs:129:9:129:16 | ... = ... | strictlyNegative | | SignAnalysis.cs:129:14:129:16 | -... | strictlyNegative | | SignAnalysis.cs:129:15:129:16 | 10 | strictlyPositive | @@ -213,6 +214,7 @@ | SignAnalysis.cs:414:13:414:13 | access to local variable i | strictlyPositive | | SignAnalysis.cs:415:31:415:31 | access to local variable i | strictlyPositive | | SignAnalysis.cs:424:31:424:31 | access to local variable x | strictlyNegative | +| SignAnalysis.cs:428:19:428:19 | access to constant A | strictlyPositive | | SignAnalysis.cs:428:19:428:24 | ... = ... | strictlyPositive | | SignAnalysis.cs:428:23:428:24 | 12 | strictlyPositive | | SignAnalysis.cs:434:38:434:38 | access to local variable i | strictlyNegative | diff --git a/csharp/ql/test/library-tests/obinit/ObInit.expected b/csharp/ql/test/library-tests/obinit/ObInit.expected index 38dd8268680..3d2c7df895f 100644 --- a/csharp/ql/test/library-tests/obinit/ObInit.expected +++ b/csharp/ql/test/library-tests/obinit/ObInit.expected @@ -6,11 +6,13 @@ call | obinit.cs:9:16:9:16 | call to method | obinit.cs:2:18:2:18 | | obinit.cs:9:16:9:16 | A | | obinit.cs:15:16:15:16 | call to method | obinit.cs:14:18:14:18 | | obinit.cs:15:16:15:16 | B | cfg +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | access to field x | obinit.cs:3:13:3:17 | ... = ... | normal | 2 | | obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | this access | obinit.cs:3:17:3:17 | 1 | normal | 0 | -| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | ... = ... | obinit.cs:5:23:5:23 | this access | normal | 2 | -| obinit.cs:2:18:2:18 | | obinit.cs:3:17:3:17 | 1 | obinit.cs:3:13:3:17 | ... = ... | normal | 1 | -| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | this access | obinit.cs:5:27:5:34 | "source" | normal | 3 | -| obinit.cs:2:18:2:18 | | obinit.cs:5:27:5:34 | "source" | obinit.cs:5:23:5:34 | ... = ... | normal | 4 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | ... = ... | obinit.cs:5:23:5:23 | this access | normal | 3 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:17:3:17 | 1 | obinit.cs:3:13:3:13 | access to field x | normal | 1 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | access to field s | obinit.cs:5:23:5:34 | ... = ... | normal | 6 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | this access | obinit.cs:5:27:5:34 | "source" | normal | 4 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:27:5:34 | "source" | obinit.cs:5:23:5:23 | access to field s | normal | 5 | | obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to constructor Object | obinit.cs:7:20:7:22 | {...} | normal | 2 | | obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to method | obinit.cs:7:16:7:16 | call to constructor Object | normal | 1 | | obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | this access | obinit.cs:7:16:7:16 | call to method | normal | 0 | diff --git a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected index a42a3c662d4..d0838ceed01 100644 --- a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected +++ b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected @@ -31,10 +31,12 @@ | ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | Call (unknown target) | | ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | object creation of type | | ControlFlow.cs:10:35:10:86 | { ..., ... } | ControlFlow.cs:5:10:5:10 | exit F (normal) | +| ControlFlow.cs:10:37:10:47 | access to array element | ControlFlow.cs:10:37:10:62 | ... = ... | | ControlFlow.cs:10:37:10:62 | ... = ... | ControlFlow.cs:10:79:10:79 | access to local variable v | -| ControlFlow.cs:10:51:10:62 | access to field Empty | ControlFlow.cs:10:37:10:62 | ... = ... | +| ControlFlow.cs:10:51:10:62 | access to field Empty | ControlFlow.cs:10:37:10:47 | access to array element | +| ControlFlow.cs:10:65:10:75 | access to array element | ControlFlow.cs:10:65:10:84 | ... = ... | | ControlFlow.cs:10:65:10:84 | ... = ... | ControlFlow.cs:10:35:10:86 | { ..., ... } | | ControlFlow.cs:10:79:10:79 | access to local variable v | ControlFlow.cs:10:79:10:84 | Call (unknown target) | | ControlFlow.cs:10:79:10:79 | access to local variable v | ControlFlow.cs:10:79:10:84 | access to property (unknown) | -| ControlFlow.cs:10:79:10:84 | Call (unknown target) | ControlFlow.cs:10:65:10:84 | ... = ... | -| ControlFlow.cs:10:79:10:84 | access to property (unknown) | ControlFlow.cs:10:65:10:84 | ... = ... | +| ControlFlow.cs:10:79:10:84 | Call (unknown target) | ControlFlow.cs:10:65:10:75 | access to array element | +| ControlFlow.cs:10:79:10:84 | access to property (unknown) | ControlFlow.cs:10:65:10:75 | access to array element | From 0bf0cbae8fbff9e5eac811286ed319d731d50ffc Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 14 Jan 2026 13:54:09 +0100 Subject: [PATCH 201/263] C#: Add some null conditional assignments CFG tests. --- .../controlflow/graph/ConditionalAccess.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs b/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs index a03564b529f..b99e940f88b 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs +++ b/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs @@ -34,6 +34,25 @@ class ConditionalAccess i = 0; Prop?.Out(out i); } + + string StringProp { get; set; } + int IntField; + string this[int index] + { + get { return null; } + set { } + } + + void M9(ConditionalAccess ca) + { + ca?.IntField = 42; + ca?.StringProp = "Hello"; + ca?[0] = "Set0"; + ca?.Prop?.IntField = 84; + ca?.Prop?.StringProp = "World"; + ca?.IntField -= 1; + ca?.StringProp += "!"; + } } static class Ext From 4ba89230db80291255b3a0b97f135259b580bd0b Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 14 Jan 2026 13:56:20 +0100 Subject: [PATCH 202/263] C#: Update test expected output. --- .../controlflow/graph/BasicBlock.expected | 25 +- .../controlflow/graph/Condition.expected | 17 + .../controlflow/graph/Dominance.expected | 358 +++++++++++++++++- .../graph/EnclosingCallable.expected | 99 ++++- .../controlflow/graph/EntryElement.expected | 61 ++- .../controlflow/graph/ExitElement.expected | 106 +++++- .../controlflow/graph/NodeGraph.expected | 80 +++- .../controlflow/graph/Nodes.expected | 5 +- 8 files changed, 707 insertions(+), 44 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index ee6adc184a4..c8603d390c3 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -244,7 +244,30 @@ | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:12 | access to property Prop | 8 | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 | 2 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | 1 | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | 8 | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | exit get_Item | 6 | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | exit set_Item | 4 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | 4 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | 2 | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:12:48:25 | ... = ... | 3 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:12:49:32 | ... = ... | 3 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:12:50:23 | ... = ... | 4 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | 1 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:18:51:31 | ... = ... | 3 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | 1 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:18:52:38 | ... = ... | 3 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 1 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | 1 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... = ... | 4 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 1 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | 1 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... = ... | 4 | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | 8 | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | exit Conditions | 7 | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:5:13:5:15 | access to parameter inc | 4 | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | 2 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected index 2c2f3dbb018..3ef1d481abe 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected @@ -91,6 +91,23 @@ conditionBlock | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | | ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:24 | call to method Out | false | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:24:48:25 | 42 | false | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | false | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | false | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | false | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | false | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | false | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | false | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | false | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | false | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | false | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | false | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | false | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | false | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | false | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | false | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | false | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | false | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | ...; | true | | Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [false] !... | true | | Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | false | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index f048e6d2a39..db226bef539 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -977,13 +977,68 @@ dominance | ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:24 | call to method Out | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | access to property Prop | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | this access | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:75:41:78 | ", " | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:78 | ... + ... | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:83 | ... + ... | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | exit get_Item | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:15:42:26 | return ...; | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | exit set_Item | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:48:9:48:26 | ...; | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:12:48:25 | ... = ... | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:9:48:20 | access to field IntField | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:12:49:32 | ... = ... | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:12:50:23 | ... = ... | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:9:50:14 | access to indexer | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:18:51:31 | ... = ... | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:9:51:26 | access to field IntField | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:18:52:38 | ... = ... | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... = ... | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... - ... | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... = ... | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... + ... | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:78 | ... + ... | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:83 | ... + ... | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | @@ -4874,13 +4929,68 @@ postDominance | ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:25 | ...; | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:34:9:34:13 | ... = ... | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:70:41:83 | ... + ... | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:75:41:78 | ", " | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:78 | ... + ... | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:15:42:26 | return ...; | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:9:42:11 | enter get_Item | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | enter set_Item | +| ConditionalAccess.cs:46:10:46:11 | exit M9 | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:12:54:29 | ... = ... | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:26 | ...; | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:20 | access to field IntField | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:12:48:25 | ... = ... | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:12:49:32 | ... = ... | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:14 | access to indexer | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:12:50:23 | ... = ... | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:26 | access to field IntField | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:18:51:31 | ... = ... | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... - ... | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:18:52:38 | ... = ... | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... + ... | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:12:53:25 | ... = ... | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:70:60:83 | ... + ... | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:75:60:78 | ", " | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:78 | ... + ... | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to method | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | exit Conditions | Conditions.cs:1:7:1:16 | exit Conditions (normal) | @@ -8877,7 +8987,127 @@ blockDominance | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:24 | call to method Out | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | @@ -12682,7 +12912,103 @@ postBlockDominance | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:35:9:35:24 | call to method Out | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | enter IncrOrDecr | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 527b6eb9bca..5c182890e05 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -1077,14 +1077,72 @@ nodeEnclosing | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions | @@ -4557,7 +4615,30 @@ blockEnclosing | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | IncrOrDecr | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected index da8fe4664f5..6074e670aac 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected @@ -896,11 +896,62 @@ | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:25 | ...; | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:75:41:78 | ", " | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:26 | ...; | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:75:60:78 | ", " | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | this access | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected index e3d13701cff..9e57759b274 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected @@ -1080,11 +1080,107 @@ | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | normal | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | access to property Prop | null | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:24 | call to method Out | normal | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | normal | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:70:41:78 | ... + ... | normal | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:70:41:83 | ... + ... | normal | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:75:41:78 | ", " | normal | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | normal | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:15:42:26 | return ...; | return | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:15:42:26 | return ...; | return | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:22:42:25 | null | normal | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:13:43:15 | {...} | normal | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:12:48:25 | ... = ... | normal | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:12:48:25 | ... = ... | normal | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | normal | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:12:49:32 | ... = ... | normal | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:12:49:32 | ... = ... | normal | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | normal | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:13:50:13 | 0 | normal | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:12:50:23 | ... = ... | normal | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:12:50:23 | ... = ... | normal | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | normal | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:18:50:23 | "Set0" | normal | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:18:51:31 | ... = ... | normal | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:18:51:31 | ... = ... | normal | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | normal | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:18:52:38 | ... = ... | normal | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:18:52:38 | ... = ... | normal | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | normal | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | normal | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:12:53:25 | ... - ... | normal | +| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | normal | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | normal | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:12:54:29 | ... + ... | normal | +| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | normal | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | normal | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:78 | ... + ... | normal | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:70:60:83 | ... + ... | normal | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:75:60:78 | ", " | normal | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | normal | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | normal | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to method | normal | | Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | this access | normal | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index 4f74842f453..e119b928136 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -1099,13 +1099,79 @@ | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | access to property Prop | | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | this access | | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:75:41:78 | ", " | | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:78 | ... + ... | | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:83 | ... + ... | | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | exit get_Item | | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:22:42:25 | null | | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | return | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:15:42:26 | return ...; | | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | exit set_Item | | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:47:5:55:5 | {...} | | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:48:9:48:26 | ...; | | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:24:48:25 | 42 | non-null | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | null | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:12:48:25 | ... = ... | | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:49:9:49:33 | ...; | | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:9:48:20 | access to field IntField | | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:26:49:32 | "Hello" | non-null | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | null | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:12:49:32 | ... = ... | | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:50:9:50:24 | ...; | | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:13:50:13 | 0 | non-null | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | null | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:12:50:23 | ... = ... | | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:51:9:51:32 | ...; | | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:18:50:23 | "Set0" | | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:9:50:14 | access to indexer | | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | non-null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:52:9:52:39 | ...; | null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:18:51:31 | ... = ... | | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:52:9:52:39 | ...; | | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:9:51:26 | access to field IntField | | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | non-null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:53:9:53:26 | ...; | null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:18:52:38 | ... = ... | | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:53:9:53:26 | ...; | | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... = ... | | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:25:53:25 | 1 | | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField | | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:54:9:54:30 | ...; | | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... - ... | | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... = ... | | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:27:54:29 | "!" | | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... + ... | | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " | | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:78 | ... + ... | | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:83 | ... + ... | | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index aff87481461..460d4d09054 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -58,7 +58,10 @@ | ConditionalAccess.cs:21:10:21:11 | M7 | ConditionalAccess.cs:22:5:26:5 | {...} | | ConditionalAccess.cs:30:10:30:12 | Out | ConditionalAccess.cs:30:32:30:32 | 0 | | ConditionalAccess.cs:32:10:32:11 | M8 | ConditionalAccess.cs:33:5:36:5 | {...} | -| ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | +| ConditionalAccess.cs:42:9:42:11 | get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:43:9:43:11 | set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:46:10:46:11 | M9 | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | | Conditions.cs:1:7:1:16 | Conditions | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:3:10:3:19 | IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:11:9:11:10 | M1 | Conditions.cs:12:5:20:5 | {...} | From f0135e93c5a5368527042a83a43cfdd323e33e8f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 14 Jan 2026 14:27:46 +0100 Subject: [PATCH 203/263] C#: Add a tests for MaybeNullExpr. --- .../dataflow/nullness/MaybeNullExpr.cs | 21 +++++++++++++++++++ .../dataflow/nullness/maybeNullExpr.expected | 6 ++++++ .../dataflow/nullness/maybeNullExpr.ql | 6 ++++++ .../library-tests/dataflow/nullness/options | 2 ++ 4 files changed, 35 insertions(+) create mode 100644 csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs create mode 100644 csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected create mode 100644 csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.ql create mode 100644 csharp/ql/test/library-tests/dataflow/nullness/options diff --git a/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs b/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs new file mode 100644 index 00000000000..34c59df8bbd --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs @@ -0,0 +1,21 @@ +using System; + +public class C +{ + string Prop { get; set; } + + void M(object o, bool b) + { + // Conditional expr might be null. + var conditionalExpr = b ? new object() : null; + + // Null-coalescing expr might be null as the right operand is null. + var nullCoalescing = o ?? null; + + // Cast might be null. + var c = o as C; + + // Conditional access might be null as the qualifier might be null. + var s1 = (o as C)?.Prop; + } +} diff --git a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected new file mode 100644 index 00000000000..4d8b00dd90c --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected @@ -0,0 +1,6 @@ +| MaybeNullExpr.cs:10:31:10:53 | ... ? ... : ... | +| MaybeNullExpr.cs:10:50:10:53 | null | +| MaybeNullExpr.cs:13:30:13:38 | ... ?? ... | +| MaybeNullExpr.cs:13:35:13:38 | null | +| MaybeNullExpr.cs:16:17:16:22 | ... as ... | +| MaybeNullExpr.cs:19:19:19:24 | ... as ... | diff --git a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.ql b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.ql new file mode 100644 index 00000000000..3b5531ccb3a --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.ql @@ -0,0 +1,6 @@ +import csharp +import semmle.code.csharp.dataflow.Nullness + +from MaybeNullExpr e +where e.fromSource() +select e diff --git a/csharp/ql/test/library-tests/dataflow/nullness/options b/csharp/ql/test/library-tests/dataflow/nullness/options new file mode 100644 index 00000000000..75c39b4541b --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj From 5942edf2d9a23303020bf55183557841b6c4f1fd Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 7 Jan 2026 15:22:11 +0100 Subject: [PATCH 204/263] C#: Take null conditional assignments into account in MaybeNullExpr. --- csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index 6a211e71f45..756fd6a4e3a 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -43,6 +43,12 @@ private Expr maybeNullExpr(Expr reason) { ) or result.(NullCoalescingExpr).getRightOperand() = maybeNullExpr(reason) + or + result = + any(QualifiableExpr qe | + qe.isConditional() and + qe.getQualifier() = maybeNullExpr(reason) + ) } /** An expression that may be `null`. */ From ab432ec2e93b0e7b8832b23ddb5c218767866c4b Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 14 Jan 2026 14:34:44 +0100 Subject: [PATCH 205/263] C#: Update test expected output. --- .../test/library-tests/dataflow/nullness/maybeNullExpr.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected index 4d8b00dd90c..e5aa8423c59 100644 --- a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected +++ b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected @@ -3,4 +3,5 @@ | MaybeNullExpr.cs:13:30:13:38 | ... ?? ... | | MaybeNullExpr.cs:13:35:13:38 | null | | MaybeNullExpr.cs:16:17:16:22 | ... as ... | +| MaybeNullExpr.cs:19:18:19:31 | access to property Prop | | MaybeNullExpr.cs:19:19:19:24 | ... as ... | From 812fdbe412edd5b7c92b5ac3bd73d3426c08b377 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 14 Jan 2026 14:40:05 +0100 Subject: [PATCH 206/263] C#: Add change-note. --- .../change-notes/2026-01-14-null-conditional-assignments.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2026-01-14-null-conditional-assignments.md diff --git a/csharp/ql/lib/change-notes/2026-01-14-null-conditional-assignments.md b/csharp/ql/lib/change-notes/2026-01-14-null-conditional-assignments.md new file mode 100644 index 00000000000..ebce4c187e0 --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-01-14-null-conditional-assignments.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C# 14: Support for null-conditional assignments (such as `c?.Prop = p`). Furthermore, the `MaybeNullExpr` class now takes null-conditional access (such as `?.`) into account when modeling potential null values. From 3d988e8e94d8f1f1506bfbb24e8879e2065ae05e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 15 Jan 2026 17:10:24 +0100 Subject: [PATCH 207/263] C#: Add field access for out assignments in the CFG. --- .../internal/ControlFlowGraphImpl.qll | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index 288e2c4d8ff..77a88fb8c6a 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -430,6 +430,7 @@ module Expressions { not this instanceof ArrayCreation and not this instanceof QualifiedWriteAccess and not this instanceof QualifiedAccessorWrite and + not this instanceof QualifiedAccessorWriteOutParam and not this instanceof NoNodeExpr and not this instanceof SwitchExpr and not this instanceof SwitchCaseExpr and @@ -491,6 +492,93 @@ module Expressions { } } + /** + * An expression that writes via an accessor in an `out` parameter, for example `s = M(out x.Field)`, + * where `Field` is a field. + * + * Note that `ref` parameters are not included here as they are considered reads before the call. + * Ideally, we would model `ref` parameters as both reads and writes, but that is not currently supported. + * + * Accessor writes need special attention, because we need to model that the + * access is written after the method call. + * + * In the example above, this means we want a CFG that looks like + * + * ```csharp + * x -> call M -> x.Field -> s = M(out x.Field) + * ``` + */ + private class QualifiedAccessorWriteOutParam extends PostOrderTree instanceof Expr { + QualifiedAccessorWriteOutParam() { + exists(AssignableDefinitions::OutRefDefinition def | + def.getExpr() = this and + def.getTargetAccess() instanceof QualifiableExpr and + def.getTargetAccess().isOutArgument() + ) + } + + private QualifiableExpr getOutAccess(int i) { + result = + rank[i + 1](AssignableDefinitions::OutRefDefinition def | + def.getExpr() = this and + def.getTargetAccess() instanceof QualifiableExpr and + def.getTargetAccess().isOutArgument() + | + def order by def.getIndex() + ).getTargetAccess() + } + + private QualifiableExpr getLastOutAccess() { + exists(int last | + result = this.getOutAccess(last) and + not exists(this.getOutAccess(last + 1)) + ) + } + + final override predicate propagatesAbnormal(AstNode child) { child = getExprChild(this, _) } + + final override predicate first(AstNode first) { + first(getExprChild(this, 0), first) + or + not exists(getExprChild(this, 0)) and + first = this + } + + final override predicate last(AstNode last, Completion c) { + // The last ast node is the last out writeaccess. + // Completion from the call itself is propagated (required for eg. conditions). + last = this.getLastOutAccess() and + c.isValidFor(this) + } + + final override predicate succ(AstNode pred, AstNode succ, Completion c) { + exists(int i | + last(getExprChild(this, i), pred, c) and + c instanceof NormalCompletion + | + // Post-order: flow from last element of last child to element itself + i = max(int j | exists(getExprChild(this, j))) and + succ = this + or + // Standard left-to-right evaluation + first(getExprChild(this, i + 1), succ) + ) + or + // Flow from this element to the first write access. + pred = this and + succ = this.getOutAccess(0) and + c.isValidFor(pred) and + c instanceof NormalCompletion + or + // Flow from one access to the next + exists(int i | pred = this.getOutAccess(i) | + succ = this.getOutAccess(i + 1) and + c.isValidFor(pred) and + c instanceof NormalCompletion + ) + } + } + /** * An expression that writes via an accessor, for example `x.Prop = 0`, * where `Prop` is a property. @@ -516,6 +604,7 @@ module Expressions { QualifiedAccessorWrite() { def.getExpr() = this and def.getTargetAccess().(WriteAccess) instanceof QualifiableExpr and + not def instanceof AssignableDefinitions::OutRefDefinition and not this instanceof AssignOperationWithExpandedAssignment } From bd1c6e6352f5bff39f27bc17e07b78a144cfeb31 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 15 Jan 2026 18:43:01 +0100 Subject: [PATCH 208/263] C#: Exclude the field access cases from missing argument call. --- csharp/ql/consistency-queries/DataFlowConsistency.ql | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/csharp/ql/consistency-queries/DataFlowConsistency.ql b/csharp/ql/consistency-queries/DataFlowConsistency.ql index 638bace3892..f9049068a7f 100644 --- a/csharp/ql/consistency-queries/DataFlowConsistency.ql +++ b/csharp/ql/consistency-queries/DataFlowConsistency.ql @@ -60,6 +60,12 @@ private module Input implements InputSig { qe.isConditional() and qe.getQualifier() = arg.asExpr() ) + or + // TODO: Remove once underlying issue is fixed + exists(AssignableDefinitions::OutRefDefinition def | + def.getTargetAccess().(QualifiableExpr) = arg.asExpr() and + def.getTargetAccess().isOutArgument() + ) } predicate multipleArgumentCallExclude(ArgumentNode arg, DataFlowCall call) { From 86198e3c4366b787bef16d712803cb8dbef17240 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 16 Jan 2026 11:53:36 +0100 Subject: [PATCH 209/263] C#: Add tests for out writeacceses. --- .../controlflow/graph/Assignments.cs | 22 +++++ .../controlflow/graph/BasicBlock.expected | 3 + .../controlflow/graph/Dominance.expected | 90 +++++++++++++++++++ .../graph/EnclosingCallable.expected | 48 ++++++++++ .../controlflow/graph/EntryElement.expected | 36 ++++++++ .../controlflow/graph/ExitElement.expected | 36 ++++++++ .../controlflow/graph/NodeGraph.expected | 42 +++++++++ .../controlflow/graph/Nodes.expected | 3 + 8 files changed, 280 insertions(+) diff --git a/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs b/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs index bb8a645427e..e967904c80c 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs +++ b/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs @@ -21,4 +21,26 @@ class Assignments delegate void EventHandler(object sender, object e); event EventHandler Event; + int IntField; + string StringField; + + void SetParamSingle(out int x) + { + x = 42; + } + + void SetParamMulti(out int x, object o, out string y) + { + x = 42; + y = "Hello"; + } + + void M2() + { + int x1; + SetParamSingle(out x1); + SetParamSingle(out IntField); + SetParamMulti(out var y, null, out StringField); + SetParamMulti(out IntField, null, out StringField); + } } diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index c8603d390c3..30f2b105155 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -167,6 +167,9 @@ | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | exit M | 34 | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | exit (...) => ... | 4 | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | exit + | 6 | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | exit SetParamSingle | 7 | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | exit SetParamMulti | 10 | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | exit M2 | 28 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry | 7 | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:7:33:7:36 | access to parameter args | 5 | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | 2 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index db226bef539..4fdf1eef866 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -766,6 +766,48 @@ dominance | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | exit SetParamSingle | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:15 | ...; | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:14 | ... = ... | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | exit SetParamMulti | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:34:9:34:15 | ...; | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:35:9:35:20 | ...; | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:14 | ... = ... | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:19 | ... = ... | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | exit M2 | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:40:9:40:15 | ... ...; | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:47:44:57 | access to field StringField | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:38:10:38:11 | exit M2 (normal) | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | @@ -4722,6 +4764,48 @@ postDominance | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | enter + | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:18:5:20:5 | {...} | +| Assignments.cs:27:10:27:23 | exit SetParamSingle | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:29:9:29:14 | ... = ... | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:27:10:27:23 | enter SetParamSingle | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:15 | ...; | +| Assignments.cs:32:10:32:22 | exit SetParamMulti | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:35:9:35:19 | ... = ... | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:32:10:32:22 | enter SetParamMulti | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:15 | ...; | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:34:9:34:14 | ... = ... | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:20 | ...; | +| Assignments.cs:38:10:38:11 | exit M2 | Assignments.cs:38:10:38:11 | exit M2 (normal) | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:44:47:44:57 | access to field StringField | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | enter M2 | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:9:40:15 | ... ...; | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:40:13:40:14 | Int32 x1 | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:34:43:37 | null | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:43:44:43:54 | access to field StringField | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:37:44:40 | null | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to method | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | exit BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | @@ -8811,6 +8895,9 @@ blockDominance | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | enter M | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | enter (...) => ... | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | enter + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | enter SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | enter SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | enter M2 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | enter BreakInTry | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | enter M1 | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | @@ -12758,6 +12845,9 @@ postBlockDominance | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | enter M | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | enter (...) => ... | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | enter + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | enter SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | enter SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | enter M2 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | enter BreakInTry | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | enter M1 | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | enter M1 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 5c182890e05..8f48cd46fc3 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -839,6 +839,51 @@ nodeEnclosing | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | + | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | + | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:27:10:27:23 | exit SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:32:10:32:22 | exit SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:38:10:38:11 | exit M2 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:38:10:38:11 | M2 | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | @@ -4538,6 +4583,9 @@ blockEnclosing | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | M | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | (...) => ... | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | M2 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | M1 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected index 6074e670aac..410916afabd 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected @@ -722,6 +722,42 @@ | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:18:5:20:5 | {...} | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:15 | ...; | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:15 | ...; | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:20 | ...; | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:9:40:15 | ... ...; | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:13:40:14 | Int32 x1 | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:34:43:37 | null | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | this access | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | this access | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected index 9e57759b274..decfe3f3cfe 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected @@ -821,6 +821,42 @@ | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:9:19:17 | return ...; | return | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:9:19:17 | return ...; | return | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | normal | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:14 | ... = ... | normal | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:9:29:14 | ... = ... | normal | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:14 | ... = ... | normal | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:13:29:14 | 42 | normal | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:35:9:35:19 | ... = ... | normal | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:9:34:14 | ... = ... | normal | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:14 | ... = ... | normal | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:13:34:14 | 42 | normal | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:9:35:19 | ... = ... | normal | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:19 | ... = ... | normal | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:13:35:19 | "Hello" | normal | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:44:47:44:57 | access to field StringField | normal | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | normal | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:13:40:14 | Int32 x1 | normal | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | this access | normal | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | normal | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | this access | normal | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:28:42:35 | access to field IntField | normal | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | this access | normal | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | this access | normal | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | normal | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | this access | normal | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:44:43:54 | access to field StringField | normal | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:34:43:37 | null | normal | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | normal | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | this access | normal | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | access to field StringField | normal | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:58 | this access | normal | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:47:44:57 | access to field StringField | normal | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | this access | normal | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | this access | normal | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:37:44:40 | null | normal | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | this access | normal | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | this access | normal | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | normal | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to method | normal | | BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | this access | normal | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index e119b928136..b8ccee34f7e 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -853,6 +853,48 @@ | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:16:19:16 | access to parameter x | | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | return | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:28:5:30:5 | {...} | | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | exit SetParamSingle | | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:15 | ...; | | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:13:29:14 | 42 | | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:14 | ... = ... | | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:33:5:36:5 | {...} | | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | exit SetParamMulti | | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:34:9:34:15 | ...; | | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:35:9:35:20 | ...; | | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:13:34:14 | 42 | | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:14 | ... = ... | | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:13:35:19 | "Hello" | | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:19 | ... = ... | | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:39:5:45:5 | {...} | | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | exit M2 | | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:40:9:40:15 | ... ...; | | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:41:9:41:31 | ...; | | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:43:9:43:56 | ...; | | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | call to method SetParamSingle | | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:44:9:44:59 | ...; | | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:9:43:55 | call to method SetParamMulti | | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:27:44:34 | access to field IntField | | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:47:44:57 | access to field StringField | | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:37:44:40 | null | | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:38:10:38:11 | exit M2 (normal) | | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index 460d4d09054..d76f989e5cf 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -36,6 +36,9 @@ | Assignments.cs:3:10:3:10 | M | Assignments.cs:4:5:15:5 | {...} | | Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:33:14:35 | {...} | | Assignments.cs:17:40:17:40 | + | Assignments.cs:18:5:20:5 | {...} | +| Assignments.cs:27:10:27:23 | SetParamSingle | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:32:10:32:22 | SetParamMulti | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:38:10:38:11 | M2 | Assignments.cs:39:5:45:5 | {...} | | BreakInTry.cs:1:7:1:16 | BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:3:10:3:11 | M1 | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:20:10:20:11 | M2 | BreakInTry.cs:21:5:36:5 | {...} | From 3cdca25a679bb821c36bf1fa4a82f0c397f4424d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 16 Jan 2026 10:07:33 +0100 Subject: [PATCH 210/263] Actions: Add `examples` qlpack --- actions/ql/examples/codeql-pack.lock.yml | 4 ++++ actions/ql/examples/qlpack.yml | 7 +++++++ actions/ql/examples/snippets/uses_pinned_sha.ql | 12 ++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 actions/ql/examples/codeql-pack.lock.yml create mode 100644 actions/ql/examples/qlpack.yml create mode 100644 actions/ql/examples/snippets/uses_pinned_sha.ql diff --git a/actions/ql/examples/codeql-pack.lock.yml b/actions/ql/examples/codeql-pack.lock.yml new file mode 100644 index 00000000000..53004274575 --- /dev/null +++ b/actions/ql/examples/codeql-pack.lock.yml @@ -0,0 +1,4 @@ +--- +lockVersion: 1.0.0 +dependencies: {} +compiled: false diff --git a/actions/ql/examples/qlpack.yml b/actions/ql/examples/qlpack.yml new file mode 100644 index 00000000000..45be7ae0135 --- /dev/null +++ b/actions/ql/examples/qlpack.yml @@ -0,0 +1,7 @@ +name: codeql/actions-examples +groups: + - actions + - examples +dependencies: + codeql/actions-all: ${workspace} +warnOnImplicitThis: true diff --git a/actions/ql/examples/snippets/uses_pinned_sha.ql b/actions/ql/examples/snippets/uses_pinned_sha.ql new file mode 100644 index 00000000000..84b2cdae0fd --- /dev/null +++ b/actions/ql/examples/snippets/uses_pinned_sha.ql @@ -0,0 +1,12 @@ +/** + * @name Uses step with pinned SHA + * @description Finds 'uses' steps where the version is a pinned SHA. + * @id actions/examples/uses-pinned-sha + * @tags example + */ + +import actions + +from UsesStep uses +where uses.getVersion().regexpMatch("^[A-Fa-f0-9]{40}$") +select uses, "This 'uses' step has a pinned SHA version." From 767acb8ff433fda17d2eded6b79c10a891de8543 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 16 Jan 2026 13:11:45 +0100 Subject: [PATCH 211/263] Rust: Fix bad join Before ``` Evaluated relational algebra for predicate TypeMention::RefTypeReprMention.resolveRootType/0#dispred#091b949a#fb@4bd8a49g with tuple counts: 124419 ~0% {1} r1 = RefTypeRepr::Generated::RefTypeRepr#422893fa AND NOT `RefTypeRepr::Generated::RefTypeRepr.isMut/0#dispred#e2b9988f`(FIRST 1) 6621454761 ~1% {3} | JOIN WITH `Type::DataType.getTypeItem/0#dispred#83467854` CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0, Rhs.1 915101745 ~0% {4} | JOIN WITH `project#Type::DataType.getPositionalTypeParameter/1#dispred#3bf49cbe` ON FIRST 1 OUTPUT Lhs.2, _, Lhs.1, Lhs.0 915101745 ~3% {4} | REWRITE WITH Out.1 := "Ref" 124419 ~0% {2} | JOIN WITH `Builtins::BuiltinType.getName/0#dispred#8f62ab0a` ON FIRST 2 OUTPUT Lhs.2, Lhs.3 76728 ~0% {1} r2 = JOIN RefTypeRepr::Generated::RefTypeRepr#422893fa WITH `RefTypeRepr::Generated::RefTypeRepr.isMut/0#dispred#e2b9988f` ON FIRST 1 OUTPUT Lhs.0 4083387432 ~1% {3} | JOIN WITH `Type::DataType.getTypeItem/0#dispred#83467854` CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0, Rhs.1 564334440 ~3% {4} | JOIN WITH `project#Type::DataType.getPositionalTypeParameter/1#dispred#3bf49cbe` ON FIRST 1 OUTPUT Lhs.2, _, Lhs.1, Lhs.0 564334440 ~0% {4} | REWRITE WITH Out.1 := "RefMut" 76728 ~2% {2} | JOIN WITH `Builtins::BuiltinType.getName/0#dispred#8f62ab0a` ON FIRST 2 OUTPUT Lhs.2, Lhs.3 201147 ~1% {2} r3 = r1 UNION r2 return r3 ``` After ``` Evaluated relational algebra for predicate TypeMention::RefTypeReprMention.resolveRootType/0#dispred#091b949a#fb@8f12aa2a with tuple counts: 124419 ~0% {1} r1 = RefTypeRepr::Generated::RefTypeRepr#422893fa AND NOT `RefTypeRepr::Generated::RefTypeRepr.isMut/0#dispred#e2b9988f`(FIRST 1) 124419 ~0% {2} | JOIN WITH Type::RefSharedType#090df68e CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0 124419 ~0% {2} | JOIN WITH `project#Type::DataType.getPositionalTypeParameter/1#dispred#3bf49cbe` ON FIRST 1 OUTPUT Lhs.1, Lhs.0 76728 ~0% {1} r2 = JOIN RefTypeRepr::Generated::RefTypeRepr#422893fa WITH `RefTypeRepr::Generated::RefTypeRepr.isMut/0#dispred#e2b9988f` ON FIRST 1 OUTPUT Lhs.0 76728 ~0% {2} | JOIN WITH Type::RefMutType#c67a1837 CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0 76728 ~2% {2} | JOIN WITH `project#Type::DataType.getPositionalTypeParameter/1#dispred#3bf49cbe` ON FIRST 1 OUTPUT Lhs.1, Lhs.0 201147 ~1% {2} r3 = r1 UNION r2 return r3 ``` --- rust/ql/lib/codeql/rust/internal/typeinference/Type.qll | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll index acf20905b6a..da70b7e82cc 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/Type.qll @@ -96,6 +96,7 @@ abstract class Type extends TType { class TupleType extends StructType { private int arity; + pragma[nomagic] TupleType() { arity = this.getTypeItem().(Builtins::TupleType).getArity() } /** Gets the arity of this tuple type. */ @@ -203,6 +204,7 @@ class TraitType extends Type, TTrait { * Array types like `[i64; 5]` are modeled as normal generic types. */ class ArrayType extends StructType { + pragma[nomagic] ArrayType() { this.getTypeItem() instanceof Builtins::ArrayType } override string toString() { result = "[;]" } @@ -216,12 +218,14 @@ TypeParamTypeParameter getArrayTypeParameter() { abstract class RefType extends StructType { } class RefMutType extends RefType { + pragma[nomagic] RefMutType() { this.getTypeItem() instanceof Builtins::RefMutType } override string toString() { result = "&mut" } } class RefSharedType extends RefType { + pragma[nomagic] RefSharedType() { this.getTypeItem() instanceof Builtins::RefSharedType } override string toString() { result = "&" } @@ -312,6 +316,7 @@ class ImplTraitReturnType extends ImplTraitType { * with a single type argument. */ class SliceType extends StructType { + pragma[nomagic] SliceType() { this.getTypeItem() instanceof Builtins::SliceType } override string toString() { result = "[]" } @@ -338,12 +343,14 @@ TypeParamTypeParameter getPtrTypeParameter() { } class PtrMutType extends PtrType { + pragma[nomagic] PtrMutType() { this.getTypeItem() instanceof Builtins::PtrMutType } override string toString() { result = "*mut" } } class PtrConstType extends PtrType { + pragma[nomagic] PtrConstType() { this.getTypeItem() instanceof Builtins::PtrConstType } override string toString() { result = "*const" } From 5e9fd12d8c71e428b361b56525c75663554e8ed1 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 Jan 2026 12:25:12 +0000 Subject: [PATCH 212/263] Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 55325f055ce..919a32d8a4b 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -1164,7 +1164,7 @@ private module RawIndirectNodes { override predicate isGLValue() { this.getInstruction().isGLValue() } override Type getType() { - exists(int sub, DataFlowType type, boolean isGLValue | + exists(int sub, Type type, boolean isGLValue | type = getInstructionType(this.getInstruction(), isGLValue) and if isGLValue = true then sub = 1 else sub = 0 | From 43e20176f0c24a7aaef9f2bc144ee99934c207e1 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 16 Jan 2026 13:30:10 +0100 Subject: [PATCH 213/263] Rust: Fix bad join Before ``` Evaluated relational algebra for predicate _ElementImpl::Impl::MacroExpansion::isAttributeMacroExpansionSourceLocation/2#3429148c_Locatable::Lo__#antijoin_rhs@9f4aa4rk with tuple counts: 5127263380 ~4% {3} r1 = JOIN `_AstNodeImpl::Impl::AstNode#22e758cf_ElementImpl::Impl::MacroExpansion::getATokenTreeNode/1#a2df59a3__#shared` WITH `ElementImpl::Impl::MacroExpansion::isAttributeMacroExpansionSourceLocation/2#3429148c` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.0 305226 ~0% {2} | JOIN WITH `Locatable::Locatable.getLocation/0#dispred#f3f7e2b2` ON FIRST 2 OUTPUT Lhs.0, Lhs.2 return r1 ``` (No After; the predicate is no longer generated) --- rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll index df586df6424..277e77d8eab 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll @@ -99,10 +99,11 @@ module Impl { */ cached predicate isFromMacroExpansion(AstNode n) { - exists(AstNode macro | + exists(AstNode macro, Location l | macro = getImmediatelyEnclosingMacroInvocation(n) and not n = getATokenTreeNode(macro) and - not isAttributeMacroExpansionSourceLocation(macro, n.getLocation()) + l = n.getLocation() and + not isAttributeMacroExpansionSourceLocation(macro, l) ) or isFromMacroExpansion(pragma[only_bind_into](getImmediatelyEnclosingMacroInvocation(n))) From 08a6b99cfd43a3dd6c35b23b4033ae9503291e38 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 Jan 2026 12:41:20 +0000 Subject: [PATCH 214/263] C++: Add change note. --- .../lib/change-notes/2026-01-16-barrier-guard-conflation.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md diff --git a/cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md b/cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md new file mode 100644 index 00000000000..fa1b52e469b --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed a bug in the `DataFlow::BarrierGuard<...>::getABarrierNode` predicate which caused the predicate to return `DataFlow::Node`s with incorrect indirections. If you use `getABarrierNode` to implement barriers in a dataflow/taint-tracking query it may result in more query results. You can use `DataFlow::BarrierGuard<...>::getAnIndirectBarrierNode` to remove those query results. \ No newline at end of file From f05bff01e464c22fe7ef2aa24c88a1950e567400 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 Jan 2026 12:42:33 +0000 Subject: [PATCH 215/263] C++: Switch another 'DataFlowType' to 'Type'. --- cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll index c4f5885cf6d..99f13a81725 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll @@ -53,7 +53,7 @@ private module SourceVariables { * the type of this source variable should be thought of as "pointer * to `getType()`". */ - DataFlowType getType() { + Type getType() { if this.isGLValue() then result = base.getType() else result = getTypeImpl(base.getType(), ind - 1) From beb7750c214191265e19db15c4aa5227527da85a Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 Jan 2026 10:06:14 +0100 Subject: [PATCH 216/263] C#: Address review comments. --- .../DataFlowConsistency.ql | 6 - .../internal/ControlFlowGraphImpl.qll | 124 +++--------------- 2 files changed, 20 insertions(+), 110 deletions(-) diff --git a/csharp/ql/consistency-queries/DataFlowConsistency.ql b/csharp/ql/consistency-queries/DataFlowConsistency.ql index f9049068a7f..638bace3892 100644 --- a/csharp/ql/consistency-queries/DataFlowConsistency.ql +++ b/csharp/ql/consistency-queries/DataFlowConsistency.ql @@ -60,12 +60,6 @@ private module Input implements InputSig { qe.isConditional() and qe.getQualifier() = arg.asExpr() ) - or - // TODO: Remove once underlying issue is fixed - exists(AssignableDefinitions::OutRefDefinition def | - def.getTargetAccess().(QualifiableExpr) = arg.asExpr() and - def.getTargetAccess().isOutArgument() - ) } predicate multipleArgumentCallExclude(ArgumentNode arg, DataFlowCall call) { diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index 77a88fb8c6a..6be79a17be2 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -430,7 +430,6 @@ module Expressions { not this instanceof ArrayCreation and not this instanceof QualifiedWriteAccess and not this instanceof QualifiedAccessorWrite and - not this instanceof QualifiedAccessorWriteOutParam and not this instanceof NoNodeExpr and not this instanceof SwitchExpr and not this instanceof SwitchCaseExpr and @@ -447,25 +446,29 @@ module Expressions { } /** - * A qualified write access. In a qualified write access, the access itself is - * not evaluated, only the qualifier and the indexer arguments (if any). + * A qualified write access. * - * Note that the successor declaration in `QualifiedAccessorWrite` ensures that the access itself + * The successor declaration in `QualifiedAccessorWrite` ensures that the access itself * is evaluated after the qualifier and the indexer arguments (if any) * and the right hand side of the assignment. + * + * When a qualified write access is used as an `out/ref` argument, the access itself is evaluated immediately. */ private class QualifiedWriteAccess extends ControlFlowTree instanceof WriteAccess, QualifiableExpr { QualifiedWriteAccess() { - this.hasQualifier() - or - // Member initializers like - // ```csharp - // new Dictionary() { [0] = "Zero", [1] = "One", [2] = "Two" } - // ``` - // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` - // have no qualifier. - this = any(MemberInitializer mi).getLValue() + ( + this.hasQualifier() + or + // Member initializers like + // ```csharp + // new Dictionary() { [0] = "Zero", [1] = "One", [2] = "Two" } + // ``` + // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` + // have no qualifier. + this = any(MemberInitializer mi).getLValue() + ) and + not exists(AssignableDefinitions::OutRefDefinition def | def.getTargetAccess() = this) } final override predicate propagatesAbnormal(AstNode child) { child = getExprChild(this, _) } @@ -486,101 +489,14 @@ module Expressions { exists(int i | last(getExprChild(this, i), pred, c) and c instanceof NormalCompletion and - (i != 0 or not c.(NullnessCompletion).isNull()) and + (if i = 0 then not c.(NullnessCompletion).isNull() else any()) and first(getExprChild(this, i + 1), succ) ) } } /** - * An expression that writes via an accessor in an `out` parameter, for example `s = M(out x.Field)`, - * where `Field` is a field. - * - * Note that `ref` parameters are not included here as they are considered reads before the call. - * Ideally, we would model `ref` parameters as both reads and writes, but that is not currently supported. - * - * Accessor writes need special attention, because we need to model that the - * access is written after the method call. - * - * In the example above, this means we want a CFG that looks like - * - * ```csharp - * x -> call M -> x.Field -> s = M(out x.Field) - * ``` - */ - private class QualifiedAccessorWriteOutParam extends PostOrderTree instanceof Expr { - QualifiedAccessorWriteOutParam() { - exists(AssignableDefinitions::OutRefDefinition def | - def.getExpr() = this and - def.getTargetAccess() instanceof QualifiableExpr and - def.getTargetAccess().isOutArgument() - ) - } - - private QualifiableExpr getOutAccess(int i) { - result = - rank[i + 1](AssignableDefinitions::OutRefDefinition def | - def.getExpr() = this and - def.getTargetAccess() instanceof QualifiableExpr and - def.getTargetAccess().isOutArgument() - | - def order by def.getIndex() - ).getTargetAccess() - } - - private QualifiableExpr getLastOutAccess() { - exists(int last | - result = this.getOutAccess(last) and - not exists(this.getOutAccess(last + 1)) - ) - } - - final override predicate propagatesAbnormal(AstNode child) { child = getExprChild(this, _) } - - final override predicate first(AstNode first) { - first(getExprChild(this, 0), first) - or - not exists(getExprChild(this, 0)) and - first = this - } - - final override predicate last(AstNode last, Completion c) { - // The last ast node is the last out writeaccess. - // Completion from the call itself is propagated (required for eg. conditions). - last = this.getLastOutAccess() and - c.isValidFor(this) - } - - final override predicate succ(AstNode pred, AstNode succ, Completion c) { - exists(int i | - last(getExprChild(this, i), pred, c) and - c instanceof NormalCompletion - | - // Post-order: flow from last element of last child to element itself - i = max(int j | exists(getExprChild(this, j))) and - succ = this - or - // Standard left-to-right evaluation - first(getExprChild(this, i + 1), succ) - ) - or - // Flow from this element to the first write access. - pred = this and - succ = this.getOutAccess(0) and - c.isValidFor(pred) and - c instanceof NormalCompletion - or - // Flow from one access to the next - exists(int i | pred = this.getOutAccess(i) | - succ = this.getOutAccess(i + 1) and - c.isValidFor(pred) and - c instanceof NormalCompletion - ) - } - } - - /** - * An expression that writes via an accessor, for example `x.Prop = 0`, + * An expression that writes via a qualifiable expression, for example `x.Prop = 0`, * where `Prop` is a property. * * Accessor writes need special attention, because we need to model the fact @@ -591,7 +507,7 @@ module Expressions { * x -> 0 -> set_Prop -> x.Prop = 0 * ``` * - * For consistency, control flow is implemented this way for all accessor writes. + * For consistency, control flow is implemented the same way for other qualified writes. * For example, `x.Field = 0`, where `Field` is a field, we want a CFG that looks like * * ```csharp @@ -645,7 +561,7 @@ module Expressions { exists(int i | last(getExprChild(this, i), pred, c) and c instanceof NormalCompletion and - (i != 0 or not c.(NullnessCompletion).isNull()) and + (if i = 0 then not c.(NullnessCompletion).isNull() else any()) and first(getExprChild(this, i + 1), succ) ) or From 33fc2bab3363d77d135c06d522c808041fa7e7a4 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 Jan 2026 10:19:15 +0100 Subject: [PATCH 217/263] C#: Update test expected output. --- .../controlflow/graph/Dominance.expected | 44 +++++++++---------- .../controlflow/graph/ExitElement.expected | 22 +++++----- .../controlflow/graph/NodeGraph.expected | 22 +++++----- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index 4fdf1eef866..204092c6df2 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -789,25 +789,25 @@ dominance | Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | | Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | | Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:43:9:43:56 | ...; | | Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | | Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | -| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:43:9:43:56 | ...; | -| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | call to method SetParamSingle | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:44:9:44:59 | ...; | | Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | | Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | | Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | -| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:44:9:44:59 | ...; | -| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:9:43:55 | call to method SetParamMulti | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | access to field StringField | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | exit M2 (normal) | | Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | | Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | -| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:47:44:57 | access to field StringField | -| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | access to field IntField | | Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | -| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:38:10:38:11 | exit M2 (normal) | -| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | access to field StringField | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | @@ -4780,31 +4780,31 @@ postDominance | Assignments.cs:35:9:35:20 | ...; | Assignments.cs:34:9:34:14 | ... = ... | | Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:20 | ...; | | Assignments.cs:38:10:38:11 | exit M2 | Assignments.cs:38:10:38:11 | exit M2 (normal) | -| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:44:47:44:57 | access to field StringField | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | enter M2 | | Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:39:5:45:5 | {...} | | Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:9:40:15 | ... ...; | | Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | | Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:31 | ...; | | Assignments.cs:41:9:41:31 | ...; | Assignments.cs:40:13:40:14 | Int32 x1 | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | | Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:37 | ...; | | Assignments.cs:42:9:42:37 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | -| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | this access | | Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | this access | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | | Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:56 | ...; | -| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:42:9:42:36 | call to method SetParamSingle | | Assignments.cs:43:34:43:37 | null | Assignments.cs:43:9:43:55 | this access | -| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | | Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:34:43:37 | null | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | access to field StringField | | Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:59 | ...; | -| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:43:44:43:54 | access to field StringField | -| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | this access | | Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:9:44:58 | this access | -| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:27:44:34 | this access | -| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | this access | | Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:37:44:40 | null | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to method | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | this access | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected index decfe3f3cfe..a6794112ebd 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected @@ -832,30 +832,30 @@ | Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:9:35:19 | ... = ... | normal | | Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:19 | ... = ... | normal | | Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:13:35:19 | "Hello" | normal | -| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:44:47:44:57 | access to field StringField | normal | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | | Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | normal | | Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:13:40:14 | Int32 x1 | normal | | Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | | Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | this access | normal | | Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | normal | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | call to method SetParamSingle | normal | | Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | this access | normal | -| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:28:42:35 | access to field IntField | normal | -| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | this access | normal | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | call to method SetParamSingle | normal | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | access to field IntField | normal | | Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | this access | normal | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | normal | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | call to method SetParamMulti | normal | | Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | this access | normal | -| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:44:43:54 | access to field StringField | normal | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | call to method SetParamMulti | normal | | Assignments.cs:43:34:43:37 | null | Assignments.cs:43:34:43:37 | null | normal | -| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | normal | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | access to field StringField | normal | | Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | this access | normal | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | access to field StringField | normal | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | | Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:58 | this access | normal | -| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:47:44:57 | access to field StringField | normal | -| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | this access | normal | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | access to field IntField | normal | | Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | this access | normal | | Assignments.cs:44:37:44:40 | null | Assignments.cs:44:37:44:40 | null | normal | -| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | this access | normal | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | access to field StringField | normal | | Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | this access | normal | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | normal | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to method | normal | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index b8ccee34f7e..4ce98d5096f 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -876,25 +876,25 @@ | Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | | | Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | | | Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | | -| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:43:9:43:56 | ...; | | | Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | | | Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | | -| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:43:9:43:56 | ...; | | -| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | call to method SetParamSingle | | -| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | access to field IntField | | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:44:9:44:59 | ...; | | | Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | | | Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | | | Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | | -| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:44:9:44:59 | ...; | | -| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:9:43:55 | call to method SetParamMulti | | -| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:27:44:34 | access to field IntField | | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | access to field StringField | | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | exit M2 (normal) | | | Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | | | Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | | -| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:47:44:57 | access to field StringField | | -| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:37:44:40 | null | | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:37:44:40 | null | | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | access to field IntField | | | Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | | -| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:38:10:38:11 | exit M2 (normal) | | -| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | access to field StringField | | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | From fd309d6e49e3863ddd38904aa5d039df7e632c30 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 15 Jan 2026 10:04:03 +0100 Subject: [PATCH 218/263] Rust: Remove restriction that blanket(-like) impls must have a constraint --- .../codeql/rust/frameworks/stdlib/Stdlib.qll | 30 +++++ .../typeinference/BlanketImplementation.qll | 7 +- .../typeinference/FunctionOverloading.qll | 16 ++- .../internal/typeinference/FunctionType.qll | 24 +++- .../internal/typeinference/TypeInference.qll | 113 ++++++++++++------ .../dataflow/local/inline-flow.expected | 103 +++++++++------- .../test/library-tests/dataflow/local/main.rs | 6 +- .../test/library-tests/type-inference/main.rs | 2 +- 8 files changed, 217 insertions(+), 84 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index 114c283bbdb..b5c1dff3bea 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -5,7 +5,10 @@ private import rust private import codeql.rust.Concepts private import codeql.rust.dataflow.DataFlow +private import codeql.rust.dataflow.FlowSummary private import codeql.rust.internal.PathResolution +private import codeql.rust.internal.typeinference.Type +private import codeql.rust.internal.typeinference.TypeMention /** * A call to the `starts_with` method on a `Path`. @@ -297,3 +300,30 @@ class Vec extends Struct { /** Gets the type parameter representing the element type. */ TypeParam getElementTypeParam() { result = this.getGenericParamList().getTypeParam(0) } } + +// Blanket implementations currently don't have a canonical path, so we cannot +// use models-as-data for this model. +private class ReflexiveFrom extends SummarizedCallable::Range { + ReflexiveFrom() { + exists(ImplItemNode impl | + impl.resolveTraitTy().(Trait).getCanonicalPath() = "core::convert::From" and + this = impl.getAnAssocItem() and + impl.isBlanketImplementation() and + this.getParam(0) + .getTypeRepr() + .(TypeMention) + .resolveType() + .(TypeParamTypeParameter) + .getTypeParam() = impl.getTypeParam(0) + ) + } + + override predicate propagatesFlow( + string input, string output, boolean preservesValue, string model + ) { + input = "Argument[0]" and + output = "ReturnValue" and + preservesValue = true and + model = "ReflexiveFrom" + } +} diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll index 1d2eda61ddb..63a21f2867b 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll @@ -126,7 +126,7 @@ module SatisfiesBlanketConstraint< /** * Holds if the argument type `at` satisfies the first non-trivial blanket - * constraint of `impl`. + * constraint of `impl`, or if there are no non-trivial constraints of `impl`. */ pragma[nomagic] predicate satisfiesBlanketConstraint(ArgumentType at, ImplItemNode impl) { @@ -135,6 +135,11 @@ module SatisfiesBlanketConstraint< SatisfiesBlanketConstraintInput::relevantConstraint(ato, impl, traitBound) and SatisfiesBlanketConstraint::satisfiesConstraintType(ato, TTrait(traitBound), _, _) ) + or + exists(TypeParam blanketTypeParam | + hasBlanketCandidate(at, impl, _, blanketTypeParam) and + not hasFirstNonTrivialTraitBound(blanketTypeParam, _) + ) } /** diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index 5814493c389..1bacd2b9584 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -58,12 +58,26 @@ private predicate implSiblings(TraitItemNode trait, Impl impl1, Impl impl2) { ) } +pragma[nomagic] +private predicate isBlanketImpl(ImplItemNode impl, Trait trait) { + impl.isBlanketImplementation() and + trait = impl.resolveTraitTy() +} + /** * Holds if `impl` is an implementation of `trait` and if another implementation * exists for the same type. */ pragma[nomagic] -private predicate implHasSibling(Impl impl, Trait trait) { implSiblings(trait, impl, _) } +private predicate implHasSibling(ImplItemNode impl, Trait trait) { + implSiblings(trait, impl, _) + or + exists(ImplItemNode other | + isBlanketImpl(impl, trait) and + isBlanketImpl(other, trait) and + impl != other + ) +} /** * Holds if type parameter `tp` of `trait` occurs in the function `f` with the name diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll index e3257865619..d375ddfc984 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll @@ -356,7 +356,7 @@ module ArgsAreInstantiationsOf { string toString() { result = call.toString() + " [arg " + pos + "]" } } - private module ArgIsInstantiationOfInput implements + private module ArgIsInstantiationOfToIndexInput implements IsInstantiationOfInputSig { pragma[nomagic] @@ -389,7 +389,7 @@ module ArgsAreInstantiationsOf { } private module ArgIsInstantiationOfToIndex = - ArgIsInstantiationOf; + ArgIsInstantiationOf; pragma[nomagic] private predicate argsAreInstantiationsOfToIndex( @@ -413,4 +413,24 @@ module ArgsAreInstantiationsOf { rnk = max(int r | toCheckRanked(i, f, _, r)) ) } + + pragma[nomagic] + private predicate argsAreNotInstantiationsOf0( + Input::Call call, FunctionPosition pos, ImplOrTraitItemNode i + ) { + ArgIsInstantiationOfToIndex::argIsNotInstantiationOf(MkCallAndPos(call, pos), i, _, _) + } + + /** + * Holds if _some_ argument of `call` has a type that is not an instantiation of the + * type of the corresponding parameter of `f` inside `i`. + */ + pragma[nomagic] + predicate argsAreNotInstantiationsOf(Input::Call call, ImplOrTraitItemNode i, Function f) { + exists(FunctionPosition pos | + argsAreNotInstantiationsOf0(call, pos, i) and + call.hasTargetCand(i, f) and + Input::toCheck(i, f, pos, _) + ) + } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index c579a4168d8..2d768a8e4af 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -1289,6 +1289,13 @@ private class BorrowKind extends TBorrowKind { } } +// for now, we do not handle ambiguous targets when one of the types is itself +// a constrained type parameter; we should be checking the constraints in this case +private predicate typeCanBeUsedForDisambiguation(Type t) { + not t instanceof TypeParameter or + t.(TypeParamTypeParameter).getTypeParam() = any(TypeParam tp | not exists(tp.getATypeBound())) +} + /** * Provides logic for resolving calls to methods. * @@ -2384,10 +2391,7 @@ private module MethodResolution { exists(TypePath path, Type t0 | FunctionOverloading::functionResolutionDependsOnArgument(i, f, pos, path, t0) and t.appliesTo(f, i, pos) and - // for now, we do not handle ambiguous targets when one of the types it iself - // a type parameter; we should be checking the constraints on that type parameter - // in this case - not t0 instanceof TypeParameter + typeCanBeUsedForDisambiguation(t0) ) } @@ -2746,7 +2750,7 @@ private module NonMethodResolution { * Gets the blanket function that this call may resolve to, if any. */ pragma[nomagic] - private NonMethodFunction resolveCallTargetBlanketCand(ImplItemNode impl) { + NonMethodFunction resolveCallTargetBlanketCand(ImplItemNode impl) { exists(string name | this.hasNameAndArity(pragma[only_bind_into](name), _) and ArgIsInstantiationOfBlanketParam::argIsInstantiationOf(MkCallAndBlanketPos(this, _), impl, _) and @@ -2761,12 +2765,11 @@ private module NonMethodResolution { predicate hasTrait() { exists(this.getTrait()) } pragma[nomagic] - NonMethodFunction resolveAssocCallTargetCand(ImplItemNode i) { + NonMethodFunction resolveCallTargetNonBlanketCand(ImplItemNode i) { not this.hasTrait() and result = this.getPathResolutionResolved() and - result = i.getASuccessor(_) - or - result = this.resolveCallTargetBlanketCand(i) + result = i.getASuccessor(_) and + FunctionOverloading::functionResolutionDependsOnArgument(_, result, _, _, _) } AstNode getNodeAt(FunctionPosition pos) { @@ -2798,6 +2801,21 @@ private module NonMethodResolution { trait = this.getTrait() } + /** + * Holds if this call has no compatible non-blanket target, and it has some + * candidate blanket target. + */ + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTarget() { + this.resolveCallTargetBlanketLikeCandidate(_, _, _, _) and + not exists(this.resolveCallTargetViaPathResolution()) and + forall(ImplOrTraitItemNode i, Function f | + this.(NonMethodArgsAreInstantiationsOfNonBlanketInput::Call).hasTargetCand(i, f) + | + NonMethodArgsAreInstantiationsOfNonBlanket::argsAreNotInstantiationsOf(this, i, f) + ) + } + /** * Gets the target of this call, which can be resolved using only path resolution. */ @@ -2816,7 +2834,9 @@ private module NonMethodResolution { result = this.resolveCallTargetBlanketCand(i) and not FunctionOverloading::functionResolutionDependsOnArgument(_, result, _, _, _) or - NonMethodArgsAreInstantiationsOf::argsAreInstantiationsOf(this, i, result) + NonMethodArgsAreInstantiationsOfBlanket::argsAreInstantiationsOf(this, i, result) + or + NonMethodArgsAreInstantiationsOfNonBlanket::argsAreInstantiationsOf(this, i, result) } pragma[nomagic] @@ -2855,7 +2875,11 @@ private module NonMethodResolution { ) { exists(NonMethodCall fc, FunctionPosition pos | fcp = MkCallAndBlanketPos(fc, pos) and - fc.resolveCallTargetBlanketLikeCandidate(impl, pos, blanketPath, blanketTypeParam) + fc.resolveCallTargetBlanketLikeCandidate(impl, pos, blanketPath, blanketTypeParam) and + // Only apply blanket implementations when no other implementations are possible; + // this is to account for codebases that use the (unstable) specialization feature + // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html) + (fc.hasNoCompatibleNonBlanketTarget() or not impl.isBlanketImplementation()) ) } } @@ -2890,37 +2914,24 @@ private module NonMethodResolution { private module ArgIsInstantiationOfBlanketParam = ArgIsInstantiationOf; - private module NonMethodArgsAreInstantiationsOfInput implements ArgsAreInstantiationsOfInputSig { + private module NonMethodArgsAreInstantiationsOfBlanketInput implements + ArgsAreInstantiationsOfInputSig + { predicate toCheck(ImplOrTraitItemNode i, Function f, FunctionPosition pos, AssocFunctionType t) { t.appliesTo(f, i, pos) and - ( - exists(Type t0 | - // for now, we do not handle ambiguous targets when one of the types it iself - // a type parameter; we should be checking the constraints on that type parameter - // in this case - not t0 instanceof TypeParameter - | - FunctionOverloading::functionResolutionDependsOnArgument(i, f, pos, _, t0) - or - traitFunctionDependsOnPos(_, _, pos, t0, i, f) - ) + exists(Type t0 | typeCanBeUsedForDisambiguation(t0) | + FunctionOverloading::functionResolutionDependsOnArgument(i, f, pos, _, t0) or - // match against the trait function itself - exists(Trait trait | - FunctionOverloading::traitTypeParameterOccurrence(trait, f, _, pos, _, - TSelfTypeParameter(trait)) - ) + traitFunctionDependsOnPos(_, _, pos, t0, i, f) ) } - class Call extends NonMethodCall { + final class Call extends NonMethodCall { Type getArgType(FunctionPosition pos, TypePath path) { result = inferType(this.getNodeAt(pos), path) } - predicate hasTargetCand(ImplOrTraitItemNode i, Function f) { - f = this.resolveAssocCallTargetCand(i) - or + predicate hasTraitResolvedCand(ImplOrTraitItemNode i, Function f) { exists(TraitItemNode trait, NonMethodFunction resolved, ImplItemNode i1, Function f1 | this.hasTraitResolved(trait, resolved) and traitFunctionDependsOnPos(trait, resolved, _, _, i1, f1) @@ -2932,11 +2943,45 @@ private module NonMethodResolution { i = trait ) } + + predicate hasTargetCand(ImplOrTraitItemNode i, Function f) { + f = this.resolveCallTargetBlanketCand(i) + or + this.hasTraitResolvedCand(i, f) and + BlanketImplementation::isBlanketLike(i, _, _) + } } } - private module NonMethodArgsAreInstantiationsOf = - ArgsAreInstantiationsOf; + private module NonMethodArgsAreInstantiationsOfBlanket = + ArgsAreInstantiationsOf; + + private module NonMethodArgsAreInstantiationsOfNonBlanketInput implements + ArgsAreInstantiationsOfInputSig + { + predicate toCheck(ImplOrTraitItemNode i, Function f, FunctionPosition pos, AssocFunctionType t) { + NonMethodArgsAreInstantiationsOfBlanketInput::toCheck(i, f, pos, t) + or + // match against the trait function itself + t.appliesTo(f, i, pos) and + exists(Trait trait | + FunctionOverloading::traitTypeParameterOccurrence(trait, f, _, pos, _, + TSelfTypeParameter(trait)) + ) + } + + class Call extends NonMethodArgsAreInstantiationsOfBlanketInput::Call { + predicate hasTargetCand(ImplOrTraitItemNode i, Function f) { + f = this.resolveCallTargetNonBlanketCand(i) + or + this.hasTraitResolvedCand(i, f) and + not BlanketImplementation::isBlanketLike(i, _, _) + } + } + } + + private module NonMethodArgsAreInstantiationsOfNonBlanket = + ArgsAreInstantiationsOf; } abstract private class TupleLikeConstructor extends Addressable { diff --git a/rust/ql/test/library-tests/dataflow/local/inline-flow.expected b/rust/ql/test/library-tests/dataflow/local/inline-flow.expected index 27a4192867f..0a130b8a288 100644 --- a/rust/ql/test/library-tests/dataflow/local/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/local/inline-flow.expected @@ -2,22 +2,24 @@ models | 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | | 2 | Summary: <_ as alloc::string::ToString>::to_string; Argument[self].Reference; ReturnValue; taint | | 3 | Summary: <_ as core::convert::From>::from; Argument[0]; ReturnValue; taint | -| 4 | Summary: <_ as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue.Reference; taint | -| 5 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | -| 6 | Summary: ::deref; Argument[self].Reference.Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | -| 7 | Summary: ::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value | -| 8 | Summary: ::deref; Argument[self]; ReturnValue; value | -| 9 | Summary: ::from; Argument[0]; ReturnValue; taint | -| 10 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 11 | Summary: ::unwrap_or; Argument[0]; ReturnValue; value | -| 12 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 13 | Summary: ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | -| 14 | Summary: ::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 15 | Summary: ::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 16 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 17 | Summary: ::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value | -| 18 | Summary: ::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 19 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 4 | Summary: <_ as core::convert::Into>::into; Argument[self].Element; ReturnValue.Element; taint | +| 5 | Summary: <_ as core::convert::Into>::into; Argument[self].Reference.Element; ReturnValue.Element; taint | +| 6 | Summary: <_ as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue.Reference; taint | +| 7 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | +| 8 | Summary: ::deref; Argument[self].Reference.Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 9 | Summary: ::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value | +| 10 | Summary: ::deref; Argument[self]; ReturnValue; value | +| 11 | Summary: ::from; Argument[0]; ReturnValue; taint | +| 12 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 13 | Summary: ::unwrap_or; Argument[0]; ReturnValue; value | +| 14 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 15 | Summary: ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | +| 16 | Summary: ::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 17 | Summary: ::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 18 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 19 | Summary: ::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value | +| 20 | Summary: ::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 21 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | edges | main.rs:23:9:23:9 | s | main.rs:24:10:24:10 | s | provenance | | | main.rs:23:9:23:9 | s | main.rs:26:12:26:12 | x | provenance | | @@ -45,8 +47,8 @@ edges | main.rs:82:5:82:5 | l | main.rs:83:10:83:10 | l | provenance | | | main.rs:115:9:115:9 | i [Box(0)] | main.rs:116:11:116:11 | i [Box(0)] | provenance | | | main.rs:115:13:115:31 | ...::new(...) [Box(0)] | main.rs:115:9:115:9 | i [Box(0)] | provenance | | -| main.rs:115:22:115:30 | source(...) | main.rs:115:13:115:31 | ...::new(...) [Box(0)] | provenance | MaD:7 | -| main.rs:116:11:116:11 | i [Box(0)] | main.rs:116:10:116:11 | * ... | provenance | MaD:6 | +| main.rs:115:22:115:30 | source(...) | main.rs:115:13:115:31 | ...::new(...) [Box(0)] | provenance | MaD:9 | +| main.rs:116:11:116:11 | i [Box(0)] | main.rs:116:10:116:11 | * ... | provenance | MaD:8 | | main.rs:123:9:123:9 | a [tuple.0] | main.rs:124:10:124:10 | a [tuple.0] | provenance | | | main.rs:123:13:123:26 | TupleExpr [tuple.0] | main.rs:123:9:123:9 | a [tuple.0] | provenance | | | main.rs:123:14:123:22 | source(...) | main.rs:123:13:123:26 | TupleExpr [tuple.0] | provenance | | @@ -129,17 +131,17 @@ edges | main.rs:278:9:278:10 | s1 [Some] | main.rs:279:10:279:11 | s1 [Some] | provenance | | | main.rs:278:14:278:29 | Some(...) [Some] | main.rs:278:9:278:10 | s1 [Some] | provenance | | | main.rs:278:19:278:28 | source(...) | main.rs:278:14:278:29 | Some(...) [Some] | provenance | | -| main.rs:279:10:279:11 | s1 [Some] | main.rs:279:10:279:20 | s1.unwrap() | provenance | MaD:10 | +| main.rs:279:10:279:11 | s1 [Some] | main.rs:279:10:279:20 | s1.unwrap() | provenance | MaD:12 | | main.rs:283:9:283:10 | s1 [Some] | main.rs:284:10:284:11 | s1 [Some] | provenance | | | main.rs:283:14:283:29 | Some(...) [Some] | main.rs:283:9:283:10 | s1 [Some] | provenance | | | main.rs:283:19:283:28 | source(...) | main.rs:283:14:283:29 | Some(...) [Some] | provenance | | -| main.rs:284:10:284:11 | s1 [Some] | main.rs:284:10:284:24 | s1.unwrap_or(...) | provenance | MaD:12 | -| main.rs:287:23:287:32 | source(...) | main.rs:287:10:287:33 | s2.unwrap_or(...) | provenance | MaD:11 | +| main.rs:284:10:284:11 | s1 [Some] | main.rs:284:10:284:24 | s1.unwrap_or(...) | provenance | MaD:14 | +| main.rs:287:23:287:32 | source(...) | main.rs:287:10:287:33 | s2.unwrap_or(...) | provenance | MaD:13 | | main.rs:291:9:291:10 | s1 [Some] | main.rs:292:10:292:11 | s1 [Some] | provenance | | | main.rs:291:14:291:29 | Some(...) [Some] | main.rs:291:9:291:10 | s1 [Some] | provenance | | | main.rs:291:19:291:28 | source(...) | main.rs:291:14:291:29 | Some(...) [Some] | provenance | | -| main.rs:292:10:292:11 | s1 [Some] | main.rs:292:10:292:32 | s1.unwrap_or_else(...) | provenance | MaD:14 | -| main.rs:295:31:295:40 | source(...) | main.rs:295:10:295:41 | s2.unwrap_or_else(...) | provenance | MaD:13 | +| main.rs:292:10:292:11 | s1 [Some] | main.rs:292:10:292:32 | s1.unwrap_or_else(...) | provenance | MaD:16 | +| main.rs:295:31:295:40 | source(...) | main.rs:295:10:295:41 | s2.unwrap_or_else(...) | provenance | MaD:15 | | main.rs:299:9:299:10 | s1 [Some] | main.rs:301:14:301:15 | s1 [Some] | provenance | | | main.rs:299:14:299:29 | Some(...) [Some] | main.rs:299:9:299:10 | s1 [Some] | provenance | | | main.rs:299:19:299:28 | source(...) | main.rs:299:14:299:29 | Some(...) [Some] | provenance | | @@ -150,16 +152,16 @@ edges | main.rs:308:32:308:45 | Ok(...) [Ok] | main.rs:308:9:308:10 | r1 [Ok] | provenance | | | main.rs:308:35:308:44 | source(...) | main.rs:308:32:308:45 | Ok(...) [Ok] | provenance | | | main.rs:309:9:309:11 | o1a [Some] | main.rs:311:10:311:12 | o1a [Some] | provenance | | -| main.rs:309:28:309:29 | r1 [Ok] | main.rs:309:28:309:34 | r1.ok() [Some] | provenance | MaD:18 | +| main.rs:309:28:309:29 | r1 [Ok] | main.rs:309:28:309:34 | r1.ok() [Some] | provenance | MaD:20 | | main.rs:309:28:309:34 | r1.ok() [Some] | main.rs:309:9:309:11 | o1a [Some] | provenance | | -| main.rs:311:10:311:12 | o1a [Some] | main.rs:311:10:311:21 | o1a.unwrap() | provenance | MaD:10 | +| main.rs:311:10:311:12 | o1a [Some] | main.rs:311:10:311:21 | o1a.unwrap() | provenance | MaD:12 | | main.rs:314:9:314:10 | r2 [Err] | main.rs:316:28:316:29 | r2 [Err] | provenance | | | main.rs:314:32:314:46 | Err(...) [Err] | main.rs:314:9:314:10 | r2 [Err] | provenance | | | main.rs:314:36:314:45 | source(...) | main.rs:314:32:314:46 | Err(...) [Err] | provenance | | | main.rs:316:9:316:11 | o2b [Some] | main.rs:318:10:318:12 | o2b [Some] | provenance | | -| main.rs:316:28:316:29 | r2 [Err] | main.rs:316:28:316:35 | r2.err() [Some] | provenance | MaD:15 | +| main.rs:316:28:316:29 | r2 [Err] | main.rs:316:28:316:35 | r2.err() [Some] | provenance | MaD:17 | | main.rs:316:28:316:35 | r2.err() [Some] | main.rs:316:9:316:11 | o2b [Some] | provenance | | -| main.rs:318:10:318:12 | o2b [Some] | main.rs:318:10:318:21 | o2b.unwrap() | provenance | MaD:10 | +| main.rs:318:10:318:12 | o2b [Some] | main.rs:318:10:318:21 | o2b.unwrap() | provenance | MaD:12 | | main.rs:322:9:322:10 | s1 [Ok] | main.rs:325:14:325:15 | s1 [Ok] | provenance | | | main.rs:322:32:322:45 | Ok(...) [Ok] | main.rs:322:9:322:10 | s1 [Ok] | provenance | | | main.rs:322:35:322:44 | source(...) | main.rs:322:32:322:45 | Ok(...) [Ok] | provenance | | @@ -169,11 +171,11 @@ edges | main.rs:335:9:335:10 | s1 [Ok] | main.rs:336:10:336:11 | s1 [Ok] | provenance | | | main.rs:335:32:335:45 | Ok(...) [Ok] | main.rs:335:9:335:10 | s1 [Ok] | provenance | | | main.rs:335:35:335:44 | source(...) | main.rs:335:32:335:45 | Ok(...) [Ok] | provenance | | -| main.rs:336:10:336:11 | s1 [Ok] | main.rs:336:10:336:22 | s1.expect(...) | provenance | MaD:16 | +| main.rs:336:10:336:11 | s1 [Ok] | main.rs:336:10:336:22 | s1.expect(...) | provenance | MaD:18 | | main.rs:339:9:339:10 | s2 [Err] | main.rs:341:10:341:11 | s2 [Err] | provenance | | | main.rs:339:32:339:46 | Err(...) [Err] | main.rs:339:9:339:10 | s2 [Err] | provenance | | | main.rs:339:36:339:45 | source(...) | main.rs:339:32:339:46 | Err(...) [Err] | provenance | | -| main.rs:341:10:341:11 | s2 [Err] | main.rs:341:10:341:26 | s2.expect_err(...) | provenance | MaD:17 | +| main.rs:341:10:341:11 | s2 [Err] | main.rs:341:10:341:26 | s2.expect_err(...) | provenance | MaD:19 | | main.rs:350:9:350:10 | s1 [A] | main.rs:352:11:352:12 | s1 [A] | provenance | | | main.rs:350:14:350:39 | ...::A(...) [A] | main.rs:350:9:350:10 | s1 [A] | provenance | | | main.rs:350:29:350:38 | source(...) | main.rs:350:14:350:39 | ...::A(...) [A] | provenance | | @@ -222,13 +224,13 @@ edges | main.rs:430:16:430:33 | [...] [element] | main.rs:430:9:430:12 | arr1 [element] | provenance | | | main.rs:430:23:430:32 | source(...) | main.rs:430:16:430:33 | [...] [element] | provenance | | | main.rs:431:9:431:10 | n1 | main.rs:432:10:432:11 | n1 | provenance | | -| main.rs:431:14:431:17 | arr1 [element] | main.rs:431:14:431:20 | arr1[2] | provenance | MaD:5 | +| main.rs:431:14:431:17 | arr1 [element] | main.rs:431:14:431:20 | arr1[2] | provenance | MaD:7 | | main.rs:431:14:431:20 | arr1[2] | main.rs:431:9:431:10 | n1 | provenance | | | main.rs:434:9:434:12 | arr2 [element] | main.rs:435:14:435:17 | arr2 [element] | provenance | | | main.rs:434:16:434:31 | [...; 10] [element] | main.rs:434:9:434:12 | arr2 [element] | provenance | | | main.rs:434:17:434:26 | source(...) | main.rs:434:16:434:31 | [...; 10] [element] | provenance | | | main.rs:435:9:435:10 | n2 | main.rs:436:10:436:11 | n2 | provenance | | -| main.rs:435:14:435:17 | arr2 [element] | main.rs:435:14:435:20 | arr2[4] | provenance | MaD:5 | +| main.rs:435:14:435:17 | arr2 [element] | main.rs:435:14:435:20 | arr2[4] | provenance | MaD:7 | | main.rs:435:14:435:20 | arr2[4] | main.rs:435:9:435:10 | n2 | provenance | | | main.rs:444:9:444:12 | arr1 [element] | main.rs:445:15:445:18 | arr1 [element] | provenance | | | main.rs:444:16:444:33 | [...] [element] | main.rs:444:9:444:12 | arr1 [element] | provenance | | @@ -249,9 +251,9 @@ edges | main.rs:470:5:470:11 | [post] mut_arr [element] | main.rs:473:10:473:16 | mut_arr [element] | provenance | | | main.rs:470:18:470:27 | source(...) | main.rs:470:5:470:11 | [post] mut_arr [element] | provenance | | | main.rs:471:9:471:9 | d | main.rs:472:10:472:10 | d | provenance | | -| main.rs:471:13:471:19 | mut_arr [element] | main.rs:471:13:471:22 | mut_arr[1] | provenance | MaD:5 | +| main.rs:471:13:471:19 | mut_arr [element] | main.rs:471:13:471:22 | mut_arr[1] | provenance | MaD:7 | | main.rs:471:13:471:22 | mut_arr[1] | main.rs:471:9:471:9 | d | provenance | | -| main.rs:473:10:473:16 | mut_arr [element] | main.rs:473:10:473:19 | mut_arr[0] | provenance | MaD:5 | +| main.rs:473:10:473:16 | mut_arr [element] | main.rs:473:10:473:19 | mut_arr[0] | provenance | MaD:7 | | main.rs:496:9:496:9 | s | main.rs:497:10:497:10 | s | provenance | | | main.rs:496:25:496:26 | source(...) | main.rs:496:9:496:9 | s | provenance | | | main.rs:505:9:505:9 | a | main.rs:506:13:506:13 | a | provenance | | @@ -263,26 +265,26 @@ edges | main.rs:506:13:506:13 | a | main.rs:506:13:506:25 | a.to_string() | provenance | MaD:2 | | main.rs:506:13:506:25 | a.to_string() | main.rs:506:9:506:9 | b | provenance | | | main.rs:507:9:507:9 | c | main.rs:512:10:512:10 | c | provenance | | -| main.rs:507:13:507:13 | b | main.rs:507:13:507:28 | b.parse() [Ok] | provenance | MaD:4 | -| main.rs:507:13:507:13 | b | main.rs:507:13:507:28 | b.parse() [Ok] | provenance | MaD:8 | -| main.rs:507:13:507:28 | b.parse() [Ok] | main.rs:507:13:507:37 | ... .unwrap() | provenance | MaD:19 | +| main.rs:507:13:507:13 | b | main.rs:507:13:507:28 | b.parse() [Ok] | provenance | MaD:6 | +| main.rs:507:13:507:13 | b | main.rs:507:13:507:28 | b.parse() [Ok] | provenance | MaD:10 | +| main.rs:507:13:507:28 | b.parse() [Ok] | main.rs:507:13:507:37 | ... .unwrap() | provenance | MaD:21 | | main.rs:507:13:507:37 | ... .unwrap() | main.rs:507:9:507:9 | c | provenance | | | main.rs:508:9:508:9 | d | main.rs:513:10:513:10 | d | provenance | | -| main.rs:508:18:508:18 | b | main.rs:508:18:508:26 | b.parse() [Ok] | provenance | MaD:4 | -| main.rs:508:18:508:18 | b | main.rs:508:18:508:26 | b.parse() [Ok] | provenance | MaD:8 | -| main.rs:508:18:508:26 | b.parse() [Ok] | main.rs:508:18:508:35 | ... .unwrap() | provenance | MaD:19 | +| main.rs:508:18:508:18 | b | main.rs:508:18:508:26 | b.parse() [Ok] | provenance | MaD:6 | +| main.rs:508:18:508:18 | b | main.rs:508:18:508:26 | b.parse() [Ok] | provenance | MaD:10 | +| main.rs:508:18:508:26 | b.parse() [Ok] | main.rs:508:18:508:35 | ... .unwrap() | provenance | MaD:21 | | main.rs:508:18:508:35 | ... .unwrap() | main.rs:508:9:508:9 | d | provenance | | | main.rs:517:9:517:10 | vs [element] | main.rs:519:10:519:11 | vs [element] | provenance | | | main.rs:517:9:517:10 | vs [element] | main.rs:523:14:523:15 | vs [element] | provenance | | | main.rs:517:14:517:34 | [...] [element] | main.rs:517:9:517:10 | vs [element] | provenance | | | main.rs:517:15:517:24 | source(...) | main.rs:517:14:517:34 | [...] [element] | provenance | | -| main.rs:519:10:519:11 | vs [element] | main.rs:519:10:519:14 | vs[0] | provenance | MaD:5 | +| main.rs:519:10:519:11 | vs [element] | main.rs:519:10:519:14 | vs[0] | provenance | MaD:7 | | main.rs:523:9:523:9 | v | main.rs:524:14:524:14 | v | provenance | | | main.rs:523:14:523:15 | vs [element] | main.rs:523:9:523:9 | v | provenance | | | main.rs:542:9:542:18 | mut vs_mut [element] | main.rs:544:10:544:15 | vs_mut [element] | provenance | | | main.rs:542:22:542:42 | [...] [element] | main.rs:542:9:542:18 | mut vs_mut [element] | provenance | | | main.rs:542:23:542:32 | source(...) | main.rs:542:22:542:42 | [...] [element] | provenance | | -| main.rs:544:10:544:15 | vs_mut [element] | main.rs:544:10:544:18 | vs_mut[0] | provenance | MaD:5 | +| main.rs:544:10:544:15 | vs_mut [element] | main.rs:544:10:544:18 | vs_mut[0] | provenance | MaD:7 | | main.rs:554:9:554:9 | a | main.rs:559:10:559:10 | a | provenance | | | main.rs:554:13:554:22 | source(...) | main.rs:554:9:554:9 | a | provenance | | | main.rs:555:9:555:9 | b | main.rs:560:15:560:15 | b | provenance | | @@ -296,12 +298,20 @@ edges | main.rs:560:15:560:15 | b | main.rs:560:14:560:15 | &b | provenance | | | main.rs:562:11:562:15 | c_ref [&ref] | main.rs:562:10:562:15 | * ... | provenance | MaD:1 | | main.rs:566:9:566:9 | a | main.rs:568:10:568:17 | a as i64 | provenance | | +| main.rs:566:9:566:9 | a | main.rs:569:10:569:10 | a | provenance | | +| main.rs:566:9:566:9 | a | main.rs:570:20:570:20 | a | provenance | | | main.rs:566:18:566:27 | source(...) | main.rs:566:9:566:9 | a | provenance | | +| main.rs:569:10:569:10 | a | main.rs:569:10:569:17 | a.into() | provenance | MaD:4 | +| main.rs:569:10:569:10 | a | main.rs:569:10:569:17 | a.into() | provenance | MaD:5 | +| main.rs:570:20:570:20 | a | main.rs:570:10:570:21 | ...::from(...) | provenance | ReflexiveFrom | | main.rs:572:9:572:9 | b | main.rs:574:10:574:17 | b as i64 | provenance | | +| main.rs:572:9:572:9 | b | main.rs:575:10:575:10 | b | provenance | | | main.rs:572:9:572:9 | b | main.rs:576:20:576:20 | b | provenance | | | main.rs:572:18:572:27 | source(...) | main.rs:572:9:572:9 | b | provenance | | +| main.rs:575:10:575:10 | b | main.rs:575:10:575:17 | b.into() | provenance | MaD:4 | +| main.rs:575:10:575:10 | b | main.rs:575:10:575:17 | b.into() | provenance | MaD:5 | | main.rs:576:20:576:20 | b | main.rs:576:10:576:21 | ...::from(...) | provenance | MaD:3 | -| main.rs:576:20:576:20 | b | main.rs:576:10:576:21 | ...::from(...) | provenance | MaD:9 | +| main.rs:576:20:576:20 | b | main.rs:576:10:576:21 | ...::from(...) | provenance | MaD:11 | nodes | main.rs:19:10:19:18 | source(...) | semmle.label | source(...) | | main.rs:23:9:23:9 | s | semmle.label | s | @@ -630,9 +640,15 @@ nodes | main.rs:566:9:566:9 | a | semmle.label | a | | main.rs:566:18:566:27 | source(...) | semmle.label | source(...) | | main.rs:568:10:568:17 | a as i64 | semmle.label | a as i64 | +| main.rs:569:10:569:10 | a | semmle.label | a | +| main.rs:569:10:569:17 | a.into() | semmle.label | a.into() | +| main.rs:570:10:570:21 | ...::from(...) | semmle.label | ...::from(...) | +| main.rs:570:20:570:20 | a | semmle.label | a | | main.rs:572:9:572:9 | b | semmle.label | b | | main.rs:572:18:572:27 | source(...) | semmle.label | source(...) | | main.rs:574:10:574:17 | b as i64 | semmle.label | b as i64 | +| main.rs:575:10:575:10 | b | semmle.label | b | +| main.rs:575:10:575:17 | b.into() | semmle.label | b.into() | | main.rs:576:10:576:21 | ...::from(...) | semmle.label | ...::from(...) | | main.rs:576:20:576:20 | b | semmle.label | b | subpaths @@ -707,5 +723,8 @@ testFailures | main.rs:561:14:561:18 | c_ref | main.rs:556:13:556:22 | source(...) | main.rs:561:14:561:18 | c_ref | $@ | main.rs:556:13:556:22 | source(...) | source(...) | | main.rs:562:10:562:15 | * ... | main.rs:556:13:556:22 | source(...) | main.rs:562:10:562:15 | * ... | $@ | main.rs:556:13:556:22 | source(...) | source(...) | | main.rs:568:10:568:17 | a as i64 | main.rs:566:18:566:27 | source(...) | main.rs:568:10:568:17 | a as i64 | $@ | main.rs:566:18:566:27 | source(...) | source(...) | +| main.rs:569:10:569:17 | a.into() | main.rs:566:18:566:27 | source(...) | main.rs:569:10:569:17 | a.into() | $@ | main.rs:566:18:566:27 | source(...) | source(...) | +| main.rs:570:10:570:21 | ...::from(...) | main.rs:566:18:566:27 | source(...) | main.rs:570:10:570:21 | ...::from(...) | $@ | main.rs:566:18:566:27 | source(...) | source(...) | | main.rs:574:10:574:17 | b as i64 | main.rs:572:18:572:27 | source(...) | main.rs:574:10:574:17 | b as i64 | $@ | main.rs:572:18:572:27 | source(...) | source(...) | +| main.rs:575:10:575:17 | b.into() | main.rs:572:18:572:27 | source(...) | main.rs:575:10:575:17 | b.into() | $@ | main.rs:572:18:572:27 | source(...) | source(...) | | main.rs:576:10:576:21 | ...::from(...) | main.rs:572:18:572:27 | source(...) | main.rs:576:10:576:21 | ...::from(...) | $@ | main.rs:572:18:572:27 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/local/main.rs b/rust/ql/test/library-tests/dataflow/local/main.rs index b3c40bd4513..41f34da6122 100644 --- a/rust/ql/test/library-tests/dataflow/local/main.rs +++ b/rust/ql/test/library-tests/dataflow/local/main.rs @@ -566,13 +566,13 @@ fn conversions() { let a: i64 = source(50); sink(a as i64); // $ hasTaintFlow=50 - sink(a.into()); // $ MISSING: hasValueFlow=50 - sink(i64::from(a)); // $ MISSING: hasTaintFlow=50 -- we cannot resolve the `impl From for T` implementation + sink(a.into()); // $ SPURIOUS: hasTaintFlow=50 $ MISSING: hasValueFlow=50 -- it is not possible to define a value-preserving summary for `into` since it depends on which `from` function is called + sink(i64::from(a)); // $ hasValueFlow=50 let b: i32 = source(51) as i32; sink(b as i64); // $ hasTaintFlow=51 - sink(b.into()); // $ MISSING: hasTaintFlow=51 + sink(b.into()); // $ hasTaintFlow=51 sink(i64::from(b)); // $ hasTaintFlow=51 } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index a7efa447647..451f76dfe92 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -2595,7 +2595,7 @@ mod tuples { let i: i64 = pair.0; // $ fieldof=Tuple2 let j: bool = pair.1; // $ fieldof=Tuple2 - let pair = [1, 1].into(); // $ type=pair:(T_2) type=pair:T0.i32 type=pair:T1.i32 MISSING: target=into + let pair = [1, 1].into(); // $ type=pair:(T_2) type=pair:T0.i32 type=pair:T1.i32 target=into match pair { (0, 0) => print!("unexpected"), _ => print!("expected"), From 948623e767afc6f8f4a57fef0c0f7f6908ca28dd Mon Sep 17 00:00:00 2001 From: Philip Ginsbach Date: Mon, 19 Jan 2026 10:24:29 +0000 Subject: [PATCH 219/263] add overlay annotation support to QL syntax highlighter --- docs/codeql/qllexer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/qllexer.py b/docs/codeql/qllexer.py index 33c0becdfc3..55a65e84152 100644 --- a/docs/codeql/qllexer.py +++ b/docs/codeql/qllexer.py @@ -35,7 +35,7 @@ class QLLexer(RegexLexer): # Keywords (r'\b(boolean|date|float|int|string)\b', Keyword.Type), (r'\b(abstract|cached|deprecated|external|final|library|override|private|query' - r'|(pragma|language|bindingset)\[\w*(,\s*\w*)*\])\s', + r'|(pragma|language|bindingset|overlay)\[\w*\??(,\s*\w*\??)*\])\s', Keyword.Reserved), (words(( 'and', 'any', 'as', 'asc', 'avg', 'by', 'class','concat', 'count', From 2b31928c7bf068980f60886a93473ae26159b5e0 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 Jan 2026 17:45:38 +0000 Subject: [PATCH 220/263] C++: Add MaD barrier guard tests. --- .../dataflow/ir-barrier-guards/test.cpp | 35 +++++++++++++++++++ .../dataflow/ir-barrier-guards/test.ext.yml | 13 +++++++ .../dataflow/ir-barrier-guards/test.ql | 9 +++-- 3 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp index 9d9a89c7008..bc8b4d113d8 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp @@ -12,4 +12,39 @@ void testCheckArgument(int p) { if (checkArgument(&p)) { sink(p); // $ barrier=glval indirect_barrier=int } +} + +int* get_clean_value(int* x) { return x; } +bool is_clean_value(int*); + +int* get_clean_pointer(int* x) { return x; } +bool is_clean_pointer(int*); + +void sink(int); +void sink(int*); + +void test_mad(int x, int* p) { + { + if(is_clean_value(&x)) { + sink(x); // $ MISSING: external=int + } + } + + { + if(is_clean_value(p)) { + sink(*p); // $ MISSING: external=int + } + } + + { + if(is_clean_pointer(p)) { + sink(p); // $ MISSING: external=int* + } + } + + { + if(is_clean_pointer(&x)) { + sink(x); // $ MISSING: external=glval + } + } } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml new file mode 100644 index 00000000000..9f60fc19a5e --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml @@ -0,0 +1,13 @@ +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: barrierModel + data: + - ["", "", False, "get_clean_pointer", "", "", "ReturnValue", "test-barrier", "manual"] + - ["", "", False, "get_clean_data", "", "", "ReturnValue[*]", "test-barrier", "manual"] + - addsTo: + pack: codeql/cpp-all + extensible: barrierGuardModel + data: + - ["", "", False, "is_clean_value", "", "", "Argument[*0]", "true", "test-barrier", "manual"] + - ["", "", False, "is_clean_pointer", "", "", "Argument[0]", "true", "test-barrier", "manual"] \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql index 5961da37122..43a5c1499f0 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql @@ -2,6 +2,7 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow import semmle.code.cpp.controlflow.IRGuards import utils.test.InlineExpectationsTest +import semmle.code.cpp.dataflow.ExternalFlow predicate instructionGuardChecks(IRGuardCondition gc, Instruction checked, boolean branch) { exists(CallInstruction call | @@ -31,13 +32,11 @@ module Test implements TestSig { string getARelevantTag() { result = ["barrier", "indirect_barrier"] } predicate hasActualResult(Location location, string element, string tag, string value) { - exists(DataFlow::Node node, string s | - indirectBarrierGuard(node, s) and - value = s and + exists(DataFlow::Node node | + indirectBarrierGuard(node, value) and tag = "indirect_barrier" or - barrierGuard(node, s) and - value = s and + barrierGuard(node, value) and tag = "barrier" | element = node.toString() and From 07ac8a5d81824200bb0bcdb6484a0bfc74b5db29 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 Jan 2026 18:04:40 +0000 Subject: [PATCH 221/263] C++: Parameterize the BarrierGuard modules. This is useful for barrier guards with flow states and will be necessary in the next commit for adding MaD specified barriers. --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 141 ++++++++++++++---- .../code/cpp/ir/dataflow/internal/SsaImpl.qll | 54 ++++--- 2 files changed, 149 insertions(+), 46 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 919a32d8a4b..1c338d5a52d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -2417,6 +2417,19 @@ class ContentSet instanceof Content { } } +private signature class ParamSig; + +private module WithParam { + /** + * Holds if the guard `g` validates the expression `e` upon evaluating to `branch`. + * + * The expression `e` is expected to be a syntactic part of the guard `g`. + * For example, the guard `g` might be a call `isSafe(x)` and the expression `e` + * the argument `x`. + */ + signature predicate guardChecksSig(IRGuardCondition g, Expr e, boolean branch, P param); +} + /** * Holds if the guard `g` validates the expression `e` upon evaluating to `branch`. * @@ -2438,7 +2451,7 @@ private predicate controls(IRGuardCondition g, Node n, boolean edge) { * This is expected to be used in `isBarrier`/`isSanitizer` definitions * in data flow and taint tracking. */ -module BarrierGuard { +module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { bindingset[value, n] pragma[inline_late] private predicate convertedExprHasValueNumber(ValueNumber value, Node n) { @@ -2448,12 +2461,13 @@ module BarrierGuard { ) } - private predicate guardChecksNode(IRGuardCondition g, Node n, boolean branch) { - guardChecks(g, n.asOperand().getDef().getConvertedResultExpression(), branch) + private predicate guardChecksNode(IRGuardCondition g, Node n, boolean branch, P p) { + guardChecks(g, n.asOperand().getDef().getConvertedResultExpression(), branch, p) } /** - * Gets an expression node that is safely guarded by the given guard check. + * Gets an expression node that is safely guarded by the given guard check + * when the parameter is `p`. * * For example, given the following code: * ```cpp @@ -2484,19 +2498,27 @@ module BarrierGuard { * * NOTE: If an indirect expression is tracked, use `getAnIndirectBarrierNode` instead. */ - Node getABarrierNode() { + Node getABarrierNode(P p) { exists(IRGuardCondition g, ValueNumber value, boolean edge | convertedExprHasValueNumber(value, result) and guardChecks(g, - pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge) and + pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge, p) and controls(g, result, edge) ) or - result = SsaImpl::BarrierGuard::getABarrierNode() + result = SsaImpl::BarrierGuard::getABarrierNode(p) } /** - * Gets an indirect expression node that is safely guarded by the given guard check. + * Gets an expression node that is safely guarded by the given guard check. + * + * See `getABarrierNode/1` for examples. + */ + Node getABarrierNode() { result = getABarrierNode(_) } + + /** + * Gets an indirect expression node that is safely guarded by the given + * guard check with parameter `p`. * * For example, given the following code: * ```cpp @@ -2528,6 +2550,13 @@ module BarrierGuard { * * NOTE: If a non-indirect expression is tracked, use `getABarrierNode` instead. */ + Node getAnIndirectBarrierNode(P p) { result = getAnIndirectBarrierNode(_, p) } + + /** + * Gets an indirect expression node that is safely guarded by the given guard check. + * + * See `getAnIndirectBarrierNode/1` for examples. + */ Node getAnIndirectBarrierNode() { result = getAnIndirectBarrierNode(_) } bindingset[value, n] @@ -2542,10 +2571,10 @@ module BarrierGuard { } private predicate guardChecksIndirectNode( - IRGuardCondition g, Node n, boolean branch, int indirectionIndex + IRGuardCondition g, Node n, boolean branch, int indirectionIndex, P p ) { guardChecks(g, n.asIndirectOperand(indirectionIndex).getDef().getConvertedResultExpression(), - branch) + branch, p) } /** @@ -2582,19 +2611,44 @@ module BarrierGuard { * * NOTE: If a non-indirect expression is tracked, use `getABarrierNode` instead. */ - Node getAnIndirectBarrierNode(int indirectionIndex) { + Node getAnIndirectBarrierNode(int indirectionIndex, P p) { exists(IRGuardCondition g, ValueNumber value, boolean edge | indirectConvertedExprHasValueNumber(indirectionIndex, value, result) and guardChecks(g, - pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge) and + pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge, p) and controls(g, result, edge) ) or result = - SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex) + SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex, + p) } } +/** + * Provides a set of barrier nodes for a guard that validates an expression. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module BarrierGuard { + private predicate guardChecks(IRGuardCondition g, Expr e, boolean branch, Unit unit) { + guardChecks(g, e, branch) and + exists(unit) + } + + import ParameterizedBarrierGuard +} + +private module InstrWithParam { + /** + * Holds if the guard `g` validates the instruction `instr` upon evaluating to `branch`. + */ + signature predicate instructionGuardChecksSig( + IRGuardCondition g, Instruction instr, boolean branch, P p + ); +} + /** * Holds if the guard `g` validates the instruction `instr` upon evaluating to `branch`. */ @@ -2606,7 +2660,9 @@ signature predicate instructionGuardChecksSig(IRGuardCondition g, Instruction in * This is expected to be used in `isBarrier`/`isSanitizer` definitions * in data flow and taint tracking. */ -module InstructionBarrierGuard { +module ParameterizedInstructionBarrierGuard< + ParamSig P, InstrWithParam

::instructionGuardChecksSig/4 instructionGuardChecks> +{ bindingset[value, n] pragma[inline_late] private predicate operandHasValueNumber(ValueNumber value, Node n) { @@ -2616,21 +2672,27 @@ module InstructionBarrierGuard::getABarrierNode() + result = SsaImpl::BarrierGuard::getABarrierNode(p) } + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode() { result = getABarrierNode(_) } + bindingset[value, n] pragma[inline_late] private predicate indirectOperandHasValueNumber(ValueNumber value, int indirectionIndex, Node n) { @@ -2641,25 +2703,52 @@ module InstructionBarrierGuard::getABarrierNode(indirectionIndex) + SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex, + p) } + + /** + * Gets an indirect node that is safely guarded by the given guard check + * with parameter `p`. + */ + Node getAnIndirectBarrierNode(P p) { result = getAnIndirectBarrierNode(_, p) } + + /** Gets an indirect node that is safely guarded by the given guard check. */ + Node getAnIndirectBarrierNode() { result = getAnIndirectBarrierNode(_) } +} + +/** + * Provides a set of barrier nodes for a guard that validates an instruction. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module InstructionBarrierGuard { + private predicate instructionGuardChecks( + IRGuardCondition g, Instruction i, boolean branch, Unit unit + ) { + instructionGuardChecks(g, i, branch) and + exists(unit) + } + + import ParameterizedInstructionBarrierGuard } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll index 99f13a81725..d4a80ff25c8 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll @@ -1035,13 +1035,23 @@ class SynthNode extends DataFlowIntegrationImpl::SsaNode { SynthNode() { not this.asDefinition() instanceof SsaImpl::WriteDefinition } } -signature predicate guardChecksNodeSig(IRGuards::IRGuardCondition g, Node e, boolean branch); +private signature class ParamSig; -signature predicate guardChecksNodeSig( - IRGuards::IRGuardCondition g, Node e, boolean branch, int indirectionIndex -); +private module ParamIntPair { + newtype TPair = MkPair(P p, int indirectionIndex) { nodeHasInstruction(_, _, indirectionIndex) } +} -module BarrierGuardWithIntParam { +private module WithParam { + signature predicate guardChecksNodeSig(IRGuards::IRGuardCondition g, Node e, boolean gv, P param); +} + +private module IntWithParam { + signature predicate guardChecksNodeSig( + IRGuards::IRGuardCondition g, Node e, boolean gv, int indirectionIndex, P param + ); +} + +module BarrierGuardWithIntParam::guardChecksNodeSig/5 guardChecksNode> { private predicate ssaDefReachesCertainUse(Definition def, UseImpl use) { exists(SourceVariable v, IRBlock bb, int i | use.hasIndexInBlock(bb, i, v) and @@ -1052,21 +1062,23 @@ module BarrierGuardWithIntParam { private predicate guardChecksInstr( IRGuards::Guards_v1::Guard g, IRGuards::GuardsInput::Expr instr, IRGuards::GuardValue gv, - int indirectionIndex + ParamIntPair

::TPair pair ) { - exists(Node node | + exists(Node node, int indirectionIndex, P p | + pair = ParamIntPair

::MkPair(p, indirectionIndex) and nodeHasInstruction(node, instr, indirectionIndex) and - guardChecksNode(g, node, gv.asBooleanValue(), indirectionIndex) + guardChecksNode(g, node, gv.asBooleanValue(), indirectionIndex, p) ) } private predicate guardChecksWithWrappers( DataFlowIntegrationInput::Guard g, SsaImpl::Definition def, IRGuards::GuardValue val, - int indirectionIndex + ParamIntPair

::MkPair pair ) { - exists(Instruction e | - IRGuards::Guards_v1::ParameterizedValidationWrapper::guardChecks(g, - e, val, indirectionIndex) + exists(Instruction e, int indirectionIndex | + IRGuards::Guards_v1::ParameterizedValidationWrapper::TPair, guardChecksInstr/4>::guardChecks(g, + e, val, pair) and + pair = ParamIntPair

::MkPair(_, indirectionIndex) | indirectionIndex = 0 and def.(Definition).getAUse().getDef() = e @@ -1075,18 +1087,19 @@ module BarrierGuardWithIntParam { ) } - Node getABarrierNode(int indirectionIndex) { + Node getABarrierNode(int indirectionIndex, P p) { // Only get the SynthNodes from the shared implementation, as the ExprNodes cannot // be matched on SourceVariable. result.(SsaSynthNode).getSynthNode() = - DataFlowIntegrationImpl::BarrierGuardDefWithState::getABarrierNode(indirectionIndex) + DataFlowIntegrationImpl::BarrierGuardDefWithState::MkPair, guardChecksWithWrappers/4>::getABarrierNode(ParamIntPair

::MkPair(p, + indirectionIndex)) or // Calculate the guarded UseImpls corresponding to ExprNodes directly. exists( DataFlowIntegrationInput::Guard g, IRGuards::GuardValue branch, Definition def, IRBlock bb | - guardChecksWithWrappers(g, def, branch, indirectionIndex) and exists(UseImpl use | + guardChecksWithWrappers(g, def, branch, ParamIntPair

::MkPair(p, indirectionIndex)) and ssaDefReachesCertainUse(def, use) and use.getBlock() = bb and DataFlowIntegrationInput::guardControlsBlock(g, bb, branch) and @@ -1096,15 +1109,16 @@ module BarrierGuardWithIntParam { } } -module BarrierGuard { +module BarrierGuard::guardChecksNodeSig/4 guardChecksNode> { private predicate guardChecksNode( - IRGuards::IRGuardCondition g, Node e, boolean branch, int indirectionIndex + IRGuards::IRGuardCondition g, Node e, boolean gv, int indirectionIndex, P p ) { - guardChecksNode(g, e, branch) and indirectionIndex = 0 + indirectionIndex = 0 and + guardChecksNode(g, e, gv, p) } - Node getABarrierNode() { - result = BarrierGuardWithIntParam::getABarrierNode(0) + Node getABarrierNode(P p) { + result = BarrierGuardWithIntParam::getABarrierNode(0, p) } } From 48254800b1d02b3e73efdf2325ffe286143cb69a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 12 Dec 2025 09:57:26 +0100 Subject: [PATCH 222/263] WIP C++: Add support for MaD barriers and barrier guards. --- .../semmle/code/cpp/dataflow/ExternalFlow.qll | 55 +++++++++++++++++++ .../cpp/dataflow/internal/FlowSummaryImpl.qll | 18 ++++-- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 7232326f1b3..1454b759068 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -95,6 +95,7 @@ import cpp private import new.DataFlow +private import semmle.code.cpp.controlflow.IRGuards private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate as Private private import semmle.code.cpp.ir.dataflow.internal.DataFlowUtil private import internal.FlowSummaryImpl @@ -367,6 +368,8 @@ private predicate elementSpec( ) { sourceModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) or sinkModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) or + barrierModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) or + barrierGuardModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) or summaryModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) } @@ -1028,6 +1031,52 @@ private module Cached { isSinkNode(n, kind, model) and n.asNode() = node ) } + + private newtype TKindModelPair = + TMkPair(string kind, string model) { isBarrierGuardNode(_, _, kind, model) } + + private GuardValue convertAcceptingValue(Public::AcceptingValue av) { + av.isTrue() and result.asBooleanValue() = true + or + av.isFalse() and result.asBooleanValue() = false + or + av.isNoException() and result.getDualValue().isThrowsException() + or + av.isZero() and result.asIntValue() = 0 + or + av.isNotZero() and result.getDualValue().asIntValue() = 0 + or + av.isNull() and result.isNullValue() + or + av.isNotNull() and result.isNonNullValue() + } + + private predicate barrierGuardChecks(IRGuardCondition g, Expr e, GuardValue gv, TKindModelPair kmp) { + exists( + SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, + string kind, string model + | + isBarrierGuardNode(n, acceptingvalue, kind, model) and + n.asNode().asExpr() = e and + kmp = TMkPair(kind, model) and + gv = convertAcceptingValue(acceptingvalue) and + n.asNode().(ArgumentNode).getCallInstruction() = g + ) + } + + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + cached + predicate barrierNode(DataFlow::Node node, string kind, string model) { + exists(SourceSinkInterpretationInput::InterpretNode n | + isBarrierNode(n, kind, model) and n.asNode() = node + ) + or + DataFlow::ParameterizedBarrierGuard::getABarrierNode(TMkPair(kind, + model)) = node + } } import Cached @@ -1044,6 +1093,12 @@ predicate sourceNode(DataFlow::Node node, string kind) { sourceNode(node, kind, */ predicate sinkNode(DataFlow::Node node, string kind) { sinkNode(node, kind, _) } +/** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ +predicate barrierNode(DataFlow::Node node, string kind) { barrierNode(node, kind, _) } + private predicate interpretSummary( Function f, string input, string output, string kind, string provenance, string model ) { diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll index a1d9dd86c40..d4cf34ec4bd 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -149,16 +149,26 @@ module SourceSinkInterpretationInput implements } predicate barrierElement( - Element n, string output, string kind, Public::Provenance provenance, string model + Element e, string output, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext + | + barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and + e = interpretElement(namespace, type, subtypes, name, signature, ext) + ) } predicate barrierGuardElement( - Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingvalue, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string package, string type, boolean subtypes, string name, string signature, string ext + | + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance, model) and + e = interpretElement(package, type, subtypes, name, signature, ext) + ) } private newtype TInterpretNode = From a11b271d6e6f8f1532866d0b9479b019919f847e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 Jan 2026 18:04:57 +0000 Subject: [PATCH 223/263] C++: Finish up implementation of MaD barriers. --- .../semmle/code/cpp/dataflow/ExternalFlow.qll | 40 +++++++++++++++++-- .../dataflow/ir-barrier-guards/test.cpp | 8 ++-- .../dataflow/ir-barrier-guards/test.ql | 12 +++++- 3 files changed, 52 insertions(+), 8 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 1454b759068..71407a5f140 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -1040,6 +1040,11 @@ private module Cached { or av.isFalse() and result.asBooleanValue() = false or + // NOTE: The below cases don't contribute anything currently since the + // callers immediate uses `.asBooleanValue()` to convert the `GuardValue` + // to a boolean. Once we're willing to accept the breaking change of + // converting the barrier guard API to use `GuardValue`s instead `Boolean`s + // we can remove this restriction. av.isNoException() and result.getDualValue().isThrowsException() or av.isZero() and result.asIntValue() = 0 @@ -1051,7 +1056,9 @@ private module Cached { av.isNotNull() and result.isNonNullValue() } - private predicate barrierGuardChecks(IRGuardCondition g, Expr e, GuardValue gv, TKindModelPair kmp) { + private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate as Private + + private predicate barrierGuardChecks(IRGuardCondition g, Expr e, boolean gv, TKindModelPair kmp) { exists( SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, string kind, string model @@ -1059,8 +1066,32 @@ private module Cached { isBarrierGuardNode(n, acceptingvalue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) and - n.asNode().(ArgumentNode).getCallInstruction() = g + gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + n.asNode().(Private::ArgumentNode).getCall().asCallInstruction() = g + ) + } + + private newtype TKindModelPairIntPair = + MkKindModelPairIntPair(TKindModelPair pair, int indirectionIndex) { + indirectionIndex > 0 and + Private::nodeHasInstruction(_, _, indirectionIndex) and + exists(pair) + } + + private predicate indirectBarrierGuardChecks( + IRGuardCondition g, Expr e, boolean gv, TKindModelPairIntPair kmp + ) { + exists( + SourceSinkInterpretationInput::InterpretNode interpretNode, + Public::AcceptingValue acceptingvalue, string kind, string model, int indirectionIndex, + Private::ArgumentNode arg + | + isBarrierGuardNode(interpretNode, acceptingvalue, kind, model) and + arg = interpretNode.asNode() and + arg.asIndirectExpr(indirectionIndex) = e and + kmp = MkKindModelPairIntPair(TMkPair(kind, model), indirectionIndex) and + gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + arg.getCall().asCallInstruction() = g ) } @@ -1076,6 +1107,9 @@ private module Cached { or DataFlow::ParameterizedBarrierGuard::getABarrierNode(TMkPair(kind, model)) = node + or + DataFlow::ParameterizedBarrierGuard::getAnIndirectBarrierNode(MkKindModelPairIntPair(TMkPair(kind, + model), _)) = node } } diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp index bc8b4d113d8..ea14e5f75df 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp @@ -26,25 +26,25 @@ void sink(int*); void test_mad(int x, int* p) { { if(is_clean_value(&x)) { - sink(x); // $ MISSING: external=int + sink(x); // $ external=int } } { if(is_clean_value(p)) { - sink(*p); // $ MISSING: external=int + sink(*p); // $ external=int } } { if(is_clean_pointer(p)) { - sink(p); // $ MISSING: external=int* + sink(p); // $ external=int* } } { if(is_clean_pointer(&x)) { - sink(x); // $ MISSING: external=glval + sink(x); // $ external=glval } } } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql index 43a5c1499f0..8948c65e33c 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql @@ -28,8 +28,15 @@ predicate barrierGuard(DataFlow::Node node, string s) { else s = node.getType().toString().replaceAll(" ", "") } +predicate externalBarrierGuard(DataFlow::Node node, string s) { + barrierNode(node, "test-barrier") and + if node.isGLValue() + then s = "glval<" + node.getType().toString().replaceAll(" ", "") + ">" + else s = node.getType().toString().replaceAll(" ", "") +} + module Test implements TestSig { - string getARelevantTag() { result = ["barrier", "indirect_barrier"] } + string getARelevantTag() { result = ["barrier", "indirect_barrier", "external"] } predicate hasActualResult(Location location, string element, string tag, string value) { exists(DataFlow::Node node | @@ -38,6 +45,9 @@ module Test implements TestSig { or barrierGuard(node, value) and tag = "barrier" + or + externalBarrierGuard(node, value) and + tag = "external" | element = node.toString() and location = node.getLocation() From c70633a0f7fe1c001b2eba56d689f3e8d65117c0 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 19 Jan 2026 11:41:26 +0000 Subject: [PATCH 224/263] C++: Fix Code Scanning alert. --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 71407a5f140..93153498598 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -1056,8 +1056,6 @@ private module Cached { av.isNotNull() and result.isNonNullValue() } - private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate as Private - private predicate barrierGuardChecks(IRGuardCondition g, Expr e, boolean gv, TKindModelPair kmp) { exists( SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, From 7aca94b1ca89dcfcf273154ce91adbd23a62ae12 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 19 Jan 2026 11:43:59 +0000 Subject: [PATCH 225/263] C++: Add change note. --- .../change-notes/2026-01-19-parameterized-barrier-guard.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-19-parameterized-barrier-guard.md diff --git a/cpp/ql/lib/change-notes/2026-01-19-parameterized-barrier-guard.md b/cpp/ql/lib/change-notes/2026-01-19-parameterized-barrier-guard.md new file mode 100644 index 00000000000..4f2d754c0b8 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-19-parameterized-barrier-guard.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added modules `DataFlow::ParameterizedBarrierGuard` and `DataFlow::ParameterizedInstructionBarrierGuard`. These modules provide the same features as `DataFlow::BarrierGuard` and `DataFlow::InstructionBarrierGuard`, but allow for an additional parameter to support properly using them in dataflow configurations that uses flow states. \ No newline at end of file From 4e478c362941c216865a6b1c8f878cadeb3687a2 Mon Sep 17 00:00:00 2001 From: Philip Ginsbach Date: Mon, 19 Jan 2026 09:47:40 +0000 Subject: [PATCH 226/263] add overlay documentation to handbook and language spec --- .../ql-language-reference/annotations.rst | 177 +++++++++++++++++- .../ql-language-specification.rst | 21 +++ 2 files changed, 197 insertions(+), 1 deletion(-) diff --git a/docs/codeql/ql-language-reference/annotations.rst b/docs/codeql/ql-language-reference/annotations.rst index b792e807c93..1ce9fa453b7 100644 --- a/docs/codeql/ql-language-reference/annotations.rst +++ b/docs/codeql/ql-language-reference/annotations.rst @@ -17,7 +17,7 @@ For example, to declare a module ``M`` as private, you could use: Note that some annotations act on an entity itself, whilst others act on a particular *name* for the entity: - Act on an **entity**: ``abstract``, ``bindingset``, ``cached``, ``extensible``, ``external``, ``language``, - ``override``, ``pragma``, and ``transient`` + ``overlay``, ``override``, ``pragma``, and ``transient`` - Act on a **name**: ``additional``, ``deprecated``, ``final``, ``library``, ``private``, and ``query`` For example, if you annotate an entity with ``private``, then only that particular name is @@ -502,6 +502,181 @@ The ``bindingset`` annotation takes a comma-separated list of variables. For more information, see ":ref:`predicate-binding`." - When you annotate a class, each variable must be ``this`` or a field in the class. +.. _overlay: + +Overlay annotations +=================== + +Overlay annotations control how predicates behave during **overlay evaluation**, a feature +that enables efficient incremental analysis by dividing QL code into *local* and *global* +parts. During overlay evaluation, local predicates are evaluated separately on "base" (cached +from previous analysis) and "overlay" (newly changed files) data. When a global predicate +calls a local predicate, results from both the base and overlay evaluations are combined, +with stale base results filtered out through a process called "discarding." + +Overlay evaluation is primarily used internally by GitHub Code Scanning to speed up +pull request analysis. Most QL developers do not need to use these annotations directly, +but understanding them can help resolve compilation errors that may occur when overlay +support is enabled for a language. + +.. note:: + + Overlay annotations only affect evaluation when overlay compilation is enabled for a + QL pack (via ``compileForOverlayEval: true`` in ``qlpack.yml``) and the evaluator is + running in overlay mode. Otherwise, these annotations are validated but have no effect + on evaluation. + +``overlay[local]`` +------------------ + +**Available for**: |modules|, |classes|, |algebraic datatypes|, |type unions|, |characteristic predicates|, |member predicates|, |non-member predicates| + +The ``overlay[local]`` annotation declares that a predicate is local. Local predicates are +evaluated separately on base and overlay data and may only depend on other local predicates. +The compiler reports an error if a local predicate depends on a global predicate. + +.. code-block:: ql + + // All dependencies are database extensionals, so this can be local + overlay[local] + predicate stmtInFile(@stmt s, string path) { + exists(@file f, @location loc | + hasLocation(s, loc) and + locations_default(loc, f, _, _, _, _) and + files(f, path) + ) + } + +``overlay[local?]`` +------------------- + +**Available for**: |modules|, |classes|, |algebraic datatypes|, |type unions|, |characteristic predicates|, |member predicates|, |non-member predicates| + +The ``overlay[local?]`` annotation declares that a predicate should be local if all of +its dependencies are local, and global otherwise. This is particularly useful in +parameterized modules, where different instantiations may have different locality +depending on the module parameters. + +.. code-block:: ql + + // Locality depends on whether Expr.getType() and Type.getName() are local + overlay[local?] + predicate exprTypeName(Expr e, string name) { + name = e.getType().getName() + } + +``overlay[global]`` +------------------- + +**Available for**: |modules|, |classes|, |algebraic datatypes|, |type unions|, |characteristic predicates|, |member predicates|, |non-member predicates| + +The ``overlay[global]`` annotation explicitly declares that a predicate is global. This +is the default behavior, so this annotation is typically used to override an inherited +``overlay[local]`` or ``overlay[local?]`` annotation from an enclosing module or class. +See `Annotation inheritance`_ for an example. + +``overlay[caller]`` +------------------- + +**Available for**: |modules|, |classes|, |algebraic datatypes|, |type unions|, |characteristic predicates|, |member predicates|, |non-member predicates| + +The ``overlay[caller]`` annotation declares that the locality of a predicate depends on +its caller. The compiler may internally duplicate the predicate, creating separate local +and global versions. Local callers use the local version; global callers use the global +version. + +.. code-block:: ql + + overlay[caller] + predicate utilityPredicate(int x) { + x in [1..100] + } + +``overlay[caller?]`` +-------------------- + +**Available for**: |modules|, |classes|, |algebraic datatypes|, |type unions|, |characteristic predicates|, |member predicates|, |non-member predicates| + +The ``overlay[caller?]`` annotation is like ``overlay[caller]``, but only applies if none +of the predicate's dependencies are global. If any dependency is global, the predicate +becomes global regardless of its callers, and calling it from a local predicate will +result in a compilation error. Like ``overlay[local?]``, this is useful in parameterized +modules where locality may vary between instantiations. + +``overlay[discard_entity]`` +--------------------------- + +**Available for**: |non-member predicates| (unary predicates on database types only) + +The ``overlay[discard_entity]`` annotation designates an *entity discard predicate*. +These predicates identify database entities that should be filtered out from cached base +results when combining with overlay results during overlay evaluation. + +Entity discard predicates must be: + +- Unary predicates (taking exactly one argument) +- Defined on a database type (a type from the database schema, prefixed with ``@``) +- Only dependent on local predicates and other non-discarding predicates + +.. code-block:: ql + + overlay[discard_entity] + private predicate discardExpr(@expr e) { + exists(string file | discardableExpr(file, e) and overlayChangedFiles(file)) + } + + overlay[local] + private predicate discardableExpr(string file, @expr e) { + not isOverlay() and + file = getFile(e) + } + + overlay[local] + predicate isOverlay() { databaseMetadata("isOverlay", "true") } + +Annotation inheritance +---------------------- + +Overlay annotations can be applied to modules and types, in which case they are +inherited by enclosed declarations. Declarations without explicit overlay annotations +inherit from their innermost enclosing declaration that has an overlay annotation. + +.. code-block:: ql + + overlay[local?] + module M { + predicate foo(@expr x) { ... } // Inherits overlay[local?] + + class C extends @expr { + predicate bar() { ... } // Inherits overlay[local?] + + overlay[global] + predicate baz() { ... } // Explicitly global + } + } + +Resolving overlay-related errors +-------------------------------- + +When overlay support is enabled for a language, you may encounter compilation errors in +custom QL libraries or queries. Here are common errors and their solutions: + +**"Declaration is annotated overlay[local] but depends on global entity"** + +A predicate marked ``overlay[local]`` (or ``overlay[caller]``) depends on a global predicate. +Solutions: + +- Change the annotation to ``overlay[local?]`` (or ``overlay[caller?]``) if the predicate doesn't strictly need to be local +- Add appropriate overlay annotations to the dependency chain to make dependencies local +- Use the ``forceLocal`` higher-order predicate if you need to call global code from local code (advanced) + +**"Cannot apply forceLocal to relation that is annotated overlay[...]"** + +The ``forceLocal`` higher-order predicate cannot be applied to predicates that have overlay +annotations such as ``overlay[local]``, ``overlay[local?]``, ``overlay[caller]``, or +``overlay[caller?]``. The input to ``forceLocal`` must be a predicate without such annotations +(i.e., a global predicate or one with ``overlay[global]``). + .. Links to use in substitutions .. |classes| replace:: :ref:`classes ` diff --git a/docs/codeql/ql-language-reference/ql-language-specification.rst b/docs/codeql/ql-language-reference/ql-language-specification.rst index 1d84cc31c73..496b1245ff5 100644 --- a/docs/codeql/ql-language-reference/ql-language-specification.rst +++ b/docs/codeql/ql-language-reference/ql-language-specification.rst @@ -776,6 +776,7 @@ Various kinds of syntax can have *annotations* applied to them. Annotations are argsAnnotation ::= "pragma" "[" ("inline" | "inline_late" | "noinline" | "nomagic" | "noopt" | "assume_small_delta") "]" | "language" "[" "monotonicAggregates" "]" | "bindingset" "[" (variable ( "," variable)*)? "]" + | "overlay" "[" ("local" | "local?" | "global" | "caller" | "caller?" | "discard_entity") "]" Each simple annotation adds a same-named attribute to the syntactic entity it precedes. For example, if a class is preceded by the ``abstract`` annotation, then the class is said to be abstract. @@ -873,6 +874,26 @@ A predicate may have several different binding sets, which can be stated by usin The ``bindingset`` pragma is usable with type signatures and predicate signatures, but not with module signatures. +The parameterized annotation ``overlay`` controls predicate behavior during overlay evaluation, which is a feature for incremental analysis. Overlay annotations apply at the scope level, and are inherited by nested scopes. + ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| Overlay | Classes | Characters | Member predicates | Non-member predicates | Imports | Fields | Modules | Aliases | ++=====================+=========+============+===================+=======================+=========+========+=========+=========+ +| ``local`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``local?`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``global`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``caller`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``caller?`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``discard_entity`` | | | | yes | | | | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ + +The ``overlay[discard_entity]`` annotation is only valid on unary non-member predicates whose argument is a database type. + QLDoc ----- From c47a9ddf8383d4d69f655b2024aede468ffb5a35 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 19 Jan 2026 11:46:42 +0000 Subject: [PATCH 227/263] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll | 2 +- cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp | 1 - .../library-tests/dataflow/ir-barrier-guards/test.ext.yml | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 93153498598..eecacb14834 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -1041,7 +1041,7 @@ private module Cached { av.isFalse() and result.asBooleanValue() = false or // NOTE: The below cases don't contribute anything currently since the - // callers immediate uses `.asBooleanValue()` to convert the `GuardValue` + // callers immediately use `.asBooleanValue()` to convert the `GuardValue` // to a boolean. Once we're willing to accept the breaking change of // converting the barrier guard API to use `GuardValue`s instead `Boolean`s // we can remove this restriction. diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp index ea14e5f75df..6c4b45db48f 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp @@ -20,7 +20,6 @@ bool is_clean_value(int*); int* get_clean_pointer(int* x) { return x; } bool is_clean_pointer(int*); -void sink(int); void sink(int*); void test_mad(int x, int* p) { diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml index 9f60fc19a5e..8eeed7cd0b5 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml @@ -6,8 +6,8 @@ extensions: - ["", "", False, "get_clean_pointer", "", "", "ReturnValue", "test-barrier", "manual"] - ["", "", False, "get_clean_data", "", "", "ReturnValue[*]", "test-barrier", "manual"] - addsTo: - pack: codeql/cpp-all - extensible: barrierGuardModel + pack: codeql/cpp-all + extensible: barrierGuardModel data: - ["", "", False, "is_clean_value", "", "", "Argument[*0]", "true", "test-barrier", "manual"] - ["", "", False, "is_clean_pointer", "", "", "Argument[0]", "true", "test-barrier", "manual"] \ No newline at end of file From c11b46449277cdf00774065d5802c2dec925f999 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 19 Jan 2026 11:58:11 +0000 Subject: [PATCH 228/263] C++: Autoformat. --- .../lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll index d4cf34ec4bd..3c4177dc856 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -166,7 +166,8 @@ module SourceSinkInterpretationInput implements exists( string package, string type, boolean subtypes, string name, string signature, string ext | - barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance, model) and + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, + provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } From 7ae2b7698e556ebf0493098682c14057155e7ccf Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 Jan 2026 13:17:07 +0100 Subject: [PATCH 229/263] C#: Relax the condition for when a qualified expression might be null. --- csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index 756fd6a4e3a..c7ac34d3d01 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -47,7 +47,8 @@ private Expr maybeNullExpr(Expr reason) { result = any(QualifiableExpr qe | qe.isConditional() and - qe.getQualifier() = maybeNullExpr(reason) + reason = qe.getQualifier() and + not qe instanceof AssignableWrite ) } From 7ff1c12e8fe3df446776f3df2c41c70ba6874391 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 Jan 2026 13:17:47 +0100 Subject: [PATCH 230/263] C#: Add some more tests. --- .../library-tests/dataflow/nullness/MaybeNullExpr.cs | 3 +++ .../dataflow/nullness/maybeNullExpr.expected | 1 + .../ql/test/query-tests/Nullness/ConditionalAccess.cs | 11 +++++++++++ .../ql/test/query-tests/Nullness/NullCheck.expected | 1 + .../ql/test/query-tests/Nullness/NullMaybe.expected | 1 + 5 files changed, 17 insertions(+) create mode 100644 csharp/ql/test/query-tests/Nullness/ConditionalAccess.cs diff --git a/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs b/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs index 34c59df8bbd..6be2c54d41f 100644 --- a/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs +++ b/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs @@ -17,5 +17,8 @@ public class C // Conditional access might be null as the qualifier might be null. var s1 = (o as C)?.Prop; + + // Conditional access might be null as the qualifier might be null. + var i = o?.GetHashCode(); } } diff --git a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected index e5aa8423c59..7182c0cdf95 100644 --- a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected +++ b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected @@ -5,3 +5,4 @@ | MaybeNullExpr.cs:16:17:16:22 | ... as ... | | MaybeNullExpr.cs:19:18:19:31 | access to property Prop | | MaybeNullExpr.cs:19:19:19:24 | ... as ... | +| MaybeNullExpr.cs:22:17:22:32 | call to method GetHashCode | diff --git a/csharp/ql/test/query-tests/Nullness/ConditionalAccess.cs b/csharp/ql/test/query-tests/Nullness/ConditionalAccess.cs new file mode 100644 index 00000000000..fd3fae179ed --- /dev/null +++ b/csharp/ql/test/query-tests/Nullness/ConditionalAccess.cs @@ -0,0 +1,11 @@ +using System; +using System.ComponentModel; + +class ConditionalAccessTest +{ + void M1(object o) + { + var t = o?.GetType(); + Console.WriteLine(t.FullName); // $ Alert[cs/dereferenced-value-may-be-null] + } +} diff --git a/csharp/ql/test/query-tests/Nullness/NullCheck.expected b/csharp/ql/test/query-tests/Nullness/NullCheck.expected index ada1054f02c..2b6962b51c0 100644 --- a/csharp/ql/test/query-tests/Nullness/NullCheck.expected +++ b/csharp/ql/test/query-tests/Nullness/NullCheck.expected @@ -51,6 +51,7 @@ | C.cs:229:22:229:30 | ... != ... | C.cs:229:22:229:22 | access to local variable s | | C.cs:235:24:235:32 | ... == ... | C.cs:235:24:235:24 | access to local variable s | | C.cs:235:24:235:32 | ... == ... | C.cs:235:29:235:32 | null | +| ConditionalAccess.cs:8:17:8:17 | access to parameter o | ConditionalAccess.cs:8:17:8:17 | access to parameter o | | D.cs:28:13:28:25 | ... != ... | D.cs:28:13:28:17 | access to parameter param | | D.cs:38:13:38:21 | ... == ... | D.cs:38:13:38:13 | access to parameter x | | D.cs:39:16:39:24 | ... == ... | D.cs:39:16:39:16 | access to parameter x | diff --git a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected index 6a0d8372e3e..3f5219d8c0c 100644 --- a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected @@ -6,6 +6,7 @@ | C.cs:203:13:203:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:185:13:185:13 | s | s | C.cs:204:13:204:20 | ... = ... | this | | C.cs:223:9:223:9 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:210:13:210:13 | s | s | C.cs:222:13:222:20 | ... = ... | this | | C.cs:242:13:242:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:228:16:228:16 | s | s | C.cs:240:24:240:31 | ... = ... | this | +| ConditionalAccess.cs:9:27:9:27 | access to local variable t | Variable $@ may be null at this access because of $@ assignment. | ConditionalAccess.cs:8:13:8:13 | t | t | ConditionalAccess.cs:8:13:8:28 | Type t = ... | this | | D.cs:23:9:23:13 | access to parameter param | Variable $@ may be null at this access because of $@ null argument. | D.cs:21:32:21:36 | param | param | D.cs:17:17:17:20 | null | this | | D.cs:32:9:32:13 | access to parameter param | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:26:32:26:36 | param | param | D.cs:28:13:28:25 | ... != ... | this | | D.cs:73:13:73:14 | access to local variable o7 | Variable $@ may be null at this access because of $@ assignment. | D.cs:68:13:68:14 | o7 | o7 | D.cs:68:13:68:34 | String o7 = ... | this | From efe413cbd061bf1a0bea2c08c2eebf2f9b6d414b Mon Sep 17 00:00:00 2001 From: Philip Ginsbach Date: Mon, 19 Jan 2026 13:57:19 +0000 Subject: [PATCH 231/263] expand overlay introduction with base/overlay context --- .../ql-language-reference/annotations.rst | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/docs/codeql/ql-language-reference/annotations.rst b/docs/codeql/ql-language-reference/annotations.rst index 1ce9fa453b7..3a7657ca9ae 100644 --- a/docs/codeql/ql-language-reference/annotations.rst +++ b/docs/codeql/ql-language-reference/annotations.rst @@ -508,11 +508,20 @@ Overlay annotations =================== Overlay annotations control how predicates behave during **overlay evaluation**, a feature -that enables efficient incremental analysis by dividing QL code into *local* and *global* -parts. During overlay evaluation, local predicates are evaluated separately on "base" (cached -from previous analysis) and "overlay" (newly changed files) data. When a global predicate -calls a local predicate, results from both the base and overlay evaluations are combined, -with stale base results filtered out through a process called "discarding." +that enables efficient incremental analysis of codebases. + +In overlay evaluation, a *base database* is created from one version of a codebase, and an +*overlay database* is created by combining the base database with changes from a newer +version (such as a pull request). The goal is to analyze the overlay database as if it +were a fully extracted database at the newer commit, while reusing as much cached data +from the base database as possible. Ideally, analysis time is proportional to the size +of the diff rather than the full codebase. + +To achieve this, predicates are divided into *local* and *global* categories. Local +predicates are evaluated separately on base and overlay data, with results combined at +the frontier between local and global code. Global predicates operate on the combined +data. Local predicates typically take time proportional to the diff size, while global +predicates take time proportional to the full codebase. Overlay evaluation is primarily used internally by GitHub Code Scanning to speed up pull request analysis. Most QL developers do not need to use these annotations directly, From 930b17a2e2ec99433210d57e6f53313ddb95e18b Mon Sep 17 00:00:00 2001 From: Philip Ginsbach Date: Mon, 19 Jan 2026 14:06:45 +0000 Subject: [PATCH 232/263] clarify compileForOverlayEval only needed in language packs --- docs/codeql/ql-language-reference/annotations.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/codeql/ql-language-reference/annotations.rst b/docs/codeql/ql-language-reference/annotations.rst index 3a7657ca9ae..17a4c2cc76e 100644 --- a/docs/codeql/ql-language-reference/annotations.rst +++ b/docs/codeql/ql-language-reference/annotations.rst @@ -530,10 +530,11 @@ support is enabled for a language. .. note:: - Overlay annotations only affect evaluation when overlay compilation is enabled for a - QL pack (via ``compileForOverlayEval: true`` in ``qlpack.yml``) and the evaluator is - running in overlay mode. Otherwise, these annotations are validated but have no effect - on evaluation. + Overlay annotations only affect evaluation when overlay compilation is enabled + (via ``compileForOverlayEval: true`` in ``qlpack.yml``) and the evaluator is running + in overlay mode. This setting is typically only needed in the language's library pack; + custom query packs do not need it. Outside of overlay mode, these annotations are + validated but have no effect on evaluation. ``overlay[local]`` ------------------ From 4142b9c4ced2ebcea58dd5b4af3be31084e95e31 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 19 Jan 2026 14:49:14 +0000 Subject: [PATCH 233/263] Release preparation for version 2.24.0 --- actions/ql/lib/CHANGELOG.md | 6 +++++ .../0.4.26.md} | 7 +++--- actions/ql/lib/codeql-pack.release.yml | 2 +- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/CHANGELOG.md | 4 ++++ .../ql/src/change-notes/released/0.6.18.md | 3 +++ actions/ql/src/codeql-pack.release.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/CHANGELOG.md | 24 +++++++++++++++++++ .../2026-01-02-constant-folding.md | 4 ---- .../2026-01-02-decimal-removal.md | 4 ---- ...8-multidimensional-subscript-operator-1.md | 4 ---- ...8-multidimensional-subscript-operator-2.md | 4 ---- .../lib/change-notes/2026-01-09-builtins.md | 4 ---- .../change-notes/2026-01-09-this-access.md | 4 ---- .../2026-01-16-barrier-guard-conflation.md | 4 ---- cpp/ql/lib/change-notes/released/7.0.0.md | 23 ++++++++++++++++++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 6 +++++ .../1.5.9.md} | 7 +++--- cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../lib/change-notes/released/1.7.57.md | 3 +++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../src/change-notes/released/1.7.57.md | 3 +++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 19 +++++++++++++++ .../2025-12-03-implicit-map-value-reads.md | 4 ---- ...2025-12-03-run-tracer-after-compilation.md | 4 ---- .../2025-12-04-bmn-dotnet-fixes.md | 6 ----- .../2025-12-09-bmn-default-dotnet.md | 4 ---- .../2025-12-11-net10-basic-support.md | 4 ---- .../change-notes/2025-12-11-slnx-support.md | 4 ---- .../2025-12-18-implicit-span-conversions.md | 4 ---- .../2026-01-05-net-runtime-models.md | 4 ---- ...6-01-06-paths-directives-ancillary-data.md | 4 ---- csharp/ql/lib/change-notes/released/5.4.5.md | 18 ++++++++++++++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 11 +++++++++ .../2025-12-08-csrf-aspnetcore.md | 4 ---- .../2025-12-11-nhibernate-sql-sinks.md | 4 ---- .../2025-12-16-path-combine-metadata.md | 4 ---- csharp/ql/src/change-notes/released/1.6.0.md | 10 ++++++++ csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.40.md | 3 +++ .../codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 10 ++++++++ ...-unexpected-frontend-errors-query-moved.md | 4 ---- ...6-01-06-paths-directives-ancillary-data.md | 4 ---- go/ql/lib/change-notes/released/6.0.0.md | 9 +++++++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++++ go/ql/src/change-notes/released/1.5.4.md | 3 +++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 10 ++++++++ .../lib/change-notes/2024-09-24-multipart.md | 4 ---- ...ing-rest-template-request-forgery-sinks.md | 4 ---- .../2025-12-02-improve-regex-sanitizer.md | 4 ---- .../2025-12-08-spring-websocket-handler.md | 4 ---- .../change-notes/2025-12-16-java-xml-paths.md | 4 ---- java/ql/lib/change-notes/released/7.8.4.md | 9 +++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 7 ++++++ .../2025-11-25-thread-safe-initializers.md | 4 ---- .../2025-12-24-couchbase-sinks.md | 4 ---- java/ql/src/change-notes/released/1.10.5.md | 6 +++++ java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 8 +++++++ .../2025-10-21-react-precallgraph-step.md | 5 ---- .../2025-11-30-use-cache-directives.md | 5 ---- .../ql/lib/change-notes/released/2.6.20.md | 7 ++++++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 17 +++++++++++++ .../2025-11-26-nextjs-page-route-files.md | 5 ---- ...025-11-26-response-default-content-type.md | 5 ---- .../2025-12-05-skip-minified-files.md | 6 ----- .../2026-01-13-vue-props-callbacks.md | 5 ---- .../ql/src/change-notes/released/2.3.0.md | 16 +++++++++++++ javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.40.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 21 ++++++++++++++++ .../2025-11-22-tornado-websockets.md | 4 ---- .../2025-11-26-model-ParseResult.md | 4 ---- ...11-26-remove-top-level-points-to-import.md | 7 ------ .../lib/change-notes/2025-11-26-socketio.md | 4 ---- ...-12-04-support-template-string-literals.md | 4 ---- ...12-09-add-modelling-of-zstd-compression.md | 4 ---- ...09-python-support-relaxed-except-syntax.md | 4 ---- ...6-01-06-paths-directives-ancillary-data.md | 4 ---- python/ql/lib/change-notes/released/6.0.0.md | 20 ++++++++++++++++ python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 4 ++++ python/ql/src/change-notes/released/1.7.5.md | 3 +++ python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++++ ruby/ql/lib/change-notes/released/5.1.8.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 4 ++++ ruby/ql/src/change-notes/released/1.5.5.md | 3 +++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/CHANGELOG.md | 11 +++++++++ .../2025-12-03-type-inference-raw-pointers.md | 4 ---- .../2025-12-05-trait-function-dispatch.md | 4 ---- .../change-notes/2025-12-11-read-as-taint.md | 4 ---- .../change-notes/2025-12-16-axum-models.md | 4 ---- .../lib/change-notes/2025-12-17-adt-rename.md | 4 ---- ...026-01-07-method-resolution-deref-trait.md | 4 ---- rust/ql/lib/change-notes/released/0.2.4.md | 10 ++++++++ rust/ql/lib/codeql-pack.release.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/CHANGELOG.md | 9 +++++++ ...25-12-01-hard-coded-cryptographic-value.md | 4 ---- .../2025-12-04-access-after-lifetime-ended.md | 4 ---- .../2025-12-05-exclude-dereference-sinks.md | 4 ---- .../2025-12-10-unused-variable.md | 4 ---- rust/ql/src/change-notes/released/0.1.25.md | 8 +++++++ rust/ql/src/codeql-pack.release.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/CHANGELOG.md | 4 ++++ .../concepts/change-notes/released/0.0.14.md | 3 +++ shared/concepts/codeql-pack.release.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ .../change-notes/released/2.0.24.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ .../dataflow/change-notes/released/2.0.24.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/1.0.40.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/CHANGELOG.md | 4 ++++ .../quantum/change-notes/released/0.0.18.md | 3 +++ shared/quantum/codeql-pack.release.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.40.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/1.0.40.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/2.0.16.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.40.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ .../tutorial/change-notes/released/1.0.40.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/CHANGELOG.md | 4 ++++ .../typeflow/change-notes/released/1.0.40.md | 3 +++ shared/typeflow/codeql-pack.release.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/CHANGELOG.md | 4 ++++ .../change-notes/released/0.0.21.md | 3 +++ shared/typeinference/codeql-pack.release.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ .../change-notes/released/2.0.24.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/1.0.40.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/2.0.27.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/CHANGELOG.md | 4 ++++ shared/xml/change-notes/released/1.0.40.md | 3 +++ shared/xml/codeql-pack.release.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/1.0.40.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 7 ++++++ .../change-notes/2025-12-11-swift-6.2.2.md | 4 ---- .../change-notes/2025-12-18-swift-6.2.3.md | 4 ---- swift/ql/lib/change-notes/released/6.2.0.md | 6 +++++ swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/1.2.14.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 218 files changed, 587 insertions(+), 316 deletions(-) rename actions/ql/lib/change-notes/{2025-11-28-fix-code-injection-alert-filtering.md => released/0.4.26.md} (81%) create mode 100644 actions/ql/src/change-notes/released/0.6.18.md delete mode 100644 cpp/ql/lib/change-notes/2026-01-02-constant-folding.md delete mode 100644 cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md delete mode 100644 cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md delete mode 100644 cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md delete mode 100644 cpp/ql/lib/change-notes/2026-01-09-builtins.md delete mode 100644 cpp/ql/lib/change-notes/2026-01-09-this-access.md delete mode 100644 cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md create mode 100644 cpp/ql/lib/change-notes/released/7.0.0.md rename cpp/ql/src/change-notes/{2026-01-02-constant-comparison.md => released/1.5.9.md} (78%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.57.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.57.md delete mode 100644 csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md delete mode 100644 csharp/ql/lib/change-notes/2025-12-03-run-tracer-after-compilation.md delete mode 100644 csharp/ql/lib/change-notes/2025-12-04-bmn-dotnet-fixes.md delete mode 100644 csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md delete mode 100644 csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md delete mode 100644 csharp/ql/lib/change-notes/2025-12-11-slnx-support.md delete mode 100644 csharp/ql/lib/change-notes/2025-12-18-implicit-span-conversions.md delete mode 100644 csharp/ql/lib/change-notes/2026-01-05-net-runtime-models.md delete mode 100644 csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md create mode 100644 csharp/ql/lib/change-notes/released/5.4.5.md delete mode 100644 csharp/ql/src/change-notes/2025-12-08-csrf-aspnetcore.md delete mode 100644 csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md delete mode 100644 csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md create mode 100644 csharp/ql/src/change-notes/released/1.6.0.md create mode 100644 go/ql/consistency-queries/change-notes/released/1.0.40.md delete mode 100644 go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md delete mode 100644 go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md create mode 100644 go/ql/lib/change-notes/released/6.0.0.md create mode 100644 go/ql/src/change-notes/released/1.5.4.md delete mode 100644 java/ql/lib/change-notes/2024-09-24-multipart.md delete mode 100644 java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md delete mode 100644 java/ql/lib/change-notes/2025-12-02-improve-regex-sanitizer.md delete mode 100644 java/ql/lib/change-notes/2025-12-08-spring-websocket-handler.md delete mode 100644 java/ql/lib/change-notes/2025-12-16-java-xml-paths.md create mode 100644 java/ql/lib/change-notes/released/7.8.4.md delete mode 100644 java/ql/src/change-notes/2025-11-25-thread-safe-initializers.md delete mode 100644 java/ql/src/change-notes/2025-12-24-couchbase-sinks.md create mode 100644 java/ql/src/change-notes/released/1.10.5.md delete mode 100644 javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md delete mode 100644 javascript/ql/lib/change-notes/2025-11-30-use-cache-directives.md create mode 100644 javascript/ql/lib/change-notes/released/2.6.20.md delete mode 100644 javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md delete mode 100644 javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md delete mode 100644 javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md delete mode 100644 javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md create mode 100644 javascript/ql/src/change-notes/released/2.3.0.md create mode 100644 misc/suite-helpers/change-notes/released/1.0.40.md delete mode 100644 python/ql/lib/change-notes/2025-11-22-tornado-websockets.md delete mode 100644 python/ql/lib/change-notes/2025-11-26-model-ParseResult.md delete mode 100644 python/ql/lib/change-notes/2025-11-26-remove-top-level-points-to-import.md delete mode 100644 python/ql/lib/change-notes/2025-11-26-socketio.md delete mode 100644 python/ql/lib/change-notes/2025-12-04-support-template-string-literals.md delete mode 100644 python/ql/lib/change-notes/2025-12-09-add-modelling-of-zstd-compression.md delete mode 100644 python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md delete mode 100644 python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md create mode 100644 python/ql/lib/change-notes/released/6.0.0.md create mode 100644 python/ql/src/change-notes/released/1.7.5.md create mode 100644 ruby/ql/lib/change-notes/released/5.1.8.md create mode 100644 ruby/ql/src/change-notes/released/1.5.5.md delete mode 100644 rust/ql/lib/change-notes/2025-12-03-type-inference-raw-pointers.md delete mode 100644 rust/ql/lib/change-notes/2025-12-05-trait-function-dispatch.md delete mode 100644 rust/ql/lib/change-notes/2025-12-11-read-as-taint.md delete mode 100644 rust/ql/lib/change-notes/2025-12-16-axum-models.md delete mode 100644 rust/ql/lib/change-notes/2025-12-17-adt-rename.md delete mode 100644 rust/ql/lib/change-notes/2026-01-07-method-resolution-deref-trait.md create mode 100644 rust/ql/lib/change-notes/released/0.2.4.md delete mode 100644 rust/ql/src/change-notes/2025-12-01-hard-coded-cryptographic-value.md delete mode 100644 rust/ql/src/change-notes/2025-12-04-access-after-lifetime-ended.md delete mode 100644 rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md delete mode 100644 rust/ql/src/change-notes/2025-12-10-unused-variable.md create mode 100644 rust/ql/src/change-notes/released/0.1.25.md create mode 100644 shared/concepts/change-notes/released/0.0.14.md create mode 100644 shared/controlflow/change-notes/released/2.0.24.md create mode 100644 shared/dataflow/change-notes/released/2.0.24.md create mode 100644 shared/mad/change-notes/released/1.0.40.md create mode 100644 shared/quantum/change-notes/released/0.0.18.md create mode 100644 shared/rangeanalysis/change-notes/released/1.0.40.md create mode 100644 shared/regex/change-notes/released/1.0.40.md create mode 100644 shared/ssa/change-notes/released/2.0.16.md create mode 100644 shared/threat-models/change-notes/released/1.0.40.md create mode 100644 shared/tutorial/change-notes/released/1.0.40.md create mode 100644 shared/typeflow/change-notes/released/1.0.40.md create mode 100644 shared/typeinference/change-notes/released/0.0.21.md create mode 100644 shared/typetracking/change-notes/released/2.0.24.md create mode 100644 shared/typos/change-notes/released/1.0.40.md create mode 100644 shared/util/change-notes/released/2.0.27.md create mode 100644 shared/xml/change-notes/released/1.0.40.md create mode 100644 shared/yaml/change-notes/released/1.0.40.md delete mode 100644 swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md delete mode 100644 swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md create mode 100644 swift/ql/lib/change-notes/released/6.2.0.md create mode 100644 swift/ql/src/change-notes/released/1.2.14.md diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 4dfbb8413e2..1759333d659 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.4.26 + +### Major Analysis Improvements + +* The query `actions/code-injection/medium` has been updated to include results which were incorrectly excluded while filtering out results that are reported by `actions/code-injection/critical`. + ## 0.4.25 No user-facing changes. diff --git a/actions/ql/lib/change-notes/2025-11-28-fix-code-injection-alert-filtering.md b/actions/ql/lib/change-notes/released/0.4.26.md similarity index 81% rename from actions/ql/lib/change-notes/2025-11-28-fix-code-injection-alert-filtering.md rename to actions/ql/lib/change-notes/released/0.4.26.md index b80ef77c2bc..80962fa638e 100644 --- a/actions/ql/lib/change-notes/2025-11-28-fix-code-injection-alert-filtering.md +++ b/actions/ql/lib/change-notes/released/0.4.26.md @@ -1,4 +1,5 @@ ---- -category: majorAnalysis ---- +## 0.4.26 + +### Major Analysis Improvements + * The query `actions/code-injection/medium` has been updated to include results which were incorrectly excluded while filtering out results that are reported by `actions/code-injection/critical`. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 7b212c2605f..06a4605c767 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.25 +lastReleaseVersion: 0.4.26 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index f22b1a9a199..4aeb4405083 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.26-dev +version: 0.4.26 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 1e5d2cab0e7..f667d284185 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.18 + +No user-facing changes. + ## 0.6.17 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.18.md b/actions/ql/src/change-notes/released/0.6.18.md new file mode 100644 index 00000000000..77cbff5698a --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.18.md @@ -0,0 +1,3 @@ +## 0.6.18 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index e1ac143badf..b694a16787b 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.17 +lastReleaseVersion: 0.6.18 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 70e9a695116..f8b801a168a 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.18-dev +version: 0.6.18 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 3a543c0da92..a626fec99ae 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,27 @@ +## 7.0.0 + +### Breaking Changes + +* The `_Decimal32`, `_Decimal64`, and `_Decimal128` types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases. + +### Deprecated APIs + +* The `OverloadedArrayExpr::getArrayOffset/0` predicate has been deprecated. Use `OverloadedArrayExpr::getArrayOffset/1` and `OverloadedArrayExpr::getAnArrayOffset` instead. + +### New Features + +* Added subclasses of `BuiltInOperations` for the `__is_bitwise_cloneable`, `__is_invocable`, and `__is_nothrow_invocable` builtin operations. +* Added a `isThisAccess` predicate to `ParamAccessForType` that holds when the access is to the implicit object parameter. +* Predicates `getArrayOffset/1` and `getAnArrayOffset` have been added to the `OverloadedArrayExpr` class to support C++23 multidimensional subscript operators. + +### Minor Analysis Improvements + +* Some constants will now be represented by their unfolded expression trees. The `isConstant` predicate of `Expr` will no longer yield a result for those constants. + +### Bug Fixes + +* Fixed a bug in the `DataFlow::BarrierGuard<...>::getABarrierNode` predicate which caused the predicate to return `DataFlow::Node`s with incorrect indirections. If you use `getABarrierNode` to implement barriers in a dataflow/taint-tracking query it may result in more query results. You can use `DataFlow::BarrierGuard<...>::getAnIndirectBarrierNode` to remove those query results. + ## 6.1.4 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/2026-01-02-constant-folding.md b/cpp/ql/lib/change-notes/2026-01-02-constant-folding.md deleted file mode 100644 index 8ac0f91b939..00000000000 --- a/cpp/ql/lib/change-notes/2026-01-02-constant-folding.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Some constants will now be represented by their unfolded expression trees. The `isConstant` predicate of `Expr` will no longer yield a result for those constants. diff --git a/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md b/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md deleted file mode 100644 index 19d0d545576..00000000000 --- a/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: breaking ---- -* The `_Decimal32`, `_Decimal64`, and `_Decimal128` types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases. diff --git a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md deleted file mode 100644 index c0ed98ac50b..00000000000 --- a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-1.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Predicates `getArrayOffset/1` and `getAnArrayOffset` have been added to the `OverloadedArrayExpr` class to support C++23 multidimensional subscript operators. diff --git a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md b/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md deleted file mode 100644 index 0ce3bf38535..00000000000 --- a/cpp/ql/lib/change-notes/2026-01-08-multidimensional-subscript-operator-2.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The `OverloadedArrayExpr::getArrayOffset/0` predicate has been deprecated. Use `OverloadedArrayExpr::getArrayOffset/1` and `OverloadedArrayExpr::getAnArrayOffset` instead. diff --git a/cpp/ql/lib/change-notes/2026-01-09-builtins.md b/cpp/ql/lib/change-notes/2026-01-09-builtins.md deleted file mode 100644 index ece5fba5de6..00000000000 --- a/cpp/ql/lib/change-notes/2026-01-09-builtins.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added subclasses of `BuiltInOperations` for the `__is_bitwise_cloneable`, `__is_invocable`, and `__is_nothrow_invocable` builtin operations. diff --git a/cpp/ql/lib/change-notes/2026-01-09-this-access.md b/cpp/ql/lib/change-notes/2026-01-09-this-access.md deleted file mode 100644 index e0934d8926b..00000000000 --- a/cpp/ql/lib/change-notes/2026-01-09-this-access.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a `isThisAccess` predicate to `ParamAccessForType` that holds when the access is to the implicit object parameter. diff --git a/cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md b/cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md deleted file mode 100644 index fa1b52e469b..00000000000 --- a/cpp/ql/lib/change-notes/2026-01-16-barrier-guard-conflation.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed a bug in the `DataFlow::BarrierGuard<...>::getABarrierNode` predicate which caused the predicate to return `DataFlow::Node`s with incorrect indirections. If you use `getABarrierNode` to implement barriers in a dataflow/taint-tracking query it may result in more query results. You can use `DataFlow::BarrierGuard<...>::getAnIndirectBarrierNode` to remove those query results. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/released/7.0.0.md b/cpp/ql/lib/change-notes/released/7.0.0.md new file mode 100644 index 00000000000..737d9def38a --- /dev/null +++ b/cpp/ql/lib/change-notes/released/7.0.0.md @@ -0,0 +1,23 @@ +## 7.0.0 + +### Breaking Changes + +* The `_Decimal32`, `_Decimal64`, and `_Decimal128` types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases. + +### Deprecated APIs + +* The `OverloadedArrayExpr::getArrayOffset/0` predicate has been deprecated. Use `OverloadedArrayExpr::getArrayOffset/1` and `OverloadedArrayExpr::getAnArrayOffset` instead. + +### New Features + +* Added subclasses of `BuiltInOperations` for the `__is_bitwise_cloneable`, `__is_invocable`, and `__is_nothrow_invocable` builtin operations. +* Added a `isThisAccess` predicate to `ParamAccessForType` that holds when the access is to the implicit object parameter. +* Predicates `getArrayOffset/1` and `getAnArrayOffset` have been added to the `OverloadedArrayExpr` class to support C++23 multidimensional subscript operators. + +### Minor Analysis Improvements + +* Some constants will now be represented by their unfolded expression trees. The `isConstant` predicate of `Expr` will no longer yield a result for those constants. + +### Bug Fixes + +* Fixed a bug in the `DataFlow::BarrierGuard<...>::getABarrierNode` predicate which caused the predicate to return `DataFlow::Node`s with incorrect indirections. If you use `getABarrierNode` to implement barriers in a dataflow/taint-tracking query it may result in more query results. You can use `DataFlow::BarrierGuard<...>::getAnIndirectBarrierNode` to remove those query results. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 7dbbf7fb553..e0db21c7869 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.4 +lastReleaseVersion: 7.0.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 02876035046..0eb6d381425 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 6.1.5-dev +version: 7.0.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 6747d616b43..02a055ee266 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.5.9 + +### Minor Analysis Improvements + +* The `cpp/constant-comparison` query has been updated to not produce false positives for constants that are now represented by their unfolded expression trees. + ## 1.5.8 No user-facing changes. diff --git a/cpp/ql/src/change-notes/2026-01-02-constant-comparison.md b/cpp/ql/src/change-notes/released/1.5.9.md similarity index 78% rename from cpp/ql/src/change-notes/2026-01-02-constant-comparison.md rename to cpp/ql/src/change-notes/released/1.5.9.md index 2b37f31268d..bc06ade90f7 100644 --- a/cpp/ql/src/change-notes/2026-01-02-constant-comparison.md +++ b/cpp/ql/src/change-notes/released/1.5.9.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 1.5.9 + +### Minor Analysis Improvements + * The `cpp/constant-comparison` query has been updated to not produce false positives for constants that are now represented by their unfolded expression trees. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index d26e0a52764..5ac7d08bfbf 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.8 +lastReleaseVersion: 1.5.9 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 188d20e50b2..6ae2e8d1750 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.9-dev +version: 1.5.9 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 6f9460e613c..029e03a4c9e 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.57 + +No user-facing changes. + ## 1.7.56 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.57.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.57.md new file mode 100644 index 00000000000..5d7f99bf24b --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.57.md @@ -0,0 +1,3 @@ +## 1.7.57 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index c228b5e0e71..4b2fd88d6a3 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.56 +lastReleaseVersion: 1.7.57 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 2e3b6a3a72d..fbfa5cf88fa 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.57-dev +version: 1.7.57 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 6f9460e613c..029e03a4c9e 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.57 + +No user-facing changes. + ## 1.7.56 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.57.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.57.md new file mode 100644 index 00000000000..5d7f99bf24b --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.57.md @@ -0,0 +1,3 @@ +## 1.7.57 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index c228b5e0e71..4b2fd88d6a3 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.56 +lastReleaseVersion: 1.7.57 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 48e68f99dfa..76ee08aa0b2 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.57-dev +version: 1.7.57 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 346d48fca29..371e10c370a 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,22 @@ +## 5.4.5 + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the C# extractor's search for `.config`, `.props`, XML and project files. +* Updated the generated .NET “models as data” runtime models to cover .NET 10. +* C# 14: Support for *implicit* span conversions in the QL library. +* Basic extractor support for .NET 10 is now available. Extraction is supported for .NET 10 projects in both traced mode and `build mode: none`. However, code that uses language features new to C# 14 is not yet fully supported for extraction and analysis. +* Added autobuilder and `build-mode: none` support for `.slnx` solution files. +* In `build mode: none`, .NET 10 is now used by default unless a specific .NET version is specified elsewhere. +* Added implicit reads of `System.Collections.Generic.KeyValuePair.Value` at taint-tracking sinks and at inputs to additional taint steps. As a result, taint-tracking queries will now produce more results when a container is tainted. + +### Bug Fixes + +* Fixed two issues affecting build mode `none`: + * Corrected version sorting logic when detecting the newest .NET framework to use. + * Improved stability for .NET 10 compatibility. +* Fixed an issue where compiler-generated files were not being extracted. The extractor now runs after compilation completes to ensure all generated files are properly analyzed. + ## 5.4.4 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md b/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md deleted file mode 100644 index 2b7f47fe98d..00000000000 --- a/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added implicit reads of `System.Collections.Generic.KeyValuePair.Value` at taint-tracking sinks and at inputs to additional taint steps. As a result, taint-tracking queries will now produce more results when a container is tainted. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2025-12-03-run-tracer-after-compilation.md b/csharp/ql/lib/change-notes/2025-12-03-run-tracer-after-compilation.md deleted file mode 100644 index d7dd475cb0b..00000000000 --- a/csharp/ql/lib/change-notes/2025-12-03-run-tracer-after-compilation.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* Fixed an issue where compiler-generated files were not being extracted. The extractor now runs after compilation completes to ensure all generated files are properly analyzed. diff --git a/csharp/ql/lib/change-notes/2025-12-04-bmn-dotnet-fixes.md b/csharp/ql/lib/change-notes/2025-12-04-bmn-dotnet-fixes.md deleted file mode 100644 index af1f1b91966..00000000000 --- a/csharp/ql/lib/change-notes/2025-12-04-bmn-dotnet-fixes.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: fix ---- -* Fixed two issues affecting build mode `none`: - * Corrected version sorting logic when detecting the newest .NET framework to use. - * Improved stability for .NET 10 compatibility. diff --git a/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md b/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md deleted file mode 100644 index 832e6069ee0..00000000000 --- a/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* In `build mode: none`, .NET 10 is now used by default unless a specific .NET version is specified elsewhere. diff --git a/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md b/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md deleted file mode 100644 index d15a55a7eb4..00000000000 --- a/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Basic extractor support for .NET 10 is now available. Extraction is supported for .NET 10 projects in both traced mode and `build mode: none`. However, code that uses language features new to C# 14 is not yet fully supported for extraction and analysis. diff --git a/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md b/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md deleted file mode 100644 index 9ca9b989812..00000000000 --- a/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added autobuilder and `build-mode: none` support for `.slnx` solution files. diff --git a/csharp/ql/lib/change-notes/2025-12-18-implicit-span-conversions.md b/csharp/ql/lib/change-notes/2025-12-18-implicit-span-conversions.md deleted file mode 100644 index 0c2f54d2092..00000000000 --- a/csharp/ql/lib/change-notes/2025-12-18-implicit-span-conversions.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* C# 14: Support for *implicit* span conversions in the QL library. diff --git a/csharp/ql/lib/change-notes/2026-01-05-net-runtime-models.md b/csharp/ql/lib/change-notes/2026-01-05-net-runtime-models.md deleted file mode 100644 index 58b27f1893f..00000000000 --- a/csharp/ql/lib/change-notes/2026-01-05-net-runtime-models.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Updated the generated .NET “models as data” runtime models to cover .NET 10. diff --git a/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md deleted file mode 100644 index ac96e579147..00000000000 --- a/csharp/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the C# extractor's search for `.config`, `.props`, XML and project files. diff --git a/csharp/ql/lib/change-notes/released/5.4.5.md b/csharp/ql/lib/change-notes/released/5.4.5.md new file mode 100644 index 00000000000..a084df5f200 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.4.5.md @@ -0,0 +1,18 @@ +## 5.4.5 + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the C# extractor's search for `.config`, `.props`, XML and project files. +* Updated the generated .NET “models as data” runtime models to cover .NET 10. +* C# 14: Support for *implicit* span conversions in the QL library. +* Basic extractor support for .NET 10 is now available. Extraction is supported for .NET 10 projects in both traced mode and `build mode: none`. However, code that uses language features new to C# 14 is not yet fully supported for extraction and analysis. +* Added autobuilder and `build-mode: none` support for `.slnx` solution files. +* In `build mode: none`, .NET 10 is now used by default unless a specific .NET version is specified elsewhere. +* Added implicit reads of `System.Collections.Generic.KeyValuePair.Value` at taint-tracking sinks and at inputs to additional taint steps. As a result, taint-tracking queries will now produce more results when a container is tainted. + +### Bug Fixes + +* Fixed two issues affecting build mode `none`: + * Corrected version sorting logic when detecting the newest .NET framework to use. + * Improved stability for .NET 10 compatibility. +* Fixed an issue where compiler-generated files were not being extracted. The extractor now runs after compilation completes to ensure all generated files are properly analyzed. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index cb0e3d32e76..e79e40bd1d8 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.4 +lastReleaseVersion: 5.4.5 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index a524b9cefbc..2991ad96180 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.5-dev +version: 5.4.5 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 3ac11a9af34..b3c3276ae5c 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.6.0 + +### Query Metadata Changes + +* Updated the `name`, `description`, and alert message of `cs/path-combine` to have more details about why it's a problem. + +### Minor Analysis Improvements + +* Added `NHibernate.ISession.CreateSQLQuery`, `NHibernate.IStatelessSession.CreateSQLQuery` and `NHibernate.Impl.AbstractSessionImpl.CreateSQLQuery` as SQL injection sinks. +* The `Missing cross-site request forgery token validation` query was extended to support ASP.NET Core. + ## 1.5.4 No user-facing changes. diff --git a/csharp/ql/src/change-notes/2025-12-08-csrf-aspnetcore.md b/csharp/ql/src/change-notes/2025-12-08-csrf-aspnetcore.md deleted file mode 100644 index e4a1f64ef14..00000000000 --- a/csharp/ql/src/change-notes/2025-12-08-csrf-aspnetcore.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `Missing cross-site request forgery token validation` query was extended to support ASP.NET Core. diff --git a/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md b/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md deleted file mode 100644 index c2ce476dd7a..00000000000 --- a/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added `NHibernate.ISession.CreateSQLQuery`, `NHibernate.IStatelessSession.CreateSQLQuery` and `NHibernate.Impl.AbstractSessionImpl.CreateSQLQuery` as SQL injection sinks. \ No newline at end of file diff --git a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md deleted file mode 100644 index 23c74d27398..00000000000 --- a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* Updated the `name`, `description`, and alert message of `cs/path-combine` to have more details about why it's a problem. diff --git a/csharp/ql/src/change-notes/released/1.6.0.md b/csharp/ql/src/change-notes/released/1.6.0.md new file mode 100644 index 00000000000..36b3c6574ea --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.6.0.md @@ -0,0 +1,10 @@ +## 1.6.0 + +### Query Metadata Changes + +* Updated the `name`, `description`, and alert message of `cs/path-combine` to have more details about why it's a problem. + +### Minor Analysis Improvements + +* Added `NHibernate.ISession.CreateSQLQuery`, `NHibernate.IStatelessSession.CreateSQLQuery` and `NHibernate.Impl.AbstractSessionImpl.CreateSQLQuery` as SQL injection sinks. +* The `Missing cross-site request forgery token validation` query was extended to support ASP.NET Core. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index c216828ee1c..c4f0b07d533 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.4 +lastReleaseVersion: 1.6.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index b54e4d5c367..0dbbc39c39d 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.5.5-dev +version: 1.6.0 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index dd213e111b4..8718668249f 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.40.md b/go/ql/consistency-queries/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index afcddda3b5a..8e49b3c3225 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.40-dev +version: 1.0.40 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 53eac41e696..97391d2342a 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 6.0.0 + +### Breaking Changes + +* The query `go/unexpected-frontend-error` has been moved from the `codeql/go-queries` query to the `codeql-go-consistency-queries` query pack. + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Go extractor's search for `.vue` and HTML files. + ## 5.0.6 No user-facing changes. diff --git a/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md b/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md deleted file mode 100644 index cf4b724dbd9..00000000000 --- a/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: breaking ---- -* The query `go/unexpected-frontend-error` has been moved from the `codeql/go-queries` query to the `codeql-go-consistency-queries` query pack. diff --git a/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md deleted file mode 100644 index bf9c4553573..00000000000 --- a/go/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Go extractor's search for `.vue` and HTML files. diff --git a/go/ql/lib/change-notes/released/6.0.0.md b/go/ql/lib/change-notes/released/6.0.0.md new file mode 100644 index 00000000000..1e02ee8eea0 --- /dev/null +++ b/go/ql/lib/change-notes/released/6.0.0.md @@ -0,0 +1,9 @@ +## 6.0.0 + +### Breaking Changes + +* The query `go/unexpected-frontend-error` has been moved from the `codeql/go-queries` query to the `codeql-go-consistency-queries` query pack. + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Go extractor's search for `.vue` and HTML files. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index cc6fded2554..f8c4fa43ccb 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.6 +lastReleaseVersion: 6.0.0 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 3b929e9335a..89863fc641a 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 5.0.7-dev +version: 6.0.0 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 1f4ae4f3a57..8a2f1355eec 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.4 + +No user-facing changes. + ## 1.5.3 No user-facing changes. diff --git a/go/ql/src/change-notes/released/1.5.4.md b/go/ql/src/change-notes/released/1.5.4.md new file mode 100644 index 00000000000..5ff5ac8ebb7 --- /dev/null +++ b/go/ql/src/change-notes/released/1.5.4.md @@ -0,0 +1,3 @@ +## 1.5.4 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 232224b0e26..c216828ee1c 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.3 +lastReleaseVersion: 1.5.4 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 1545b6b7195..e6c835ad42a 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.4-dev +version: 1.5.4 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 1180f563d23..cd0db2ab96f 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 7.8.4 + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Java extractor's search for XML and properties files. +* Additional remote flow sources from the `org.springframework.web.socket` package have been modeled. +* A sanitizer has been added to `java/ssrf` to remove alerts when a regular expression check is used to verify that the value is safe. +* URI template variables of all Spring `RestTemplate` methods are now considered as request forgery sinks. Previously only the `getForObject` method was considered. This may lead to more alerts for the query `java/ssrf`. +* Added more dataflow models of `org.apache.commons.fileupload.FileItem`, `javax/jakarta.servlet.http.Part` and `org.apache.commons.fileupload.util.Streams`. + ## 7.8.3 No user-facing changes. diff --git a/java/ql/lib/change-notes/2024-09-24-multipart.md b/java/ql/lib/change-notes/2024-09-24-multipart.md deleted file mode 100644 index e1102698065..00000000000 --- a/java/ql/lib/change-notes/2024-09-24-multipart.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added more dataflow models of `org.apache.commons.fileupload.FileItem`, `javax/jakarta.servlet.http.Part` and `org.apache.commons.fileupload.util.Streams`. \ No newline at end of file diff --git a/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md b/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md deleted file mode 100644 index 4a18b530472..00000000000 --- a/java/ql/lib/change-notes/2025-11-27-spring-rest-template-request-forgery-sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* URI template variables of all Spring `RestTemplate` methods are now considered as request forgery sinks. Previously only the `getForObject` method was considered. This may lead to more alerts for the query `java/ssrf`. diff --git a/java/ql/lib/change-notes/2025-12-02-improve-regex-sanitizer.md b/java/ql/lib/change-notes/2025-12-02-improve-regex-sanitizer.md deleted file mode 100644 index 77ce0dc583c..00000000000 --- a/java/ql/lib/change-notes/2025-12-02-improve-regex-sanitizer.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* A sanitizer has been added to `java/ssrf` to remove alerts when a regular expression check is used to verify that the value is safe. diff --git a/java/ql/lib/change-notes/2025-12-08-spring-websocket-handler.md b/java/ql/lib/change-notes/2025-12-08-spring-websocket-handler.md deleted file mode 100644 index d3ca7f07025..00000000000 --- a/java/ql/lib/change-notes/2025-12-08-spring-websocket-handler.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Additional remote flow sources from the `org.springframework.web.socket` package have been modeled. \ No newline at end of file diff --git a/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md b/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md deleted file mode 100644 index 877d0e7e2ed..00000000000 --- a/java/ql/lib/change-notes/2025-12-16-java-xml-paths.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Java extractor's search for XML and properties files. diff --git a/java/ql/lib/change-notes/released/7.8.4.md b/java/ql/lib/change-notes/released/7.8.4.md new file mode 100644 index 00000000000..cfeb5048cff --- /dev/null +++ b/java/ql/lib/change-notes/released/7.8.4.md @@ -0,0 +1,9 @@ +## 7.8.4 + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Java extractor's search for XML and properties files. +* Additional remote flow sources from the `org.springframework.web.socket` package have been modeled. +* A sanitizer has been added to `java/ssrf` to remove alerts when a regular expression check is used to verify that the value is safe. +* URI template variables of all Spring `RestTemplate` methods are now considered as request forgery sinks. Previously only the `getForObject` method was considered. This may lead to more alerts for the query `java/ssrf`. +* Added more dataflow models of `org.apache.commons.fileupload.FileItem`, `javax/jakarta.servlet.http.Part` and `org.apache.commons.fileupload.util.Streams`. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 41a48ad0ff8..c8145c25bf6 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.8.3 +lastReleaseVersion: 7.8.4 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 4cf6e5e75f4..e4c0fd1c9a1 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.4-dev +version: 7.8.4 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index be5a172bb6c..a17607e5732 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 1.10.5 + +### Minor Analysis Improvements + +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. +* Java thread safety analysis now understands initialization to thread safe classes inside constructors. + ## 1.10.4 No user-facing changes. diff --git a/java/ql/src/change-notes/2025-11-25-thread-safe-initializers.md b/java/ql/src/change-notes/2025-11-25-thread-safe-initializers.md deleted file mode 100644 index f373dae839d..00000000000 --- a/java/ql/src/change-notes/2025-11-25-thread-safe-initializers.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Java thread safety analysis now understands initialization to thread safe classes inside constructors. \ No newline at end of file diff --git a/java/ql/src/change-notes/2025-12-24-couchbase-sinks.md b/java/ql/src/change-notes/2025-12-24-couchbase-sinks.md deleted file mode 100644 index 473c708dcfb..00000000000 --- a/java/ql/src/change-notes/2025-12-24-couchbase-sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. diff --git a/java/ql/src/change-notes/released/1.10.5.md b/java/ql/src/change-notes/released/1.10.5.md new file mode 100644 index 00000000000..27178581620 --- /dev/null +++ b/java/ql/src/change-notes/released/1.10.5.md @@ -0,0 +1,6 @@ +## 1.10.5 + +### Minor Analysis Improvements + +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. +* Java thread safety analysis now understands initialization to thread safe classes inside constructors. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 35049ec188b..2b3096747d5 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.10.4 +lastReleaseVersion: 1.10.5 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index cfff0aa4e78..e3fa999e0bc 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.5-dev +version: 1.10.5 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 88fd8b8ea01..5e63cf0510e 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.6.20 + +### Minor Analysis Improvements + +- Support `use cache` directives for Next.js 16. +* Added `PreCallGraphStep` flow model for React's `useRef` hook. +* Added a `DomValueSource` that uses the `current` property off the object returned by React's `useRef` hook. + ## 2.6.19 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md b/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md deleted file mode 100644 index e28a900e8d9..00000000000 --- a/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* Added `PreCallGraphStep` flow model for React's `useRef` hook. -* Added a `DomValueSource` that uses the `current` property off the object returned by React's `useRef` hook. \ No newline at end of file diff --git a/javascript/ql/lib/change-notes/2025-11-30-use-cache-directives.md b/javascript/ql/lib/change-notes/2025-11-30-use-cache-directives.md deleted file mode 100644 index 6a8edce26d1..00000000000 --- a/javascript/ql/lib/change-notes/2025-11-30-use-cache-directives.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- - -- Support `use cache` directives for Next.js 16. diff --git a/javascript/ql/lib/change-notes/released/2.6.20.md b/javascript/ql/lib/change-notes/released/2.6.20.md new file mode 100644 index 00000000000..d9a992efb97 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.20.md @@ -0,0 +1,7 @@ +## 2.6.20 + +### Minor Analysis Improvements + +- Support `use cache` directives for Next.js 16. +* Added `PreCallGraphStep` flow model for React's `useRef` hook. +* Added a `DomValueSource` that uses the `current` property off the object returned by React's `useRef` hook. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 679db550b20..3c7db9023cc 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.19 +lastReleaseVersion: 2.6.20 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 889177c61b7..2a70f7bc42e 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.20-dev +version: 2.6.20 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 8c7ad99925a..d3a5bfa8f82 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,20 @@ +## 2.3.0 + +### Major Analysis Improvements + +* JavaScript files with an average line length greater than 200 are now considered minified and will no longer be analyzed. + For use-cases where minified files should be analyzed, the original behavior can be restored by setting the environment variable + `CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true`. + +### Minor Analysis Improvements + +* The model of `vue-router` now properly detects taint sources in cases where + the `props` property is a callback. +* Fixed a bug in the Next.js model that would cause the analysis to miss server-side taint sources in files + named `route` or `page` appearing outside `api` and `pages` folders. +* `new Response(x)` is no longer seen as a reflected XSS sink when no `content-type` header + is set, since the content type defaults to `text/plain`. + ## 2.2.4 No user-facing changes. diff --git a/javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md b/javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md deleted file mode 100644 index b1f87b63d31..00000000000 --- a/javascript/ql/src/change-notes/2025-11-26-nextjs-page-route-files.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed a bug in the Next.js model that would cause the analysis to miss server-side taint sources in files - named `route` or `page` appearing outside `api` and `pages` folders. diff --git a/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md b/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md deleted file mode 100644 index 67ece0e5353..00000000000 --- a/javascript/ql/src/change-notes/2025-11-26-response-default-content-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* `new Response(x)` is no longer seen as a reflected XSS sink when no `content-type` header - is set, since the content type defaults to `text/plain`. diff --git a/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md b/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md deleted file mode 100644 index 6d5309fa5c7..00000000000 --- a/javascript/ql/src/change-notes/2025-12-05-skip-minified-files.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: majorAnalysis ---- -* JavaScript files with an average line length greater than 200 are now considered minified and will no longer be analyzed. - For use-cases where minified files should be analyzed, the original behavior can be restored by setting the environment variable - `CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true`. diff --git a/javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md b/javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md deleted file mode 100644 index f84e193782d..00000000000 --- a/javascript/ql/src/change-notes/2026-01-13-vue-props-callbacks.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* The model of `vue-router` now properly detects taint sources in cases where - the `props` property is a callback. diff --git a/javascript/ql/src/change-notes/released/2.3.0.md b/javascript/ql/src/change-notes/released/2.3.0.md new file mode 100644 index 00000000000..cae1b2f7503 --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.3.0.md @@ -0,0 +1,16 @@ +## 2.3.0 + +### Major Analysis Improvements + +* JavaScript files with an average line length greater than 200 are now considered minified and will no longer be analyzed. + For use-cases where minified files should be analyzed, the original behavior can be restored by setting the environment variable + `CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true`. + +### Minor Analysis Improvements + +* The model of `vue-router` now properly detects taint sources in cases where + the `props` property is a callback. +* Fixed a bug in the Next.js model that would cause the analysis to miss server-side taint sources in files + named `route` or `page` appearing outside `api` and `pages` folders. +* `new Response(x)` is no longer seen as a reflected XSS sink when no `content-type` header + is set, since the content type defaults to `text/plain`. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 5d34f486fd4..5936154675a 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.2.4 +lastReleaseVersion: 2.3.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 3b73d75ad23..354f56fbdec 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.2.5-dev +version: 2.3.0 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 61f60bfdac2..3fa0771beca 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.40.md b/misc/suite-helpers/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index fd26cf0f007..1bbc2748929 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.40-dev +version: 1.0.40 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index c18a0cc83d1..c1cb74c2e31 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,24 @@ +## 6.0.0 + +### Breaking Changes + +* All modules that depend on the points-to analysis have now been removed from the top level `python.qll` module. To access the points-to functionality, import the new `LegacyPointsTo` module. This also means that some predicates have been removed from various classes, for instance `Function.getFunctionObject()`. To access these predicates, import the `LegacyPointsTo` module and use the `FunctionWithPointsTo` class instead. Most cases follow this pattern, but there are a few exceptions: + * The `getLiteralObject` method on `ImmutableLiteral` subclasses has been replaced with a predicate `getLiteralObject(ImmutableLiteral l)` in the `LegacyPointsTo` module. + * The `getMetrics` method on `Function`, `Class`, and `Module` has been removed. To access metrics, import `LegacyPointsTo` and use the classes `FunctionMetrics`, etc. instead. + +### New Features + +* The extractor now supports the new, relaxed syntax `except A, B, C: ...` (which would previously have to be written as `except (A, B, C): ...`) as defined in [PEP-758](https://peps.python.org/pep-0758/). This may cause changes in results for code that uses Python 2-style exception binding (`except Foo, e: ...`). The more modern format, `except Foo as e: ...` (available since Python 2.6) is unaffected. +* The Python extractor now supports template strings as defined in [PEP-750](https://peps.python.org/pep-0750/), through the classes `TemplateString` and `JoinedTemplateString`. + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Python extractor's search for YAML files. +* The `compression.zstd` library (added in Python 3.14) is now supported by the `py/decompression-bomb` query. +* Added taint flow model and type model for `urllib.parseurl`. +* Remote flow sources for the `python-socketio` package have been modeled. +* Additional models for remote flow sources for `tornado.websocket.WebSocketHandler` have been added. + ## 5.0.4 No user-facing changes. diff --git a/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md b/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md deleted file mode 100644 index 8ba2ef549ee..00000000000 --- a/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Additional models for remote flow sources for `tornado.websocket.WebSocketHandler` have been added. \ No newline at end of file diff --git a/python/ql/lib/change-notes/2025-11-26-model-ParseResult.md b/python/ql/lib/change-notes/2025-11-26-model-ParseResult.md deleted file mode 100644 index 9d461643613..00000000000 --- a/python/ql/lib/change-notes/2025-11-26-model-ParseResult.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added taint flow model and type model for `urllib.parseurl`. \ No newline at end of file diff --git a/python/ql/lib/change-notes/2025-11-26-remove-top-level-points-to-import.md b/python/ql/lib/change-notes/2025-11-26-remove-top-level-points-to-import.md deleted file mode 100644 index 7122c217c41..00000000000 --- a/python/ql/lib/change-notes/2025-11-26-remove-top-level-points-to-import.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -category: breaking ---- - -* All modules that depend on the points-to analysis have now been removed from the top level `python.qll` module. To access the points-to functionality, import the new `LegacyPointsTo` module. This also means that some predicates have been removed from various classes, for instance `Function.getFunctionObject()`. To access these predicates, import the `LegacyPointsTo` module and use the `FunctionWithPointsTo` class instead. Most cases follow this pattern, but there are a few exceptions: - * The `getLiteralObject` method on `ImmutableLiteral` subclasses has been replaced with a predicate `getLiteralObject(ImmutableLiteral l)` in the `LegacyPointsTo` module. - * The `getMetrics` method on `Function`, `Class`, and `Module` has been removed. To access metrics, import `LegacyPointsTo` and use the classes `FunctionMetrics`, etc. instead. diff --git a/python/ql/lib/change-notes/2025-11-26-socketio.md b/python/ql/lib/change-notes/2025-11-26-socketio.md deleted file mode 100644 index e58bec0bbc1..00000000000 --- a/python/ql/lib/change-notes/2025-11-26-socketio.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Remote flow sources for the `python-socketio` package have been modeled. \ No newline at end of file diff --git a/python/ql/lib/change-notes/2025-12-04-support-template-string-literals.md b/python/ql/lib/change-notes/2025-12-04-support-template-string-literals.md deleted file mode 100644 index 1c4fc58c09b..00000000000 --- a/python/ql/lib/change-notes/2025-12-04-support-template-string-literals.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* The Python extractor now supports template strings as defined in [PEP-750](https://peps.python.org/pep-0750/), through the classes `TemplateString` and `JoinedTemplateString`. diff --git a/python/ql/lib/change-notes/2025-12-09-add-modelling-of-zstd-compression.md b/python/ql/lib/change-notes/2025-12-09-add-modelling-of-zstd-compression.md deleted file mode 100644 index 8ec42ca0db2..00000000000 --- a/python/ql/lib/change-notes/2025-12-09-add-modelling-of-zstd-compression.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `compression.zstd` library (added in Python 3.14) is now supported by the `py/decompression-bomb` query. diff --git a/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md b/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md deleted file mode 100644 index 6187bc8136c..00000000000 --- a/python/ql/lib/change-notes/2025-12-09-python-support-relaxed-except-syntax.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* The extractor now supports the new, relaxed syntax `except A, B, C: ...` (which would previously have to be written as `except (A, B, C): ...`) as defined in [PEP-758](https://peps.python.org/pep-0758/). This may cause changes in results for code that uses Python 2-style exception binding (`except Foo, e: ...`). The more modern format, `except Foo as e: ...` (available since Python 2.6) is unaffected. diff --git a/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md b/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md deleted file mode 100644 index ed16f8b6565..00000000000 --- a/python/ql/lib/change-notes/2026-01-06-paths-directives-ancillary-data.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Python extractor's search for YAML files. diff --git a/python/ql/lib/change-notes/released/6.0.0.md b/python/ql/lib/change-notes/released/6.0.0.md new file mode 100644 index 00000000000..57de62fb258 --- /dev/null +++ b/python/ql/lib/change-notes/released/6.0.0.md @@ -0,0 +1,20 @@ +## 6.0.0 + +### Breaking Changes + +* All modules that depend on the points-to analysis have now been removed from the top level `python.qll` module. To access the points-to functionality, import the new `LegacyPointsTo` module. This also means that some predicates have been removed from various classes, for instance `Function.getFunctionObject()`. To access these predicates, import the `LegacyPointsTo` module and use the `FunctionWithPointsTo` class instead. Most cases follow this pattern, but there are a few exceptions: + * The `getLiteralObject` method on `ImmutableLiteral` subclasses has been replaced with a predicate `getLiteralObject(ImmutableLiteral l)` in the `LegacyPointsTo` module. + * The `getMetrics` method on `Function`, `Class`, and `Module` has been removed. To access metrics, import `LegacyPointsTo` and use the classes `FunctionMetrics`, etc. instead. + +### New Features + +* The extractor now supports the new, relaxed syntax `except A, B, C: ...` (which would previously have to be written as `except (A, B, C): ...`) as defined in [PEP-758](https://peps.python.org/pep-0758/). This may cause changes in results for code that uses Python 2-style exception binding (`except Foo, e: ...`). The more modern format, `except Foo as e: ...` (available since Python 2.6) is unaffected. +* The Python extractor now supports template strings as defined in [PEP-750](https://peps.python.org/pep-0750/), through the classes `TemplateString` and `JoinedTemplateString`. + +### Minor Analysis Improvements + +* When a code-scanning configuration specifies the `paths:` and/or `paths-ignore:` settings, these are now taken into account by the Python extractor's search for YAML files. +* The `compression.zstd` library (added in Python 3.14) is now supported by the `py/decompression-bomb` query. +* Added taint flow model and type model for `urllib.parseurl`. +* Remote flow sources for the `python-socketio` package have been modeled. +* Additional models for remote flow sources for `tornado.websocket.WebSocketHandler` have been added. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 8cb0167caf0..f8c4fa43ccb 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.4 +lastReleaseVersion: 6.0.0 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 359cd85edc2..1a004b22db3 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 5.0.5-dev +version: 6.0.0 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 5293d4c00a4..9b09127c0ae 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.5 + +No user-facing changes. + ## 1.7.4 No user-facing changes. diff --git a/python/ql/src/change-notes/released/1.7.5.md b/python/ql/src/change-notes/released/1.7.5.md new file mode 100644 index 00000000000..f17d9279e0d --- /dev/null +++ b/python/ql/src/change-notes/released/1.7.5.md @@ -0,0 +1,3 @@ +## 1.7.5 + +No user-facing changes. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index f4f3a4d5120..83aebd7c12a 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.4 +lastReleaseVersion: 1.7.5 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 235fe00a9bc..12afe3f0f0e 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.5-dev +version: 1.7.5 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 5a83b32807a..e6150ac44bc 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.8 + +No user-facing changes. + ## 5.1.7 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.1.8.md b/ruby/ql/lib/change-notes/released/5.1.8.md new file mode 100644 index 00000000000..9e1ff36f31f --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.8.md @@ -0,0 +1,3 @@ +## 5.1.8 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index f26524e1fd9..8ffbb79d224 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.7 +lastReleaseVersion: 5.1.8 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 8418f9186bb..26d2c7779c7 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.8-dev +version: 5.1.8 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 3968418c40b..43e207937df 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.5 + +No user-facing changes. + ## 1.5.4 No user-facing changes. diff --git a/ruby/ql/src/change-notes/released/1.5.5.md b/ruby/ql/src/change-notes/released/1.5.5.md new file mode 100644 index 00000000000..76d0ac89489 --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.5.5.md @@ -0,0 +1,3 @@ +## 1.5.5 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index c216828ee1c..1c73e9d9ce9 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.4 +lastReleaseVersion: 1.5.5 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 00834e12152..bdd831593cb 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.5-dev +version: 1.5.5 groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index 6dd2293abeb..c06726370df 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.2.4 + +### Minor Analysis Improvements + +* The `Deref` trait is now considered during method resolution. This means that method calls on receivers implementing the `Deref` trait will correctly resolve to methods defined on the target type. This may result in additional query results, especially for data flow queries. +* Renamed the `Adt` class to `TypeItem` and moved common predicates from `Struct`, `Enum`, and `Union` to `TypeItem`. +* Added models for the Axum web application framework. +* Reading content of a value now carries taint if the value itself is tainted. For instance, if `s` is tainted then `s.field` is also tainted. This generally improves taint flow. +* The call graph is now more precise for calls that target a trait function with a default implemention. This reduces the number of false positives for data flow queries. +* Improved type inference for raw pointers (`*const` and `*mut`). This includes type inference for the raw borrow operators (`&raw const` and `&raw mut`) and dereferencing of raw pointers. + ## 0.2.3 No user-facing changes. diff --git a/rust/ql/lib/change-notes/2025-12-03-type-inference-raw-pointers.md b/rust/ql/lib/change-notes/2025-12-03-type-inference-raw-pointers.md deleted file mode 100644 index a24f86ad897..00000000000 --- a/rust/ql/lib/change-notes/2025-12-03-type-inference-raw-pointers.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved type inference for raw pointers (`*const` and `*mut`). This includes type inference for the raw borrow operators (`&raw const` and `&raw mut`) and dereferencing of raw pointers. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/2025-12-05-trait-function-dispatch.md b/rust/ql/lib/change-notes/2025-12-05-trait-function-dispatch.md deleted file mode 100644 index 5a6f0991161..00000000000 --- a/rust/ql/lib/change-notes/2025-12-05-trait-function-dispatch.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The call graph is now more precise for calls that target a trait function with a default implemention. This reduces the number of false positives for data flow queries. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md b/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md deleted file mode 100644 index 3e1cabd75f7..00000000000 --- a/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Reading content of a value now carries taint if the value itself is tainted. For instance, if `s` is tainted then `s.field` is also tainted. This generally improves taint flow. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/2025-12-16-axum-models.md b/rust/ql/lib/change-notes/2025-12-16-axum-models.md deleted file mode 100644 index baa5910d799..00000000000 --- a/rust/ql/lib/change-notes/2025-12-16-axum-models.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added models for the Axum web application framework. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/2025-12-17-adt-rename.md b/rust/ql/lib/change-notes/2025-12-17-adt-rename.md deleted file mode 100644 index 0b66b4664a1..00000000000 --- a/rust/ql/lib/change-notes/2025-12-17-adt-rename.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Renamed the `Adt` class to `TypeItem` and moved common predicates from `Struct`, `Enum`, and `Union` to `TypeItem`. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/2026-01-07-method-resolution-deref-trait.md b/rust/ql/lib/change-notes/2026-01-07-method-resolution-deref-trait.md deleted file mode 100644 index 2ed9cf750cb..00000000000 --- a/rust/ql/lib/change-notes/2026-01-07-method-resolution-deref-trait.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `Deref` trait is now considered during method resolution. This means that method calls on receivers implementing the `Deref` trait will correctly resolve to methods defined on the target type. This may result in additional query results, especially for data flow queries. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/released/0.2.4.md b/rust/ql/lib/change-notes/released/0.2.4.md new file mode 100644 index 00000000000..3920a308044 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.4.md @@ -0,0 +1,10 @@ +## 0.2.4 + +### Minor Analysis Improvements + +* The `Deref` trait is now considered during method resolution. This means that method calls on receivers implementing the `Deref` trait will correctly resolve to methods defined on the target type. This may result in additional query results, especially for data flow queries. +* Renamed the `Adt` class to `TypeItem` and moved common predicates from `Struct`, `Enum`, and `Union` to `TypeItem`. +* Added models for the Axum web application framework. +* Reading content of a value now carries taint if the value itself is tainted. For instance, if `s` is tainted then `s.field` is also tainted. This generally improves taint flow. +* The call graph is now more precise for calls that target a trait function with a default implemention. This reduces the number of false positives for data flow queries. +* Improved type inference for raw pointers (`*const` and `*mut`). This includes type inference for the raw borrow operators (`&raw const` and `&raw mut`) and dereferencing of raw pointers. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index 0b605901b42..7f1e3841dcd 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.3 +lastReleaseVersion: 0.2.4 diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 568418c1332..ef1689ff076 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.4-dev +version: 0.2.4 groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index 36aec92674d..6f17ba91133 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.1.25 + +### Minor Analysis Improvements + +* Fixed common false positives for the `rust/unused-variable` and `rust/unused-value` queries. +* Fixed false positives from the `rust/access-invalid-pointer` query, by only considering dereferences of raw pointers as sinks. +* Fixed false positives from the `rust/access-after-lifetime-ended` query, involving calls to trait methods. +* The `rust/hard-coded-cryptographic-value` query has been extended with new heuristic sinks identifying passwords, initialization vectors, nonces and salts. + ## 0.1.24 No user-facing changes. diff --git a/rust/ql/src/change-notes/2025-12-01-hard-coded-cryptographic-value.md b/rust/ql/src/change-notes/2025-12-01-hard-coded-cryptographic-value.md deleted file mode 100644 index f211982df62..00000000000 --- a/rust/ql/src/change-notes/2025-12-01-hard-coded-cryptographic-value.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `rust/hard-coded-cryptographic-value` query has been extended with new heuristic sinks identifying passwords, initialization vectors, nonces and salts. diff --git a/rust/ql/src/change-notes/2025-12-04-access-after-lifetime-ended.md b/rust/ql/src/change-notes/2025-12-04-access-after-lifetime-ended.md deleted file mode 100644 index 1e9200eec8f..00000000000 --- a/rust/ql/src/change-notes/2025-12-04-access-after-lifetime-ended.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed false positives from the `rust/access-after-lifetime-ended` query, involving calls to trait methods. diff --git a/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md b/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md deleted file mode 100644 index c0ccd758e8d..00000000000 --- a/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed false positives from the `rust/access-invalid-pointer` query, by only considering dereferences of raw pointers as sinks. diff --git a/rust/ql/src/change-notes/2025-12-10-unused-variable.md b/rust/ql/src/change-notes/2025-12-10-unused-variable.md deleted file mode 100644 index 7391255e608..00000000000 --- a/rust/ql/src/change-notes/2025-12-10-unused-variable.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed common false positives for the `rust/unused-variable` and `rust/unused-value` queries. diff --git a/rust/ql/src/change-notes/released/0.1.25.md b/rust/ql/src/change-notes/released/0.1.25.md new file mode 100644 index 00000000000..36eda5e0851 --- /dev/null +++ b/rust/ql/src/change-notes/released/0.1.25.md @@ -0,0 +1,8 @@ +## 0.1.25 + +### Minor Analysis Improvements + +* Fixed common false positives for the `rust/unused-variable` and `rust/unused-value` queries. +* Fixed false positives from the `rust/access-invalid-pointer` query, by only considering dereferences of raw pointers as sinks. +* Fixed false positives from the `rust/access-after-lifetime-ended` query, involving calls to trait methods. +* The `rust/hard-coded-cryptographic-value` query has been extended with new heuristic sinks identifying passwords, initialization vectors, nonces and salts. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 561fd0bfe38..44eb1ee2438 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.24 +lastReleaseVersion: 0.1.25 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 6a834256d50..b52234c51d6 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.25-dev +version: 0.1.25 groups: - rust - queries diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index 48b330cf5a1..161a5091515 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.14 + +No user-facing changes. + ## 0.0.13 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.14.md b/shared/concepts/change-notes/released/0.0.14.md new file mode 100644 index 00000000000..63b4d50ca45 --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.14.md @@ -0,0 +1,3 @@ +## 0.0.14 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index 044e54e4f7e..ca29e45d0a6 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.13 +lastReleaseVersion: 0.0.14 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 767770ce24a..8689cc4a66f 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.14-dev +version: 0.0.14 groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index f5521a1d403..a0141238ede 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.24 + +No user-facing changes. + ## 2.0.23 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.24.md b/shared/controlflow/change-notes/released/2.0.24.md new file mode 100644 index 00000000000..6547901c334 --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.24.md @@ -0,0 +1,3 @@ +## 2.0.24 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 1bd7e296a34..1460df314d5 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.23 +lastReleaseVersion: 2.0.24 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 4829cf18940..1e786f4a39a 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.24-dev +version: 2.0.24 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index b8f8111a341..2190138e037 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.24 + +No user-facing changes. + ## 2.0.23 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.0.24.md b/shared/dataflow/change-notes/released/2.0.24.md new file mode 100644 index 00000000000..6547901c334 --- /dev/null +++ b/shared/dataflow/change-notes/released/2.0.24.md @@ -0,0 +1,3 @@ +## 2.0.24 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 1bd7e296a34..1460df314d5 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.23 +lastReleaseVersion: 2.0.24 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 88e3717ad91..2030371e5fa 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.24-dev +version: 2.0.24 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 799b76d1aad..40e305bad35 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.40.md b/shared/mad/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 3726498ddf2..c5247c9c933 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index 96dafca5768..172f2ee2b29 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.18 + +No user-facing changes. + ## 0.0.17 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.18.md b/shared/quantum/change-notes/released/0.0.18.md new file mode 100644 index 00000000000..86c60b8abe7 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.18.md @@ -0,0 +1,3 @@ +## 0.0.18 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index cbc3d3cd493..a0d2bc59d97 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.17 +lastReleaseVersion: 0.0.18 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index d9c5869107f..9cd39b4671d 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.18-dev +version: 0.0.18 groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index c9073a6a0d3..7c9e43f8ff3 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.40.md b/shared/rangeanalysis/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 1f3aa054b0f..0a65a5b3543 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index bd4172a6f24..ecf8ebbe399 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.40.md b/shared/regex/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 708ae7ee1b2..6ef8edaa2ad 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index e37d98b1dc1..03f338ad3e6 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.16 + +No user-facing changes. + ## 2.0.15 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.16.md b/shared/ssa/change-notes/released/2.0.16.md new file mode 100644 index 00000000000..221400d393f --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.16.md @@ -0,0 +1,3 @@ +## 2.0.16 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 0377ae283a3..c10461a785c 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.15 +lastReleaseVersion: 2.0.16 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index f755bda3379..090657b131b 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.16-dev +version: 2.0.16 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index dd213e111b4..8718668249f 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.40.md b/shared/threat-models/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 45e4e04f51c..083a882a597 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.40-dev +version: 1.0.40 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 1e813c59b63..6a9afbe090a 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.40.md b/shared/tutorial/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 651844a76ad..ab99a483de0 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index e937ff6cb9e..37cada86362 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.40.md b/shared/typeflow/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index eb199d36dee..8ecec46f7bd 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index 7ac497bdb32..2daa850c9cd 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.21 + +No user-facing changes. + ## 0.0.20 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.21.md b/shared/typeinference/change-notes/released/0.0.21.md new file mode 100644 index 00000000000..d32472e976d --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.21.md @@ -0,0 +1,3 @@ +## 0.0.21 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index d2e86745bca..0c15c351db4 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.20 +lastReleaseVersion: 0.0.21 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 1c533ad3863..8316949f054 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.21-dev +version: 0.0.21 groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 7f86f9e8166..769f68dd3dd 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.24 + +No user-facing changes. + ## 2.0.23 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.24.md b/shared/typetracking/change-notes/released/2.0.24.md new file mode 100644 index 00000000000..6547901c334 --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.24.md @@ -0,0 +1,3 @@ +## 2.0.24 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 1bd7e296a34..1460df314d5 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.23 +lastReleaseVersion: 2.0.24 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 2a1ef48e92a..e16b1b4393b 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.24-dev +version: 2.0.24 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index c553f4c1f63..5ef65f8781d 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.40.md b/shared/typos/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 6baa76ffa5c..4d32c8d127e 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 3578e000170..1c818e1f21d 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.27 + +No user-facing changes. + ## 2.0.26 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.27.md b/shared/util/change-notes/released/2.0.27.md new file mode 100644 index 00000000000..639cf77090e --- /dev/null +++ b/shared/util/change-notes/released/2.0.27.md @@ -0,0 +1,3 @@ +## 2.0.27 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 63d57bef481..a047558f018 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.26 +lastReleaseVersion: 2.0.27 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index db3d6fb7f2d..ff2324b5ebf 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.27-dev +version: 2.0.27 groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index 5bb981adb8c..cb8550f886b 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.40.md b/shared/xml/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index d31c816dafc..e004d8a7cca 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index dd850460279..82c9137dbbf 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.40 + +No user-facing changes. + ## 1.0.39 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.40.md b/shared/yaml/change-notes/released/1.0.40.md new file mode 100644 index 00000000000..3f2f101b3b7 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.40.md @@ -0,0 +1,3 @@ +## 1.0.40 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index c310c9f1e78..326e4b5da67 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.39 +lastReleaseVersion: 1.0.40 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index d154970377b..6319b7bab31 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.40-dev +version: 1.0.40 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index d1fa9e09fdd..efad17a8e8b 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 6.2.0 + +### Major Analysis Improvements + +* Upgraded to allow analysis of Swift 6.2.3. +* Upgraded to allow analysis of Swift 6.2.2. + ## 6.1.4 No user-facing changes. diff --git a/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md b/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md deleted file mode 100644 index 27927802dba..00000000000 --- a/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Upgraded to allow analysis of Swift 6.2.2. \ No newline at end of file diff --git a/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md b/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md deleted file mode 100644 index b8106460049..00000000000 --- a/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Upgraded to allow analysis of Swift 6.2.3. \ No newline at end of file diff --git a/swift/ql/lib/change-notes/released/6.2.0.md b/swift/ql/lib/change-notes/released/6.2.0.md new file mode 100644 index 00000000000..065e47507e9 --- /dev/null +++ b/swift/ql/lib/change-notes/released/6.2.0.md @@ -0,0 +1,6 @@ +## 6.2.0 + +### Major Analysis Improvements + +* Upgraded to allow analysis of Swift 6.2.3. +* Upgraded to allow analysis of Swift 6.2.2. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 7dbbf7fb553..35c46c599f0 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.4 +lastReleaseVersion: 6.2.0 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 77172d624e7..420bf2ca32e 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.1.5-dev +version: 6.2.0 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 093bfc1c99a..b555657d87a 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.2.14 + +No user-facing changes. + ## 1.2.13 No user-facing changes. diff --git a/swift/ql/src/change-notes/released/1.2.14.md b/swift/ql/src/change-notes/released/1.2.14.md new file mode 100644 index 00000000000..a46ed3aa08f --- /dev/null +++ b/swift/ql/src/change-notes/released/1.2.14.md @@ -0,0 +1,3 @@ +## 1.2.14 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index f95a122f916..ef55ed9564a 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.13 +lastReleaseVersion: 1.2.14 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 15a1f6308dc..b1632592ec8 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.14-dev +version: 1.2.14 groups: - swift - queries From 783676566cabf96c67deeb02ff9ee9567f123e68 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 19 Jan 2026 15:12:05 +0000 Subject: [PATCH 234/263] Fix typo in changelog --- java/ql/src/CHANGELOG.md | 2 +- java/ql/src/change-notes/released/1.10.5.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index a17607e5732..113c024d14a 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -2,7 +2,7 @@ ### Minor Analysis Improvements -* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Credentials queries. * Java thread safety analysis now understands initialization to thread safe classes inside constructors. ## 1.10.4 diff --git a/java/ql/src/change-notes/released/1.10.5.md b/java/ql/src/change-notes/released/1.10.5.md index 27178581620..03136b7afe2 100644 --- a/java/ql/src/change-notes/released/1.10.5.md +++ b/java/ql/src/change-notes/released/1.10.5.md @@ -2,5 +2,5 @@ ### Minor Analysis Improvements -* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Cretentials queries. +* Added sink models for `com.couchbase` supporting SQL Injection and Hardcoded Credentials queries. * Java thread safety analysis now understands initialization to thread safe classes inside constructors. From 1739e135f5e38a54549dc61a1f9881ed0e3a37f7 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 19 Jan 2026 15:17:11 +0000 Subject: [PATCH 235/263] Fix list formatting inconsistency --- javascript/ql/lib/CHANGELOG.md | 2 +- javascript/ql/lib/change-notes/released/2.6.20.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 5e63cf0510e..08f8bb5fbb2 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -2,7 +2,7 @@ ### Minor Analysis Improvements -- Support `use cache` directives for Next.js 16. +* Support `use cache` directives for Next.js 16. * Added `PreCallGraphStep` flow model for React's `useRef` hook. * Added a `DomValueSource` that uses the `current` property off the object returned by React's `useRef` hook. diff --git a/javascript/ql/lib/change-notes/released/2.6.20.md b/javascript/ql/lib/change-notes/released/2.6.20.md index d9a992efb97..d5c89a62f51 100644 --- a/javascript/ql/lib/change-notes/released/2.6.20.md +++ b/javascript/ql/lib/change-notes/released/2.6.20.md @@ -2,6 +2,6 @@ ### Minor Analysis Improvements -- Support `use cache` directives for Next.js 16. +* Support `use cache` directives for Next.js 16. * Added `PreCallGraphStep` flow model for React's `useRef` hook. * Added a `DomValueSource` that uses the `current` property off the object returned by React's `useRef` hook. From 48475e66afbef2e480ca3ed2016ef0452d495f23 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 19 Jan 2026 15:49:08 +0000 Subject: [PATCH 236/263] Post-release preparation for codeql-cli-2.24.0 --- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/concepts/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 4aeb4405083..27d4fa665e9 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.26 +version: 0.4.27-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index f8b801a168a..e93b555f030 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.18 +version: 0.6.19-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 0eb6d381425..4ee4779041d 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 7.0.0 +version: 7.0.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 6ae2e8d1750..30fd4696695 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.9 +version: 1.5.10-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index fbfa5cf88fa..59e35f8f8a2 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.57 +version: 1.7.58-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 76ee08aa0b2..a37381968ef 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.57 +version: 1.7.58-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 2991ad96180..235030e2601 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.5 +version: 5.4.6-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 0dbbc39c39d..2ea09521187 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.6.0 +version: 1.6.1-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 8e49b3c3225..b164141b828 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.40 +version: 1.0.41-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 89863fc641a..669112f115d 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 6.0.0 +version: 6.0.1-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index e6c835ad42a..da64d00094f 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.4 +version: 1.5.5-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index e4c0fd1c9a1..37de3eb6f72 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.4 +version: 7.8.5-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index e3fa999e0bc..54fa90952dd 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.5 +version: 1.10.6-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 2a70f7bc42e..b9abf987afb 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.20 +version: 2.6.21-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 354f56fbdec..9eb734b9d11 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.3.0 +version: 2.3.1-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 1bbc2748929..b01f97237d3 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.40 +version: 1.0.41-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 1a004b22db3..ff6a730a2ea 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 6.0.0 +version: 6.0.1-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 12afe3f0f0e..8b797e76e6a 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.5 +version: 1.7.6-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 26d2c7779c7..1a0515cc776 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.8 +version: 5.1.9-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index bdd831593cb..8534baf2482 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.5 +version: 1.5.6-dev groups: - ruby - queries diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index ef1689ff076..c976e05b9b9 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.4 +version: 0.2.5-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index b52234c51d6..e8873e00339 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.25 +version: 0.1.26-dev groups: - rust - queries diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 8689cc4a66f..0acc44a77e6 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.14 +version: 0.0.15-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 1e786f4a39a..fe9c546bd4a 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.24 +version: 2.0.25-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 2030371e5fa..f1c036d74df 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.24 +version: 2.0.25-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index c5247c9c933..f001129240f 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 9cd39b4671d..de32dad32f1 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.18 +version: 0.0.19-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 0a65a5b3543..5ecb12275e6 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 6ef8edaa2ad..c57a3de5189 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 090657b131b..ac679f613ea 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.16 +version: 2.0.17-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 083a882a597..f16ee329d00 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.40 +version: 1.0.41-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index ab99a483de0..8ffe365de0a 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index 8ecec46f7bd..773700f2ac1 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 8316949f054..323af6d7d5d 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.21 +version: 0.0.22-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index e16b1b4393b..3c2758e0907 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.24 +version: 2.0.25-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 4d32c8d127e..07154ada547 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index ff2324b5ebf..0b10b300a47 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.27 +version: 2.0.28-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index e004d8a7cca..86ac177bdbf 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 6319b7bab31..9e3dec90b6d 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.40 +version: 1.0.41-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 420bf2ca32e..84482a72c80 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.2.0 +version: 6.2.1-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index b1632592ec8..61ca00447b2 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.14 +version: 1.2.15-dev groups: - swift - queries From 75cab960e2a8b54e580da081b20bdf0b9923d4ba Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 20 Jan 2026 08:49:27 +0100 Subject: [PATCH 237/263] Rust: Make `AnyTraitFn` abstract --- rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index e242a887798..f879306a001 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -144,17 +144,19 @@ class FutureTrait extends Trait { } /** A function trait `FnOnce`, `FnMut`, or `Fn`. */ -class AnyFnTrait extends Trait { +abstract private class AnyFnTraitImpl extends Trait { /** Gets the `Args` type parameter of this trait. */ TypeParam getTypeParam() { result = this.getGenericParamList().getGenericParam(0) } } +final class AnyFnTrait = AnyFnTraitImpl; + /** * The [`FnOnce` trait][1]. * * [1]: https://doc.rust-lang.org/std/ops/trait.FnOnce.html */ -class FnOnceTrait extends AnyFnTrait { +class FnOnceTrait extends AnyFnTraitImpl { pragma[nomagic] FnOnceTrait() { this.getCanonicalPath() = "core::ops::function::FnOnce" } @@ -168,7 +170,7 @@ class FnOnceTrait extends AnyFnTrait { * * [1]: https://doc.rust-lang.org/std/ops/trait.FnMut.html */ -class FnMutTrait extends AnyFnTrait { +class FnMutTrait extends AnyFnTraitImpl { pragma[nomagic] FnMutTrait() { this.getCanonicalPath() = "core::ops::function::FnMut" } } @@ -178,7 +180,7 @@ class FnMutTrait extends AnyFnTrait { * * [1]: https://doc.rust-lang.org/std/ops/trait.Fn.html */ -class FnTrait extends AnyFnTrait { +class FnTrait extends AnyFnTraitImpl { pragma[nomagic] FnTrait() { this.getCanonicalPath() = "core::ops::function::Fn" } } From 8e6f920ae2eb609500bd09aaaf25dad5241ef77a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 20 Jan 2026 08:49:45 +0100 Subject: [PATCH 238/263] Rust: Fix naming of `mention_dyn_fn` --- rust/tools/builtins/mentions.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/tools/builtins/mentions.rs b/rust/tools/builtins/mentions.rs index 3170c1bfbdf..11b3bda6a52 100644 --- a/rust/tools/builtins/mentions.rs +++ b/rust/tools/builtins/mentions.rs @@ -3,4 +3,4 @@ use std::future::Future; fn mention_dyn_future(f: &dyn Future) {} -fn mention_dyn_fn_once(f: &dyn Fn() -> F) {} +fn mention_dyn_fn(f: &dyn Fn() -> F) {} From dd73399238185613e6b3752dcef1db303ec50682 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 20 Jan 2026 09:57:27 +0100 Subject: [PATCH 239/263] Rust: Tweak a comment Co-authored-by: Tom Hvitved --- .../lib/codeql/rust/internal/typeinference/TypeInference.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 8759058d84c..be102aca76d 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -3830,8 +3830,8 @@ private Type invokedClosureFnTypeAt(InvokedClosureExpr ce, TypePath path) { * * We model closures as `dyn Fn` trait object types. A closure might implement * only `Fn`, `FnMut`, or `FnOnce`. But since `Fn` is a subtrait of the others, - * giving closures the type `dyn Fn` works well in practice—even if not entirely - * accurate. + * giving closures the type `dyn Fn` works well in practice -- even if not + * entirely accurate. */ private DynTraitType closureRootType() { result = TDynTraitType(any(FnTrait t)) // always exists because of the mention in `builtins/mentions.rs` From 8d5eb407ad6fd312fdbaf759664f175ed8ccf876 Mon Sep 17 00:00:00 2001 From: Philip Ginsbach Date: Tue, 20 Jan 2026 11:08:39 +0000 Subject: [PATCH 240/263] incorporate additional suggestions from PR review --- docs/codeql/ql-language-reference/annotations.rst | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/codeql/ql-language-reference/annotations.rst b/docs/codeql/ql-language-reference/annotations.rst index 17a4c2cc76e..4f5c2fdaa7d 100644 --- a/docs/codeql/ql-language-reference/annotations.rst +++ b/docs/codeql/ql-language-reference/annotations.rst @@ -517,11 +517,13 @@ were a fully extracted database at the newer commit, while reusing as much cache from the base database as possible. Ideally, analysis time is proportional to the size of the diff rather than the full codebase. -To achieve this, predicates are divided into *local* and *global* categories. Local -predicates are evaluated separately on base and overlay data, with results combined at -the frontier between local and global code. Global predicates operate on the combined -data. Local predicates typically take time proportional to the diff size, while global -predicates take time proportional to the full codebase. +To achieve this, predicates are divided into *local* and *global* categories, with global +being the default. Local predicates are evaluated independently on base and overlay data, +and thus typically take time proportional to the diff size; global predicates operate on +the combined data, and thus take time proportional to the full codebase. When a global +predicate calls a local predicate, results from both the base and overlay evaluations of +the local predicate are combined, with stale base results filtered out through a process +called "discarding". Overlay evaluation is primarily used internally by GitHub Code Scanning to speed up pull request analysis. Most QL developers do not need to use these annotations directly, From d125e224ac39b4edf3b704385f8e1286773ef8d0 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 16:34:48 +0000 Subject: [PATCH 241/263] python: Add dbscheme regeneration instructions --- python/extractor/semmle/dbscheme_gen.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/extractor/semmle/dbscheme_gen.py b/python/extractor/semmle/dbscheme_gen.py index 7c3a79fc371..cab51b9741e 100644 --- a/python/extractor/semmle/dbscheme_gen.py +++ b/python/extractor/semmle/dbscheme_gen.py @@ -62,6 +62,7 @@ def write(nodes, out): HEADER = '''/* * This dbscheme is auto-generated by '%s'. + * Run "make dbscheme" in python/extractor/ to regenerate. * WARNING: Any modifications to this file will be lost. * Relations can be changed by modifying master.py or * by adding rules to dbscheme.template From d1175276ca1bbba7ac4df0e2889abb68975aaa5c Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 16:37:43 +0000 Subject: [PATCH 242/263] python: Use more standard shared dbscheme sections We now use the shared "Overlay support" and "Database metadata". --- python/extractor/semmle/dbscheme.template | 24 ++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/python/extractor/semmle/dbscheme.template b/python/extractor/semmle/dbscheme.template index 6b320aafab6..8c6b16d444d 100644 --- a/python/extractor/semmle/dbscheme.template +++ b/python/extractor/semmle/dbscheme.template @@ -40,20 +40,26 @@ externalData( string value : string ref ); +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + /*- Overlay support -*/ /** - * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, - * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, - * when building an overlay database, and these can be used by the discard predicates. + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. */ -databaseMetadata( - string metadataKey : string ref, - string value : string ref -); - overlayChangedFiles( - string path : string ref + string path: string ref ); /*- DEPRECATED: Snapshot date -*/ From 470bc7d6da183191e251e4d36fdb41033e5af3ce Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 16:46:26 +0000 Subject: [PATCH 243/263] ruby: Make 'dbscheme' a phony target --- ruby/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/ruby/Makefile b/ruby/Makefile index ddaca6534fb..34ae7802350 100644 --- a/ruby/Makefile +++ b/ruby/Makefile @@ -42,6 +42,7 @@ tools: $(BIN_FILES) ../target/release/%$(EXE): cd extractor && cargo build --release +.PHONY: dbscheme dbscheme: cd extractor && cargo build --release ../target/release/codeql-extractor-ruby generate --dbscheme ql/lib/ruby.dbscheme --library ql/lib/codeql/ruby/ast/internal/TreeSitter.qll From c6500e2759c003ecfdb704355034793c29b74624 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:17:23 +0000 Subject: [PATCH 244/263] tree-sitter: Add dbscheme regeneration instructions --- ql/extractor/src/generator.rs | 3 ++- ruby/extractor/src/generator.rs | 7 ++++++- shared/tree-sitter-extractor/src/generator/mod.rs | 6 ++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ql/extractor/src/generator.rs b/ql/extractor/src/generator.rs index 1dca6969f34..d1d5e20969c 100644 --- a/ql/extractor/src/generator.rs +++ b/ql/extractor/src/generator.rs @@ -36,5 +36,6 @@ pub fn run(options: Options) -> std::io::Result<()> { }, ]; - generate(languages, options.dbscheme, options.library) + generate(languages, options.dbscheme, options.library, + "run 'scripts/create-extractor-pack.sh' in ql/") } diff --git a/ruby/extractor/src/generator.rs b/ruby/extractor/src/generator.rs index 00d878243ae..de1d0dbfd7e 100644 --- a/ruby/extractor/src/generator.rs +++ b/ruby/extractor/src/generator.rs @@ -28,5 +28,10 @@ pub fn run(options: Options) -> std::io::Result<()> { }, ]; - generate(languages, options.dbscheme, options.library) + generate( + languages, + options.dbscheme, + options.library, + "run 'make dbscheme' in ql/ruby/", + ) } diff --git a/shared/tree-sitter-extractor/src/generator/mod.rs b/shared/tree-sitter-extractor/src/generator/mod.rs index c886ec98eeb..78e9e4a0b69 100644 --- a/shared/tree-sitter-extractor/src/generator/mod.rs +++ b/shared/tree-sitter-extractor/src/generator/mod.rs @@ -17,6 +17,7 @@ pub fn generate( languages: Vec, dbscheme_path: PathBuf, ql_library_path: PathBuf, + regenerate_instructions: &str, ) -> std::io::Result<()> { let dbscheme_file = File::create(dbscheme_path).map_err(|e| { tracing::error!("Failed to create dbscheme file: {}", e); @@ -26,8 +27,9 @@ pub fn generate( writeln!( dbscheme_writer, "// CodeQL database schema for {}\n\ - // Automatically generated from the tree-sitter grammar; do not edit\n", - languages[0].name + // Automatically generated from the tree-sitter grammar; do not edit\n\ + // To regenerate, {}\n", + languages[0].name, regenerate_instructions )?; writeln!(dbscheme_writer, include_str!("prefix.dbscheme"))?; From 7d6a1f72d5ffdbc1730d20e441fc9d4f4edc28ac Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:21:07 +0000 Subject: [PATCH 245/263] C++: Use more standard shared dbscheme sections We now use the shared "Overlay support" and "Database metadata". --- cpp/ql/lib/semmlecode.cpp.dbscheme | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 1402ab319d2..83100310bf7 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -2389,6 +2389,8 @@ link_parent( int link_target : @link_target ref ); +/*- Database metadata -*/ + /** * The CLI will automatically emit applicable tuples for this table, * such as `databaseMetadata("isOverlay", "true")` when building an @@ -2399,6 +2401,8 @@ databaseMetadata( string value: string ref ); +/*- Overlay support -*/ + /** * The CLI will automatically emit tuples for each new/modified/deleted file * when building an overlay database. From 4140121e968c510f94b80191f31fd518ee1c9462 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:22:13 +0000 Subject: [PATCH 246/263] javascript: Use more standard shared dbscheme sections We now use the shared "Overlay support" and "Database metadata". --- javascript/ql/lib/semmlecode.javascript.dbscheme | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/javascript/ql/lib/semmlecode.javascript.dbscheme b/javascript/ql/lib/semmlecode.javascript.dbscheme index 80b2bc24189..578367e82a2 100644 --- a/javascript/ql/lib/semmlecode.javascript.dbscheme +++ b/javascript/ql/lib/semmlecode.javascript.dbscheme @@ -1195,11 +1195,23 @@ configLocations( @configLocatable = @config | @configName | @configValue; /*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ databaseMetadata( string metadataKey: string ref, string value: string ref ); +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ overlayChangedFiles( string path: string ref ); From df8029ff872586d0cd951c1ae18b7f818b1c00dc Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:24:31 +0000 Subject: [PATCH 247/263] tree-sitter: Use more standard shared dbscheme sections We now use the shared "Overlay support" and "Database metadata". --- .../src/generator/prefix.dbscheme | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/shared/tree-sitter-extractor/src/generator/prefix.dbscheme b/shared/tree-sitter-extractor/src/generator/prefix.dbscheme index a52390bed1a..d59777f5e3d 100644 --- a/shared/tree-sitter-extractor/src/generator/prefix.dbscheme +++ b/shared/tree-sitter-extractor/src/generator/prefix.dbscheme @@ -106,11 +106,23 @@ yaml_locations(unique int locatable: @yaml_locatable ref, @yaml_locatable = @yaml_node | @yaml_error; /*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ databaseMetadata( string metadataKey: string ref, string value: string ref ); +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ overlayChangedFiles( string path: string ref ); From 4b9c9e7a5a731e193e0356357e7f3e94d186c5dc Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:25:29 +0000 Subject: [PATCH 248/263] Ruby: Regenerate dbscheme --- ruby/ql/lib/ruby.dbscheme | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ruby/ql/lib/ruby.dbscheme b/ruby/ql/lib/ruby.dbscheme index eae6926f500..29b7b6fc198 100644 --- a/ruby/ql/lib/ruby.dbscheme +++ b/ruby/ql/lib/ruby.dbscheme @@ -1,5 +1,6 @@ // CodeQL database schema for Ruby // Automatically generated from the tree-sitter grammar; do not edit +// To regenerate, run 'make dbscheme' in ql/ruby/ /*- Files and folders -*/ @@ -109,11 +110,23 @@ yaml_locations(unique int locatable: @yaml_locatable ref, @yaml_locatable = @yaml_node | @yaml_error; /*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ databaseMetadata( string metadataKey: string ref, string value: string ref ); +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ overlayChangedFiles( string path: string ref ); From d2da49220b715eaf2245b697e99f03612812458e Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:25:52 +0000 Subject: [PATCH 249/263] python: Regenerate dbscheme --- python/ql/lib/semmlecode.python.dbscheme | 25 +++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/python/ql/lib/semmlecode.python.dbscheme b/python/ql/lib/semmlecode.python.dbscheme index 8d257a4a9bc..279cbb08d38 100644 --- a/python/ql/lib/semmlecode.python.dbscheme +++ b/python/ql/lib/semmlecode.python.dbscheme @@ -1,5 +1,6 @@ /* * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. * WARNING: Any modifications to this file will be lost. * Relations can be changed by modifying master.py or * by adding rules to dbscheme.template @@ -47,20 +48,26 @@ externalData( string value : string ref ); +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + /*- Overlay support -*/ /** - * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, - * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, - * when building an overlay database, and these can be used by the discard predicates. + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. */ -databaseMetadata( - string metadataKey : string ref, - string value : string ref -); - overlayChangedFiles( - string path : string ref + string path: string ref ); /*- DEPRECATED: Snapshot date -*/ From fdefb4d23ad3a20077f1da00c5c4e45e8787a07d Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:30:51 +0000 Subject: [PATCH 250/263] ql-for-ql: Regenerate dbscheme --- ql/ql/src/ql.dbscheme | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ql/ql/src/ql.dbscheme b/ql/ql/src/ql.dbscheme index 98faa40569e..87c1125b41a 100644 --- a/ql/ql/src/ql.dbscheme +++ b/ql/ql/src/ql.dbscheme @@ -1,5 +1,6 @@ // CodeQL database schema for QL // Automatically generated from the tree-sitter grammar; do not edit +// To regenerate, run 'scripts/create-extractor-pack.sh' in ql/ /*- Files and folders -*/ @@ -109,11 +110,23 @@ yaml_locations(unique int locatable: @yaml_locatable ref, @yaml_locatable = @yaml_node | @yaml_error; /*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ databaseMetadata( string metadataKey: string ref, string value: string ref ); +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ overlayChangedFiles( string path: string ref ); From a299174f4d362b6be09d17fb3898fb7c1a9e2439 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:33:31 +0000 Subject: [PATCH 251/263] javascript: Add up/downgrade scripts --- .../old.dbscheme | 1217 +++++++++++++++++ .../semmlecode.dbscheme | 1205 ++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 1205 ++++++++++++++++ .../semmlecode.javascript.dbscheme | 1217 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 4848 insertions(+) create mode 100644 javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/old.dbscheme create mode 100644 javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/semmlecode.dbscheme create mode 100644 javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/upgrade.properties create mode 100644 javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/old.dbscheme create mode 100644 javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/semmlecode.javascript.dbscheme create mode 100644 javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/upgrade.properties diff --git a/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/old.dbscheme b/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/old.dbscheme new file mode 100644 index 00000000000..578367e82a2 --- /dev/null +++ b/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/old.dbscheme @@ -0,0 +1,1217 @@ +/*** Standard fragments ***/ + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- JavaScript-specific part -*/ + +@location = @location_default + +@sourceline = @locatable; + +filetype( + int file: @file ref, + string filetype: string ref +) + +// top-level code fragments +toplevels (unique int id: @toplevel, + int kind: int ref); + +is_externs (int toplevel: @toplevel ref); + +case @toplevel.kind of + 0 = @script +| 1 = @inline_script +| 2 = @event_handler +| 3 = @javascript_url +| 4 = @template_toplevel; + +is_module (int tl: @toplevel ref); +is_nodejs (int tl: @toplevel ref); +is_es2015_module (int tl: @toplevel ref); +is_closure_module (int tl: @toplevel ref); + +@xml_node_with_code = @xmlelement | @xmlattribute | @template_placeholder_tag; +toplevel_parent_xml_node( + unique int toplevel: @toplevel ref, + int xmlnode: @xml_node_with_code ref); + +xml_element_parent_expression( + unique int xmlnode: @xmlelement ref, + int expression: @expr ref, + int index: int ref); + +// statements +#keyset[parent, idx] +stmts (unique int id: @stmt, + int kind: int ref, + int parent: @stmt_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +stmt_containers (unique int stmt: @stmt ref, + int container: @stmt_container ref); + +jump_targets (unique int jump: @stmt ref, + int target: @stmt ref); + +@stmt_parent = @stmt | @toplevel | @function_expr | @arrow_function_expr | @static_initializer; +@stmt_container = @toplevel | @function | @namespace_declaration | @external_module_declaration | @global_augmentation_declaration; + +case @stmt.kind of + 0 = @empty_stmt +| 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @labeled_stmt +| 5 = @break_stmt +| 6 = @continue_stmt +| 7 = @with_stmt +| 8 = @switch_stmt +| 9 = @return_stmt +| 10 = @throw_stmt +| 11 = @try_stmt +| 12 = @while_stmt +| 13 = @do_while_stmt +| 14 = @for_stmt +| 15 = @for_in_stmt +| 16 = @debugger_stmt +| 17 = @function_decl_stmt +| 18 = @var_decl_stmt +| 19 = @case +| 20 = @catch_clause +| 21 = @for_of_stmt +| 22 = @const_decl_stmt +| 23 = @let_stmt +| 24 = @legacy_let_stmt +| 25 = @for_each_stmt +| 26 = @class_decl_stmt +| 27 = @import_declaration +| 28 = @export_all_declaration +| 29 = @export_default_declaration +| 30 = @export_named_declaration +| 31 = @namespace_declaration +| 32 = @import_equals_declaration +| 33 = @export_assign_declaration +| 34 = @interface_declaration +| 35 = @type_alias_declaration +| 36 = @enum_declaration +| 37 = @external_module_declaration +| 38 = @export_as_namespace_declaration +| 39 = @global_augmentation_declaration +| 40 = @using_decl_stmt +; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @let_stmt | @legacy_let_stmt | @using_decl_stmt; + +@export_declaration = @export_all_declaration | @export_default_declaration | @export_named_declaration; + +@namespace_definition = @namespace_declaration | @enum_declaration; +@type_definition = @class_definition | @interface_declaration | @enum_declaration | @type_alias_declaration | @enum_member; + +is_instantiated(unique int decl: @namespace_declaration ref); + +@declarable_node = @decl_stmt | @namespace_declaration | @class_decl_stmt | @function_decl_stmt | @enum_declaration | @external_module_declaration | @global_augmentation_declaration | @field; +has_declare_keyword(unique int stmt: @declarable_node ref); + +is_for_await_of(unique int forof: @for_of_stmt ref); + +// expressions +#keyset[parent, idx] +exprs (unique int id: @expr, + int kind: int ref, + int parent: @expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @expr_or_type ref); + +enclosing_stmt (unique int expr: @expr_or_type ref, + int stmt: @stmt ref); + +expr_containers (unique int expr: @expr_or_type ref, + int container: @stmt_container ref); + +array_size (unique int ae: @arraylike ref, + int sz: int ref); + +is_delegating (int yield: @yield_expr ref); + +@expr_or_stmt = @expr | @stmt; +@expr_or_type = @expr | @typeexpr; +@expr_parent = @expr_or_stmt | @property | @function_typeexpr; +@arraylike = @array_expr | @array_pattern; +@type_annotation = @typeexpr | @jsdoc_type_expr; +@node_in_stmt_container = @cfg_node | @type_annotation | @toplevel; + +case @expr.kind of + 0 = @label +| 1 = @null_literal +| 2 = @boolean_literal +| 3 = @number_literal +| 4 = @string_literal +| 5 = @regexp_literal +| 6 = @this_expr +| 7 = @array_expr +| 8 = @obj_expr +| 9 = @function_expr +| 10 = @seq_expr +| 11 = @conditional_expr +| 12 = @new_expr +| 13 = @call_expr +| 14 = @dot_expr +| 15 = @index_expr +| 16 = @neg_expr +| 17 = @plus_expr +| 18 = @log_not_expr +| 19 = @bit_not_expr +| 20 = @typeof_expr +| 21 = @void_expr +| 22 = @delete_expr +| 23 = @eq_expr +| 24 = @neq_expr +| 25 = @eqq_expr +| 26 = @neqq_expr +| 27 = @lt_expr +| 28 = @le_expr +| 29 = @gt_expr +| 30 = @ge_expr +| 31 = @lshift_expr +| 32 = @rshift_expr +| 33 = @urshift_expr +| 34 = @add_expr +| 35 = @sub_expr +| 36 = @mul_expr +| 37 = @div_expr +| 38 = @mod_expr +| 39 = @bitor_expr +| 40 = @xor_expr +| 41 = @bitand_expr +| 42 = @in_expr +| 43 = @instanceof_expr +| 44 = @logand_expr +| 45 = @logor_expr +| 47 = @assign_expr +| 48 = @assign_add_expr +| 49 = @assign_sub_expr +| 50 = @assign_mul_expr +| 51 = @assign_div_expr +| 52 = @assign_mod_expr +| 53 = @assign_lshift_expr +| 54 = @assign_rshift_expr +| 55 = @assign_urshift_expr +| 56 = @assign_or_expr +| 57 = @assign_xor_expr +| 58 = @assign_and_expr +| 59 = @preinc_expr +| 60 = @postinc_expr +| 61 = @predec_expr +| 62 = @postdec_expr +| 63 = @par_expr +| 64 = @var_declarator +| 65 = @arrow_function_expr +| 66 = @spread_element +| 67 = @array_pattern +| 68 = @object_pattern +| 69 = @yield_expr +| 70 = @tagged_template_expr +| 71 = @template_literal +| 72 = @template_element +| 73 = @array_comprehension_expr +| 74 = @generator_expr +| 75 = @for_in_comprehension_block +| 76 = @for_of_comprehension_block +| 77 = @legacy_letexpr +| 78 = @var_decl +| 79 = @proper_varaccess +| 80 = @class_expr +| 81 = @super_expr +| 82 = @newtarget_expr +| 83 = @named_import_specifier +| 84 = @import_default_specifier +| 85 = @import_namespace_specifier +| 86 = @named_export_specifier +| 87 = @exp_expr +| 88 = @assign_exp_expr +| 89 = @jsx_element +| 90 = @jsx_qualified_name +| 91 = @jsx_empty_expr +| 92 = @await_expr +| 93 = @function_sent_expr +| 94 = @decorator +| 95 = @export_default_specifier +| 96 = @export_namespace_specifier +| 97 = @bind_expr +| 98 = @external_module_reference +| 99 = @dynamic_import +| 100 = @expression_with_type_arguments +| 101 = @prefix_type_assertion +| 102 = @as_type_assertion +| 103 = @export_varaccess +| 104 = @decorator_list +| 105 = @non_null_assertion +| 106 = @bigint_literal +| 107 = @nullishcoalescing_expr +| 108 = @e4x_xml_anyname +| 109 = @e4x_xml_static_attribute_selector +| 110 = @e4x_xml_dynamic_attribute_selector +| 111 = @e4x_xml_filter_expression +| 112 = @e4x_xml_static_qualident +| 113 = @e4x_xml_dynamic_qualident +| 114 = @e4x_xml_dotdotexpr +| 115 = @import_meta_expr +| 116 = @assignlogandexpr +| 117 = @assignlogorexpr +| 118 = @assignnullishcoalescingexpr +| 119 = @template_pipe_ref +| 120 = @generated_code_expr +| 121 = @satisfies_expr +; + +@varaccess = @proper_varaccess | @export_varaccess; +@varref = @var_decl | @varaccess; + +@identifier = @label | @varref | @type_identifier; + +@literal = @null_literal | @boolean_literal | @number_literal | @string_literal | @regexp_literal | @bigint_literal; + +@propaccess = @dot_expr | @index_expr; + +@invokeexpr = @new_expr | @call_expr; + +@unaryexpr = @neg_expr | @plus_expr | @log_not_expr | @bit_not_expr | @typeof_expr | @void_expr | @delete_expr | @spread_element; + +@equality_test = @eq_expr | @neq_expr | @eqq_expr | @neqq_expr; + +@comparison = @equality_test | @lt_expr | @le_expr | @gt_expr | @ge_expr; + +@binaryexpr = @comparison | @lshift_expr | @rshift_expr | @urshift_expr | @add_expr | @sub_expr | @mul_expr | @div_expr | @mod_expr | @exp_expr | @bitor_expr | @xor_expr | @bitand_expr | @in_expr | @instanceof_expr | @logand_expr | @logor_expr | @nullishcoalescing_expr; + +@assignment = @assign_expr | @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr | @assign_mod_expr | @assign_exp_expr | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr | @assign_or_expr | @assign_xor_expr | @assign_and_expr | @assignlogandexpr | @assignlogorexpr | @assignnullishcoalescingexpr; + +@updateexpr = @preinc_expr | @postinc_expr | @predec_expr | @postdec_expr; + +@pattern = @varref | @array_pattern | @object_pattern; + +@comprehension_expr = @array_comprehension_expr | @generator_expr; + +@comprehension_block = @for_in_comprehension_block | @for_of_comprehension_block; + +@import_specifier = @named_import_specifier | @import_default_specifier | @import_namespace_specifier; + +@exportspecifier = @named_export_specifier | @export_default_specifier | @export_namespace_specifier; + +@type_keyword_operand = @import_declaration | @export_declaration | @import_specifier; + +@type_assertion = @as_type_assertion | @prefix_type_assertion; + +@class_definition = @class_decl_stmt | @class_expr; +@interface_definition = @interface_declaration | @interface_typeexpr; +@class_or_interface = @class_definition | @interface_definition; + +@lexical_decl = @var_decl | @type_decl; +@lexical_access = @varaccess | @local_type_access | @local_var_type_access | @local_namespace_access; +@lexical_ref = @lexical_decl | @lexical_access; + +@e4x_xml_attribute_selector = @e4x_xml_static_attribute_selector | @e4x_xml_dynamic_attribute_selector; +@e4x_xml_qualident = @e4x_xml_static_qualident | @e4x_xml_dynamic_qualident; + +expr_contains_template_tag_location( + int expr: @expr ref, + int location: @location ref +); + +@template_placeholder_tag_parent = @xmlelement | @xmlattribute | @file; + +template_placeholder_tag_info( + unique int node: @template_placeholder_tag, + int parentNode: @template_placeholder_tag_parent ref, + varchar(900) raw: string ref +); + +// scopes +scopes (unique int id: @scope, + int kind: int ref); + +case @scope.kind of + 0 = @global_scope +| 1 = @function_scope +| 2 = @catch_scope +| 3 = @module_scope +| 4 = @block_scope +| 5 = @for_scope +| 6 = @for_in_scope // for-of scopes work the same as for-in scopes +| 7 = @comprehension_block_scope +| 8 = @class_expr_scope +| 9 = @namespace_scope +| 10 = @class_decl_scope +| 11 = @interface_scope +| 12 = @type_alias_scope +| 13 = @mapped_type_scope +| 14 = @enum_scope +| 15 = @external_module_scope +| 16 = @conditional_type_scope; + +scopenodes (unique int node: @ast_node ref, + int scope: @scope ref); + +scopenesting (unique int inner: @scope ref, + int outer: @scope ref); + +// functions +@function = @function_decl_stmt | @function_expr | @arrow_function_expr; + +@parameterized = @function | @catch_clause; +@type_parameterized = @function | @class_or_interface | @type_alias_declaration | @mapped_typeexpr | @infer_typeexpr; + +is_generator (int fun: @function ref); +has_rest_parameter (int fun: @function ref); +is_async (int fun: @function ref); + +// variables and lexically scoped type names +#keyset[scope, name] +variables (unique int id: @variable, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_type_names (unique int id: @local_type_name, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_namespace_names (unique int id: @local_namespace_name, + varchar(900) name: string ref, + int scope: @scope ref); + +is_arguments_object (int id: @variable ref); + +@lexical_name = @variable | @local_type_name | @local_namespace_name; + +@bind_id = @varaccess | @local_var_type_access; +bind (unique int id: @bind_id ref, + int decl: @variable ref); + +decl (unique int id: @var_decl ref, + int decl: @variable ref); + +@typebind_id = @local_type_access | @export_varaccess; +typebind (unique int id: @typebind_id ref, + int decl: @local_type_name ref); + +@typedecl_id = @type_decl | @var_decl; +typedecl (unique int id: @typedecl_id ref, + int decl: @local_type_name ref); + +namespacedecl (unique int id: @var_decl ref, + int decl: @local_namespace_name ref); + +@namespacebind_id = @local_namespace_access | @export_varaccess; +namespacebind (unique int id: @namespacebind_id ref, + int decl: @local_namespace_name ref); + + +// properties in object literals, property patterns in object patterns, and method declarations in classes +#keyset[parent, index] +properties (unique int id: @property, + int parent: @property_parent ref, + int index: int ref, + int kind: int ref, + varchar(900) tostring: string ref); + +case @property.kind of + 0 = @value_property +| 1 = @property_getter +| 2 = @property_setter +| 3 = @jsx_attribute +| 4 = @function_call_signature +| 5 = @constructor_call_signature +| 6 = @index_signature +| 7 = @enum_member +| 8 = @proper_field +| 9 = @parameter_field +| 10 = @static_initializer +; + +@property_parent = @obj_expr | @object_pattern | @class_definition | @jsx_element | @interface_definition | @enum_declaration; +@property_accessor = @property_getter | @property_setter; +@call_signature = @function_call_signature | @constructor_call_signature; +@field = @proper_field | @parameter_field; +@field_or_vardeclarator = @field | @var_declarator; + +is_computed (int id: @property ref); +is_method (int id: @property ref); +is_static (int id: @property ref); +is_abstract_member (int id: @property ref); +is_const_enum (int id: @enum_declaration ref); +is_abstract_class (int id: @class_decl_stmt ref); + +has_public_keyword (int id: @property ref); +has_private_keyword (int id: @property ref); +has_protected_keyword (int id: @property ref); +has_readonly_keyword (int id: @property ref); +has_type_keyword (int id: @type_keyword_operand ref); +has_defer_keyword (int id: @import_declaration ref); +is_optional_member (int id: @property ref); +has_definite_assignment_assertion (int id: @field_or_vardeclarator ref); +is_optional_parameter_declaration (unique int parameter: @pattern ref); + +#keyset[constructor, param_index] +parameter_fields( + unique int field: @parameter_field ref, + int constructor: @function_expr ref, + int param_index: int ref +); + +// types +#keyset[parent, idx] +typeexprs ( + unique int id: @typeexpr, + int kind: int ref, + int parent: @typeexpr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref +); + +case @typeexpr.kind of + 0 = @local_type_access +| 1 = @type_decl +| 2 = @keyword_typeexpr +| 3 = @string_literal_typeexpr +| 4 = @number_literal_typeexpr +| 5 = @boolean_literal_typeexpr +| 6 = @array_typeexpr +| 7 = @union_typeexpr +| 8 = @indexed_access_typeexpr +| 9 = @intersection_typeexpr +| 10 = @parenthesized_typeexpr +| 11 = @tuple_typeexpr +| 12 = @keyof_typeexpr +| 13 = @qualified_type_access +| 14 = @generic_typeexpr +| 15 = @type_label +| 16 = @typeof_typeexpr +| 17 = @local_var_type_access +| 18 = @qualified_var_type_access +| 19 = @this_var_type_access +| 20 = @predicate_typeexpr +| 21 = @interface_typeexpr +| 22 = @type_parameter +| 23 = @plain_function_typeexpr +| 24 = @constructor_typeexpr +| 25 = @local_namespace_access +| 26 = @qualified_namespace_access +| 27 = @mapped_typeexpr +| 28 = @conditional_typeexpr +| 29 = @infer_typeexpr +| 30 = @import_type_access +| 31 = @import_namespace_access +| 32 = @import_var_type_access +| 33 = @optional_typeexpr +| 34 = @rest_typeexpr +| 35 = @bigint_literal_typeexpr +| 36 = @readonly_typeexpr +| 37 = @template_literal_typeexpr +; + +@typeref = @typeaccess | @type_decl; +@type_identifier = @type_decl | @local_type_access | @type_label | @local_var_type_access | @local_namespace_access; +@typeexpr_parent = @expr | @stmt | @property | @typeexpr; +@literal_typeexpr = @string_literal_typeexpr | @number_literal_typeexpr | @boolean_literal_typeexpr | @bigint_literal_typeexpr; +@typeaccess = @local_type_access | @qualified_type_access | @import_type_access; +@vartypeaccess = @local_var_type_access | @qualified_var_type_access | @this_var_type_access | @import_var_type_access; +@namespace_access = @local_namespace_access | @qualified_namespace_access | @import_namespace_access; +@import_typeexpr = @import_type_access | @import_namespace_access | @import_var_type_access; + +@function_typeexpr = @plain_function_typeexpr | @constructor_typeexpr; + +// types +types ( + unique int id: @type, + int kind: int ref, + varchar(900) tostring: string ref +); + +#keyset[parent, idx] +type_child ( + int child: @type ref, + int parent: @type ref, + int idx: int ref +); + +case @type.kind of + 0 = @any_type +| 1 = @string_type +| 2 = @number_type +| 3 = @union_type +| 4 = @true_type +| 5 = @false_type +| 6 = @type_reference +| 7 = @object_type +| 8 = @canonical_type_variable_type +| 9 = @typeof_type +| 10 = @void_type +| 11 = @undefined_type +| 12 = @null_type +| 13 = @never_type +| 14 = @plain_symbol_type +| 15 = @unique_symbol_type +| 16 = @objectkeyword_type +| 17 = @intersection_type +| 18 = @tuple_type +| 19 = @lexical_type_variable_type +| 20 = @this_type +| 21 = @number_literal_type +| 22 = @string_literal_type +| 23 = @unknown_type +| 24 = @bigint_type +| 25 = @bigint_literal_type +; + +@boolean_literal_type = @true_type | @false_type; +@symbol_type = @plain_symbol_type | @unique_symbol_type; +@union_or_intersection_type = @union_type | @intersection_type; +@typevariable_type = @canonical_type_variable_type | @lexical_type_variable_type; + +has_asserts_keyword(int node: @predicate_typeexpr ref); + +@typed_ast_node = @expr | @typeexpr | @function; +ast_node_type( + unique int node: @typed_ast_node ref, + int typ: @type ref); + +declared_function_signature( + unique int node: @function ref, + int sig: @signature_type ref +); + +invoke_expr_signature( + unique int node: @invokeexpr ref, + int sig: @signature_type ref +); + +invoke_expr_overload_index( + unique int node: @invokeexpr ref, + int index: int ref +); + +symbols ( + unique int id: @symbol, + int kind: int ref, + varchar(900) name: string ref +); + +symbol_parent ( + unique int symbol: @symbol ref, + int parent: @symbol ref +); + +symbol_module ( + int symbol: @symbol ref, + varchar(900) moduleName: string ref +); + +symbol_global ( + int symbol: @symbol ref, + varchar(900) globalName: string ref +); + +case @symbol.kind of + 0 = @root_symbol +| 1 = @member_symbol +| 2 = @other_symbol +; + +@type_with_symbol = @type_reference | @typevariable_type | @typeof_type | @unique_symbol_type; +@ast_node_with_symbol = @type_definition | @namespace_definition | @toplevel | @typeaccess | @namespace_access | @var_decl | @function | @invokeexpr | @import_declaration | @external_module_reference | @external_module_declaration; + +ast_node_symbol( + unique int node: @ast_node_with_symbol ref, + int symbol: @symbol ref); + +type_symbol( + unique int typ: @type_with_symbol ref, + int symbol: @symbol ref); + +#keyset[typ, name] +type_property( + int typ: @type ref, + varchar(900) name: string ref, + int propertyType: @type ref); + +type_alias( + unique int aliasType: @type ref, + int underlyingType: @type ref); + +@literal_type = @string_literal_type | @number_literal_type | @boolean_literal_type | @bigint_literal_type; +@type_with_literal_value = @string_literal_type | @number_literal_type | @bigint_literal_type; +type_literal_value( + unique int typ: @type_with_literal_value ref, + varchar(900) value: string ref); + +signature_types ( + unique int id: @signature_type, + int kind: int ref, + varchar(900) tostring: string ref, + int type_parameters: int ref, + int required_params: int ref +); + +is_abstract_signature( + unique int sig: @signature_type ref +); + +signature_rest_parameter( + unique int sig: @signature_type ref, + int rest_param_arra_type: @type ref +); + +case @signature_type.kind of + 0 = @function_signature_type +| 1 = @constructor_signature_type +; + +#keyset[typ, kind, index] +type_contains_signature ( + int typ: @type ref, + int kind: int ref, // constructor/call/index + int index: int ref, // ordering of overloaded signatures + int sig: @signature_type ref +); + +#keyset[parent, index] +signature_contains_type ( + int child: @type ref, + int parent: @signature_type ref, + int index: int ref +); + +#keyset[sig, index] +signature_parameter_name ( + int sig: @signature_type ref, + int index: int ref, + varchar(900) name: string ref +); + +number_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +string_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +base_type_names( + int typeName: @symbol ref, + int baseTypeName: @symbol ref +); + +self_types( + int typeName: @symbol ref, + int selfType: @type_reference ref +); + +tuple_type_min_length( + unique int typ: @type ref, + int minLength: int ref +); + +tuple_type_rest_index( + unique int typ: @type ref, + int index: int ref +); + +// comments +comments (unique int id: @comment, + int kind: int ref, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(900) tostring: string ref); + +case @comment.kind of + 0 = @slashslash_comment +| 1 = @slashstar_comment +| 2 = @doc_comment +| 3 = @html_comment_start +| 4 = @htmlcommentend; + +@html_comment = @html_comment_start | @htmlcommentend; +@line_comment = @slashslash_comment | @html_comment; +@block_comment = @slashstar_comment | @doc_comment; + +// source lines +lines (unique int id: @line, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(2) terminator: string ref); +indentation (int file: @file ref, + int lineno: int ref, + varchar(1) indentChar: string ref, + int indentDepth: int ref); + +// JavaScript parse errors +js_parse_errors (unique int id: @js_parse_error, + int toplevel: @toplevel ref, + varchar(900) message: string ref, + varchar(900) line: string ref); + +// regular expressions +#keyset[parent, idx] +regexpterm (unique int id: @regexpterm, + int kind: int ref, + int parent: @regexpparent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +@regexpparent = @regexpterm | @regexp_literal | @string_literal | @add_expr; + +case @regexpterm.kind of + 0 = @regexp_alt +| 1 = @regexp_seq +| 2 = @regexp_caret +| 3 = @regexp_dollar +| 4 = @regexp_wordboundary +| 5 = @regexp_nonwordboundary +| 6 = @regexp_positive_lookahead +| 7 = @regexp_negative_lookahead +| 8 = @regexp_star +| 9 = @regexp_plus +| 10 = @regexp_opt +| 11 = @regexp_range +| 12 = @regexp_dot +| 13 = @regexp_group +| 14 = @regexp_normal_constant +| 15 = @regexp_hex_escape +| 16 = @regexp_unicode_escape +| 17 = @regexp_dec_escape +| 18 = @regexp_oct_escape +| 19 = @regexp_ctrl_escape +| 20 = @regexp_char_class_escape +| 21 = @regexp_id_escape +| 22 = @regexp_backref +| 23 = @regexp_char_class +| 24 = @regexp_char_range +| 25 = @regexp_positive_lookbehind +| 26 = @regexp_negative_lookbehind +| 27 = @regexp_unicode_property_escape +| 28 = @regexp_quoted_string +| 29 = @regexp_intersection +| 30 = @regexp_subtraction; + +regexp_parse_errors (unique int id: @regexp_parse_error, + int regexp: @regexpterm ref, + varchar(900) message: string ref); + +@regexp_quantifier = @regexp_star | @regexp_plus | @regexp_opt | @regexp_range; +@regexp_escape = @regexp_char_escape | @regexp_char_class_escape | @regexp_unicode_property_escape; +@regexp_char_escape = @regexp_hex_escape | @regexp_unicode_escape | @regexp_dec_escape | @regexp_oct_escape | @regexp_ctrl_escape | @regexp_id_escape; +@regexp_constant = @regexp_normal_constant | @regexp_char_escape; +@regexp_lookahead = @regexp_positive_lookahead | @regexp_negative_lookahead; +@regexp_lookbehind = @regexp_positive_lookbehind | @regexp_negative_lookbehind; +@regexp_subpattern = @regexp_lookahead | @regexp_lookbehind; +@regexp_anchor = @regexp_dollar | @regexp_caret; + +is_greedy (int id: @regexp_quantifier ref); +range_quantifier_lower_bound (unique int id: @regexp_range ref, int lo: int ref); +range_quantifier_upper_bound (unique int id: @regexp_range ref, int hi: int ref); +is_capture (unique int id: @regexp_group ref, int number: int ref); +is_named_capture (unique int id: @regexp_group ref, string name: string ref); +is_inverted (int id: @regexp_char_class ref); +regexp_const_value (unique int id: @regexp_constant ref, varchar(1) value: string ref); +char_class_escape (unique int id: @regexp_char_class_escape ref, varchar(1) value: string ref); +backref (unique int id: @regexp_backref ref, int value: int ref); +named_backref (unique int id: @regexp_backref ref, string name: string ref); +unicode_property_escapename (unique int id: @regexp_unicode_property_escape ref, string name: string ref); +unicode_property_escapevalue (unique int id: @regexp_unicode_property_escape ref, string value: string ref); + +// tokens +#keyset[toplevel, idx] +tokeninfo (unique int id: @token, + int kind: int ref, + int toplevel: @toplevel ref, + int idx: int ref, + varchar(900) value: string ref); + +case @token.kind of + 0 = @token_eof +| 1 = @token_null_literal +| 2 = @token_boolean_literal +| 3 = @token_numeric_literal +| 4 = @token_string_literal +| 5 = @token_regular_expression +| 6 = @token_identifier +| 7 = @token_keyword +| 8 = @token_punctuator; + +// associate comments with the token immediately following them (which may be EOF) +next_token (int comment: @comment ref, int token: @token ref); + +// JSON +#keyset[parent, idx] +json (unique int id: @json_value, + int kind: int ref, + int parent: @json_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +json_literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @json_value ref); + +json_properties (int obj: @json_object ref, + varchar(900) property: string ref, + int value: @json_value ref); + +json_errors (unique int id: @json_parse_error, + varchar(900) message: string ref); + +json_locations(unique int locatable: @json_locatable ref, + int location: @location_default ref); + +case @json_value.kind of + 0 = @json_null +| 1 = @json_boolean +| 2 = @json_number +| 3 = @json_string +| 4 = @json_array +| 5 = @json_object; + +@json_parent = @json_object | @json_array | @file; + +@json_locatable = @json_value | @json_parse_error; + +// locations +@ast_node = @toplevel | @stmt | @expr | @property | @typeexpr; + +@locatable = @file + | @ast_node + | @comment + | @line + | @js_parse_error | @regexp_parse_error + | @regexpterm + | @json_locatable + | @token + | @cfg_node + | @jsdoc | @jsdoc_type_expr | @jsdoc_tag + | @yaml_locatable + | @xmllocatable + | @configLocatable + | @template_placeholder_tag; + +hasLocation (unique int locatable: @locatable ref, + int location: @location ref); + +// CFG +entry_cfg_node (unique int id: @entry_node, int container: @stmt_container ref); +exit_cfg_node (unique int id: @exit_node, int container: @stmt_container ref); +guard_node (unique int id: @guard_node, int kind: int ref, int test: @expr ref); +case @guard_node.kind of + 0 = @falsy_guard +| 1 = @truthy_guard; +@condition_guard = @falsy_guard | @truthy_guard; + +@synthetic_cfg_node = @entry_node | @exit_node | @guard_node; +@cfg_node = @synthetic_cfg_node | @expr_parent; + +successor (int pred: @cfg_node ref, int succ: @cfg_node ref); + +// JSDoc comments +jsdoc (unique int id: @jsdoc, varchar(900) description: string ref, int comment: @comment ref); +#keyset[parent, idx] +jsdoc_tags (unique int id: @jsdoc_tag, varchar(900) title: string ref, + int parent: @jsdoc ref, int idx: int ref, varchar(900) tostring: string ref); +jsdoc_tag_descriptions (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); +jsdoc_tag_names (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); + +#keyset[parent, idx] +jsdoc_type_exprs (unique int id: @jsdoc_type_expr, + int kind: int ref, + int parent: @jsdoc_type_expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); +case @jsdoc_type_expr.kind of + 0 = @jsdoc_any_type_expr +| 1 = @jsdoc_null_type_expr +| 2 = @jsdoc_undefined_type_expr +| 3 = @jsdoc_unknown_type_expr +| 4 = @jsdoc_void_type_expr +| 5 = @jsdoc_identifier_type_expr +| 6 = @jsdoc_applied_type_expr +| 7 = @jsdoc_nullable_type_expr +| 8 = @jsdoc_non_nullable_type_expr +| 9 = @jsdoc_record_type_expr +| 10 = @jsdoc_array_type_expr +| 11 = @jsdoc_union_type_expr +| 12 = @jsdoc_function_type_expr +| 13 = @jsdoc_optional_type_expr +| 14 = @jsdoc_rest_type_expr +| 15 = @jsdoc_qualified_type_expr +; + +#keyset[id, idx] +jsdoc_record_field_name (int id: @jsdoc_record_type_expr ref, int idx: int ref, varchar(900) name: string ref); +jsdoc_prefix_qualifier (int id: @jsdoc_type_expr ref); +jsdoc_has_new_parameter (int fn: @jsdoc_function_type_expr ref); + +@jsdoc_type_expr_parent = @jsdoc_type_expr | @jsdoc_tag; + +jsdoc_errors (unique int id: @jsdoc_error, int tag: @jsdoc_tag ref, varchar(900) message: string ref, varchar(900) tostring: string ref); + +@dataflownode = @expr | @function_decl_stmt | @class_decl_stmt | @namespace_declaration | @enum_declaration | @property; + +@optionalchainable = @call_expr | @propaccess; + +isOptionalChaining(int id: @optionalchainable ref); + +/** + * The time taken for the extraction of a file. + * This table contains non-deterministic content. + * + * The sum of the `time` column for each (`file`, `timerKind`) pair + * is the total time taken for extraction of `file`. The `extractionPhase` + * column provides a granular view of the extraction time of the file. + */ +extraction_time( + int file : @file ref, + // see `com.semmle.js.extractor.ExtractionMetrics.ExtractionPhase`. + int extractionPhase: int ref, + // 0 for the elapsed CPU time in nanoseconds, 1 for the elapsed wallclock time in nanoseconds + int timerKind: int ref, + float time: float ref +) + +/** +* Non-timing related data for the extraction of a single file. +* This table contains non-deterministic content. +*/ +extraction_data( + int file : @file ref, + // the absolute path to the cache file + varchar(900) cacheFile: string ref, + boolean fromCache: boolean ref, + int length: int ref +) + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- Configuration files with key value pairs -*/ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); diff --git a/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/semmlecode.dbscheme b/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/semmlecode.dbscheme new file mode 100644 index 00000000000..80b2bc24189 --- /dev/null +++ b/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/semmlecode.dbscheme @@ -0,0 +1,1205 @@ +/*** Standard fragments ***/ + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- JavaScript-specific part -*/ + +@location = @location_default + +@sourceline = @locatable; + +filetype( + int file: @file ref, + string filetype: string ref +) + +// top-level code fragments +toplevels (unique int id: @toplevel, + int kind: int ref); + +is_externs (int toplevel: @toplevel ref); + +case @toplevel.kind of + 0 = @script +| 1 = @inline_script +| 2 = @event_handler +| 3 = @javascript_url +| 4 = @template_toplevel; + +is_module (int tl: @toplevel ref); +is_nodejs (int tl: @toplevel ref); +is_es2015_module (int tl: @toplevel ref); +is_closure_module (int tl: @toplevel ref); + +@xml_node_with_code = @xmlelement | @xmlattribute | @template_placeholder_tag; +toplevel_parent_xml_node( + unique int toplevel: @toplevel ref, + int xmlnode: @xml_node_with_code ref); + +xml_element_parent_expression( + unique int xmlnode: @xmlelement ref, + int expression: @expr ref, + int index: int ref); + +// statements +#keyset[parent, idx] +stmts (unique int id: @stmt, + int kind: int ref, + int parent: @stmt_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +stmt_containers (unique int stmt: @stmt ref, + int container: @stmt_container ref); + +jump_targets (unique int jump: @stmt ref, + int target: @stmt ref); + +@stmt_parent = @stmt | @toplevel | @function_expr | @arrow_function_expr | @static_initializer; +@stmt_container = @toplevel | @function | @namespace_declaration | @external_module_declaration | @global_augmentation_declaration; + +case @stmt.kind of + 0 = @empty_stmt +| 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @labeled_stmt +| 5 = @break_stmt +| 6 = @continue_stmt +| 7 = @with_stmt +| 8 = @switch_stmt +| 9 = @return_stmt +| 10 = @throw_stmt +| 11 = @try_stmt +| 12 = @while_stmt +| 13 = @do_while_stmt +| 14 = @for_stmt +| 15 = @for_in_stmt +| 16 = @debugger_stmt +| 17 = @function_decl_stmt +| 18 = @var_decl_stmt +| 19 = @case +| 20 = @catch_clause +| 21 = @for_of_stmt +| 22 = @const_decl_stmt +| 23 = @let_stmt +| 24 = @legacy_let_stmt +| 25 = @for_each_stmt +| 26 = @class_decl_stmt +| 27 = @import_declaration +| 28 = @export_all_declaration +| 29 = @export_default_declaration +| 30 = @export_named_declaration +| 31 = @namespace_declaration +| 32 = @import_equals_declaration +| 33 = @export_assign_declaration +| 34 = @interface_declaration +| 35 = @type_alias_declaration +| 36 = @enum_declaration +| 37 = @external_module_declaration +| 38 = @export_as_namespace_declaration +| 39 = @global_augmentation_declaration +| 40 = @using_decl_stmt +; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @let_stmt | @legacy_let_stmt | @using_decl_stmt; + +@export_declaration = @export_all_declaration | @export_default_declaration | @export_named_declaration; + +@namespace_definition = @namespace_declaration | @enum_declaration; +@type_definition = @class_definition | @interface_declaration | @enum_declaration | @type_alias_declaration | @enum_member; + +is_instantiated(unique int decl: @namespace_declaration ref); + +@declarable_node = @decl_stmt | @namespace_declaration | @class_decl_stmt | @function_decl_stmt | @enum_declaration | @external_module_declaration | @global_augmentation_declaration | @field; +has_declare_keyword(unique int stmt: @declarable_node ref); + +is_for_await_of(unique int forof: @for_of_stmt ref); + +// expressions +#keyset[parent, idx] +exprs (unique int id: @expr, + int kind: int ref, + int parent: @expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @expr_or_type ref); + +enclosing_stmt (unique int expr: @expr_or_type ref, + int stmt: @stmt ref); + +expr_containers (unique int expr: @expr_or_type ref, + int container: @stmt_container ref); + +array_size (unique int ae: @arraylike ref, + int sz: int ref); + +is_delegating (int yield: @yield_expr ref); + +@expr_or_stmt = @expr | @stmt; +@expr_or_type = @expr | @typeexpr; +@expr_parent = @expr_or_stmt | @property | @function_typeexpr; +@arraylike = @array_expr | @array_pattern; +@type_annotation = @typeexpr | @jsdoc_type_expr; +@node_in_stmt_container = @cfg_node | @type_annotation | @toplevel; + +case @expr.kind of + 0 = @label +| 1 = @null_literal +| 2 = @boolean_literal +| 3 = @number_literal +| 4 = @string_literal +| 5 = @regexp_literal +| 6 = @this_expr +| 7 = @array_expr +| 8 = @obj_expr +| 9 = @function_expr +| 10 = @seq_expr +| 11 = @conditional_expr +| 12 = @new_expr +| 13 = @call_expr +| 14 = @dot_expr +| 15 = @index_expr +| 16 = @neg_expr +| 17 = @plus_expr +| 18 = @log_not_expr +| 19 = @bit_not_expr +| 20 = @typeof_expr +| 21 = @void_expr +| 22 = @delete_expr +| 23 = @eq_expr +| 24 = @neq_expr +| 25 = @eqq_expr +| 26 = @neqq_expr +| 27 = @lt_expr +| 28 = @le_expr +| 29 = @gt_expr +| 30 = @ge_expr +| 31 = @lshift_expr +| 32 = @rshift_expr +| 33 = @urshift_expr +| 34 = @add_expr +| 35 = @sub_expr +| 36 = @mul_expr +| 37 = @div_expr +| 38 = @mod_expr +| 39 = @bitor_expr +| 40 = @xor_expr +| 41 = @bitand_expr +| 42 = @in_expr +| 43 = @instanceof_expr +| 44 = @logand_expr +| 45 = @logor_expr +| 47 = @assign_expr +| 48 = @assign_add_expr +| 49 = @assign_sub_expr +| 50 = @assign_mul_expr +| 51 = @assign_div_expr +| 52 = @assign_mod_expr +| 53 = @assign_lshift_expr +| 54 = @assign_rshift_expr +| 55 = @assign_urshift_expr +| 56 = @assign_or_expr +| 57 = @assign_xor_expr +| 58 = @assign_and_expr +| 59 = @preinc_expr +| 60 = @postinc_expr +| 61 = @predec_expr +| 62 = @postdec_expr +| 63 = @par_expr +| 64 = @var_declarator +| 65 = @arrow_function_expr +| 66 = @spread_element +| 67 = @array_pattern +| 68 = @object_pattern +| 69 = @yield_expr +| 70 = @tagged_template_expr +| 71 = @template_literal +| 72 = @template_element +| 73 = @array_comprehension_expr +| 74 = @generator_expr +| 75 = @for_in_comprehension_block +| 76 = @for_of_comprehension_block +| 77 = @legacy_letexpr +| 78 = @var_decl +| 79 = @proper_varaccess +| 80 = @class_expr +| 81 = @super_expr +| 82 = @newtarget_expr +| 83 = @named_import_specifier +| 84 = @import_default_specifier +| 85 = @import_namespace_specifier +| 86 = @named_export_specifier +| 87 = @exp_expr +| 88 = @assign_exp_expr +| 89 = @jsx_element +| 90 = @jsx_qualified_name +| 91 = @jsx_empty_expr +| 92 = @await_expr +| 93 = @function_sent_expr +| 94 = @decorator +| 95 = @export_default_specifier +| 96 = @export_namespace_specifier +| 97 = @bind_expr +| 98 = @external_module_reference +| 99 = @dynamic_import +| 100 = @expression_with_type_arguments +| 101 = @prefix_type_assertion +| 102 = @as_type_assertion +| 103 = @export_varaccess +| 104 = @decorator_list +| 105 = @non_null_assertion +| 106 = @bigint_literal +| 107 = @nullishcoalescing_expr +| 108 = @e4x_xml_anyname +| 109 = @e4x_xml_static_attribute_selector +| 110 = @e4x_xml_dynamic_attribute_selector +| 111 = @e4x_xml_filter_expression +| 112 = @e4x_xml_static_qualident +| 113 = @e4x_xml_dynamic_qualident +| 114 = @e4x_xml_dotdotexpr +| 115 = @import_meta_expr +| 116 = @assignlogandexpr +| 117 = @assignlogorexpr +| 118 = @assignnullishcoalescingexpr +| 119 = @template_pipe_ref +| 120 = @generated_code_expr +| 121 = @satisfies_expr +; + +@varaccess = @proper_varaccess | @export_varaccess; +@varref = @var_decl | @varaccess; + +@identifier = @label | @varref | @type_identifier; + +@literal = @null_literal | @boolean_literal | @number_literal | @string_literal | @regexp_literal | @bigint_literal; + +@propaccess = @dot_expr | @index_expr; + +@invokeexpr = @new_expr | @call_expr; + +@unaryexpr = @neg_expr | @plus_expr | @log_not_expr | @bit_not_expr | @typeof_expr | @void_expr | @delete_expr | @spread_element; + +@equality_test = @eq_expr | @neq_expr | @eqq_expr | @neqq_expr; + +@comparison = @equality_test | @lt_expr | @le_expr | @gt_expr | @ge_expr; + +@binaryexpr = @comparison | @lshift_expr | @rshift_expr | @urshift_expr | @add_expr | @sub_expr | @mul_expr | @div_expr | @mod_expr | @exp_expr | @bitor_expr | @xor_expr | @bitand_expr | @in_expr | @instanceof_expr | @logand_expr | @logor_expr | @nullishcoalescing_expr; + +@assignment = @assign_expr | @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr | @assign_mod_expr | @assign_exp_expr | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr | @assign_or_expr | @assign_xor_expr | @assign_and_expr | @assignlogandexpr | @assignlogorexpr | @assignnullishcoalescingexpr; + +@updateexpr = @preinc_expr | @postinc_expr | @predec_expr | @postdec_expr; + +@pattern = @varref | @array_pattern | @object_pattern; + +@comprehension_expr = @array_comprehension_expr | @generator_expr; + +@comprehension_block = @for_in_comprehension_block | @for_of_comprehension_block; + +@import_specifier = @named_import_specifier | @import_default_specifier | @import_namespace_specifier; + +@exportspecifier = @named_export_specifier | @export_default_specifier | @export_namespace_specifier; + +@type_keyword_operand = @import_declaration | @export_declaration | @import_specifier; + +@type_assertion = @as_type_assertion | @prefix_type_assertion; + +@class_definition = @class_decl_stmt | @class_expr; +@interface_definition = @interface_declaration | @interface_typeexpr; +@class_or_interface = @class_definition | @interface_definition; + +@lexical_decl = @var_decl | @type_decl; +@lexical_access = @varaccess | @local_type_access | @local_var_type_access | @local_namespace_access; +@lexical_ref = @lexical_decl | @lexical_access; + +@e4x_xml_attribute_selector = @e4x_xml_static_attribute_selector | @e4x_xml_dynamic_attribute_selector; +@e4x_xml_qualident = @e4x_xml_static_qualident | @e4x_xml_dynamic_qualident; + +expr_contains_template_tag_location( + int expr: @expr ref, + int location: @location ref +); + +@template_placeholder_tag_parent = @xmlelement | @xmlattribute | @file; + +template_placeholder_tag_info( + unique int node: @template_placeholder_tag, + int parentNode: @template_placeholder_tag_parent ref, + varchar(900) raw: string ref +); + +// scopes +scopes (unique int id: @scope, + int kind: int ref); + +case @scope.kind of + 0 = @global_scope +| 1 = @function_scope +| 2 = @catch_scope +| 3 = @module_scope +| 4 = @block_scope +| 5 = @for_scope +| 6 = @for_in_scope // for-of scopes work the same as for-in scopes +| 7 = @comprehension_block_scope +| 8 = @class_expr_scope +| 9 = @namespace_scope +| 10 = @class_decl_scope +| 11 = @interface_scope +| 12 = @type_alias_scope +| 13 = @mapped_type_scope +| 14 = @enum_scope +| 15 = @external_module_scope +| 16 = @conditional_type_scope; + +scopenodes (unique int node: @ast_node ref, + int scope: @scope ref); + +scopenesting (unique int inner: @scope ref, + int outer: @scope ref); + +// functions +@function = @function_decl_stmt | @function_expr | @arrow_function_expr; + +@parameterized = @function | @catch_clause; +@type_parameterized = @function | @class_or_interface | @type_alias_declaration | @mapped_typeexpr | @infer_typeexpr; + +is_generator (int fun: @function ref); +has_rest_parameter (int fun: @function ref); +is_async (int fun: @function ref); + +// variables and lexically scoped type names +#keyset[scope, name] +variables (unique int id: @variable, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_type_names (unique int id: @local_type_name, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_namespace_names (unique int id: @local_namespace_name, + varchar(900) name: string ref, + int scope: @scope ref); + +is_arguments_object (int id: @variable ref); + +@lexical_name = @variable | @local_type_name | @local_namespace_name; + +@bind_id = @varaccess | @local_var_type_access; +bind (unique int id: @bind_id ref, + int decl: @variable ref); + +decl (unique int id: @var_decl ref, + int decl: @variable ref); + +@typebind_id = @local_type_access | @export_varaccess; +typebind (unique int id: @typebind_id ref, + int decl: @local_type_name ref); + +@typedecl_id = @type_decl | @var_decl; +typedecl (unique int id: @typedecl_id ref, + int decl: @local_type_name ref); + +namespacedecl (unique int id: @var_decl ref, + int decl: @local_namespace_name ref); + +@namespacebind_id = @local_namespace_access | @export_varaccess; +namespacebind (unique int id: @namespacebind_id ref, + int decl: @local_namespace_name ref); + + +// properties in object literals, property patterns in object patterns, and method declarations in classes +#keyset[parent, index] +properties (unique int id: @property, + int parent: @property_parent ref, + int index: int ref, + int kind: int ref, + varchar(900) tostring: string ref); + +case @property.kind of + 0 = @value_property +| 1 = @property_getter +| 2 = @property_setter +| 3 = @jsx_attribute +| 4 = @function_call_signature +| 5 = @constructor_call_signature +| 6 = @index_signature +| 7 = @enum_member +| 8 = @proper_field +| 9 = @parameter_field +| 10 = @static_initializer +; + +@property_parent = @obj_expr | @object_pattern | @class_definition | @jsx_element | @interface_definition | @enum_declaration; +@property_accessor = @property_getter | @property_setter; +@call_signature = @function_call_signature | @constructor_call_signature; +@field = @proper_field | @parameter_field; +@field_or_vardeclarator = @field | @var_declarator; + +is_computed (int id: @property ref); +is_method (int id: @property ref); +is_static (int id: @property ref); +is_abstract_member (int id: @property ref); +is_const_enum (int id: @enum_declaration ref); +is_abstract_class (int id: @class_decl_stmt ref); + +has_public_keyword (int id: @property ref); +has_private_keyword (int id: @property ref); +has_protected_keyword (int id: @property ref); +has_readonly_keyword (int id: @property ref); +has_type_keyword (int id: @type_keyword_operand ref); +has_defer_keyword (int id: @import_declaration ref); +is_optional_member (int id: @property ref); +has_definite_assignment_assertion (int id: @field_or_vardeclarator ref); +is_optional_parameter_declaration (unique int parameter: @pattern ref); + +#keyset[constructor, param_index] +parameter_fields( + unique int field: @parameter_field ref, + int constructor: @function_expr ref, + int param_index: int ref +); + +// types +#keyset[parent, idx] +typeexprs ( + unique int id: @typeexpr, + int kind: int ref, + int parent: @typeexpr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref +); + +case @typeexpr.kind of + 0 = @local_type_access +| 1 = @type_decl +| 2 = @keyword_typeexpr +| 3 = @string_literal_typeexpr +| 4 = @number_literal_typeexpr +| 5 = @boolean_literal_typeexpr +| 6 = @array_typeexpr +| 7 = @union_typeexpr +| 8 = @indexed_access_typeexpr +| 9 = @intersection_typeexpr +| 10 = @parenthesized_typeexpr +| 11 = @tuple_typeexpr +| 12 = @keyof_typeexpr +| 13 = @qualified_type_access +| 14 = @generic_typeexpr +| 15 = @type_label +| 16 = @typeof_typeexpr +| 17 = @local_var_type_access +| 18 = @qualified_var_type_access +| 19 = @this_var_type_access +| 20 = @predicate_typeexpr +| 21 = @interface_typeexpr +| 22 = @type_parameter +| 23 = @plain_function_typeexpr +| 24 = @constructor_typeexpr +| 25 = @local_namespace_access +| 26 = @qualified_namespace_access +| 27 = @mapped_typeexpr +| 28 = @conditional_typeexpr +| 29 = @infer_typeexpr +| 30 = @import_type_access +| 31 = @import_namespace_access +| 32 = @import_var_type_access +| 33 = @optional_typeexpr +| 34 = @rest_typeexpr +| 35 = @bigint_literal_typeexpr +| 36 = @readonly_typeexpr +| 37 = @template_literal_typeexpr +; + +@typeref = @typeaccess | @type_decl; +@type_identifier = @type_decl | @local_type_access | @type_label | @local_var_type_access | @local_namespace_access; +@typeexpr_parent = @expr | @stmt | @property | @typeexpr; +@literal_typeexpr = @string_literal_typeexpr | @number_literal_typeexpr | @boolean_literal_typeexpr | @bigint_literal_typeexpr; +@typeaccess = @local_type_access | @qualified_type_access | @import_type_access; +@vartypeaccess = @local_var_type_access | @qualified_var_type_access | @this_var_type_access | @import_var_type_access; +@namespace_access = @local_namespace_access | @qualified_namespace_access | @import_namespace_access; +@import_typeexpr = @import_type_access | @import_namespace_access | @import_var_type_access; + +@function_typeexpr = @plain_function_typeexpr | @constructor_typeexpr; + +// types +types ( + unique int id: @type, + int kind: int ref, + varchar(900) tostring: string ref +); + +#keyset[parent, idx] +type_child ( + int child: @type ref, + int parent: @type ref, + int idx: int ref +); + +case @type.kind of + 0 = @any_type +| 1 = @string_type +| 2 = @number_type +| 3 = @union_type +| 4 = @true_type +| 5 = @false_type +| 6 = @type_reference +| 7 = @object_type +| 8 = @canonical_type_variable_type +| 9 = @typeof_type +| 10 = @void_type +| 11 = @undefined_type +| 12 = @null_type +| 13 = @never_type +| 14 = @plain_symbol_type +| 15 = @unique_symbol_type +| 16 = @objectkeyword_type +| 17 = @intersection_type +| 18 = @tuple_type +| 19 = @lexical_type_variable_type +| 20 = @this_type +| 21 = @number_literal_type +| 22 = @string_literal_type +| 23 = @unknown_type +| 24 = @bigint_type +| 25 = @bigint_literal_type +; + +@boolean_literal_type = @true_type | @false_type; +@symbol_type = @plain_symbol_type | @unique_symbol_type; +@union_or_intersection_type = @union_type | @intersection_type; +@typevariable_type = @canonical_type_variable_type | @lexical_type_variable_type; + +has_asserts_keyword(int node: @predicate_typeexpr ref); + +@typed_ast_node = @expr | @typeexpr | @function; +ast_node_type( + unique int node: @typed_ast_node ref, + int typ: @type ref); + +declared_function_signature( + unique int node: @function ref, + int sig: @signature_type ref +); + +invoke_expr_signature( + unique int node: @invokeexpr ref, + int sig: @signature_type ref +); + +invoke_expr_overload_index( + unique int node: @invokeexpr ref, + int index: int ref +); + +symbols ( + unique int id: @symbol, + int kind: int ref, + varchar(900) name: string ref +); + +symbol_parent ( + unique int symbol: @symbol ref, + int parent: @symbol ref +); + +symbol_module ( + int symbol: @symbol ref, + varchar(900) moduleName: string ref +); + +symbol_global ( + int symbol: @symbol ref, + varchar(900) globalName: string ref +); + +case @symbol.kind of + 0 = @root_symbol +| 1 = @member_symbol +| 2 = @other_symbol +; + +@type_with_symbol = @type_reference | @typevariable_type | @typeof_type | @unique_symbol_type; +@ast_node_with_symbol = @type_definition | @namespace_definition | @toplevel | @typeaccess | @namespace_access | @var_decl | @function | @invokeexpr | @import_declaration | @external_module_reference | @external_module_declaration; + +ast_node_symbol( + unique int node: @ast_node_with_symbol ref, + int symbol: @symbol ref); + +type_symbol( + unique int typ: @type_with_symbol ref, + int symbol: @symbol ref); + +#keyset[typ, name] +type_property( + int typ: @type ref, + varchar(900) name: string ref, + int propertyType: @type ref); + +type_alias( + unique int aliasType: @type ref, + int underlyingType: @type ref); + +@literal_type = @string_literal_type | @number_literal_type | @boolean_literal_type | @bigint_literal_type; +@type_with_literal_value = @string_literal_type | @number_literal_type | @bigint_literal_type; +type_literal_value( + unique int typ: @type_with_literal_value ref, + varchar(900) value: string ref); + +signature_types ( + unique int id: @signature_type, + int kind: int ref, + varchar(900) tostring: string ref, + int type_parameters: int ref, + int required_params: int ref +); + +is_abstract_signature( + unique int sig: @signature_type ref +); + +signature_rest_parameter( + unique int sig: @signature_type ref, + int rest_param_arra_type: @type ref +); + +case @signature_type.kind of + 0 = @function_signature_type +| 1 = @constructor_signature_type +; + +#keyset[typ, kind, index] +type_contains_signature ( + int typ: @type ref, + int kind: int ref, // constructor/call/index + int index: int ref, // ordering of overloaded signatures + int sig: @signature_type ref +); + +#keyset[parent, index] +signature_contains_type ( + int child: @type ref, + int parent: @signature_type ref, + int index: int ref +); + +#keyset[sig, index] +signature_parameter_name ( + int sig: @signature_type ref, + int index: int ref, + varchar(900) name: string ref +); + +number_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +string_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +base_type_names( + int typeName: @symbol ref, + int baseTypeName: @symbol ref +); + +self_types( + int typeName: @symbol ref, + int selfType: @type_reference ref +); + +tuple_type_min_length( + unique int typ: @type ref, + int minLength: int ref +); + +tuple_type_rest_index( + unique int typ: @type ref, + int index: int ref +); + +// comments +comments (unique int id: @comment, + int kind: int ref, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(900) tostring: string ref); + +case @comment.kind of + 0 = @slashslash_comment +| 1 = @slashstar_comment +| 2 = @doc_comment +| 3 = @html_comment_start +| 4 = @htmlcommentend; + +@html_comment = @html_comment_start | @htmlcommentend; +@line_comment = @slashslash_comment | @html_comment; +@block_comment = @slashstar_comment | @doc_comment; + +// source lines +lines (unique int id: @line, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(2) terminator: string ref); +indentation (int file: @file ref, + int lineno: int ref, + varchar(1) indentChar: string ref, + int indentDepth: int ref); + +// JavaScript parse errors +js_parse_errors (unique int id: @js_parse_error, + int toplevel: @toplevel ref, + varchar(900) message: string ref, + varchar(900) line: string ref); + +// regular expressions +#keyset[parent, idx] +regexpterm (unique int id: @regexpterm, + int kind: int ref, + int parent: @regexpparent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +@regexpparent = @regexpterm | @regexp_literal | @string_literal | @add_expr; + +case @regexpterm.kind of + 0 = @regexp_alt +| 1 = @regexp_seq +| 2 = @regexp_caret +| 3 = @regexp_dollar +| 4 = @regexp_wordboundary +| 5 = @regexp_nonwordboundary +| 6 = @regexp_positive_lookahead +| 7 = @regexp_negative_lookahead +| 8 = @regexp_star +| 9 = @regexp_plus +| 10 = @regexp_opt +| 11 = @regexp_range +| 12 = @regexp_dot +| 13 = @regexp_group +| 14 = @regexp_normal_constant +| 15 = @regexp_hex_escape +| 16 = @regexp_unicode_escape +| 17 = @regexp_dec_escape +| 18 = @regexp_oct_escape +| 19 = @regexp_ctrl_escape +| 20 = @regexp_char_class_escape +| 21 = @regexp_id_escape +| 22 = @regexp_backref +| 23 = @regexp_char_class +| 24 = @regexp_char_range +| 25 = @regexp_positive_lookbehind +| 26 = @regexp_negative_lookbehind +| 27 = @regexp_unicode_property_escape +| 28 = @regexp_quoted_string +| 29 = @regexp_intersection +| 30 = @regexp_subtraction; + +regexp_parse_errors (unique int id: @regexp_parse_error, + int regexp: @regexpterm ref, + varchar(900) message: string ref); + +@regexp_quantifier = @regexp_star | @regexp_plus | @regexp_opt | @regexp_range; +@regexp_escape = @regexp_char_escape | @regexp_char_class_escape | @regexp_unicode_property_escape; +@regexp_char_escape = @regexp_hex_escape | @regexp_unicode_escape | @regexp_dec_escape | @regexp_oct_escape | @regexp_ctrl_escape | @regexp_id_escape; +@regexp_constant = @regexp_normal_constant | @regexp_char_escape; +@regexp_lookahead = @regexp_positive_lookahead | @regexp_negative_lookahead; +@regexp_lookbehind = @regexp_positive_lookbehind | @regexp_negative_lookbehind; +@regexp_subpattern = @regexp_lookahead | @regexp_lookbehind; +@regexp_anchor = @regexp_dollar | @regexp_caret; + +is_greedy (int id: @regexp_quantifier ref); +range_quantifier_lower_bound (unique int id: @regexp_range ref, int lo: int ref); +range_quantifier_upper_bound (unique int id: @regexp_range ref, int hi: int ref); +is_capture (unique int id: @regexp_group ref, int number: int ref); +is_named_capture (unique int id: @regexp_group ref, string name: string ref); +is_inverted (int id: @regexp_char_class ref); +regexp_const_value (unique int id: @regexp_constant ref, varchar(1) value: string ref); +char_class_escape (unique int id: @regexp_char_class_escape ref, varchar(1) value: string ref); +backref (unique int id: @regexp_backref ref, int value: int ref); +named_backref (unique int id: @regexp_backref ref, string name: string ref); +unicode_property_escapename (unique int id: @regexp_unicode_property_escape ref, string name: string ref); +unicode_property_escapevalue (unique int id: @regexp_unicode_property_escape ref, string value: string ref); + +// tokens +#keyset[toplevel, idx] +tokeninfo (unique int id: @token, + int kind: int ref, + int toplevel: @toplevel ref, + int idx: int ref, + varchar(900) value: string ref); + +case @token.kind of + 0 = @token_eof +| 1 = @token_null_literal +| 2 = @token_boolean_literal +| 3 = @token_numeric_literal +| 4 = @token_string_literal +| 5 = @token_regular_expression +| 6 = @token_identifier +| 7 = @token_keyword +| 8 = @token_punctuator; + +// associate comments with the token immediately following them (which may be EOF) +next_token (int comment: @comment ref, int token: @token ref); + +// JSON +#keyset[parent, idx] +json (unique int id: @json_value, + int kind: int ref, + int parent: @json_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +json_literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @json_value ref); + +json_properties (int obj: @json_object ref, + varchar(900) property: string ref, + int value: @json_value ref); + +json_errors (unique int id: @json_parse_error, + varchar(900) message: string ref); + +json_locations(unique int locatable: @json_locatable ref, + int location: @location_default ref); + +case @json_value.kind of + 0 = @json_null +| 1 = @json_boolean +| 2 = @json_number +| 3 = @json_string +| 4 = @json_array +| 5 = @json_object; + +@json_parent = @json_object | @json_array | @file; + +@json_locatable = @json_value | @json_parse_error; + +// locations +@ast_node = @toplevel | @stmt | @expr | @property | @typeexpr; + +@locatable = @file + | @ast_node + | @comment + | @line + | @js_parse_error | @regexp_parse_error + | @regexpterm + | @json_locatable + | @token + | @cfg_node + | @jsdoc | @jsdoc_type_expr | @jsdoc_tag + | @yaml_locatable + | @xmllocatable + | @configLocatable + | @template_placeholder_tag; + +hasLocation (unique int locatable: @locatable ref, + int location: @location ref); + +// CFG +entry_cfg_node (unique int id: @entry_node, int container: @stmt_container ref); +exit_cfg_node (unique int id: @exit_node, int container: @stmt_container ref); +guard_node (unique int id: @guard_node, int kind: int ref, int test: @expr ref); +case @guard_node.kind of + 0 = @falsy_guard +| 1 = @truthy_guard; +@condition_guard = @falsy_guard | @truthy_guard; + +@synthetic_cfg_node = @entry_node | @exit_node | @guard_node; +@cfg_node = @synthetic_cfg_node | @expr_parent; + +successor (int pred: @cfg_node ref, int succ: @cfg_node ref); + +// JSDoc comments +jsdoc (unique int id: @jsdoc, varchar(900) description: string ref, int comment: @comment ref); +#keyset[parent, idx] +jsdoc_tags (unique int id: @jsdoc_tag, varchar(900) title: string ref, + int parent: @jsdoc ref, int idx: int ref, varchar(900) tostring: string ref); +jsdoc_tag_descriptions (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); +jsdoc_tag_names (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); + +#keyset[parent, idx] +jsdoc_type_exprs (unique int id: @jsdoc_type_expr, + int kind: int ref, + int parent: @jsdoc_type_expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); +case @jsdoc_type_expr.kind of + 0 = @jsdoc_any_type_expr +| 1 = @jsdoc_null_type_expr +| 2 = @jsdoc_undefined_type_expr +| 3 = @jsdoc_unknown_type_expr +| 4 = @jsdoc_void_type_expr +| 5 = @jsdoc_identifier_type_expr +| 6 = @jsdoc_applied_type_expr +| 7 = @jsdoc_nullable_type_expr +| 8 = @jsdoc_non_nullable_type_expr +| 9 = @jsdoc_record_type_expr +| 10 = @jsdoc_array_type_expr +| 11 = @jsdoc_union_type_expr +| 12 = @jsdoc_function_type_expr +| 13 = @jsdoc_optional_type_expr +| 14 = @jsdoc_rest_type_expr +| 15 = @jsdoc_qualified_type_expr +; + +#keyset[id, idx] +jsdoc_record_field_name (int id: @jsdoc_record_type_expr ref, int idx: int ref, varchar(900) name: string ref); +jsdoc_prefix_qualifier (int id: @jsdoc_type_expr ref); +jsdoc_has_new_parameter (int fn: @jsdoc_function_type_expr ref); + +@jsdoc_type_expr_parent = @jsdoc_type_expr | @jsdoc_tag; + +jsdoc_errors (unique int id: @jsdoc_error, int tag: @jsdoc_tag ref, varchar(900) message: string ref, varchar(900) tostring: string ref); + +@dataflownode = @expr | @function_decl_stmt | @class_decl_stmt | @namespace_declaration | @enum_declaration | @property; + +@optionalchainable = @call_expr | @propaccess; + +isOptionalChaining(int id: @optionalchainable ref); + +/** + * The time taken for the extraction of a file. + * This table contains non-deterministic content. + * + * The sum of the `time` column for each (`file`, `timerKind`) pair + * is the total time taken for extraction of `file`. The `extractionPhase` + * column provides a granular view of the extraction time of the file. + */ +extraction_time( + int file : @file ref, + // see `com.semmle.js.extractor.ExtractionMetrics.ExtractionPhase`. + int extractionPhase: int ref, + // 0 for the elapsed CPU time in nanoseconds, 1 for the elapsed wallclock time in nanoseconds + int timerKind: int ref, + float time: float ref +) + +/** +* Non-timing related data for the extraction of a single file. +* This table contains non-deterministic content. +*/ +extraction_data( + int file : @file ref, + // the absolute path to the cache file + varchar(900) cacheFile: string ref, + boolean fromCache: boolean ref, + int length: int ref +) + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- Configuration files with key value pairs -*/ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); diff --git a/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/upgrade.properties b/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/javascript/downgrades/578367e82a25a3e286aaf1238613db3717b67476/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full diff --git a/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/old.dbscheme b/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/old.dbscheme new file mode 100644 index 00000000000..80b2bc24189 --- /dev/null +++ b/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/old.dbscheme @@ -0,0 +1,1205 @@ +/*** Standard fragments ***/ + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- JavaScript-specific part -*/ + +@location = @location_default + +@sourceline = @locatable; + +filetype( + int file: @file ref, + string filetype: string ref +) + +// top-level code fragments +toplevels (unique int id: @toplevel, + int kind: int ref); + +is_externs (int toplevel: @toplevel ref); + +case @toplevel.kind of + 0 = @script +| 1 = @inline_script +| 2 = @event_handler +| 3 = @javascript_url +| 4 = @template_toplevel; + +is_module (int tl: @toplevel ref); +is_nodejs (int tl: @toplevel ref); +is_es2015_module (int tl: @toplevel ref); +is_closure_module (int tl: @toplevel ref); + +@xml_node_with_code = @xmlelement | @xmlattribute | @template_placeholder_tag; +toplevel_parent_xml_node( + unique int toplevel: @toplevel ref, + int xmlnode: @xml_node_with_code ref); + +xml_element_parent_expression( + unique int xmlnode: @xmlelement ref, + int expression: @expr ref, + int index: int ref); + +// statements +#keyset[parent, idx] +stmts (unique int id: @stmt, + int kind: int ref, + int parent: @stmt_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +stmt_containers (unique int stmt: @stmt ref, + int container: @stmt_container ref); + +jump_targets (unique int jump: @stmt ref, + int target: @stmt ref); + +@stmt_parent = @stmt | @toplevel | @function_expr | @arrow_function_expr | @static_initializer; +@stmt_container = @toplevel | @function | @namespace_declaration | @external_module_declaration | @global_augmentation_declaration; + +case @stmt.kind of + 0 = @empty_stmt +| 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @labeled_stmt +| 5 = @break_stmt +| 6 = @continue_stmt +| 7 = @with_stmt +| 8 = @switch_stmt +| 9 = @return_stmt +| 10 = @throw_stmt +| 11 = @try_stmt +| 12 = @while_stmt +| 13 = @do_while_stmt +| 14 = @for_stmt +| 15 = @for_in_stmt +| 16 = @debugger_stmt +| 17 = @function_decl_stmt +| 18 = @var_decl_stmt +| 19 = @case +| 20 = @catch_clause +| 21 = @for_of_stmt +| 22 = @const_decl_stmt +| 23 = @let_stmt +| 24 = @legacy_let_stmt +| 25 = @for_each_stmt +| 26 = @class_decl_stmt +| 27 = @import_declaration +| 28 = @export_all_declaration +| 29 = @export_default_declaration +| 30 = @export_named_declaration +| 31 = @namespace_declaration +| 32 = @import_equals_declaration +| 33 = @export_assign_declaration +| 34 = @interface_declaration +| 35 = @type_alias_declaration +| 36 = @enum_declaration +| 37 = @external_module_declaration +| 38 = @export_as_namespace_declaration +| 39 = @global_augmentation_declaration +| 40 = @using_decl_stmt +; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @let_stmt | @legacy_let_stmt | @using_decl_stmt; + +@export_declaration = @export_all_declaration | @export_default_declaration | @export_named_declaration; + +@namespace_definition = @namespace_declaration | @enum_declaration; +@type_definition = @class_definition | @interface_declaration | @enum_declaration | @type_alias_declaration | @enum_member; + +is_instantiated(unique int decl: @namespace_declaration ref); + +@declarable_node = @decl_stmt | @namespace_declaration | @class_decl_stmt | @function_decl_stmt | @enum_declaration | @external_module_declaration | @global_augmentation_declaration | @field; +has_declare_keyword(unique int stmt: @declarable_node ref); + +is_for_await_of(unique int forof: @for_of_stmt ref); + +// expressions +#keyset[parent, idx] +exprs (unique int id: @expr, + int kind: int ref, + int parent: @expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @expr_or_type ref); + +enclosing_stmt (unique int expr: @expr_or_type ref, + int stmt: @stmt ref); + +expr_containers (unique int expr: @expr_or_type ref, + int container: @stmt_container ref); + +array_size (unique int ae: @arraylike ref, + int sz: int ref); + +is_delegating (int yield: @yield_expr ref); + +@expr_or_stmt = @expr | @stmt; +@expr_or_type = @expr | @typeexpr; +@expr_parent = @expr_or_stmt | @property | @function_typeexpr; +@arraylike = @array_expr | @array_pattern; +@type_annotation = @typeexpr | @jsdoc_type_expr; +@node_in_stmt_container = @cfg_node | @type_annotation | @toplevel; + +case @expr.kind of + 0 = @label +| 1 = @null_literal +| 2 = @boolean_literal +| 3 = @number_literal +| 4 = @string_literal +| 5 = @regexp_literal +| 6 = @this_expr +| 7 = @array_expr +| 8 = @obj_expr +| 9 = @function_expr +| 10 = @seq_expr +| 11 = @conditional_expr +| 12 = @new_expr +| 13 = @call_expr +| 14 = @dot_expr +| 15 = @index_expr +| 16 = @neg_expr +| 17 = @plus_expr +| 18 = @log_not_expr +| 19 = @bit_not_expr +| 20 = @typeof_expr +| 21 = @void_expr +| 22 = @delete_expr +| 23 = @eq_expr +| 24 = @neq_expr +| 25 = @eqq_expr +| 26 = @neqq_expr +| 27 = @lt_expr +| 28 = @le_expr +| 29 = @gt_expr +| 30 = @ge_expr +| 31 = @lshift_expr +| 32 = @rshift_expr +| 33 = @urshift_expr +| 34 = @add_expr +| 35 = @sub_expr +| 36 = @mul_expr +| 37 = @div_expr +| 38 = @mod_expr +| 39 = @bitor_expr +| 40 = @xor_expr +| 41 = @bitand_expr +| 42 = @in_expr +| 43 = @instanceof_expr +| 44 = @logand_expr +| 45 = @logor_expr +| 47 = @assign_expr +| 48 = @assign_add_expr +| 49 = @assign_sub_expr +| 50 = @assign_mul_expr +| 51 = @assign_div_expr +| 52 = @assign_mod_expr +| 53 = @assign_lshift_expr +| 54 = @assign_rshift_expr +| 55 = @assign_urshift_expr +| 56 = @assign_or_expr +| 57 = @assign_xor_expr +| 58 = @assign_and_expr +| 59 = @preinc_expr +| 60 = @postinc_expr +| 61 = @predec_expr +| 62 = @postdec_expr +| 63 = @par_expr +| 64 = @var_declarator +| 65 = @arrow_function_expr +| 66 = @spread_element +| 67 = @array_pattern +| 68 = @object_pattern +| 69 = @yield_expr +| 70 = @tagged_template_expr +| 71 = @template_literal +| 72 = @template_element +| 73 = @array_comprehension_expr +| 74 = @generator_expr +| 75 = @for_in_comprehension_block +| 76 = @for_of_comprehension_block +| 77 = @legacy_letexpr +| 78 = @var_decl +| 79 = @proper_varaccess +| 80 = @class_expr +| 81 = @super_expr +| 82 = @newtarget_expr +| 83 = @named_import_specifier +| 84 = @import_default_specifier +| 85 = @import_namespace_specifier +| 86 = @named_export_specifier +| 87 = @exp_expr +| 88 = @assign_exp_expr +| 89 = @jsx_element +| 90 = @jsx_qualified_name +| 91 = @jsx_empty_expr +| 92 = @await_expr +| 93 = @function_sent_expr +| 94 = @decorator +| 95 = @export_default_specifier +| 96 = @export_namespace_specifier +| 97 = @bind_expr +| 98 = @external_module_reference +| 99 = @dynamic_import +| 100 = @expression_with_type_arguments +| 101 = @prefix_type_assertion +| 102 = @as_type_assertion +| 103 = @export_varaccess +| 104 = @decorator_list +| 105 = @non_null_assertion +| 106 = @bigint_literal +| 107 = @nullishcoalescing_expr +| 108 = @e4x_xml_anyname +| 109 = @e4x_xml_static_attribute_selector +| 110 = @e4x_xml_dynamic_attribute_selector +| 111 = @e4x_xml_filter_expression +| 112 = @e4x_xml_static_qualident +| 113 = @e4x_xml_dynamic_qualident +| 114 = @e4x_xml_dotdotexpr +| 115 = @import_meta_expr +| 116 = @assignlogandexpr +| 117 = @assignlogorexpr +| 118 = @assignnullishcoalescingexpr +| 119 = @template_pipe_ref +| 120 = @generated_code_expr +| 121 = @satisfies_expr +; + +@varaccess = @proper_varaccess | @export_varaccess; +@varref = @var_decl | @varaccess; + +@identifier = @label | @varref | @type_identifier; + +@literal = @null_literal | @boolean_literal | @number_literal | @string_literal | @regexp_literal | @bigint_literal; + +@propaccess = @dot_expr | @index_expr; + +@invokeexpr = @new_expr | @call_expr; + +@unaryexpr = @neg_expr | @plus_expr | @log_not_expr | @bit_not_expr | @typeof_expr | @void_expr | @delete_expr | @spread_element; + +@equality_test = @eq_expr | @neq_expr | @eqq_expr | @neqq_expr; + +@comparison = @equality_test | @lt_expr | @le_expr | @gt_expr | @ge_expr; + +@binaryexpr = @comparison | @lshift_expr | @rshift_expr | @urshift_expr | @add_expr | @sub_expr | @mul_expr | @div_expr | @mod_expr | @exp_expr | @bitor_expr | @xor_expr | @bitand_expr | @in_expr | @instanceof_expr | @logand_expr | @logor_expr | @nullishcoalescing_expr; + +@assignment = @assign_expr | @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr | @assign_mod_expr | @assign_exp_expr | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr | @assign_or_expr | @assign_xor_expr | @assign_and_expr | @assignlogandexpr | @assignlogorexpr | @assignnullishcoalescingexpr; + +@updateexpr = @preinc_expr | @postinc_expr | @predec_expr | @postdec_expr; + +@pattern = @varref | @array_pattern | @object_pattern; + +@comprehension_expr = @array_comprehension_expr | @generator_expr; + +@comprehension_block = @for_in_comprehension_block | @for_of_comprehension_block; + +@import_specifier = @named_import_specifier | @import_default_specifier | @import_namespace_specifier; + +@exportspecifier = @named_export_specifier | @export_default_specifier | @export_namespace_specifier; + +@type_keyword_operand = @import_declaration | @export_declaration | @import_specifier; + +@type_assertion = @as_type_assertion | @prefix_type_assertion; + +@class_definition = @class_decl_stmt | @class_expr; +@interface_definition = @interface_declaration | @interface_typeexpr; +@class_or_interface = @class_definition | @interface_definition; + +@lexical_decl = @var_decl | @type_decl; +@lexical_access = @varaccess | @local_type_access | @local_var_type_access | @local_namespace_access; +@lexical_ref = @lexical_decl | @lexical_access; + +@e4x_xml_attribute_selector = @e4x_xml_static_attribute_selector | @e4x_xml_dynamic_attribute_selector; +@e4x_xml_qualident = @e4x_xml_static_qualident | @e4x_xml_dynamic_qualident; + +expr_contains_template_tag_location( + int expr: @expr ref, + int location: @location ref +); + +@template_placeholder_tag_parent = @xmlelement | @xmlattribute | @file; + +template_placeholder_tag_info( + unique int node: @template_placeholder_tag, + int parentNode: @template_placeholder_tag_parent ref, + varchar(900) raw: string ref +); + +// scopes +scopes (unique int id: @scope, + int kind: int ref); + +case @scope.kind of + 0 = @global_scope +| 1 = @function_scope +| 2 = @catch_scope +| 3 = @module_scope +| 4 = @block_scope +| 5 = @for_scope +| 6 = @for_in_scope // for-of scopes work the same as for-in scopes +| 7 = @comprehension_block_scope +| 8 = @class_expr_scope +| 9 = @namespace_scope +| 10 = @class_decl_scope +| 11 = @interface_scope +| 12 = @type_alias_scope +| 13 = @mapped_type_scope +| 14 = @enum_scope +| 15 = @external_module_scope +| 16 = @conditional_type_scope; + +scopenodes (unique int node: @ast_node ref, + int scope: @scope ref); + +scopenesting (unique int inner: @scope ref, + int outer: @scope ref); + +// functions +@function = @function_decl_stmt | @function_expr | @arrow_function_expr; + +@parameterized = @function | @catch_clause; +@type_parameterized = @function | @class_or_interface | @type_alias_declaration | @mapped_typeexpr | @infer_typeexpr; + +is_generator (int fun: @function ref); +has_rest_parameter (int fun: @function ref); +is_async (int fun: @function ref); + +// variables and lexically scoped type names +#keyset[scope, name] +variables (unique int id: @variable, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_type_names (unique int id: @local_type_name, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_namespace_names (unique int id: @local_namespace_name, + varchar(900) name: string ref, + int scope: @scope ref); + +is_arguments_object (int id: @variable ref); + +@lexical_name = @variable | @local_type_name | @local_namespace_name; + +@bind_id = @varaccess | @local_var_type_access; +bind (unique int id: @bind_id ref, + int decl: @variable ref); + +decl (unique int id: @var_decl ref, + int decl: @variable ref); + +@typebind_id = @local_type_access | @export_varaccess; +typebind (unique int id: @typebind_id ref, + int decl: @local_type_name ref); + +@typedecl_id = @type_decl | @var_decl; +typedecl (unique int id: @typedecl_id ref, + int decl: @local_type_name ref); + +namespacedecl (unique int id: @var_decl ref, + int decl: @local_namespace_name ref); + +@namespacebind_id = @local_namespace_access | @export_varaccess; +namespacebind (unique int id: @namespacebind_id ref, + int decl: @local_namespace_name ref); + + +// properties in object literals, property patterns in object patterns, and method declarations in classes +#keyset[parent, index] +properties (unique int id: @property, + int parent: @property_parent ref, + int index: int ref, + int kind: int ref, + varchar(900) tostring: string ref); + +case @property.kind of + 0 = @value_property +| 1 = @property_getter +| 2 = @property_setter +| 3 = @jsx_attribute +| 4 = @function_call_signature +| 5 = @constructor_call_signature +| 6 = @index_signature +| 7 = @enum_member +| 8 = @proper_field +| 9 = @parameter_field +| 10 = @static_initializer +; + +@property_parent = @obj_expr | @object_pattern | @class_definition | @jsx_element | @interface_definition | @enum_declaration; +@property_accessor = @property_getter | @property_setter; +@call_signature = @function_call_signature | @constructor_call_signature; +@field = @proper_field | @parameter_field; +@field_or_vardeclarator = @field | @var_declarator; + +is_computed (int id: @property ref); +is_method (int id: @property ref); +is_static (int id: @property ref); +is_abstract_member (int id: @property ref); +is_const_enum (int id: @enum_declaration ref); +is_abstract_class (int id: @class_decl_stmt ref); + +has_public_keyword (int id: @property ref); +has_private_keyword (int id: @property ref); +has_protected_keyword (int id: @property ref); +has_readonly_keyword (int id: @property ref); +has_type_keyword (int id: @type_keyword_operand ref); +has_defer_keyword (int id: @import_declaration ref); +is_optional_member (int id: @property ref); +has_definite_assignment_assertion (int id: @field_or_vardeclarator ref); +is_optional_parameter_declaration (unique int parameter: @pattern ref); + +#keyset[constructor, param_index] +parameter_fields( + unique int field: @parameter_field ref, + int constructor: @function_expr ref, + int param_index: int ref +); + +// types +#keyset[parent, idx] +typeexprs ( + unique int id: @typeexpr, + int kind: int ref, + int parent: @typeexpr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref +); + +case @typeexpr.kind of + 0 = @local_type_access +| 1 = @type_decl +| 2 = @keyword_typeexpr +| 3 = @string_literal_typeexpr +| 4 = @number_literal_typeexpr +| 5 = @boolean_literal_typeexpr +| 6 = @array_typeexpr +| 7 = @union_typeexpr +| 8 = @indexed_access_typeexpr +| 9 = @intersection_typeexpr +| 10 = @parenthesized_typeexpr +| 11 = @tuple_typeexpr +| 12 = @keyof_typeexpr +| 13 = @qualified_type_access +| 14 = @generic_typeexpr +| 15 = @type_label +| 16 = @typeof_typeexpr +| 17 = @local_var_type_access +| 18 = @qualified_var_type_access +| 19 = @this_var_type_access +| 20 = @predicate_typeexpr +| 21 = @interface_typeexpr +| 22 = @type_parameter +| 23 = @plain_function_typeexpr +| 24 = @constructor_typeexpr +| 25 = @local_namespace_access +| 26 = @qualified_namespace_access +| 27 = @mapped_typeexpr +| 28 = @conditional_typeexpr +| 29 = @infer_typeexpr +| 30 = @import_type_access +| 31 = @import_namespace_access +| 32 = @import_var_type_access +| 33 = @optional_typeexpr +| 34 = @rest_typeexpr +| 35 = @bigint_literal_typeexpr +| 36 = @readonly_typeexpr +| 37 = @template_literal_typeexpr +; + +@typeref = @typeaccess | @type_decl; +@type_identifier = @type_decl | @local_type_access | @type_label | @local_var_type_access | @local_namespace_access; +@typeexpr_parent = @expr | @stmt | @property | @typeexpr; +@literal_typeexpr = @string_literal_typeexpr | @number_literal_typeexpr | @boolean_literal_typeexpr | @bigint_literal_typeexpr; +@typeaccess = @local_type_access | @qualified_type_access | @import_type_access; +@vartypeaccess = @local_var_type_access | @qualified_var_type_access | @this_var_type_access | @import_var_type_access; +@namespace_access = @local_namespace_access | @qualified_namespace_access | @import_namespace_access; +@import_typeexpr = @import_type_access | @import_namespace_access | @import_var_type_access; + +@function_typeexpr = @plain_function_typeexpr | @constructor_typeexpr; + +// types +types ( + unique int id: @type, + int kind: int ref, + varchar(900) tostring: string ref +); + +#keyset[parent, idx] +type_child ( + int child: @type ref, + int parent: @type ref, + int idx: int ref +); + +case @type.kind of + 0 = @any_type +| 1 = @string_type +| 2 = @number_type +| 3 = @union_type +| 4 = @true_type +| 5 = @false_type +| 6 = @type_reference +| 7 = @object_type +| 8 = @canonical_type_variable_type +| 9 = @typeof_type +| 10 = @void_type +| 11 = @undefined_type +| 12 = @null_type +| 13 = @never_type +| 14 = @plain_symbol_type +| 15 = @unique_symbol_type +| 16 = @objectkeyword_type +| 17 = @intersection_type +| 18 = @tuple_type +| 19 = @lexical_type_variable_type +| 20 = @this_type +| 21 = @number_literal_type +| 22 = @string_literal_type +| 23 = @unknown_type +| 24 = @bigint_type +| 25 = @bigint_literal_type +; + +@boolean_literal_type = @true_type | @false_type; +@symbol_type = @plain_symbol_type | @unique_symbol_type; +@union_or_intersection_type = @union_type | @intersection_type; +@typevariable_type = @canonical_type_variable_type | @lexical_type_variable_type; + +has_asserts_keyword(int node: @predicate_typeexpr ref); + +@typed_ast_node = @expr | @typeexpr | @function; +ast_node_type( + unique int node: @typed_ast_node ref, + int typ: @type ref); + +declared_function_signature( + unique int node: @function ref, + int sig: @signature_type ref +); + +invoke_expr_signature( + unique int node: @invokeexpr ref, + int sig: @signature_type ref +); + +invoke_expr_overload_index( + unique int node: @invokeexpr ref, + int index: int ref +); + +symbols ( + unique int id: @symbol, + int kind: int ref, + varchar(900) name: string ref +); + +symbol_parent ( + unique int symbol: @symbol ref, + int parent: @symbol ref +); + +symbol_module ( + int symbol: @symbol ref, + varchar(900) moduleName: string ref +); + +symbol_global ( + int symbol: @symbol ref, + varchar(900) globalName: string ref +); + +case @symbol.kind of + 0 = @root_symbol +| 1 = @member_symbol +| 2 = @other_symbol +; + +@type_with_symbol = @type_reference | @typevariable_type | @typeof_type | @unique_symbol_type; +@ast_node_with_symbol = @type_definition | @namespace_definition | @toplevel | @typeaccess | @namespace_access | @var_decl | @function | @invokeexpr | @import_declaration | @external_module_reference | @external_module_declaration; + +ast_node_symbol( + unique int node: @ast_node_with_symbol ref, + int symbol: @symbol ref); + +type_symbol( + unique int typ: @type_with_symbol ref, + int symbol: @symbol ref); + +#keyset[typ, name] +type_property( + int typ: @type ref, + varchar(900) name: string ref, + int propertyType: @type ref); + +type_alias( + unique int aliasType: @type ref, + int underlyingType: @type ref); + +@literal_type = @string_literal_type | @number_literal_type | @boolean_literal_type | @bigint_literal_type; +@type_with_literal_value = @string_literal_type | @number_literal_type | @bigint_literal_type; +type_literal_value( + unique int typ: @type_with_literal_value ref, + varchar(900) value: string ref); + +signature_types ( + unique int id: @signature_type, + int kind: int ref, + varchar(900) tostring: string ref, + int type_parameters: int ref, + int required_params: int ref +); + +is_abstract_signature( + unique int sig: @signature_type ref +); + +signature_rest_parameter( + unique int sig: @signature_type ref, + int rest_param_arra_type: @type ref +); + +case @signature_type.kind of + 0 = @function_signature_type +| 1 = @constructor_signature_type +; + +#keyset[typ, kind, index] +type_contains_signature ( + int typ: @type ref, + int kind: int ref, // constructor/call/index + int index: int ref, // ordering of overloaded signatures + int sig: @signature_type ref +); + +#keyset[parent, index] +signature_contains_type ( + int child: @type ref, + int parent: @signature_type ref, + int index: int ref +); + +#keyset[sig, index] +signature_parameter_name ( + int sig: @signature_type ref, + int index: int ref, + varchar(900) name: string ref +); + +number_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +string_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +base_type_names( + int typeName: @symbol ref, + int baseTypeName: @symbol ref +); + +self_types( + int typeName: @symbol ref, + int selfType: @type_reference ref +); + +tuple_type_min_length( + unique int typ: @type ref, + int minLength: int ref +); + +tuple_type_rest_index( + unique int typ: @type ref, + int index: int ref +); + +// comments +comments (unique int id: @comment, + int kind: int ref, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(900) tostring: string ref); + +case @comment.kind of + 0 = @slashslash_comment +| 1 = @slashstar_comment +| 2 = @doc_comment +| 3 = @html_comment_start +| 4 = @htmlcommentend; + +@html_comment = @html_comment_start | @htmlcommentend; +@line_comment = @slashslash_comment | @html_comment; +@block_comment = @slashstar_comment | @doc_comment; + +// source lines +lines (unique int id: @line, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(2) terminator: string ref); +indentation (int file: @file ref, + int lineno: int ref, + varchar(1) indentChar: string ref, + int indentDepth: int ref); + +// JavaScript parse errors +js_parse_errors (unique int id: @js_parse_error, + int toplevel: @toplevel ref, + varchar(900) message: string ref, + varchar(900) line: string ref); + +// regular expressions +#keyset[parent, idx] +regexpterm (unique int id: @regexpterm, + int kind: int ref, + int parent: @regexpparent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +@regexpparent = @regexpterm | @regexp_literal | @string_literal | @add_expr; + +case @regexpterm.kind of + 0 = @regexp_alt +| 1 = @regexp_seq +| 2 = @regexp_caret +| 3 = @regexp_dollar +| 4 = @regexp_wordboundary +| 5 = @regexp_nonwordboundary +| 6 = @regexp_positive_lookahead +| 7 = @regexp_negative_lookahead +| 8 = @regexp_star +| 9 = @regexp_plus +| 10 = @regexp_opt +| 11 = @regexp_range +| 12 = @regexp_dot +| 13 = @regexp_group +| 14 = @regexp_normal_constant +| 15 = @regexp_hex_escape +| 16 = @regexp_unicode_escape +| 17 = @regexp_dec_escape +| 18 = @regexp_oct_escape +| 19 = @regexp_ctrl_escape +| 20 = @regexp_char_class_escape +| 21 = @regexp_id_escape +| 22 = @regexp_backref +| 23 = @regexp_char_class +| 24 = @regexp_char_range +| 25 = @regexp_positive_lookbehind +| 26 = @regexp_negative_lookbehind +| 27 = @regexp_unicode_property_escape +| 28 = @regexp_quoted_string +| 29 = @regexp_intersection +| 30 = @regexp_subtraction; + +regexp_parse_errors (unique int id: @regexp_parse_error, + int regexp: @regexpterm ref, + varchar(900) message: string ref); + +@regexp_quantifier = @regexp_star | @regexp_plus | @regexp_opt | @regexp_range; +@regexp_escape = @regexp_char_escape | @regexp_char_class_escape | @regexp_unicode_property_escape; +@regexp_char_escape = @regexp_hex_escape | @regexp_unicode_escape | @regexp_dec_escape | @regexp_oct_escape | @regexp_ctrl_escape | @regexp_id_escape; +@regexp_constant = @regexp_normal_constant | @regexp_char_escape; +@regexp_lookahead = @regexp_positive_lookahead | @regexp_negative_lookahead; +@regexp_lookbehind = @regexp_positive_lookbehind | @regexp_negative_lookbehind; +@regexp_subpattern = @regexp_lookahead | @regexp_lookbehind; +@regexp_anchor = @regexp_dollar | @regexp_caret; + +is_greedy (int id: @regexp_quantifier ref); +range_quantifier_lower_bound (unique int id: @regexp_range ref, int lo: int ref); +range_quantifier_upper_bound (unique int id: @regexp_range ref, int hi: int ref); +is_capture (unique int id: @regexp_group ref, int number: int ref); +is_named_capture (unique int id: @regexp_group ref, string name: string ref); +is_inverted (int id: @regexp_char_class ref); +regexp_const_value (unique int id: @regexp_constant ref, varchar(1) value: string ref); +char_class_escape (unique int id: @regexp_char_class_escape ref, varchar(1) value: string ref); +backref (unique int id: @regexp_backref ref, int value: int ref); +named_backref (unique int id: @regexp_backref ref, string name: string ref); +unicode_property_escapename (unique int id: @regexp_unicode_property_escape ref, string name: string ref); +unicode_property_escapevalue (unique int id: @regexp_unicode_property_escape ref, string value: string ref); + +// tokens +#keyset[toplevel, idx] +tokeninfo (unique int id: @token, + int kind: int ref, + int toplevel: @toplevel ref, + int idx: int ref, + varchar(900) value: string ref); + +case @token.kind of + 0 = @token_eof +| 1 = @token_null_literal +| 2 = @token_boolean_literal +| 3 = @token_numeric_literal +| 4 = @token_string_literal +| 5 = @token_regular_expression +| 6 = @token_identifier +| 7 = @token_keyword +| 8 = @token_punctuator; + +// associate comments with the token immediately following them (which may be EOF) +next_token (int comment: @comment ref, int token: @token ref); + +// JSON +#keyset[parent, idx] +json (unique int id: @json_value, + int kind: int ref, + int parent: @json_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +json_literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @json_value ref); + +json_properties (int obj: @json_object ref, + varchar(900) property: string ref, + int value: @json_value ref); + +json_errors (unique int id: @json_parse_error, + varchar(900) message: string ref); + +json_locations(unique int locatable: @json_locatable ref, + int location: @location_default ref); + +case @json_value.kind of + 0 = @json_null +| 1 = @json_boolean +| 2 = @json_number +| 3 = @json_string +| 4 = @json_array +| 5 = @json_object; + +@json_parent = @json_object | @json_array | @file; + +@json_locatable = @json_value | @json_parse_error; + +// locations +@ast_node = @toplevel | @stmt | @expr | @property | @typeexpr; + +@locatable = @file + | @ast_node + | @comment + | @line + | @js_parse_error | @regexp_parse_error + | @regexpterm + | @json_locatable + | @token + | @cfg_node + | @jsdoc | @jsdoc_type_expr | @jsdoc_tag + | @yaml_locatable + | @xmllocatable + | @configLocatable + | @template_placeholder_tag; + +hasLocation (unique int locatable: @locatable ref, + int location: @location ref); + +// CFG +entry_cfg_node (unique int id: @entry_node, int container: @stmt_container ref); +exit_cfg_node (unique int id: @exit_node, int container: @stmt_container ref); +guard_node (unique int id: @guard_node, int kind: int ref, int test: @expr ref); +case @guard_node.kind of + 0 = @falsy_guard +| 1 = @truthy_guard; +@condition_guard = @falsy_guard | @truthy_guard; + +@synthetic_cfg_node = @entry_node | @exit_node | @guard_node; +@cfg_node = @synthetic_cfg_node | @expr_parent; + +successor (int pred: @cfg_node ref, int succ: @cfg_node ref); + +// JSDoc comments +jsdoc (unique int id: @jsdoc, varchar(900) description: string ref, int comment: @comment ref); +#keyset[parent, idx] +jsdoc_tags (unique int id: @jsdoc_tag, varchar(900) title: string ref, + int parent: @jsdoc ref, int idx: int ref, varchar(900) tostring: string ref); +jsdoc_tag_descriptions (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); +jsdoc_tag_names (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); + +#keyset[parent, idx] +jsdoc_type_exprs (unique int id: @jsdoc_type_expr, + int kind: int ref, + int parent: @jsdoc_type_expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); +case @jsdoc_type_expr.kind of + 0 = @jsdoc_any_type_expr +| 1 = @jsdoc_null_type_expr +| 2 = @jsdoc_undefined_type_expr +| 3 = @jsdoc_unknown_type_expr +| 4 = @jsdoc_void_type_expr +| 5 = @jsdoc_identifier_type_expr +| 6 = @jsdoc_applied_type_expr +| 7 = @jsdoc_nullable_type_expr +| 8 = @jsdoc_non_nullable_type_expr +| 9 = @jsdoc_record_type_expr +| 10 = @jsdoc_array_type_expr +| 11 = @jsdoc_union_type_expr +| 12 = @jsdoc_function_type_expr +| 13 = @jsdoc_optional_type_expr +| 14 = @jsdoc_rest_type_expr +| 15 = @jsdoc_qualified_type_expr +; + +#keyset[id, idx] +jsdoc_record_field_name (int id: @jsdoc_record_type_expr ref, int idx: int ref, varchar(900) name: string ref); +jsdoc_prefix_qualifier (int id: @jsdoc_type_expr ref); +jsdoc_has_new_parameter (int fn: @jsdoc_function_type_expr ref); + +@jsdoc_type_expr_parent = @jsdoc_type_expr | @jsdoc_tag; + +jsdoc_errors (unique int id: @jsdoc_error, int tag: @jsdoc_tag ref, varchar(900) message: string ref, varchar(900) tostring: string ref); + +@dataflownode = @expr | @function_decl_stmt | @class_decl_stmt | @namespace_declaration | @enum_declaration | @property; + +@optionalchainable = @call_expr | @propaccess; + +isOptionalChaining(int id: @optionalchainable ref); + +/** + * The time taken for the extraction of a file. + * This table contains non-deterministic content. + * + * The sum of the `time` column for each (`file`, `timerKind`) pair + * is the total time taken for extraction of `file`. The `extractionPhase` + * column provides a granular view of the extraction time of the file. + */ +extraction_time( + int file : @file ref, + // see `com.semmle.js.extractor.ExtractionMetrics.ExtractionPhase`. + int extractionPhase: int ref, + // 0 for the elapsed CPU time in nanoseconds, 1 for the elapsed wallclock time in nanoseconds + int timerKind: int ref, + float time: float ref +) + +/** +* Non-timing related data for the extraction of a single file. +* This table contains non-deterministic content. +*/ +extraction_data( + int file : @file ref, + // the absolute path to the cache file + varchar(900) cacheFile: string ref, + boolean fromCache: boolean ref, + int length: int ref +) + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- Configuration files with key value pairs -*/ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); diff --git a/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/semmlecode.javascript.dbscheme b/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/semmlecode.javascript.dbscheme new file mode 100644 index 00000000000..578367e82a2 --- /dev/null +++ b/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/semmlecode.javascript.dbscheme @@ -0,0 +1,1217 @@ +/*** Standard fragments ***/ + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- JavaScript-specific part -*/ + +@location = @location_default + +@sourceline = @locatable; + +filetype( + int file: @file ref, + string filetype: string ref +) + +// top-level code fragments +toplevels (unique int id: @toplevel, + int kind: int ref); + +is_externs (int toplevel: @toplevel ref); + +case @toplevel.kind of + 0 = @script +| 1 = @inline_script +| 2 = @event_handler +| 3 = @javascript_url +| 4 = @template_toplevel; + +is_module (int tl: @toplevel ref); +is_nodejs (int tl: @toplevel ref); +is_es2015_module (int tl: @toplevel ref); +is_closure_module (int tl: @toplevel ref); + +@xml_node_with_code = @xmlelement | @xmlattribute | @template_placeholder_tag; +toplevel_parent_xml_node( + unique int toplevel: @toplevel ref, + int xmlnode: @xml_node_with_code ref); + +xml_element_parent_expression( + unique int xmlnode: @xmlelement ref, + int expression: @expr ref, + int index: int ref); + +// statements +#keyset[parent, idx] +stmts (unique int id: @stmt, + int kind: int ref, + int parent: @stmt_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +stmt_containers (unique int stmt: @stmt ref, + int container: @stmt_container ref); + +jump_targets (unique int jump: @stmt ref, + int target: @stmt ref); + +@stmt_parent = @stmt | @toplevel | @function_expr | @arrow_function_expr | @static_initializer; +@stmt_container = @toplevel | @function | @namespace_declaration | @external_module_declaration | @global_augmentation_declaration; + +case @stmt.kind of + 0 = @empty_stmt +| 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @labeled_stmt +| 5 = @break_stmt +| 6 = @continue_stmt +| 7 = @with_stmt +| 8 = @switch_stmt +| 9 = @return_stmt +| 10 = @throw_stmt +| 11 = @try_stmt +| 12 = @while_stmt +| 13 = @do_while_stmt +| 14 = @for_stmt +| 15 = @for_in_stmt +| 16 = @debugger_stmt +| 17 = @function_decl_stmt +| 18 = @var_decl_stmt +| 19 = @case +| 20 = @catch_clause +| 21 = @for_of_stmt +| 22 = @const_decl_stmt +| 23 = @let_stmt +| 24 = @legacy_let_stmt +| 25 = @for_each_stmt +| 26 = @class_decl_stmt +| 27 = @import_declaration +| 28 = @export_all_declaration +| 29 = @export_default_declaration +| 30 = @export_named_declaration +| 31 = @namespace_declaration +| 32 = @import_equals_declaration +| 33 = @export_assign_declaration +| 34 = @interface_declaration +| 35 = @type_alias_declaration +| 36 = @enum_declaration +| 37 = @external_module_declaration +| 38 = @export_as_namespace_declaration +| 39 = @global_augmentation_declaration +| 40 = @using_decl_stmt +; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @let_stmt | @legacy_let_stmt | @using_decl_stmt; + +@export_declaration = @export_all_declaration | @export_default_declaration | @export_named_declaration; + +@namespace_definition = @namespace_declaration | @enum_declaration; +@type_definition = @class_definition | @interface_declaration | @enum_declaration | @type_alias_declaration | @enum_member; + +is_instantiated(unique int decl: @namespace_declaration ref); + +@declarable_node = @decl_stmt | @namespace_declaration | @class_decl_stmt | @function_decl_stmt | @enum_declaration | @external_module_declaration | @global_augmentation_declaration | @field; +has_declare_keyword(unique int stmt: @declarable_node ref); + +is_for_await_of(unique int forof: @for_of_stmt ref); + +// expressions +#keyset[parent, idx] +exprs (unique int id: @expr, + int kind: int ref, + int parent: @expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @expr_or_type ref); + +enclosing_stmt (unique int expr: @expr_or_type ref, + int stmt: @stmt ref); + +expr_containers (unique int expr: @expr_or_type ref, + int container: @stmt_container ref); + +array_size (unique int ae: @arraylike ref, + int sz: int ref); + +is_delegating (int yield: @yield_expr ref); + +@expr_or_stmt = @expr | @stmt; +@expr_or_type = @expr | @typeexpr; +@expr_parent = @expr_or_stmt | @property | @function_typeexpr; +@arraylike = @array_expr | @array_pattern; +@type_annotation = @typeexpr | @jsdoc_type_expr; +@node_in_stmt_container = @cfg_node | @type_annotation | @toplevel; + +case @expr.kind of + 0 = @label +| 1 = @null_literal +| 2 = @boolean_literal +| 3 = @number_literal +| 4 = @string_literal +| 5 = @regexp_literal +| 6 = @this_expr +| 7 = @array_expr +| 8 = @obj_expr +| 9 = @function_expr +| 10 = @seq_expr +| 11 = @conditional_expr +| 12 = @new_expr +| 13 = @call_expr +| 14 = @dot_expr +| 15 = @index_expr +| 16 = @neg_expr +| 17 = @plus_expr +| 18 = @log_not_expr +| 19 = @bit_not_expr +| 20 = @typeof_expr +| 21 = @void_expr +| 22 = @delete_expr +| 23 = @eq_expr +| 24 = @neq_expr +| 25 = @eqq_expr +| 26 = @neqq_expr +| 27 = @lt_expr +| 28 = @le_expr +| 29 = @gt_expr +| 30 = @ge_expr +| 31 = @lshift_expr +| 32 = @rshift_expr +| 33 = @urshift_expr +| 34 = @add_expr +| 35 = @sub_expr +| 36 = @mul_expr +| 37 = @div_expr +| 38 = @mod_expr +| 39 = @bitor_expr +| 40 = @xor_expr +| 41 = @bitand_expr +| 42 = @in_expr +| 43 = @instanceof_expr +| 44 = @logand_expr +| 45 = @logor_expr +| 47 = @assign_expr +| 48 = @assign_add_expr +| 49 = @assign_sub_expr +| 50 = @assign_mul_expr +| 51 = @assign_div_expr +| 52 = @assign_mod_expr +| 53 = @assign_lshift_expr +| 54 = @assign_rshift_expr +| 55 = @assign_urshift_expr +| 56 = @assign_or_expr +| 57 = @assign_xor_expr +| 58 = @assign_and_expr +| 59 = @preinc_expr +| 60 = @postinc_expr +| 61 = @predec_expr +| 62 = @postdec_expr +| 63 = @par_expr +| 64 = @var_declarator +| 65 = @arrow_function_expr +| 66 = @spread_element +| 67 = @array_pattern +| 68 = @object_pattern +| 69 = @yield_expr +| 70 = @tagged_template_expr +| 71 = @template_literal +| 72 = @template_element +| 73 = @array_comprehension_expr +| 74 = @generator_expr +| 75 = @for_in_comprehension_block +| 76 = @for_of_comprehension_block +| 77 = @legacy_letexpr +| 78 = @var_decl +| 79 = @proper_varaccess +| 80 = @class_expr +| 81 = @super_expr +| 82 = @newtarget_expr +| 83 = @named_import_specifier +| 84 = @import_default_specifier +| 85 = @import_namespace_specifier +| 86 = @named_export_specifier +| 87 = @exp_expr +| 88 = @assign_exp_expr +| 89 = @jsx_element +| 90 = @jsx_qualified_name +| 91 = @jsx_empty_expr +| 92 = @await_expr +| 93 = @function_sent_expr +| 94 = @decorator +| 95 = @export_default_specifier +| 96 = @export_namespace_specifier +| 97 = @bind_expr +| 98 = @external_module_reference +| 99 = @dynamic_import +| 100 = @expression_with_type_arguments +| 101 = @prefix_type_assertion +| 102 = @as_type_assertion +| 103 = @export_varaccess +| 104 = @decorator_list +| 105 = @non_null_assertion +| 106 = @bigint_literal +| 107 = @nullishcoalescing_expr +| 108 = @e4x_xml_anyname +| 109 = @e4x_xml_static_attribute_selector +| 110 = @e4x_xml_dynamic_attribute_selector +| 111 = @e4x_xml_filter_expression +| 112 = @e4x_xml_static_qualident +| 113 = @e4x_xml_dynamic_qualident +| 114 = @e4x_xml_dotdotexpr +| 115 = @import_meta_expr +| 116 = @assignlogandexpr +| 117 = @assignlogorexpr +| 118 = @assignnullishcoalescingexpr +| 119 = @template_pipe_ref +| 120 = @generated_code_expr +| 121 = @satisfies_expr +; + +@varaccess = @proper_varaccess | @export_varaccess; +@varref = @var_decl | @varaccess; + +@identifier = @label | @varref | @type_identifier; + +@literal = @null_literal | @boolean_literal | @number_literal | @string_literal | @regexp_literal | @bigint_literal; + +@propaccess = @dot_expr | @index_expr; + +@invokeexpr = @new_expr | @call_expr; + +@unaryexpr = @neg_expr | @plus_expr | @log_not_expr | @bit_not_expr | @typeof_expr | @void_expr | @delete_expr | @spread_element; + +@equality_test = @eq_expr | @neq_expr | @eqq_expr | @neqq_expr; + +@comparison = @equality_test | @lt_expr | @le_expr | @gt_expr | @ge_expr; + +@binaryexpr = @comparison | @lshift_expr | @rshift_expr | @urshift_expr | @add_expr | @sub_expr | @mul_expr | @div_expr | @mod_expr | @exp_expr | @bitor_expr | @xor_expr | @bitand_expr | @in_expr | @instanceof_expr | @logand_expr | @logor_expr | @nullishcoalescing_expr; + +@assignment = @assign_expr | @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr | @assign_mod_expr | @assign_exp_expr | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr | @assign_or_expr | @assign_xor_expr | @assign_and_expr | @assignlogandexpr | @assignlogorexpr | @assignnullishcoalescingexpr; + +@updateexpr = @preinc_expr | @postinc_expr | @predec_expr | @postdec_expr; + +@pattern = @varref | @array_pattern | @object_pattern; + +@comprehension_expr = @array_comprehension_expr | @generator_expr; + +@comprehension_block = @for_in_comprehension_block | @for_of_comprehension_block; + +@import_specifier = @named_import_specifier | @import_default_specifier | @import_namespace_specifier; + +@exportspecifier = @named_export_specifier | @export_default_specifier | @export_namespace_specifier; + +@type_keyword_operand = @import_declaration | @export_declaration | @import_specifier; + +@type_assertion = @as_type_assertion | @prefix_type_assertion; + +@class_definition = @class_decl_stmt | @class_expr; +@interface_definition = @interface_declaration | @interface_typeexpr; +@class_or_interface = @class_definition | @interface_definition; + +@lexical_decl = @var_decl | @type_decl; +@lexical_access = @varaccess | @local_type_access | @local_var_type_access | @local_namespace_access; +@lexical_ref = @lexical_decl | @lexical_access; + +@e4x_xml_attribute_selector = @e4x_xml_static_attribute_selector | @e4x_xml_dynamic_attribute_selector; +@e4x_xml_qualident = @e4x_xml_static_qualident | @e4x_xml_dynamic_qualident; + +expr_contains_template_tag_location( + int expr: @expr ref, + int location: @location ref +); + +@template_placeholder_tag_parent = @xmlelement | @xmlattribute | @file; + +template_placeholder_tag_info( + unique int node: @template_placeholder_tag, + int parentNode: @template_placeholder_tag_parent ref, + varchar(900) raw: string ref +); + +// scopes +scopes (unique int id: @scope, + int kind: int ref); + +case @scope.kind of + 0 = @global_scope +| 1 = @function_scope +| 2 = @catch_scope +| 3 = @module_scope +| 4 = @block_scope +| 5 = @for_scope +| 6 = @for_in_scope // for-of scopes work the same as for-in scopes +| 7 = @comprehension_block_scope +| 8 = @class_expr_scope +| 9 = @namespace_scope +| 10 = @class_decl_scope +| 11 = @interface_scope +| 12 = @type_alias_scope +| 13 = @mapped_type_scope +| 14 = @enum_scope +| 15 = @external_module_scope +| 16 = @conditional_type_scope; + +scopenodes (unique int node: @ast_node ref, + int scope: @scope ref); + +scopenesting (unique int inner: @scope ref, + int outer: @scope ref); + +// functions +@function = @function_decl_stmt | @function_expr | @arrow_function_expr; + +@parameterized = @function | @catch_clause; +@type_parameterized = @function | @class_or_interface | @type_alias_declaration | @mapped_typeexpr | @infer_typeexpr; + +is_generator (int fun: @function ref); +has_rest_parameter (int fun: @function ref); +is_async (int fun: @function ref); + +// variables and lexically scoped type names +#keyset[scope, name] +variables (unique int id: @variable, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_type_names (unique int id: @local_type_name, + varchar(900) name: string ref, + int scope: @scope ref); + +#keyset[scope, name] +local_namespace_names (unique int id: @local_namespace_name, + varchar(900) name: string ref, + int scope: @scope ref); + +is_arguments_object (int id: @variable ref); + +@lexical_name = @variable | @local_type_name | @local_namespace_name; + +@bind_id = @varaccess | @local_var_type_access; +bind (unique int id: @bind_id ref, + int decl: @variable ref); + +decl (unique int id: @var_decl ref, + int decl: @variable ref); + +@typebind_id = @local_type_access | @export_varaccess; +typebind (unique int id: @typebind_id ref, + int decl: @local_type_name ref); + +@typedecl_id = @type_decl | @var_decl; +typedecl (unique int id: @typedecl_id ref, + int decl: @local_type_name ref); + +namespacedecl (unique int id: @var_decl ref, + int decl: @local_namespace_name ref); + +@namespacebind_id = @local_namespace_access | @export_varaccess; +namespacebind (unique int id: @namespacebind_id ref, + int decl: @local_namespace_name ref); + + +// properties in object literals, property patterns in object patterns, and method declarations in classes +#keyset[parent, index] +properties (unique int id: @property, + int parent: @property_parent ref, + int index: int ref, + int kind: int ref, + varchar(900) tostring: string ref); + +case @property.kind of + 0 = @value_property +| 1 = @property_getter +| 2 = @property_setter +| 3 = @jsx_attribute +| 4 = @function_call_signature +| 5 = @constructor_call_signature +| 6 = @index_signature +| 7 = @enum_member +| 8 = @proper_field +| 9 = @parameter_field +| 10 = @static_initializer +; + +@property_parent = @obj_expr | @object_pattern | @class_definition | @jsx_element | @interface_definition | @enum_declaration; +@property_accessor = @property_getter | @property_setter; +@call_signature = @function_call_signature | @constructor_call_signature; +@field = @proper_field | @parameter_field; +@field_or_vardeclarator = @field | @var_declarator; + +is_computed (int id: @property ref); +is_method (int id: @property ref); +is_static (int id: @property ref); +is_abstract_member (int id: @property ref); +is_const_enum (int id: @enum_declaration ref); +is_abstract_class (int id: @class_decl_stmt ref); + +has_public_keyword (int id: @property ref); +has_private_keyword (int id: @property ref); +has_protected_keyword (int id: @property ref); +has_readonly_keyword (int id: @property ref); +has_type_keyword (int id: @type_keyword_operand ref); +has_defer_keyword (int id: @import_declaration ref); +is_optional_member (int id: @property ref); +has_definite_assignment_assertion (int id: @field_or_vardeclarator ref); +is_optional_parameter_declaration (unique int parameter: @pattern ref); + +#keyset[constructor, param_index] +parameter_fields( + unique int field: @parameter_field ref, + int constructor: @function_expr ref, + int param_index: int ref +); + +// types +#keyset[parent, idx] +typeexprs ( + unique int id: @typeexpr, + int kind: int ref, + int parent: @typeexpr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref +); + +case @typeexpr.kind of + 0 = @local_type_access +| 1 = @type_decl +| 2 = @keyword_typeexpr +| 3 = @string_literal_typeexpr +| 4 = @number_literal_typeexpr +| 5 = @boolean_literal_typeexpr +| 6 = @array_typeexpr +| 7 = @union_typeexpr +| 8 = @indexed_access_typeexpr +| 9 = @intersection_typeexpr +| 10 = @parenthesized_typeexpr +| 11 = @tuple_typeexpr +| 12 = @keyof_typeexpr +| 13 = @qualified_type_access +| 14 = @generic_typeexpr +| 15 = @type_label +| 16 = @typeof_typeexpr +| 17 = @local_var_type_access +| 18 = @qualified_var_type_access +| 19 = @this_var_type_access +| 20 = @predicate_typeexpr +| 21 = @interface_typeexpr +| 22 = @type_parameter +| 23 = @plain_function_typeexpr +| 24 = @constructor_typeexpr +| 25 = @local_namespace_access +| 26 = @qualified_namespace_access +| 27 = @mapped_typeexpr +| 28 = @conditional_typeexpr +| 29 = @infer_typeexpr +| 30 = @import_type_access +| 31 = @import_namespace_access +| 32 = @import_var_type_access +| 33 = @optional_typeexpr +| 34 = @rest_typeexpr +| 35 = @bigint_literal_typeexpr +| 36 = @readonly_typeexpr +| 37 = @template_literal_typeexpr +; + +@typeref = @typeaccess | @type_decl; +@type_identifier = @type_decl | @local_type_access | @type_label | @local_var_type_access | @local_namespace_access; +@typeexpr_parent = @expr | @stmt | @property | @typeexpr; +@literal_typeexpr = @string_literal_typeexpr | @number_literal_typeexpr | @boolean_literal_typeexpr | @bigint_literal_typeexpr; +@typeaccess = @local_type_access | @qualified_type_access | @import_type_access; +@vartypeaccess = @local_var_type_access | @qualified_var_type_access | @this_var_type_access | @import_var_type_access; +@namespace_access = @local_namespace_access | @qualified_namespace_access | @import_namespace_access; +@import_typeexpr = @import_type_access | @import_namespace_access | @import_var_type_access; + +@function_typeexpr = @plain_function_typeexpr | @constructor_typeexpr; + +// types +types ( + unique int id: @type, + int kind: int ref, + varchar(900) tostring: string ref +); + +#keyset[parent, idx] +type_child ( + int child: @type ref, + int parent: @type ref, + int idx: int ref +); + +case @type.kind of + 0 = @any_type +| 1 = @string_type +| 2 = @number_type +| 3 = @union_type +| 4 = @true_type +| 5 = @false_type +| 6 = @type_reference +| 7 = @object_type +| 8 = @canonical_type_variable_type +| 9 = @typeof_type +| 10 = @void_type +| 11 = @undefined_type +| 12 = @null_type +| 13 = @never_type +| 14 = @plain_symbol_type +| 15 = @unique_symbol_type +| 16 = @objectkeyword_type +| 17 = @intersection_type +| 18 = @tuple_type +| 19 = @lexical_type_variable_type +| 20 = @this_type +| 21 = @number_literal_type +| 22 = @string_literal_type +| 23 = @unknown_type +| 24 = @bigint_type +| 25 = @bigint_literal_type +; + +@boolean_literal_type = @true_type | @false_type; +@symbol_type = @plain_symbol_type | @unique_symbol_type; +@union_or_intersection_type = @union_type | @intersection_type; +@typevariable_type = @canonical_type_variable_type | @lexical_type_variable_type; + +has_asserts_keyword(int node: @predicate_typeexpr ref); + +@typed_ast_node = @expr | @typeexpr | @function; +ast_node_type( + unique int node: @typed_ast_node ref, + int typ: @type ref); + +declared_function_signature( + unique int node: @function ref, + int sig: @signature_type ref +); + +invoke_expr_signature( + unique int node: @invokeexpr ref, + int sig: @signature_type ref +); + +invoke_expr_overload_index( + unique int node: @invokeexpr ref, + int index: int ref +); + +symbols ( + unique int id: @symbol, + int kind: int ref, + varchar(900) name: string ref +); + +symbol_parent ( + unique int symbol: @symbol ref, + int parent: @symbol ref +); + +symbol_module ( + int symbol: @symbol ref, + varchar(900) moduleName: string ref +); + +symbol_global ( + int symbol: @symbol ref, + varchar(900) globalName: string ref +); + +case @symbol.kind of + 0 = @root_symbol +| 1 = @member_symbol +| 2 = @other_symbol +; + +@type_with_symbol = @type_reference | @typevariable_type | @typeof_type | @unique_symbol_type; +@ast_node_with_symbol = @type_definition | @namespace_definition | @toplevel | @typeaccess | @namespace_access | @var_decl | @function | @invokeexpr | @import_declaration | @external_module_reference | @external_module_declaration; + +ast_node_symbol( + unique int node: @ast_node_with_symbol ref, + int symbol: @symbol ref); + +type_symbol( + unique int typ: @type_with_symbol ref, + int symbol: @symbol ref); + +#keyset[typ, name] +type_property( + int typ: @type ref, + varchar(900) name: string ref, + int propertyType: @type ref); + +type_alias( + unique int aliasType: @type ref, + int underlyingType: @type ref); + +@literal_type = @string_literal_type | @number_literal_type | @boolean_literal_type | @bigint_literal_type; +@type_with_literal_value = @string_literal_type | @number_literal_type | @bigint_literal_type; +type_literal_value( + unique int typ: @type_with_literal_value ref, + varchar(900) value: string ref); + +signature_types ( + unique int id: @signature_type, + int kind: int ref, + varchar(900) tostring: string ref, + int type_parameters: int ref, + int required_params: int ref +); + +is_abstract_signature( + unique int sig: @signature_type ref +); + +signature_rest_parameter( + unique int sig: @signature_type ref, + int rest_param_arra_type: @type ref +); + +case @signature_type.kind of + 0 = @function_signature_type +| 1 = @constructor_signature_type +; + +#keyset[typ, kind, index] +type_contains_signature ( + int typ: @type ref, + int kind: int ref, // constructor/call/index + int index: int ref, // ordering of overloaded signatures + int sig: @signature_type ref +); + +#keyset[parent, index] +signature_contains_type ( + int child: @type ref, + int parent: @signature_type ref, + int index: int ref +); + +#keyset[sig, index] +signature_parameter_name ( + int sig: @signature_type ref, + int index: int ref, + varchar(900) name: string ref +); + +number_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +string_index_type ( + unique int baseType: @type ref, + int propertyType: @type ref +); + +base_type_names( + int typeName: @symbol ref, + int baseTypeName: @symbol ref +); + +self_types( + int typeName: @symbol ref, + int selfType: @type_reference ref +); + +tuple_type_min_length( + unique int typ: @type ref, + int minLength: int ref +); + +tuple_type_rest_index( + unique int typ: @type ref, + int index: int ref +); + +// comments +comments (unique int id: @comment, + int kind: int ref, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(900) tostring: string ref); + +case @comment.kind of + 0 = @slashslash_comment +| 1 = @slashstar_comment +| 2 = @doc_comment +| 3 = @html_comment_start +| 4 = @htmlcommentend; + +@html_comment = @html_comment_start | @htmlcommentend; +@line_comment = @slashslash_comment | @html_comment; +@block_comment = @slashstar_comment | @doc_comment; + +// source lines +lines (unique int id: @line, + int toplevel: @toplevel ref, + varchar(900) text: string ref, + varchar(2) terminator: string ref); +indentation (int file: @file ref, + int lineno: int ref, + varchar(1) indentChar: string ref, + int indentDepth: int ref); + +// JavaScript parse errors +js_parse_errors (unique int id: @js_parse_error, + int toplevel: @toplevel ref, + varchar(900) message: string ref, + varchar(900) line: string ref); + +// regular expressions +#keyset[parent, idx] +regexpterm (unique int id: @regexpterm, + int kind: int ref, + int parent: @regexpparent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +@regexpparent = @regexpterm | @regexp_literal | @string_literal | @add_expr; + +case @regexpterm.kind of + 0 = @regexp_alt +| 1 = @regexp_seq +| 2 = @regexp_caret +| 3 = @regexp_dollar +| 4 = @regexp_wordboundary +| 5 = @regexp_nonwordboundary +| 6 = @regexp_positive_lookahead +| 7 = @regexp_negative_lookahead +| 8 = @regexp_star +| 9 = @regexp_plus +| 10 = @regexp_opt +| 11 = @regexp_range +| 12 = @regexp_dot +| 13 = @regexp_group +| 14 = @regexp_normal_constant +| 15 = @regexp_hex_escape +| 16 = @regexp_unicode_escape +| 17 = @regexp_dec_escape +| 18 = @regexp_oct_escape +| 19 = @regexp_ctrl_escape +| 20 = @regexp_char_class_escape +| 21 = @regexp_id_escape +| 22 = @regexp_backref +| 23 = @regexp_char_class +| 24 = @regexp_char_range +| 25 = @regexp_positive_lookbehind +| 26 = @regexp_negative_lookbehind +| 27 = @regexp_unicode_property_escape +| 28 = @regexp_quoted_string +| 29 = @regexp_intersection +| 30 = @regexp_subtraction; + +regexp_parse_errors (unique int id: @regexp_parse_error, + int regexp: @regexpterm ref, + varchar(900) message: string ref); + +@regexp_quantifier = @regexp_star | @regexp_plus | @regexp_opt | @regexp_range; +@regexp_escape = @regexp_char_escape | @regexp_char_class_escape | @regexp_unicode_property_escape; +@regexp_char_escape = @regexp_hex_escape | @regexp_unicode_escape | @regexp_dec_escape | @regexp_oct_escape | @regexp_ctrl_escape | @regexp_id_escape; +@regexp_constant = @regexp_normal_constant | @regexp_char_escape; +@regexp_lookahead = @regexp_positive_lookahead | @regexp_negative_lookahead; +@regexp_lookbehind = @regexp_positive_lookbehind | @regexp_negative_lookbehind; +@regexp_subpattern = @regexp_lookahead | @regexp_lookbehind; +@regexp_anchor = @regexp_dollar | @regexp_caret; + +is_greedy (int id: @regexp_quantifier ref); +range_quantifier_lower_bound (unique int id: @regexp_range ref, int lo: int ref); +range_quantifier_upper_bound (unique int id: @regexp_range ref, int hi: int ref); +is_capture (unique int id: @regexp_group ref, int number: int ref); +is_named_capture (unique int id: @regexp_group ref, string name: string ref); +is_inverted (int id: @regexp_char_class ref); +regexp_const_value (unique int id: @regexp_constant ref, varchar(1) value: string ref); +char_class_escape (unique int id: @regexp_char_class_escape ref, varchar(1) value: string ref); +backref (unique int id: @regexp_backref ref, int value: int ref); +named_backref (unique int id: @regexp_backref ref, string name: string ref); +unicode_property_escapename (unique int id: @regexp_unicode_property_escape ref, string name: string ref); +unicode_property_escapevalue (unique int id: @regexp_unicode_property_escape ref, string value: string ref); + +// tokens +#keyset[toplevel, idx] +tokeninfo (unique int id: @token, + int kind: int ref, + int toplevel: @toplevel ref, + int idx: int ref, + varchar(900) value: string ref); + +case @token.kind of + 0 = @token_eof +| 1 = @token_null_literal +| 2 = @token_boolean_literal +| 3 = @token_numeric_literal +| 4 = @token_string_literal +| 5 = @token_regular_expression +| 6 = @token_identifier +| 7 = @token_keyword +| 8 = @token_punctuator; + +// associate comments with the token immediately following them (which may be EOF) +next_token (int comment: @comment ref, int token: @token ref); + +// JSON +#keyset[parent, idx] +json (unique int id: @json_value, + int kind: int ref, + int parent: @json_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); + +json_literals (varchar(900) value: string ref, + varchar(900) raw: string ref, + unique int expr: @json_value ref); + +json_properties (int obj: @json_object ref, + varchar(900) property: string ref, + int value: @json_value ref); + +json_errors (unique int id: @json_parse_error, + varchar(900) message: string ref); + +json_locations(unique int locatable: @json_locatable ref, + int location: @location_default ref); + +case @json_value.kind of + 0 = @json_null +| 1 = @json_boolean +| 2 = @json_number +| 3 = @json_string +| 4 = @json_array +| 5 = @json_object; + +@json_parent = @json_object | @json_array | @file; + +@json_locatable = @json_value | @json_parse_error; + +// locations +@ast_node = @toplevel | @stmt | @expr | @property | @typeexpr; + +@locatable = @file + | @ast_node + | @comment + | @line + | @js_parse_error | @regexp_parse_error + | @regexpterm + | @json_locatable + | @token + | @cfg_node + | @jsdoc | @jsdoc_type_expr | @jsdoc_tag + | @yaml_locatable + | @xmllocatable + | @configLocatable + | @template_placeholder_tag; + +hasLocation (unique int locatable: @locatable ref, + int location: @location ref); + +// CFG +entry_cfg_node (unique int id: @entry_node, int container: @stmt_container ref); +exit_cfg_node (unique int id: @exit_node, int container: @stmt_container ref); +guard_node (unique int id: @guard_node, int kind: int ref, int test: @expr ref); +case @guard_node.kind of + 0 = @falsy_guard +| 1 = @truthy_guard; +@condition_guard = @falsy_guard | @truthy_guard; + +@synthetic_cfg_node = @entry_node | @exit_node | @guard_node; +@cfg_node = @synthetic_cfg_node | @expr_parent; + +successor (int pred: @cfg_node ref, int succ: @cfg_node ref); + +// JSDoc comments +jsdoc (unique int id: @jsdoc, varchar(900) description: string ref, int comment: @comment ref); +#keyset[parent, idx] +jsdoc_tags (unique int id: @jsdoc_tag, varchar(900) title: string ref, + int parent: @jsdoc ref, int idx: int ref, varchar(900) tostring: string ref); +jsdoc_tag_descriptions (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); +jsdoc_tag_names (unique int tag: @jsdoc_tag ref, varchar(900) text: string ref); + +#keyset[parent, idx] +jsdoc_type_exprs (unique int id: @jsdoc_type_expr, + int kind: int ref, + int parent: @jsdoc_type_expr_parent ref, + int idx: int ref, + varchar(900) tostring: string ref); +case @jsdoc_type_expr.kind of + 0 = @jsdoc_any_type_expr +| 1 = @jsdoc_null_type_expr +| 2 = @jsdoc_undefined_type_expr +| 3 = @jsdoc_unknown_type_expr +| 4 = @jsdoc_void_type_expr +| 5 = @jsdoc_identifier_type_expr +| 6 = @jsdoc_applied_type_expr +| 7 = @jsdoc_nullable_type_expr +| 8 = @jsdoc_non_nullable_type_expr +| 9 = @jsdoc_record_type_expr +| 10 = @jsdoc_array_type_expr +| 11 = @jsdoc_union_type_expr +| 12 = @jsdoc_function_type_expr +| 13 = @jsdoc_optional_type_expr +| 14 = @jsdoc_rest_type_expr +| 15 = @jsdoc_qualified_type_expr +; + +#keyset[id, idx] +jsdoc_record_field_name (int id: @jsdoc_record_type_expr ref, int idx: int ref, varchar(900) name: string ref); +jsdoc_prefix_qualifier (int id: @jsdoc_type_expr ref); +jsdoc_has_new_parameter (int fn: @jsdoc_function_type_expr ref); + +@jsdoc_type_expr_parent = @jsdoc_type_expr | @jsdoc_tag; + +jsdoc_errors (unique int id: @jsdoc_error, int tag: @jsdoc_tag ref, varchar(900) message: string ref, varchar(900) tostring: string ref); + +@dataflownode = @expr | @function_decl_stmt | @class_decl_stmt | @namespace_declaration | @enum_declaration | @property; + +@optionalchainable = @call_expr | @propaccess; + +isOptionalChaining(int id: @optionalchainable ref); + +/** + * The time taken for the extraction of a file. + * This table contains non-deterministic content. + * + * The sum of the `time` column for each (`file`, `timerKind`) pair + * is the total time taken for extraction of `file`. The `extractionPhase` + * column provides a granular view of the extraction time of the file. + */ +extraction_time( + int file : @file ref, + // see `com.semmle.js.extractor.ExtractionMetrics.ExtractionPhase`. + int extractionPhase: int ref, + // 0 for the elapsed CPU time in nanoseconds, 1 for the elapsed wallclock time in nanoseconds + int timerKind: int ref, + float time: float ref +) + +/** +* Non-timing related data for the extraction of a single file. +* This table contains non-deterministic content. +*/ +extraction_data( + int file : @file ref, + // the absolute path to the cache file + varchar(900) cacheFile: string ref, + boolean fromCache: boolean ref, + int length: int ref +) + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- Configuration files with key value pairs -*/ + +configs( + unique int id: @config +); + +configNames( + unique int id: @configName, + int config: @config ref, + string name: string ref +); + +configValues( + unique int id: @configValue, + int config: @config ref, + string value: string ref +); + +configLocations( + int locatable: @configLocatable ref, + int location: @location_default ref +); + +@configLocatable = @config | @configName | @configValue; + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); diff --git a/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/upgrade.properties b/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/javascript/ql/lib/upgrades/80b2bc24189307c5fd178dc2da95b45bcdb117f7/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full From 82e9ea2da0ce557ead3094424a3ef8e29c5107b8 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:33:35 +0000 Subject: [PATCH 252/263] python: Add up/downgrade scripts --- .../old.dbscheme | 1289 +++++++++++++++++ .../semmlecode.dbscheme | 1282 ++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 1282 ++++++++++++++++ .../semmlecode.python.dbscheme | 1289 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 5146 insertions(+) create mode 100644 python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme create mode 100644 python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.dbscheme create mode 100644 python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties create mode 100644 python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/old.dbscheme create mode 100644 python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/semmlecode.python.dbscheme create mode 100644 python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/upgrade.properties diff --git a/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme b/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme new file mode 100644 index 00000000000..279cbb08d38 --- /dev/null +++ b/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme @@ -0,0 +1,1289 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.dbscheme b/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.dbscheme new file mode 100644 index 00000000000..8d257a4a9bc --- /dev/null +++ b/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.dbscheme @@ -0,0 +1,1282 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties b/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/python/downgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full diff --git a/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/old.dbscheme b/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/old.dbscheme new file mode 100644 index 00000000000..8d257a4a9bc --- /dev/null +++ b/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/old.dbscheme @@ -0,0 +1,1282 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/semmlecode.python.dbscheme b/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/semmlecode.python.dbscheme new file mode 100644 index 00000000000..279cbb08d38 --- /dev/null +++ b/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/semmlecode.python.dbscheme @@ -0,0 +1,1289 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/upgrade.properties b/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/python/ql/lib/upgrades/8d257a4a9bc78e39856d6cd33499389fc5148d4f/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full From 1fd60c7671c565a61a80edd6577ca4f3ef9f4a85 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 17:34:55 +0000 Subject: [PATCH 253/263] Ruby: Add up/downgrade scripts --- .../old.dbscheme | 1549 +++++++++++++++++ .../semmlecode.dbscheme | 1536 ++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 1536 ++++++++++++++++ .../ruby.dbscheme | 1549 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 6174 insertions(+) create mode 100644 ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/old.dbscheme create mode 100644 ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/semmlecode.dbscheme create mode 100644 ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/upgrade.properties create mode 100644 ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/old.dbscheme create mode 100644 ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/ruby.dbscheme create mode 100644 ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/upgrade.properties diff --git a/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/old.dbscheme b/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/old.dbscheme new file mode 100644 index 00000000000..29b7b6fc198 --- /dev/null +++ b/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/old.dbscheme @@ -0,0 +1,1549 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit +// To regenerate, run 'make dbscheme' in ql/ruby/ + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_block_type = @ruby_block | @ruby_do_block + +ruby_element_reference_block( + unique int ruby_element_reference: @ruby_element_reference ref, + unique int block: @ruby_element_reference_block_type ref +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/semmlecode.dbscheme b/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/semmlecode.dbscheme new file mode 100644 index 00000000000..eae6926f500 --- /dev/null +++ b/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/semmlecode.dbscheme @@ -0,0 +1,1536 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_block_type = @ruby_block | @ruby_do_block + +ruby_element_reference_block( + unique int ruby_element_reference: @ruby_element_reference ref, + unique int block: @ruby_element_reference_block_type ref +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/upgrade.properties b/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/ruby/downgrades/29b7b6fc1982422368cb0a4644fd0c81f993c618/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full diff --git a/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/old.dbscheme b/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/old.dbscheme new file mode 100644 index 00000000000..eae6926f500 --- /dev/null +++ b/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/old.dbscheme @@ -0,0 +1,1536 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_block_type = @ruby_block | @ruby_do_block + +ruby_element_reference_block( + unique int ruby_element_reference: @ruby_element_reference ref, + unique int block: @ruby_element_reference_block_type ref +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/ruby.dbscheme b/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/ruby.dbscheme new file mode 100644 index 00000000000..29b7b6fc198 --- /dev/null +++ b/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/ruby.dbscheme @@ -0,0 +1,1549 @@ +// CodeQL database schema for Ruby +// Automatically generated from the tree-sitter grammar; do not edit +// To regenerate, run 'make dbscheme' in ql/ruby/ + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- Ruby dbscheme -*/ +@ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary + +@ruby_underscore_call_operator = @ruby_reserved_word + +@ruby_underscore_expression = @ruby_assignment | @ruby_binary | @ruby_break | @ruby_call | @ruby_match_pattern | @ruby_next | @ruby_operator_assignment | @ruby_return | @ruby_test_pattern | @ruby_unary | @ruby_underscore_arg | @ruby_yield + +@ruby_underscore_lhs = @ruby_call | @ruby_element_reference | @ruby_scope_resolution | @ruby_token_false | @ruby_token_nil | @ruby_token_true | @ruby_underscore_variable + +@ruby_underscore_method_name = @ruby_delimited_symbol | @ruby_setter | @ruby_token_constant | @ruby_token_identifier | @ruby_token_operator | @ruby_token_simple_symbol | @ruby_underscore_nonlocal_variable + +@ruby_underscore_nonlocal_variable = @ruby_token_class_variable | @ruby_token_global_variable | @ruby_token_instance_variable + +@ruby_underscore_pattern_constant = @ruby_scope_resolution | @ruby_token_constant + +@ruby_underscore_pattern_expr = @ruby_alternative_pattern | @ruby_as_pattern | @ruby_underscore_pattern_expr_basic + +@ruby_underscore_pattern_expr_basic = @ruby_array_pattern | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_parenthesized_pattern | @ruby_range | @ruby_token_identifier | @ruby_underscore_pattern_constant | @ruby_underscore_pattern_primitive | @ruby_variable_reference_pattern + +@ruby_underscore_pattern_primitive = @ruby_delimited_symbol | @ruby_lambda | @ruby_regex | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_encoding | @ruby_token_false | @ruby_token_file | @ruby_token_heredoc_beginning | @ruby_token_line | @ruby_token_nil | @ruby_token_self | @ruby_token_simple_symbol | @ruby_token_true | @ruby_unary | @ruby_underscore_simple_numeric + +@ruby_underscore_pattern_top_expr_body = @ruby_array_pattern | @ruby_find_pattern | @ruby_hash_pattern | @ruby_underscore_pattern_expr + +@ruby_underscore_primary = @ruby_array | @ruby_begin | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_delimited_symbol | @ruby_for | @ruby_hash | @ruby_if | @ruby_lambda | @ruby_method | @ruby_module | @ruby_next | @ruby_parenthesized_statements | @ruby_redo | @ruby_regex | @ruby_retry | @ruby_return | @ruby_singleton_class | @ruby_singleton_method | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_symbol_array | @ruby_token_character | @ruby_token_heredoc_beginning | @ruby_token_simple_symbol | @ruby_unary | @ruby_underscore_lhs | @ruby_underscore_simple_numeric | @ruby_unless | @ruby_until | @ruby_while | @ruby_yield + +@ruby_underscore_simple_numeric = @ruby_complex | @ruby_rational | @ruby_token_float | @ruby_token_integer + +@ruby_underscore_statement = @ruby_alias | @ruby_begin_block | @ruby_end_block | @ruby_if_modifier | @ruby_rescue_modifier | @ruby_undef | @ruby_underscore_expression | @ruby_unless_modifier | @ruby_until_modifier | @ruby_while_modifier + +@ruby_underscore_variable = @ruby_token_constant | @ruby_token_identifier | @ruby_token_self | @ruby_token_super | @ruby_underscore_nonlocal_variable + +ruby_alias_def( + unique int id: @ruby_alias, + int alias: @ruby_underscore_method_name ref, + int name: @ruby_underscore_method_name ref +); + +#keyset[ruby_alternative_pattern, index] +ruby_alternative_pattern_alternatives( + int ruby_alternative_pattern: @ruby_alternative_pattern ref, + int index: int ref, + unique int alternatives: @ruby_underscore_pattern_expr_basic ref +); + +ruby_alternative_pattern_def( + unique int id: @ruby_alternative_pattern +); + +@ruby_argument_list_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_argument_list, index] +ruby_argument_list_child( + int ruby_argument_list: @ruby_argument_list ref, + int index: int ref, + unique int child: @ruby_argument_list_child_type ref +); + +ruby_argument_list_def( + unique int id: @ruby_argument_list +); + +@ruby_array_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_array, index] +ruby_array_child( + int ruby_array: @ruby_array ref, + int index: int ref, + unique int child: @ruby_array_child_type ref +); + +ruby_array_def( + unique int id: @ruby_array +); + +ruby_array_pattern_class( + unique int ruby_array_pattern: @ruby_array_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_array_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_array_pattern, index] +ruby_array_pattern_child( + int ruby_array_pattern: @ruby_array_pattern ref, + int index: int ref, + unique int child: @ruby_array_pattern_child_type ref +); + +ruby_array_pattern_def( + unique int id: @ruby_array_pattern +); + +ruby_as_pattern_def( + unique int id: @ruby_as_pattern, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_pattern_expr ref +); + +@ruby_assignment_left_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +@ruby_assignment_right_type = @ruby_rescue_modifier | @ruby_right_assignment_list | @ruby_splat_argument | @ruby_underscore_expression + +ruby_assignment_def( + unique int id: @ruby_assignment, + int left: @ruby_assignment_left_type ref, + int right: @ruby_assignment_right_type ref +); + +@ruby_bare_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_string, index] +ruby_bare_string_child( + int ruby_bare_string: @ruby_bare_string ref, + int index: int ref, + unique int child: @ruby_bare_string_child_type ref +); + +ruby_bare_string_def( + unique int id: @ruby_bare_string +); + +@ruby_bare_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_bare_symbol, index] +ruby_bare_symbol_child( + int ruby_bare_symbol: @ruby_bare_symbol ref, + int index: int ref, + unique int child: @ruby_bare_symbol_child_type ref +); + +ruby_bare_symbol_def( + unique int id: @ruby_bare_symbol +); + +@ruby_begin_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin, index] +ruby_begin_child( + int ruby_begin: @ruby_begin ref, + int index: int ref, + unique int child: @ruby_begin_child_type ref +); + +ruby_begin_def( + unique int id: @ruby_begin +); + +@ruby_begin_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_begin_block, index] +ruby_begin_block_child( + int ruby_begin_block: @ruby_begin_block ref, + int index: int ref, + unique int child: @ruby_begin_block_child_type ref +); + +ruby_begin_block_def( + unique int id: @ruby_begin_block +); + +@ruby_binary_left_type = @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_binary.operator of + 0 = @ruby_binary_bangequal +| 1 = @ruby_binary_bangtilde +| 2 = @ruby_binary_percent +| 3 = @ruby_binary_ampersand +| 4 = @ruby_binary_ampersandampersand +| 5 = @ruby_binary_star +| 6 = @ruby_binary_starstar +| 7 = @ruby_binary_plus +| 8 = @ruby_binary_minus +| 9 = @ruby_binary_slash +| 10 = @ruby_binary_langle +| 11 = @ruby_binary_langlelangle +| 12 = @ruby_binary_langleequal +| 13 = @ruby_binary_langleequalrangle +| 14 = @ruby_binary_equalequal +| 15 = @ruby_binary_equalequalequal +| 16 = @ruby_binary_equaltilde +| 17 = @ruby_binary_rangle +| 18 = @ruby_binary_rangleequal +| 19 = @ruby_binary_ranglerangle +| 20 = @ruby_binary_caret +| 21 = @ruby_binary_and +| 22 = @ruby_binary_or +| 23 = @ruby_binary_pipe +| 24 = @ruby_binary_pipepipe +; + + +ruby_binary_def( + unique int id: @ruby_binary, + int left: @ruby_binary_left_type ref, + int operator: int ref, + int right: @ruby_underscore_expression ref +); + +ruby_block_body( + unique int ruby_block: @ruby_block ref, + unique int body: @ruby_block_body ref +); + +ruby_block_parameters( + unique int ruby_block: @ruby_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_block_def( + unique int id: @ruby_block +); + +ruby_block_argument_child( + unique int ruby_block_argument: @ruby_block_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_block_argument_def( + unique int id: @ruby_block_argument +); + +@ruby_block_body_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_block_body, index] +ruby_block_body_child( + int ruby_block_body: @ruby_block_body ref, + int index: int ref, + unique int child: @ruby_block_body_child_type ref +); + +ruby_block_body_def( + unique int id: @ruby_block_body +); + +ruby_block_parameter_name( + unique int ruby_block_parameter: @ruby_block_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_block_parameter_def( + unique int id: @ruby_block_parameter +); + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_locals( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int locals: @ruby_token_identifier ref +); + +@ruby_block_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_block_parameters, index] +ruby_block_parameters_child( + int ruby_block_parameters: @ruby_block_parameters ref, + int index: int ref, + unique int child: @ruby_block_parameters_child_type ref +); + +ruby_block_parameters_def( + unique int id: @ruby_block_parameters +); + +@ruby_body_statement_child_type = @ruby_else | @ruby_ensure | @ruby_rescue | @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_body_statement, index] +ruby_body_statement_child( + int ruby_body_statement: @ruby_body_statement ref, + int index: int ref, + unique int child: @ruby_body_statement_child_type ref +); + +ruby_body_statement_def( + unique int id: @ruby_body_statement +); + +ruby_break_child( + unique int ruby_break: @ruby_break ref, + unique int child: @ruby_argument_list ref +); + +ruby_break_def( + unique int id: @ruby_break +); + +ruby_call_arguments( + unique int ruby_call: @ruby_call ref, + unique int arguments: @ruby_argument_list ref +); + +@ruby_call_block_type = @ruby_block | @ruby_do_block + +ruby_call_block( + unique int ruby_call: @ruby_call ref, + unique int block: @ruby_call_block_type ref +); + +@ruby_call_method_type = @ruby_token_operator | @ruby_underscore_variable + +ruby_call_method( + unique int ruby_call: @ruby_call ref, + unique int method: @ruby_call_method_type ref +); + +ruby_call_operator( + unique int ruby_call: @ruby_call ref, + unique int operator: @ruby_underscore_call_operator ref +); + +ruby_call_receiver( + unique int ruby_call: @ruby_call ref, + unique int receiver: @ruby_underscore_primary ref +); + +ruby_call_def( + unique int id: @ruby_call +); + +ruby_case_value( + unique int ruby_case__: @ruby_case__ ref, + unique int value: @ruby_underscore_statement ref +); + +@ruby_case_child_type = @ruby_else | @ruby_when + +#keyset[ruby_case__, index] +ruby_case_child( + int ruby_case__: @ruby_case__ ref, + int index: int ref, + unique int child: @ruby_case_child_type ref +); + +ruby_case_def( + unique int id: @ruby_case__ +); + +#keyset[ruby_case_match, index] +ruby_case_match_clauses( + int ruby_case_match: @ruby_case_match ref, + int index: int ref, + unique int clauses: @ruby_in_clause ref +); + +ruby_case_match_else( + unique int ruby_case_match: @ruby_case_match ref, + unique int else: @ruby_else ref +); + +ruby_case_match_def( + unique int id: @ruby_case_match, + int value: @ruby_underscore_statement ref +); + +#keyset[ruby_chained_string, index] +ruby_chained_string_child( + int ruby_chained_string: @ruby_chained_string ref, + int index: int ref, + unique int child: @ruby_string__ ref +); + +ruby_chained_string_def( + unique int id: @ruby_chained_string +); + +ruby_class_body( + unique int ruby_class: @ruby_class ref, + unique int body: @ruby_body_statement ref +); + +@ruby_class_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_class_superclass( + unique int ruby_class: @ruby_class ref, + unique int superclass: @ruby_superclass ref +); + +ruby_class_def( + unique int id: @ruby_class, + int name: @ruby_class_name_type ref +); + +@ruby_complex_child_type = @ruby_rational | @ruby_token_float | @ruby_token_integer + +ruby_complex_def( + unique int id: @ruby_complex, + int child: @ruby_complex_child_type ref +); + +ruby_conditional_def( + unique int id: @ruby_conditional, + int alternative: @ruby_underscore_arg ref, + int condition: @ruby_underscore_arg ref, + int consequence: @ruby_underscore_arg ref +); + +@ruby_delimited_symbol_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_delimited_symbol, index] +ruby_delimited_symbol_child( + int ruby_delimited_symbol: @ruby_delimited_symbol ref, + int index: int ref, + unique int child: @ruby_delimited_symbol_child_type ref +); + +ruby_delimited_symbol_def( + unique int id: @ruby_delimited_symbol +); + +@ruby_destructured_left_assignment_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_destructured_left_assignment, index] +ruby_destructured_left_assignment_child( + int ruby_destructured_left_assignment: @ruby_destructured_left_assignment ref, + int index: int ref, + unique int child: @ruby_destructured_left_assignment_child_type ref +); + +ruby_destructured_left_assignment_def( + unique int id: @ruby_destructured_left_assignment +); + +@ruby_destructured_parameter_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_destructured_parameter, index] +ruby_destructured_parameter_child( + int ruby_destructured_parameter: @ruby_destructured_parameter ref, + int index: int ref, + unique int child: @ruby_destructured_parameter_child_type ref +); + +ruby_destructured_parameter_def( + unique int id: @ruby_destructured_parameter +); + +@ruby_do_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_do, index] +ruby_do_child( + int ruby_do: @ruby_do ref, + int index: int ref, + unique int child: @ruby_do_child_type ref +); + +ruby_do_def( + unique int id: @ruby_do +); + +ruby_do_block_body( + unique int ruby_do_block: @ruby_do_block ref, + unique int body: @ruby_body_statement ref +); + +ruby_do_block_parameters( + unique int ruby_do_block: @ruby_do_block ref, + unique int parameters: @ruby_block_parameters ref +); + +ruby_do_block_def( + unique int id: @ruby_do_block +); + +@ruby_element_reference_block_type = @ruby_block | @ruby_do_block + +ruby_element_reference_block( + unique int ruby_element_reference: @ruby_element_reference ref, + unique int block: @ruby_element_reference_block_type ref +); + +@ruby_element_reference_child_type = @ruby_block_argument | @ruby_hash_splat_argument | @ruby_pair | @ruby_splat_argument | @ruby_token_forward_argument | @ruby_underscore_expression + +#keyset[ruby_element_reference, index] +ruby_element_reference_child( + int ruby_element_reference: @ruby_element_reference ref, + int index: int ref, + unique int child: @ruby_element_reference_child_type ref +); + +ruby_element_reference_def( + unique int id: @ruby_element_reference, + int object: @ruby_underscore_primary ref +); + +@ruby_else_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_else, index] +ruby_else_child( + int ruby_else: @ruby_else ref, + int index: int ref, + unique int child: @ruby_else_child_type ref +); + +ruby_else_def( + unique int id: @ruby_else +); + +@ruby_elsif_alternative_type = @ruby_else | @ruby_elsif + +ruby_elsif_alternative( + unique int ruby_elsif: @ruby_elsif ref, + unique int alternative: @ruby_elsif_alternative_type ref +); + +ruby_elsif_consequence( + unique int ruby_elsif: @ruby_elsif ref, + unique int consequence: @ruby_then ref +); + +ruby_elsif_def( + unique int id: @ruby_elsif, + int condition: @ruby_underscore_statement ref +); + +@ruby_end_block_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_end_block, index] +ruby_end_block_child( + int ruby_end_block: @ruby_end_block ref, + int index: int ref, + unique int child: @ruby_end_block_child_type ref +); + +ruby_end_block_def( + unique int id: @ruby_end_block +); + +@ruby_ensure_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_ensure, index] +ruby_ensure_child( + int ruby_ensure: @ruby_ensure ref, + int index: int ref, + unique int child: @ruby_ensure_child_type ref +); + +ruby_ensure_def( + unique int id: @ruby_ensure +); + +ruby_exception_variable_def( + unique int id: @ruby_exception_variable, + int child: @ruby_underscore_lhs ref +); + +@ruby_exceptions_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_exceptions, index] +ruby_exceptions_child( + int ruby_exceptions: @ruby_exceptions ref, + int index: int ref, + unique int child: @ruby_exceptions_child_type ref +); + +ruby_exceptions_def( + unique int id: @ruby_exceptions +); + +ruby_expression_reference_pattern_def( + unique int id: @ruby_expression_reference_pattern, + int value: @ruby_underscore_expression ref +); + +ruby_find_pattern_class( + unique int ruby_find_pattern: @ruby_find_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_find_pattern_child_type = @ruby_splat_parameter | @ruby_underscore_pattern_expr + +#keyset[ruby_find_pattern, index] +ruby_find_pattern_child( + int ruby_find_pattern: @ruby_find_pattern ref, + int index: int ref, + unique int child: @ruby_find_pattern_child_type ref +); + +ruby_find_pattern_def( + unique int id: @ruby_find_pattern +); + +@ruby_for_pattern_type = @ruby_left_assignment_list | @ruby_underscore_lhs + +ruby_for_def( + unique int id: @ruby_for, + int body: @ruby_do ref, + int pattern: @ruby_for_pattern_type ref, + int value: @ruby_in ref +); + +@ruby_hash_child_type = @ruby_hash_splat_argument | @ruby_pair + +#keyset[ruby_hash, index] +ruby_hash_child( + int ruby_hash: @ruby_hash ref, + int index: int ref, + unique int child: @ruby_hash_child_type ref +); + +ruby_hash_def( + unique int id: @ruby_hash +); + +ruby_hash_pattern_class( + unique int ruby_hash_pattern: @ruby_hash_pattern ref, + unique int class: @ruby_underscore_pattern_constant ref +); + +@ruby_hash_pattern_child_type = @ruby_hash_splat_parameter | @ruby_keyword_pattern | @ruby_token_hash_splat_nil + +#keyset[ruby_hash_pattern, index] +ruby_hash_pattern_child( + int ruby_hash_pattern: @ruby_hash_pattern ref, + int index: int ref, + unique int child: @ruby_hash_pattern_child_type ref +); + +ruby_hash_pattern_def( + unique int id: @ruby_hash_pattern +); + +ruby_hash_splat_argument_child( + unique int ruby_hash_splat_argument: @ruby_hash_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_hash_splat_argument_def( + unique int id: @ruby_hash_splat_argument +); + +ruby_hash_splat_parameter_name( + unique int ruby_hash_splat_parameter: @ruby_hash_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_hash_splat_parameter_def( + unique int id: @ruby_hash_splat_parameter +); + +@ruby_heredoc_body_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_heredoc_content | @ruby_token_heredoc_end + +#keyset[ruby_heredoc_body, index] +ruby_heredoc_body_child( + int ruby_heredoc_body: @ruby_heredoc_body ref, + int index: int ref, + unique int child: @ruby_heredoc_body_child_type ref +); + +ruby_heredoc_body_def( + unique int id: @ruby_heredoc_body +); + +@ruby_if_alternative_type = @ruby_else | @ruby_elsif + +ruby_if_alternative( + unique int ruby_if: @ruby_if ref, + unique int alternative: @ruby_if_alternative_type ref +); + +ruby_if_consequence( + unique int ruby_if: @ruby_if ref, + unique int consequence: @ruby_then ref +); + +ruby_if_def( + unique int id: @ruby_if, + int condition: @ruby_underscore_statement ref +); + +ruby_if_guard_def( + unique int id: @ruby_if_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_if_modifier_def( + unique int id: @ruby_if_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_in_def( + unique int id: @ruby_in, + int child: @ruby_underscore_arg ref +); + +ruby_in_clause_body( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int body: @ruby_then ref +); + +@ruby_in_clause_guard_type = @ruby_if_guard | @ruby_unless_guard + +ruby_in_clause_guard( + unique int ruby_in_clause: @ruby_in_clause ref, + unique int guard: @ruby_in_clause_guard_type ref +); + +ruby_in_clause_def( + unique int id: @ruby_in_clause, + int pattern: @ruby_underscore_pattern_top_expr_body ref +); + +@ruby_interpolation_child_type = @ruby_token_empty_statement | @ruby_underscore_nonlocal_variable | @ruby_underscore_statement + +#keyset[ruby_interpolation, index] +ruby_interpolation_child( + int ruby_interpolation: @ruby_interpolation ref, + int index: int ref, + unique int child: @ruby_interpolation_child_type ref +); + +ruby_interpolation_def( + unique int id: @ruby_interpolation +); + +ruby_keyword_parameter_value( + unique int ruby_keyword_parameter: @ruby_keyword_parameter ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_keyword_parameter_def( + unique int id: @ruby_keyword_parameter, + int name: @ruby_token_identifier ref +); + +@ruby_keyword_pattern_key_type = @ruby_string__ | @ruby_token_hash_key_symbol + +ruby_keyword_pattern_value( + unique int ruby_keyword_pattern: @ruby_keyword_pattern ref, + unique int value: @ruby_underscore_pattern_expr ref +); + +ruby_keyword_pattern_def( + unique int id: @ruby_keyword_pattern, + int key__: @ruby_keyword_pattern_key_type ref +); + +@ruby_lambda_body_type = @ruby_block | @ruby_do_block + +ruby_lambda_parameters( + unique int ruby_lambda: @ruby_lambda ref, + unique int parameters: @ruby_lambda_parameters ref +); + +ruby_lambda_def( + unique int id: @ruby_lambda, + int body: @ruby_lambda_body_type ref +); + +@ruby_lambda_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_lambda_parameters, index] +ruby_lambda_parameters_child( + int ruby_lambda_parameters: @ruby_lambda_parameters ref, + int index: int ref, + unique int child: @ruby_lambda_parameters_child_type ref +); + +ruby_lambda_parameters_def( + unique int id: @ruby_lambda_parameters +); + +@ruby_left_assignment_list_child_type = @ruby_destructured_left_assignment | @ruby_rest_assignment | @ruby_underscore_lhs + +#keyset[ruby_left_assignment_list, index] +ruby_left_assignment_list_child( + int ruby_left_assignment_list: @ruby_left_assignment_list ref, + int index: int ref, + unique int child: @ruby_left_assignment_list_child_type ref +); + +ruby_left_assignment_list_def( + unique int id: @ruby_left_assignment_list +); + +ruby_match_pattern_def( + unique int id: @ruby_match_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_method_body( + unique int ruby_method: @ruby_method ref, + unique int body: @ruby_method_body_type ref +); + +ruby_method_parameters( + unique int ruby_method: @ruby_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_method_def( + unique int id: @ruby_method, + int name: @ruby_underscore_method_name ref +); + +@ruby_method_parameters_child_type = @ruby_block_parameter | @ruby_destructured_parameter | @ruby_hash_splat_parameter | @ruby_keyword_parameter | @ruby_optional_parameter | @ruby_splat_parameter | @ruby_token_forward_parameter | @ruby_token_hash_splat_nil | @ruby_token_identifier + +#keyset[ruby_method_parameters, index] +ruby_method_parameters_child( + int ruby_method_parameters: @ruby_method_parameters ref, + int index: int ref, + unique int child: @ruby_method_parameters_child_type ref +); + +ruby_method_parameters_def( + unique int id: @ruby_method_parameters +); + +ruby_module_body( + unique int ruby_module: @ruby_module ref, + unique int body: @ruby_body_statement ref +); + +@ruby_module_name_type = @ruby_scope_resolution | @ruby_token_constant + +ruby_module_def( + unique int id: @ruby_module, + int name: @ruby_module_name_type ref +); + +ruby_next_child( + unique int ruby_next: @ruby_next ref, + unique int child: @ruby_argument_list ref +); + +ruby_next_def( + unique int id: @ruby_next +); + +case @ruby_operator_assignment.operator of + 0 = @ruby_operator_assignment_percentequal +| 1 = @ruby_operator_assignment_ampersandampersandequal +| 2 = @ruby_operator_assignment_ampersandequal +| 3 = @ruby_operator_assignment_starstarequal +| 4 = @ruby_operator_assignment_starequal +| 5 = @ruby_operator_assignment_plusequal +| 6 = @ruby_operator_assignment_minusequal +| 7 = @ruby_operator_assignment_slashequal +| 8 = @ruby_operator_assignment_langlelangleequal +| 9 = @ruby_operator_assignment_ranglerangleequal +| 10 = @ruby_operator_assignment_caretequal +| 11 = @ruby_operator_assignment_pipeequal +| 12 = @ruby_operator_assignment_pipepipeequal +; + + +@ruby_operator_assignment_right_type = @ruby_rescue_modifier | @ruby_underscore_expression + +ruby_operator_assignment_def( + unique int id: @ruby_operator_assignment, + int left: @ruby_underscore_lhs ref, + int operator: int ref, + int right: @ruby_operator_assignment_right_type ref +); + +ruby_optional_parameter_def( + unique int id: @ruby_optional_parameter, + int name: @ruby_token_identifier ref, + int value: @ruby_underscore_arg ref +); + +@ruby_pair_key_type = @ruby_string__ | @ruby_token_hash_key_symbol | @ruby_underscore_arg + +ruby_pair_value( + unique int ruby_pair: @ruby_pair ref, + unique int value: @ruby_underscore_arg ref +); + +ruby_pair_def( + unique int id: @ruby_pair, + int key__: @ruby_pair_key_type ref +); + +ruby_parenthesized_pattern_def( + unique int id: @ruby_parenthesized_pattern, + int child: @ruby_underscore_pattern_expr ref +); + +@ruby_parenthesized_statements_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_parenthesized_statements, index] +ruby_parenthesized_statements_child( + int ruby_parenthesized_statements: @ruby_parenthesized_statements ref, + int index: int ref, + unique int child: @ruby_parenthesized_statements_child_type ref +); + +ruby_parenthesized_statements_def( + unique int id: @ruby_parenthesized_statements +); + +@ruby_pattern_child_type = @ruby_splat_argument | @ruby_underscore_arg + +ruby_pattern_def( + unique int id: @ruby_pattern, + int child: @ruby_pattern_child_type ref +); + +@ruby_program_child_type = @ruby_token_empty_statement | @ruby_token_uninterpreted | @ruby_underscore_statement + +#keyset[ruby_program, index] +ruby_program_child( + int ruby_program: @ruby_program ref, + int index: int ref, + unique int child: @ruby_program_child_type ref +); + +ruby_program_def( + unique int id: @ruby_program +); + +@ruby_range_begin_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_begin( + unique int ruby_range: @ruby_range ref, + unique int begin: @ruby_range_begin_type ref +); + +@ruby_range_end_type = @ruby_underscore_arg | @ruby_underscore_pattern_primitive + +ruby_range_end( + unique int ruby_range: @ruby_range ref, + unique int end: @ruby_range_end_type ref +); + +case @ruby_range.operator of + 0 = @ruby_range_dotdot +| 1 = @ruby_range_dotdotdot +; + + +ruby_range_def( + unique int id: @ruby_range, + int operator: int ref +); + +@ruby_rational_child_type = @ruby_token_float | @ruby_token_integer + +ruby_rational_def( + unique int id: @ruby_rational, + int child: @ruby_rational_child_type ref +); + +ruby_redo_child( + unique int ruby_redo: @ruby_redo ref, + unique int child: @ruby_argument_list ref +); + +ruby_redo_def( + unique int id: @ruby_redo +); + +@ruby_regex_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_regex, index] +ruby_regex_child( + int ruby_regex: @ruby_regex ref, + int index: int ref, + unique int child: @ruby_regex_child_type ref +); + +ruby_regex_def( + unique int id: @ruby_regex +); + +ruby_rescue_body( + unique int ruby_rescue: @ruby_rescue ref, + unique int body: @ruby_then ref +); + +ruby_rescue_exceptions( + unique int ruby_rescue: @ruby_rescue ref, + unique int exceptions: @ruby_exceptions ref +); + +ruby_rescue_variable( + unique int ruby_rescue: @ruby_rescue ref, + unique int variable: @ruby_exception_variable ref +); + +ruby_rescue_def( + unique int id: @ruby_rescue +); + +@ruby_rescue_modifier_body_type = @ruby_underscore_arg | @ruby_underscore_statement + +ruby_rescue_modifier_def( + unique int id: @ruby_rescue_modifier, + int body: @ruby_rescue_modifier_body_type ref, + int handler: @ruby_underscore_expression ref +); + +ruby_rest_assignment_child( + unique int ruby_rest_assignment: @ruby_rest_assignment ref, + unique int child: @ruby_underscore_lhs ref +); + +ruby_rest_assignment_def( + unique int id: @ruby_rest_assignment +); + +ruby_retry_child( + unique int ruby_retry: @ruby_retry ref, + unique int child: @ruby_argument_list ref +); + +ruby_retry_def( + unique int id: @ruby_retry +); + +ruby_return_child( + unique int ruby_return: @ruby_return ref, + unique int child: @ruby_argument_list ref +); + +ruby_return_def( + unique int id: @ruby_return +); + +@ruby_right_assignment_list_child_type = @ruby_splat_argument | @ruby_underscore_arg + +#keyset[ruby_right_assignment_list, index] +ruby_right_assignment_list_child( + int ruby_right_assignment_list: @ruby_right_assignment_list ref, + int index: int ref, + unique int child: @ruby_right_assignment_list_child_type ref +); + +ruby_right_assignment_list_def( + unique int id: @ruby_right_assignment_list +); + +@ruby_scope_resolution_scope_type = @ruby_underscore_pattern_constant | @ruby_underscore_primary + +ruby_scope_resolution_scope( + unique int ruby_scope_resolution: @ruby_scope_resolution ref, + unique int scope: @ruby_scope_resolution_scope_type ref +); + +ruby_scope_resolution_def( + unique int id: @ruby_scope_resolution, + int name: @ruby_token_constant ref +); + +ruby_setter_def( + unique int id: @ruby_setter, + int name: @ruby_token_identifier ref +); + +ruby_singleton_class_body( + unique int ruby_singleton_class: @ruby_singleton_class ref, + unique int body: @ruby_body_statement ref +); + +ruby_singleton_class_def( + unique int id: @ruby_singleton_class, + int value: @ruby_underscore_arg ref +); + +@ruby_singleton_method_body_type = @ruby_body_statement | @ruby_rescue_modifier | @ruby_underscore_arg + +ruby_singleton_method_body( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int body: @ruby_singleton_method_body_type ref +); + +@ruby_singleton_method_object_type = @ruby_underscore_arg | @ruby_underscore_variable + +ruby_singleton_method_parameters( + unique int ruby_singleton_method: @ruby_singleton_method ref, + unique int parameters: @ruby_method_parameters ref +); + +ruby_singleton_method_def( + unique int id: @ruby_singleton_method, + int name: @ruby_underscore_method_name ref, + int object: @ruby_singleton_method_object_type ref +); + +ruby_splat_argument_child( + unique int ruby_splat_argument: @ruby_splat_argument ref, + unique int child: @ruby_underscore_arg ref +); + +ruby_splat_argument_def( + unique int id: @ruby_splat_argument +); + +ruby_splat_parameter_name( + unique int ruby_splat_parameter: @ruby_splat_parameter ref, + unique int name: @ruby_token_identifier ref +); + +ruby_splat_parameter_def( + unique int id: @ruby_splat_parameter +); + +@ruby_string_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_string__, index] +ruby_string_child( + int ruby_string__: @ruby_string__ ref, + int index: int ref, + unique int child: @ruby_string_child_type ref +); + +ruby_string_def( + unique int id: @ruby_string__ +); + +#keyset[ruby_string_array, index] +ruby_string_array_child( + int ruby_string_array: @ruby_string_array ref, + int index: int ref, + unique int child: @ruby_bare_string ref +); + +ruby_string_array_def( + unique int id: @ruby_string_array +); + +@ruby_subshell_child_type = @ruby_interpolation | @ruby_token_escape_sequence | @ruby_token_string_content + +#keyset[ruby_subshell, index] +ruby_subshell_child( + int ruby_subshell: @ruby_subshell ref, + int index: int ref, + unique int child: @ruby_subshell_child_type ref +); + +ruby_subshell_def( + unique int id: @ruby_subshell +); + +ruby_superclass_def( + unique int id: @ruby_superclass, + int child: @ruby_underscore_expression ref +); + +#keyset[ruby_symbol_array, index] +ruby_symbol_array_child( + int ruby_symbol_array: @ruby_symbol_array ref, + int index: int ref, + unique int child: @ruby_bare_symbol ref +); + +ruby_symbol_array_def( + unique int id: @ruby_symbol_array +); + +ruby_test_pattern_def( + unique int id: @ruby_test_pattern, + int pattern: @ruby_underscore_pattern_top_expr_body ref, + int value: @ruby_underscore_arg ref +); + +@ruby_then_child_type = @ruby_token_empty_statement | @ruby_underscore_statement + +#keyset[ruby_then, index] +ruby_then_child( + int ruby_then: @ruby_then ref, + int index: int ref, + unique int child: @ruby_then_child_type ref +); + +ruby_then_def( + unique int id: @ruby_then +); + +@ruby_unary_operand_type = @ruby_parenthesized_statements | @ruby_underscore_expression | @ruby_underscore_simple_numeric + +case @ruby_unary.operator of + 0 = @ruby_unary_bang +| 1 = @ruby_unary_plus +| 2 = @ruby_unary_minus +| 3 = @ruby_unary_definedquestion +| 4 = @ruby_unary_not +| 5 = @ruby_unary_tilde +; + + +ruby_unary_def( + unique int id: @ruby_unary, + int operand: @ruby_unary_operand_type ref, + int operator: int ref +); + +#keyset[ruby_undef, index] +ruby_undef_child( + int ruby_undef: @ruby_undef ref, + int index: int ref, + unique int child: @ruby_underscore_method_name ref +); + +ruby_undef_def( + unique int id: @ruby_undef +); + +@ruby_unless_alternative_type = @ruby_else | @ruby_elsif + +ruby_unless_alternative( + unique int ruby_unless: @ruby_unless ref, + unique int alternative: @ruby_unless_alternative_type ref +); + +ruby_unless_consequence( + unique int ruby_unless: @ruby_unless ref, + unique int consequence: @ruby_then ref +); + +ruby_unless_def( + unique int id: @ruby_unless, + int condition: @ruby_underscore_statement ref +); + +ruby_unless_guard_def( + unique int id: @ruby_unless_guard, + int condition: @ruby_underscore_expression ref +); + +ruby_unless_modifier_def( + unique int id: @ruby_unless_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_until_def( + unique int id: @ruby_until, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_until_modifier_def( + unique int id: @ruby_until_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +@ruby_variable_reference_pattern_name_type = @ruby_token_identifier | @ruby_underscore_nonlocal_variable + +ruby_variable_reference_pattern_def( + unique int id: @ruby_variable_reference_pattern, + int name: @ruby_variable_reference_pattern_name_type ref +); + +ruby_when_body( + unique int ruby_when: @ruby_when ref, + unique int body: @ruby_then ref +); + +#keyset[ruby_when, index] +ruby_when_pattern( + int ruby_when: @ruby_when ref, + int index: int ref, + unique int pattern: @ruby_pattern ref +); + +ruby_when_def( + unique int id: @ruby_when +); + +ruby_while_def( + unique int id: @ruby_while, + int body: @ruby_do ref, + int condition: @ruby_underscore_statement ref +); + +ruby_while_modifier_def( + unique int id: @ruby_while_modifier, + int body: @ruby_underscore_statement ref, + int condition: @ruby_underscore_expression ref +); + +ruby_yield_child( + unique int ruby_yield: @ruby_yield ref, + unique int child: @ruby_argument_list ref +); + +ruby_yield_def( + unique int id: @ruby_yield +); + +ruby_tokeninfo( + unique int id: @ruby_token, + int kind: int ref, + string value: string ref +); + +case @ruby_token.kind of + 0 = @ruby_reserved_word +| 1 = @ruby_token_character +| 2 = @ruby_token_class_variable +| 3 = @ruby_token_comment +| 4 = @ruby_token_constant +| 5 = @ruby_token_empty_statement +| 6 = @ruby_token_encoding +| 7 = @ruby_token_escape_sequence +| 8 = @ruby_token_false +| 9 = @ruby_token_file +| 10 = @ruby_token_float +| 11 = @ruby_token_forward_argument +| 12 = @ruby_token_forward_parameter +| 13 = @ruby_token_global_variable +| 14 = @ruby_token_hash_key_symbol +| 15 = @ruby_token_hash_splat_nil +| 16 = @ruby_token_heredoc_beginning +| 17 = @ruby_token_heredoc_content +| 18 = @ruby_token_heredoc_end +| 19 = @ruby_token_identifier +| 20 = @ruby_token_instance_variable +| 21 = @ruby_token_integer +| 22 = @ruby_token_line +| 23 = @ruby_token_nil +| 24 = @ruby_token_operator +| 25 = @ruby_token_self +| 26 = @ruby_token_simple_symbol +| 27 = @ruby_token_string_content +| 28 = @ruby_token_super +| 29 = @ruby_token_true +| 30 = @ruby_token_uninterpreted +; + + +@ruby_ast_node = @ruby_alias | @ruby_alternative_pattern | @ruby_argument_list | @ruby_array | @ruby_array_pattern | @ruby_as_pattern | @ruby_assignment | @ruby_bare_string | @ruby_bare_symbol | @ruby_begin | @ruby_begin_block | @ruby_binary | @ruby_block | @ruby_block_argument | @ruby_block_body | @ruby_block_parameter | @ruby_block_parameters | @ruby_body_statement | @ruby_break | @ruby_call | @ruby_case__ | @ruby_case_match | @ruby_chained_string | @ruby_class | @ruby_complex | @ruby_conditional | @ruby_delimited_symbol | @ruby_destructured_left_assignment | @ruby_destructured_parameter | @ruby_do | @ruby_do_block | @ruby_element_reference | @ruby_else | @ruby_elsif | @ruby_end_block | @ruby_ensure | @ruby_exception_variable | @ruby_exceptions | @ruby_expression_reference_pattern | @ruby_find_pattern | @ruby_for | @ruby_hash | @ruby_hash_pattern | @ruby_hash_splat_argument | @ruby_hash_splat_parameter | @ruby_heredoc_body | @ruby_if | @ruby_if_guard | @ruby_if_modifier | @ruby_in | @ruby_in_clause | @ruby_interpolation | @ruby_keyword_parameter | @ruby_keyword_pattern | @ruby_lambda | @ruby_lambda_parameters | @ruby_left_assignment_list | @ruby_match_pattern | @ruby_method | @ruby_method_parameters | @ruby_module | @ruby_next | @ruby_operator_assignment | @ruby_optional_parameter | @ruby_pair | @ruby_parenthesized_pattern | @ruby_parenthesized_statements | @ruby_pattern | @ruby_program | @ruby_range | @ruby_rational | @ruby_redo | @ruby_regex | @ruby_rescue | @ruby_rescue_modifier | @ruby_rest_assignment | @ruby_retry | @ruby_return | @ruby_right_assignment_list | @ruby_scope_resolution | @ruby_setter | @ruby_singleton_class | @ruby_singleton_method | @ruby_splat_argument | @ruby_splat_parameter | @ruby_string__ | @ruby_string_array | @ruby_subshell | @ruby_superclass | @ruby_symbol_array | @ruby_test_pattern | @ruby_then | @ruby_token | @ruby_unary | @ruby_undef | @ruby_unless | @ruby_unless_guard | @ruby_unless_modifier | @ruby_until | @ruby_until_modifier | @ruby_variable_reference_pattern | @ruby_when | @ruby_while | @ruby_while_modifier | @ruby_yield + +ruby_ast_node_location( + unique int node: @ruby_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +ruby_ast_node_parent( + unique int node: @ruby_ast_node ref, + int parent: @ruby_ast_node ref, + int parent_index: int ref +); + +/*- Erb dbscheme -*/ +erb_comment_directive_child( + unique int erb_comment_directive: @erb_comment_directive ref, + unique int child: @erb_token_comment ref +); + +erb_comment_directive_def( + unique int id: @erb_comment_directive +); + +erb_directive_child( + unique int erb_directive: @erb_directive ref, + unique int child: @erb_token_code ref +); + +erb_directive_def( + unique int id: @erb_directive +); + +erb_graphql_directive_child( + unique int erb_graphql_directive: @erb_graphql_directive ref, + unique int child: @erb_token_code ref +); + +erb_graphql_directive_def( + unique int id: @erb_graphql_directive +); + +erb_output_directive_child( + unique int erb_output_directive: @erb_output_directive ref, + unique int child: @erb_token_code ref +); + +erb_output_directive_def( + unique int id: @erb_output_directive +); + +@erb_template_child_type = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_token_content + +#keyset[erb_template, index] +erb_template_child( + int erb_template: @erb_template ref, + int index: int ref, + unique int child: @erb_template_child_type ref +); + +erb_template_def( + unique int id: @erb_template +); + +erb_tokeninfo( + unique int id: @erb_token, + int kind: int ref, + string value: string ref +); + +case @erb_token.kind of + 0 = @erb_reserved_word +| 1 = @erb_token_code +| 2 = @erb_token_comment +| 3 = @erb_token_content +; + + +@erb_ast_node = @erb_comment_directive | @erb_directive | @erb_graphql_directive | @erb_output_directive | @erb_template | @erb_token + +erb_ast_node_location( + unique int node: @erb_ast_node ref, + int loc: @location_default ref +); + +#keyset[parent, parent_index] +erb_ast_node_parent( + unique int node: @erb_ast_node ref, + int parent: @erb_ast_node ref, + int parent_index: int ref +); + diff --git a/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/upgrade.properties b/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/ruby/ql/lib/upgrades/eae6926f5000373d5eb1d82131e1ff6152b67b2c/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full From c37ab8f98e49a61f2bc48aebe0a7f5a40b777f5c Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 13 Jan 2026 18:06:45 +0000 Subject: [PATCH 254/263] rust: Regenerate dbscheme --- rust/ql/lib/rust.dbscheme | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 90861289dd4..66a48986364 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -109,11 +109,23 @@ yaml_locations(unique int locatable: @yaml_locatable ref, @yaml_locatable = @yaml_node | @yaml_error; /*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ databaseMetadata( string metadataKey: string ref, string value: string ref ); +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ overlayChangedFiles( string path: string ref ); From d6d2855626e9dc6f175196af727e2efb6b2b4366 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Wed, 14 Jan 2026 10:15:53 +0000 Subject: [PATCH 255/263] rust: Add up/downgrade scripts --- .../old.dbscheme | 3556 +++++++++++++++++ .../semmlecode.dbscheme | 3544 ++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 3544 ++++++++++++++++ .../rust.dbscheme | 3556 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 14204 insertions(+) create mode 100644 rust/downgrades/66a489863649185f4a9770f894505803059a1312/old.dbscheme create mode 100644 rust/downgrades/66a489863649185f4a9770f894505803059a1312/semmlecode.dbscheme create mode 100644 rust/downgrades/66a489863649185f4a9770f894505803059a1312/upgrade.properties create mode 100644 rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme create mode 100644 rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties diff --git a/rust/downgrades/66a489863649185f4a9770f894505803059a1312/old.dbscheme b/rust/downgrades/66a489863649185f4a9770f894505803059a1312/old.dbscheme new file mode 100644 index 00000000000..66a48986364 --- /dev/null +++ b/rust/downgrades/66a489863649185f4a9770f894505803059a1312/old.dbscheme @@ -0,0 +1,3556 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/66a489863649185f4a9770f894505803059a1312/semmlecode.dbscheme b/rust/downgrades/66a489863649185f4a9770f894505803059a1312/semmlecode.dbscheme new file mode 100644 index 00000000000..90861289dd4 --- /dev/null +++ b/rust/downgrades/66a489863649185f4a9770f894505803059a1312/semmlecode.dbscheme @@ -0,0 +1,3544 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/66a489863649185f4a9770f894505803059a1312/upgrade.properties b/rust/downgrades/66a489863649185f4a9770f894505803059a1312/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/rust/downgrades/66a489863649185f4a9770f894505803059a1312/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full diff --git a/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme b/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme new file mode 100644 index 00000000000..90861289dd4 --- /dev/null +++ b/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/old.dbscheme @@ -0,0 +1,3544 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme b/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme new file mode 100644 index 00000000000..66a48986364 --- /dev/null +++ b/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/rust.dbscheme @@ -0,0 +1,3556 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties b/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/rust/ql/lib/upgrades/90861289dd4c4d9fc029ed0fc249c1e11c5aab01/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full From 49ced5fd9d8aaf58159ee0c99370d9e0fe40c89a Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 20 Jan 2026 11:57:29 +0000 Subject: [PATCH 256/263] C++: Add up/downgrade scripts --- .../old.dbscheme | 2483 +++++++++++++++++ .../semmlecode.dbscheme | 2479 ++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 2479 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2483 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 9928 insertions(+) create mode 100644 cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme create mode 100644 cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.dbscheme create mode 100644 cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties diff --git a/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme new file mode 100644 index 00000000000..83100310bf7 --- /dev/null +++ b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme @@ -0,0 +1,2483 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.dbscheme b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.dbscheme new file mode 100644 index 00000000000..1402ab319d2 --- /dev/null +++ b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.dbscheme @@ -0,0 +1,2479 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full diff --git a/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme new file mode 100644 index 00000000000..1402ab319d2 --- /dev/null +++ b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme @@ -0,0 +1,2479 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..83100310bf7 --- /dev/null +++ b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme @@ -0,0 +1,2483 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties new file mode 100644 index 00000000000..00fae2d3bc6 --- /dev/null +++ b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full From 51b1ea84d3b823dbe33759acdef59eba4c44646d Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Tue, 20 Jan 2026 12:12:20 +0000 Subject: [PATCH 257/263] ql for ql: Fix formatting --- ql/extractor/src/generator.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ql/extractor/src/generator.rs b/ql/extractor/src/generator.rs index d1d5e20969c..650e11c138b 100644 --- a/ql/extractor/src/generator.rs +++ b/ql/extractor/src/generator.rs @@ -36,6 +36,10 @@ pub fn run(options: Options) -> std::io::Result<()> { }, ]; - generate(languages, options.dbscheme, options.library, - "run 'scripts/create-extractor-pack.sh' in ql/") + generate( + languages, + options.dbscheme, + options.library, + "run 'scripts/create-extractor-pack.sh' in ql/", + ) } From e7044061fb38af8b2c3299327554e94703113e93 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 19 Jan 2026 15:46:03 +0100 Subject: [PATCH 258/263] C++: Support C23/C++26 `#embed` preprocessor directives --- cpp/ql/lib/change-notes/2026-01-19-embed.md | 4 ++++ cpp/ql/lib/semmle/code/cpp/Preprocessor.qll | 24 +++++++++++++++++++++ cpp/ql/lib/semmlecode.cpp.dbscheme | 6 ++++++ 3 files changed, 34 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2026-01-19-embed.md diff --git a/cpp/ql/lib/change-notes/2026-01-19-embed.md b/cpp/ql/lib/change-notes/2026-01-19-embed.md new file mode 100644 index 00000000000..26d495277b5 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-01-19-embed.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added a subclass `Embed` of `PreprocessorDirective` for C23 and C++26 `#embed` preprocessor directives. diff --git a/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll b/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll index 6a57f0bcae7..726670c81a6 100644 --- a/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll +++ b/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll @@ -328,3 +328,27 @@ class PreprocessorPragma extends PreprocessorDirective, @ppd_pragma { class PreprocessorLine extends PreprocessorDirective, @ppd_line { override string toString() { result = "#line " + this.getHead() } } + +/** + * A C23 or C++26`#embed` preprocessor directive. For example, the following code + * contains one `Embed` directive: + * ```cpp + * char arr[] = { + * #embed "bin" + * }; + * ``` + */ +class Embed extends PreprocessorDirective, @ppd_embed { + override string toString() { result = "#embed " + this.getIncludeText() } + + /** + * Gets the token which occurs after `#embed`, for example `"filename"` + * or ``. + */ + string getIncludeText() { result = this.getHead() } + + /** + * Gets the file directly embedded by this `#embed`. + */ + File getEmbeddedFile() { embeds(underlyingElement(this), unresolveElement(result)) } +} diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 83100310bf7..9439176c1d1 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -2353,6 +2353,7 @@ case @preprocdirect.kind of | 14 = @ppd_ms_import | 15 = @ppd_elifdef | 16 = @ppd_elifndef +| 17 = @ppd_embed | 18 = @ppd_warning ; @@ -2379,6 +2380,11 @@ includes( int included: @file ref ); +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + link_targets( int id: @link_target, int binary: @file ref From 28047fe625ff11a8c6c7bf4c119e65ae7646c095 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 19 Jan 2026 17:31:09 +0100 Subject: [PATCH 259/263] C++: Update dbscheme stats file --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 2237 +++++++++++----------- 1 file changed, 1147 insertions(+), 1090 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index eca8a306a7c..ee25206a25d 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,7 +2,7 @@ @compilation - 12592 + 12591 @externalDataElement @@ -10,7 +10,7 @@ @file - 64949 + 64946 @folder @@ -22,7 +22,7 @@ @location_default - 46837431 + 46837407 @pch @@ -30,7 +30,7 @@ @macro_expansion - 40306125 + 40306104 @other_macro_reference @@ -38,7 +38,7 @@ @normal_function - 2734631 + 2734629 @unknown_function @@ -46,7 +46,7 @@ @constructor - 694346 + 694334 @destructor @@ -70,15 +70,15 @@ @fun_decl - 4194038 + 4193289 @var_decl - 9368606 + 9367854 @type_decl - 1629528 + 1629527 @namespace_decl @@ -86,11 +86,11 @@ @using_declaration - 266867 + 266844 @using_directive - 6431 + 6430 @using_enum_declaration @@ -98,11 +98,11 @@ @static_assert - 172750 + 172749 @parameter - 7011800 + 7011797 @membervariable @@ -110,11 +110,11 @@ @globalvariable - 492567 + 492566 @localvariable - 724728 + 724695 @enumconstant @@ -354,11 +354,11 @@ @pointer - 451499 + 451498 @type_with_specifiers - 691560 + 691559 @array @@ -366,7 +366,7 @@ @routineptr - 679859 + 679848 @reference @@ -392,6 +392,10 @@ @scalable_vector 1 + + @decltype + 101757 + @typeof 811 @@ -472,13 +476,9 @@ @remove_reference 5706 - - @decltype - 101757 - @struct - 976642 + 976596 @union @@ -490,11 +490,11 @@ @template_parameter - 864458 + 864417 @alias - 1755826 + 1755743 @unknown_usertype @@ -510,7 +510,7 @@ @proxy_class - 48244 + 48241 @scoped_enum @@ -518,7 +518,7 @@ @template_struct - 211186 + 211176 @template_class @@ -530,11 +530,11 @@ @mangledname - 6349610 + 6349607 @type_mention - 5911109 + 5911106 @concept_template @@ -542,11 +542,11 @@ @routinetype - 600588 + 600578 @ptrtomember - 9678 + 9677 @specifier @@ -574,11 +574,11 @@ @attribute_arg_token - 16585 + 16584 @attribute_arg_constant_expr - 71640 + 71584 @attribute_arg_expr @@ -598,15 +598,15 @@ @derivation - 473796 + 473788 @frienddecl - 695869 + 767816 @comment - 11208577 + 11208571 @namespace @@ -618,15 +618,15 @@ @namequalifier - 3042587 + 3042586 @value - 13541403 + 13541557 @initialiser - 2244827 + 2244826 @address_of @@ -634,15 +634,15 @@ @indirect - 402174 + 402173 @array_to_pointer - 1953951 + 1953950 @parexpr - 4915712 + 4915709 @arithnegexpr @@ -650,11 +650,11 @@ @unaryplusexpr - 4061 + 4060 @complementexpr - 38188 + 38187 @notexpr @@ -662,7 +662,7 @@ @postincrexpr - 84579 + 84578 @postdecrexpr @@ -678,11 +678,11 @@ @conditionalexpr - 897972 + 897971 @addexpr - 580447 + 580446 @subexpr @@ -722,7 +722,7 @@ @andexpr - 483235 + 483234 @orexpr @@ -734,7 +734,7 @@ @eqexpr - 643440 + 643439 @neexpr @@ -758,7 +758,7 @@ @assignexpr - 1281280 + 1281279 @assignaddexpr @@ -814,11 +814,11 @@ @orlogicalexpr - 1103652 + 1103651 @commaexpr - 167881 + 167880 @subscriptexpr @@ -826,7 +826,7 @@ @callexpr - 238861 + 238857 @vastartexpr @@ -846,7 +846,7 @@ @varaccess - 8255502 + 8255498 @runtime_sizeof @@ -854,7 +854,7 @@ @runtime_alignof - 49552 + 49551 @expr_stmt @@ -862,7 +862,7 @@ @routineexpr - 5726207 + 5726204 @type_operand @@ -878,7 +878,7 @@ @literal - 7984746 + 7985020 @aggregateliteral @@ -890,19 +890,19 @@ @temp_init - 980663 + 980662 @errorexpr - 45186 + 45185 @reference_to - 1880187 + 1880186 @ref_indirect - 2094107 + 2094072 @vacuous_destructor_call @@ -962,11 +962,11 @@ @thisaccess - 1553673 + 1553672 @new_expr - 45897 + 45896 @delete_expr @@ -986,7 +986,7 @@ @type_id - 47589 + 47588 @sizeof_pack @@ -1094,7 +1094,7 @@ @ctordirectinit - 112102 + 112100 @ctorvirtualinit @@ -1110,7 +1110,7 @@ @dtordirectdestruct - 39195 + 39194 @dtorvirtualdestruct @@ -1418,7 +1418,7 @@ @reuseexpr - 844479 + 844478 @istriviallycopyassignable @@ -1550,11 +1550,11 @@ @stmt_expr - 2031828 + 2031827 @stmt_if - 990319 + 990318 @stmt_while @@ -1562,19 +1562,19 @@ @stmt_goto - 157271 + 157264 @stmt_label - 77731 + 77727 @stmt_return - 1238155 + 1238149 @stmt_block - 1724482 + 1724481 @stmt_end_test_while @@ -1598,11 +1598,11 @@ @stmt_decl - 770030 + 770029 @stmt_empty - 428128 + 428127 @stmt_continue @@ -1674,7 +1674,7 @@ @ppd_elif - 21828 + 21827 @ppd_else @@ -1686,15 +1686,15 @@ @ppd_plain_include - 317278 + 317263 @ppd_define - 2743342 + 2743340 @ppd_undef - 100181 + 100180 @ppd_pragma @@ -1706,7 +1706,7 @@ @ppd_line - 18771 + 18770 @ppd_error @@ -1728,6 +1728,10 @@ @ppd_elifndef 1 + + @ppd_embed + 1 + @ppd_warning 13 @@ -1764,11 +1768,11 @@ compilations - 12592 + 12591 id - 12592 + 12591 cwd @@ -1786,7 +1790,7 @@ 1 2 - 12592 + 12591 @@ -1812,11 +1816,11 @@ compilation_args - 1008128 + 1008080 id - 12592 + 12591 num @@ -1824,7 +1828,7 @@ arg - 29150 + 29149 @@ -1883,7 +1887,7 @@ 98 99 - 1336 + 1335 100 @@ -2157,7 +2161,7 @@ 2 3 - 12634 + 12633 3 @@ -2188,7 +2192,7 @@ 2 3 - 8689 + 8688 3 @@ -2203,11 +2207,11 @@ compilation_expanded_args - 1008128 + 1008080 id - 12592 + 12591 num @@ -2215,7 +2219,7 @@ arg - 29150 + 29149 @@ -2274,7 +2278,7 @@ 98 99 - 1336 + 1335 100 @@ -2548,7 +2552,7 @@ 2 3 - 12634 + 12633 3 @@ -2579,7 +2583,7 @@ 2 3 - 8689 + 8688 3 @@ -2904,7 +2908,7 @@ seconds - 19606 + 18516 @@ -2982,54 +2986,54 @@ 12 - - 2 - 3 - 54 - 3 4 - 816 + 980 4 5 - 490 + 381 - 6 - 9 - 217 + 5 + 7 + 163 - 9 + 8 10 217 10 - 12 + 11 + 163 + + + 11 + 15 217 - 12 + 16 + 18 + 108 + + + 18 19 217 - 19 - 21 + 20 + 54 217 - 21 - 52 - 217 - - - 125 - 126 + 133 + 134 54 @@ -3098,42 +3102,47 @@ 3 4 - 925 + 1797 4 5 - 1470 + 599 5 6 - 326 + 217 6 7 - 435 + 544 7 8 - 326 + 217 8 - 10 + 9 + 326 + + + 9 + 18 381 - 11 - 28 + 22 + 49 381 - 30 - 98 - 272 + 94 + 95 + 54 @@ -3178,24 +3187,24 @@ 12 + + 4 + 5 + 54 + 5 6 54 - 6 - 7 + 187 + 188 54 - 204 - 205 - 54 - - - 205 - 206 + 197 + 198 54 @@ -3212,22 +3221,22 @@ 1 2 - 13452 + 12362 2 3 - 4574 + 3757 3 - 16 - 1470 + 4 + 1688 - 33 - 38 - 108 + 4 + 39 + 708 @@ -3243,22 +3252,27 @@ 1 2 - 12852 + 11273 2 3 - 3975 + 4302 3 - 5 - 1797 + 4 + 1470 - 5 - 66 - 980 + 4 + 44 + 1416 + + + 63 + 64 + 54 @@ -3274,17 +3288,12 @@ 1 2 - 16392 + 15630 2 3 - 3158 - - - 3 - 4 - 54 + 2886 @@ -3560,19 +3569,19 @@ compilation_finished - 12592 + 12591 id - 12592 + 12591 cpu_seconds - 9373 + 9656 elapsed_seconds - 220 + 210 @@ -3586,7 +3595,7 @@ 1 2 - 12592 + 12591 @@ -3602,7 +3611,7 @@ 1 2 - 12592 + 12591 @@ -3618,17 +3627,17 @@ 1 2 - 7868 + 8394 2 3 - 1041 + 809 3 - 30 - 462 + 32 + 452 @@ -3644,12 +3653,12 @@ 1 2 - 8741 + 9046 2 3 - 631 + 610 @@ -3665,12 +3674,17 @@ 1 2 - 31 + 42 2 3 - 42 + 10 + + + 3 + 4 + 10 5 @@ -3683,53 +3697,53 @@ 21 - 8 - 9 + 10 + 11 10 - 9 - 10 - 10 - - - 14 - 15 - 10 - - - 19 - 20 + 11 + 12 21 - 28 - 29 + 15 + 16 10 - 76 - 77 + 20 + 21 10 - 180 - 181 + 31 + 32 10 - 215 - 216 + 61 + 62 10 - 299 - 300 + 172 + 173 10 - 300 - 301 + 231 + 232 + 10 + + + 286 + 287 + 10 + + + 321 + 322 10 @@ -3746,12 +3760,17 @@ 1 2 - 31 + 42 2 3 - 42 + 10 + + + 3 + 4 + 10 5 @@ -3764,48 +3783,48 @@ 21 - 8 - 9 + 10 + 11 10 - 9 - 10 - 10 - - - 14 - 15 - 10 - - - 19 - 20 + 11 + 12 21 - 28 - 29 + 15 + 16 10 - 72 - 73 + 20 + 21 10 - 148 - 149 + 31 + 32 10 - 169 - 170 + 61 + 62 10 - 195 - 196 + 165 + 166 + 10 + + + 168 + 169 + 10 + + + 216 + 217 10 @@ -4048,11 +4067,11 @@ locations_default - 46837431 + 46837407 id - 46837431 + 46837407 file @@ -4060,7 +4079,7 @@ beginLine - 7483211 + 7483207 beginColumn @@ -4068,7 +4087,7 @@ endLine - 7484207 + 7484203 endColumn @@ -4086,7 +4105,7 @@ 1 2 - 46837431 + 46837407 @@ -4102,7 +4121,7 @@ 1 2 - 46837431 + 46837407 @@ -4118,7 +4137,7 @@ 1 2 - 46837431 + 46837407 @@ -4134,7 +4153,7 @@ 1 2 - 46837431 + 46837407 @@ -4150,7 +4169,7 @@ 1 2 - 46837431 + 46837407 @@ -4551,12 +4570,12 @@ 1 2 - 4945831 + 4945829 2 3 - 778674 + 778673 3 @@ -4571,7 +4590,7 @@ 12 96 - 561387 + 561386 96 @@ -4592,12 +4611,12 @@ 1 2 - 5008055 + 5008053 2 3 - 1216857 + 1216856 3 @@ -4628,12 +4647,12 @@ 1 2 - 5629551 + 5629548 2 3 - 483109 + 483108 3 @@ -4643,7 +4662,7 @@ 7 25 - 564996 + 564995 25 @@ -4664,7 +4683,7 @@ 1 2 - 7018147 + 7018144 2 @@ -4685,7 +4704,7 @@ 1 2 - 5014278 + 5014275 2 @@ -5106,17 +5125,17 @@ 1 2 - 4943591 + 4943589 2 3 - 782034 + 782033 3 4 - 541973 + 541972 4 @@ -5147,17 +5166,17 @@ 1 2 - 5005069 + 5005066 2 3 - 1220466 + 1220465 3 6 - 631078 + 631077 6 @@ -5183,7 +5202,7 @@ 1 2 - 7035321 + 7035318 2 @@ -5204,7 +5223,7 @@ 1 2 - 5628182 + 5628179 2 @@ -5219,12 +5238,12 @@ 7 25 - 568356 + 568355 25 89 - 224505 + 224504 @@ -5240,7 +5259,7 @@ 1 2 - 5012784 + 5012782 2 @@ -5260,7 +5279,7 @@ 12 72 - 561636 + 561635 72 @@ -5580,15 +5599,15 @@ files - 64949 + 64946 id - 64949 + 64946 name - 64949 + 64946 @@ -5602,7 +5621,7 @@ 1 2 - 64949 + 64946 @@ -5618,7 +5637,7 @@ 1 2 - 64949 + 64946 @@ -5676,7 +5695,7 @@ containerparent - 77268 + 77264 parent @@ -5684,7 +5703,7 @@ child - 77268 + 77264 @@ -5749,7 +5768,7 @@ 1 2 - 77268 + 77264 @@ -5759,11 +5778,11 @@ numlines - 805928 + 805927 element_id - 804808 + 804807 num_lines @@ -5789,7 +5808,7 @@ 1 2 - 803688 + 803687 2 @@ -5810,7 +5829,7 @@ 1 2 - 803688 + 803687 2 @@ -7237,7 +7256,7 @@ fileannotations - 4183599 + 4183401 id @@ -7249,11 +7268,11 @@ name - 58479 + 58477 value - 39354 + 39352 @@ -7508,7 +7527,7 @@ 3 5 - 5039 + 5038 5 @@ -7518,12 +7537,12 @@ 7 9 - 4576 + 4575 9 16 - 4313 + 4312 16 @@ -7538,7 +7557,7 @@ 27 47 - 4818 + 4817 47 @@ -7569,7 +7588,7 @@ 1 2 - 58479 + 58477 @@ -7585,7 +7604,7 @@ 1 2 - 11540 + 11539 2 @@ -7600,7 +7619,7 @@ 4 6 - 4050 + 4049 6 @@ -7671,7 +7690,7 @@ 8 14 - 2956 + 2955 14 @@ -7686,7 +7705,7 @@ 24 51 - 3524 + 3523 51 @@ -7732,7 +7751,7 @@ 1 2 - 39344 + 39342 2 @@ -7798,7 +7817,7 @@ 41 66 - 2977 + 2976 66 @@ -7808,7 +7827,7 @@ 92 113 - 2977 + 2976 113 @@ -7828,15 +7847,15 @@ inmacroexpansion - 150011425 + 150011348 id - 24673501 + 24673488 inv - 3705721 + 3705719 @@ -7850,32 +7869,32 @@ 1 3 - 2209722 + 2209721 3 5 - 1475129 + 1475128 5 6 - 1620535 + 1620534 6 7 - 6583219 + 6583216 7 8 - 8719894 + 8719889 8 9 - 3557413 + 3557411 9 @@ -7901,7 +7920,7 @@ 2 3 - 743309 + 743308 3 @@ -7931,12 +7950,12 @@ 10 11 - 444696 + 444695 11 337 - 307830 + 307829 339 @@ -7956,15 +7975,15 @@ affectedbymacroexpansion - 48740834 + 48740809 id - 7045464 + 7045460 inv - 3803511 + 3803509 @@ -7978,7 +7997,7 @@ 1 2 - 3847105 + 3847103 2 @@ -7998,7 +8017,7 @@ 5 12 - 535215 + 535214 12 @@ -8029,7 +8048,7 @@ 4 7 - 316640 + 316639 7 @@ -8039,7 +8058,7 @@ 9 12 - 342974 + 342973 12 @@ -8094,11 +8113,11 @@ macroinvocations - 40387491 + 40387470 id - 40387491 + 40387470 macro_id @@ -8106,7 +8125,7 @@ location - 5925542 + 5925539 kind @@ -8124,7 +8143,7 @@ 1 2 - 40387491 + 40387470 @@ -8140,7 +8159,7 @@ 1 2 - 40387491 + 40387470 @@ -8156,7 +8175,7 @@ 1 2 - 40387491 + 40387470 @@ -8172,7 +8191,7 @@ 1 2 - 61106 + 61105 2 @@ -8300,7 +8319,7 @@ 1 2 - 5261599 + 5261596 2 @@ -8326,7 +8345,7 @@ 1 2 - 5903376 + 5903373 2 @@ -8347,7 +8366,7 @@ 1 2 - 5925542 + 5925539 @@ -8420,15 +8439,15 @@ macroparent - 33684454 + 33684436 id - 33684454 + 33684436 parent_id - 15941267 + 15941258 @@ -8442,7 +8461,7 @@ 1 2 - 33684454 + 33684436 @@ -8458,22 +8477,22 @@ 1 2 - 7815090 + 7815086 2 3 - 1595836 + 1595835 3 4 - 4707397 + 4707394 4 5 - 1296896 + 1296895 5 @@ -8488,15 +8507,15 @@ macrolocationbind - 6022280 + 6022277 id - 4208238 + 4208236 location - 2272395 + 2272393 @@ -8510,7 +8529,7 @@ 1 2 - 3284817 + 3284816 2 @@ -8525,7 +8544,7 @@ 4 5 - 412640 + 412639 5 @@ -8576,11 +8595,11 @@ macro_argument_unexpanded - 82172776 + 82169662 invocation - 26182583 + 26182114 argument_index @@ -8588,7 +8607,7 @@ text - 341884 + 341868 @@ -8602,22 +8621,22 @@ 1 2 - 9643267 + 9643579 2 3 - 9733979 + 9733520 3 4 - 4982750 + 4982515 4 67 - 1822585 + 1822499 @@ -8633,22 +8652,22 @@ 1 2 - 9825166 + 9825469 2 3 - 9751495 + 9751034 3 4 - 4826677 + 4826449 4 67 - 1779244 + 1779160 @@ -8673,7 +8692,7 @@ 646904 - 2488874 + 2488947 31 @@ -8716,52 +8735,52 @@ 1 2 - 39544 + 39542 2 3 - 62077 + 62074 3 4 - 20934 + 20933 4 5 - 34442 + 34440 5 6 - 39091 + 39089 6 9 - 30749 + 30748 9 15 - 28877 + 28875 15 26 - 25773 + 25772 26 57 - 27025 + 27024 57 517 - 25910 + 25909 518 @@ -8782,12 +8801,12 @@ 1 2 - 242198 + 242187 2 3 - 89513 + 89509 3 @@ -8802,11 +8821,11 @@ macro_argument_expanded - 82172776 + 82169662 invocation - 26182583 + 26182114 argument_index @@ -8814,7 +8833,7 @@ text - 207062 + 207052 @@ -8828,22 +8847,22 @@ 1 2 - 9643267 + 9643579 2 3 - 9733979 + 9733520 3 4 - 4982750 + 4982515 4 67 - 1822585 + 1822499 @@ -8859,22 +8878,22 @@ 1 2 - 12591172 + 12591345 2 3 - 8396548 + 8396151 3 4 - 4208468 + 4208269 4 9 - 986394 + 986347 @@ -8899,7 +8918,7 @@ 646904 - 2488874 + 2488947 31 @@ -8942,17 +8961,17 @@ 1 2 - 21744 + 21743 2 3 - 26751 + 26750 3 4 - 43299 + 43297 4 @@ -8967,12 +8986,12 @@ 6 7 - 18325 + 18324 7 10 - 18883 + 18882 10 @@ -8982,16 +9001,16 @@ 19 51 - 15695 + 15694 51 251 - 15548 + 15547 251 - 1169605 + 1169678 9467 @@ -9008,12 +9027,12 @@ 1 2 - 104630 + 104625 2 3 - 88556 + 88551 3 @@ -9028,15 +9047,15 @@ functions - 4043206 + 4043204 id - 4043206 + 4043204 name - 1689263 + 1689262 kind @@ -9054,7 +9073,7 @@ 1 2 - 4043206 + 4043204 @@ -9070,7 +9089,7 @@ 1 2 - 4043206 + 4043204 @@ -9086,7 +9105,7 @@ 1 2 - 1441362 + 1441361 2 @@ -9112,7 +9131,7 @@ 1 2 - 1686401 + 1686400 2 @@ -9219,26 +9238,26 @@ builtin_functions - 30802 + 30800 id - 30802 + 30800 function_entry_point - 1134667 + 1134648 id - 1130944 + 1130925 entry_point - 1134667 + 1134648 @@ -9252,7 +9271,7 @@ 1 2 - 1127762 + 1127744 2 @@ -9273,7 +9292,7 @@ 1 2 - 1134667 + 1134648 @@ -9283,15 +9302,15 @@ function_return_type - 4060505 + 4060503 id - 4043206 + 4043204 return_type - 617762 + 617761 @@ -9305,7 +9324,7 @@ 1 2 - 4025908 + 4025906 2 @@ -9659,11 +9678,11 @@ function_prototyped - 4041713 + 4041711 id - 4041713 + 4041711 @@ -9821,15 +9840,15 @@ fun_decls - 4200011 + 4199263 id - 4194038 + 4193289 function - 4018690 + 4018688 type_id @@ -9837,11 +9856,11 @@ name - 1687770 + 1687769 location - 2806437 + 2806436 @@ -9855,7 +9874,7 @@ 1 2 - 4194038 + 4193289 @@ -9871,7 +9890,7 @@ 1 2 - 4188064 + 4187316 2 @@ -9892,7 +9911,7 @@ 1 2 - 4194038 + 4193289 @@ -9908,7 +9927,7 @@ 1 2 - 4194038 + 4193289 @@ -9924,12 +9943,12 @@ 1 2 - 3857903 + 3858647 2 5 - 160787 + 160040 @@ -9945,7 +9964,7 @@ 1 2 - 4000396 + 4000394 2 @@ -9966,7 +9985,7 @@ 1 2 - 4018690 + 4018688 @@ -9982,12 +10001,12 @@ 1 2 - 3878312 + 3878435 2 4 - 140377 + 140253 @@ -10003,7 +10022,7 @@ 1 2 - 294445 + 294444 2 @@ -10013,7 +10032,7 @@ 3 5 - 48286 + 48285 5 @@ -10022,7 +10041,7 @@ 364 - 10299 + 10295 1244 @@ -10075,7 +10094,7 @@ 1 2 - 490327 + 490326 2 @@ -10137,22 +10156,22 @@ 1 2 - 1328114 + 1328362 2 3 - 193641 + 193392 3 11 - 129426 + 129550 11 - 3169 - 36587 + 3167 + 36463 @@ -10168,7 +10187,7 @@ 1 2 - 1440864 + 1440863 2 @@ -10194,7 +10213,7 @@ 1 2 - 1598167 + 1598166 2 @@ -10215,7 +10234,7 @@ 1 2 - 1363955 + 1363954 2 @@ -10241,12 +10260,12 @@ 1 2 - 2413180 + 2413303 2 3 - 252132 + 252008 3 @@ -10267,12 +10286,12 @@ 1 2 - 2431847 + 2431971 2 3 - 233963 + 233838 3 @@ -10293,7 +10312,7 @@ 1 2 - 2692318 + 2692317 2 @@ -10314,7 +10333,7 @@ 1 2 - 2767360 + 2767359 2 @@ -10329,11 +10348,11 @@ fun_def - 1418837 + 1418836 id - 1418837 + 1418836 @@ -10362,7 +10381,7 @@ fun_decl_specifiers - 4269578 + 4269576 id @@ -10394,7 +10413,7 @@ 3 4 - 1097511 + 1097510 4 @@ -10607,15 +10626,15 @@ fun_decl_noexcept - 140906 + 140904 fun_decl - 140906 + 140904 constant - 140466 + 140464 @@ -10629,7 +10648,7 @@ 1 2 - 140906 + 140904 @@ -10645,7 +10664,7 @@ 1 2 - 140026 + 140024 2 @@ -10660,11 +10679,11 @@ fun_decl_empty_noexcept - 1160979 + 1160854 fun_decl - 1160979 + 1160854 @@ -10930,11 +10949,11 @@ param_decl_bind - 7295294 + 7294544 id - 7295294 + 7294544 index @@ -10942,7 +10961,7 @@ fun_decl - 3524381 + 3523881 @@ -10956,7 +10975,7 @@ 1 2 - 7295294 + 7294544 @@ -10972,7 +10991,7 @@ 1 2 - 7295294 + 7294544 @@ -11007,12 +11026,12 @@ 343 - 16219 + 16218 622 - 28320 - 28321 + 28316 + 28317 124 @@ -11048,12 +11067,12 @@ 343 - 16219 + 16218 622 - 28320 - 28321 + 28316 + 28317 124 @@ -11070,7 +11089,7 @@ 1 2 - 1506075 + 1505701 2 @@ -11080,7 +11099,7 @@ 3 4 - 600837 + 600712 4 @@ -11106,7 +11125,7 @@ 1 2 - 1506075 + 1505701 2 @@ -11116,7 +11135,7 @@ 3 4 - 600837 + 600712 4 @@ -11136,19 +11155,19 @@ var_decls - 9375077 + 9374326 id - 9368606 + 9367854 variable - 9027368 + 9027363 type_id - 1452936 + 1452935 name @@ -11156,7 +11175,7 @@ location - 6259509 + 6259506 @@ -11170,7 +11189,7 @@ 1 2 - 9368606 + 9367854 @@ -11186,7 +11205,7 @@ 1 2 - 9362135 + 9361383 2 @@ -11207,7 +11226,7 @@ 1 2 - 9368606 + 9367854 @@ -11223,7 +11242,7 @@ 1 2 - 9368606 + 9367854 @@ -11239,12 +11258,12 @@ 1 2 - 8703553 + 8704295 2 5 - 323814 + 323068 @@ -11260,7 +11279,7 @@ 1 2 - 8974353 + 8974348 2 @@ -11281,7 +11300,7 @@ 1 2 - 8922209 + 8922205 2 @@ -11302,12 +11321,12 @@ 1 2 - 8782702 + 8783071 2 4 - 244665 + 244292 @@ -11486,7 +11505,7 @@ 25 - 27139 + 27136 31236 @@ -11611,16 +11630,16 @@ 1 2 - 5758231 + 5758601 2 20 - 471161 + 470788 20 - 2943 + 2940 30116 @@ -11637,12 +11656,12 @@ 1 2 - 5838874 + 5839244 2 2935 - 420635 + 420262 @@ -11658,7 +11677,7 @@ 1 2 - 5961704 + 5961701 2 @@ -11679,7 +11698,7 @@ 1 2 - 6247189 + 6247186 2 @@ -11694,11 +11713,11 @@ var_def - 3763197 + 3763195 id - 3763197 + 3763195 @@ -11716,11 +11735,11 @@ var_decl_specifiers - 488709 + 488708 id - 488709 + 488708 name @@ -11738,7 +11757,7 @@ 1 2 - 488709 + 488708 @@ -11848,19 +11867,19 @@ type_decls - 1629528 + 1629527 id - 1629528 + 1629527 type_id - 1610612 + 1610611 location - 1543659 + 1543658 @@ -11874,7 +11893,7 @@ 1 2 - 1629528 + 1629527 @@ -11890,7 +11909,7 @@ 1 2 - 1629528 + 1629527 @@ -11906,7 +11925,7 @@ 1 2 - 1594309 + 1594308 2 @@ -11948,7 +11967,7 @@ 1 2 - 1521631 + 1521630 2 @@ -11969,7 +11988,7 @@ 1 2 - 1521756 + 1521755 2 @@ -12445,19 +12464,19 @@ usings - 271001 + 270978 id - 271001 + 270978 element_id - 58827 + 58813 location - 26741 + 26740 kind @@ -12475,7 +12494,7 @@ 1 2 - 271001 + 270978 @@ -12491,7 +12510,7 @@ 1 2 - 271001 + 270978 @@ -12507,7 +12526,7 @@ 1 2 - 271001 + 270978 @@ -12523,12 +12542,12 @@ 1 2 - 51126 + 51113 2 5 - 5365 + 5364 5 @@ -12549,12 +12568,12 @@ 1 2 - 51126 + 51113 2 5 - 5365 + 5364 5 @@ -12575,7 +12594,7 @@ 1 2 - 58827 + 58813 @@ -12591,17 +12610,17 @@ 1 2 - 21092 + 21091 2 4 - 2282 + 2293 4 132 - 1946 + 1935 145 @@ -12622,17 +12641,17 @@ 1 2 - 21092 + 21091 2 4 - 2282 + 2293 4 132 - 1946 + 1935 145 @@ -12653,7 +12672,7 @@ 1 2 - 26741 + 26740 @@ -12672,8 +12691,8 @@ 10 - 25368 - 25369 + 25367 + 25368 10 @@ -12693,8 +12712,8 @@ 10 - 5378 - 5379 + 5377 + 5378 10 @@ -12726,15 +12745,15 @@ using_container - 577834 + 577796 parent - 21807 + 21806 child - 271001 + 270978 @@ -12799,22 +12818,22 @@ 1 2 - 96225 + 96210 2 3 - 119800 + 119794 3 4 - 20019 + 20018 4 5 - 26604 + 26603 5 @@ -12829,15 +12848,15 @@ static_asserts - 172750 + 172749 id - 172750 + 172749 condition - 172750 + 172749 message @@ -12863,7 +12882,7 @@ 1 2 - 172750 + 172749 @@ -12879,7 +12898,7 @@ 1 2 - 172750 + 172749 @@ -12895,7 +12914,7 @@ 1 2 - 172750 + 172749 @@ -12911,7 +12930,7 @@ 1 2 - 172750 + 172749 @@ -12927,7 +12946,7 @@ 1 2 - 172750 + 172749 @@ -12943,7 +12962,7 @@ 1 2 - 172750 + 172749 @@ -12959,7 +12978,7 @@ 1 2 - 172750 + 172749 @@ -12975,7 +12994,7 @@ 1 2 - 172750 + 172749 @@ -13437,15 +13456,15 @@ params - 7052246 + 7052243 id - 7011800 + 7011797 function - 3400305 + 3400304 index @@ -13453,7 +13472,7 @@ type_id - 1217355 + 1217354 @@ -13467,7 +13486,7 @@ 1 2 - 7011800 + 7011797 @@ -13483,7 +13502,7 @@ 1 2 - 7011800 + 7011797 @@ -13499,7 +13518,7 @@ 1 2 - 6971355 + 6971351 2 @@ -13520,7 +13539,7 @@ 1 2 - 1470856 + 1470855 2 @@ -13540,7 +13559,7 @@ 5 65 - 145978 + 145977 @@ -13556,7 +13575,7 @@ 1 2 - 1470856 + 1470855 2 @@ -13576,7 +13595,7 @@ 5 65 - 145978 + 145977 @@ -13592,12 +13611,12 @@ 1 2 - 1778617 + 1778616 2 3 - 1029313 + 1029312 3 @@ -13782,7 +13801,7 @@ 1 2 - 817502 + 817501 2 @@ -13916,7 +13935,7 @@ membervariables - 1502979 + 1502978 id @@ -13928,7 +13947,7 @@ name - 642757 + 642756 @@ -14092,11 +14111,11 @@ globalvariables - 492567 + 492566 id - 492567 + 492566 type_id @@ -14118,7 +14137,7 @@ 1 2 - 492567 + 492566 @@ -14134,7 +14153,7 @@ 1 2 - 492567 + 492566 @@ -14278,19 +14297,19 @@ localvariables - 724728 + 724695 id - 724728 + 724695 type_id - 53300 + 53298 name - 101414 + 101409 @@ -14304,7 +14323,7 @@ 1 2 - 724728 + 724695 @@ -14320,7 +14339,7 @@ 1 2 - 724728 + 724695 @@ -14336,7 +14355,7 @@ 1 2 - 28790 + 28789 2 @@ -14346,12 +14365,12 @@ 3 4 - 4021 + 4020 4 6 - 4061 + 4060 6 @@ -14361,7 +14380,7 @@ 12 162 - 4001 + 4000 162 @@ -14382,7 +14401,7 @@ 1 2 - 38250 + 38248 2 @@ -14413,12 +14432,12 @@ 1 2 - 62404 + 62402 2 3 - 16004 + 16003 3 @@ -14428,7 +14447,7 @@ 4 8 - 8130 + 8129 8 @@ -14454,7 +14473,7 @@ 1 2 - 84403 + 84399 2 @@ -14547,15 +14566,15 @@ orphaned_variables - 44035 + 44034 var - 44035 + 44034 function - 40786 + 40785 @@ -14569,7 +14588,7 @@ 1 2 - 44035 + 44034 @@ -16194,15 +16213,15 @@ derivedtypes - 3023724 + 3023723 id - 3023724 + 3023723 name - 1457167 + 1457166 kind @@ -16210,7 +16229,7 @@ type_id - 1942143 + 1942142 @@ -16224,7 +16243,7 @@ 1 2 - 3023724 + 3023723 @@ -16240,7 +16259,7 @@ 1 2 - 3023724 + 3023723 @@ -16256,7 +16275,7 @@ 1 2 - 3023724 + 3023723 @@ -16272,7 +16291,7 @@ 1 2 - 1340932 + 1340931 2 @@ -16298,7 +16317,7 @@ 1 2 - 1457167 + 1457166 @@ -16494,7 +16513,7 @@ 1 2 - 1315918 + 1315917 2 @@ -16525,7 +16544,7 @@ 1 2 - 1316291 + 1316290 2 @@ -16550,11 +16569,11 @@ pointerishsize - 2242063 + 2242062 id - 2242063 + 2242062 size @@ -16576,7 +16595,7 @@ 1 2 - 2242063 + 2242062 @@ -16592,7 +16611,7 @@ 1 2 - 2242063 + 2242062 @@ -17115,15 +17134,15 @@ typedefbase - 1755826 + 1755743 id - 1755826 + 1755743 type_id - 834256 + 834216 @@ -17137,7 +17156,7 @@ 1 2 - 1755826 + 1755743 @@ -17153,22 +17172,22 @@ 1 2 - 659363 + 659332 2 3 - 80760 + 80757 3 6 - 63918 + 63915 6 4525 - 30213 + 30211 @@ -17178,7 +17197,7 @@ decltypes - 814571 + 814570 id @@ -17186,7 +17205,7 @@ expr - 814571 + 814570 kind @@ -17316,7 +17335,7 @@ 1 2 - 814571 + 814570 @@ -17332,7 +17351,7 @@ 1 2 - 814571 + 814570 @@ -17348,7 +17367,7 @@ 1 2 - 814571 + 814570 @@ -17364,7 +17383,7 @@ 1 2 - 814571 + 814570 @@ -17942,15 +17961,15 @@ usertypes - 4137700 + 4137505 id - 4137700 + 4137505 name - 915395 + 915352 kind @@ -17968,7 +17987,7 @@ 1 2 - 4137700 + 4137505 @@ -17984,7 +18003,7 @@ 1 2 - 4137700 + 4137505 @@ -18000,22 +18019,22 @@ 1 2 - 652104 + 652073 2 3 - 158113 + 158105 3 8 - 70325 + 70321 8 32667 - 34852 + 34850 @@ -18031,12 +18050,12 @@ 1 2 - 863858 + 863818 2 10 - 51536 + 51534 @@ -18188,11 +18207,11 @@ usertypesize - 1359659 + 1359595 id - 1359659 + 1359595 size @@ -18214,7 +18233,7 @@ 1 2 - 1359659 + 1359595 @@ -18230,7 +18249,7 @@ 1 2 - 1359659 + 1359595 @@ -18488,11 +18507,11 @@ usertype_alias_kind - 1755826 + 1755743 id - 1755826 + 1755743 alias_kind @@ -18510,7 +18529,7 @@ 1 2 - 1755826 + 1755743 @@ -18541,11 +18560,11 @@ nontype_template_parameters - 761296 + 761283 id - 761296 + 761283 @@ -18625,15 +18644,15 @@ mangled_name - 7910443 + 7910439 id - 7910443 + 7910439 mangled_name - 6349610 + 6349607 is_complete @@ -18651,7 +18670,7 @@ 1 2 - 7910443 + 7910439 @@ -18667,7 +18686,7 @@ 1 2 - 7910443 + 7910439 @@ -18683,7 +18702,7 @@ 1 2 - 6016213 + 6016209 2 @@ -18704,7 +18723,7 @@ 1 2 - 6349610 + 6349607 @@ -18756,59 +18775,59 @@ is_pod_class - 590976 + 590966 id - 590976 + 590966 is_standard_layout_class - 1120585 + 1120532 id - 1120585 + 1120532 is_complete - 1341565 + 1341502 id - 1341565 + 1341502 is_class_template - 231194 + 231183 id - 231194 + 231183 class_instantiation - 1122247 + 1122152 to - 1119207 + 1119154 from - 71524 + 71521 @@ -18822,12 +18841,12 @@ 1 2 - 1117071 + 1117061 2 8 - 2135 + 2093 @@ -18843,12 +18862,12 @@ 1 2 - 20387 + 20386 2 3 - 12834 + 12833 3 @@ -18863,12 +18882,12 @@ 5 7 - 6048 + 6059 7 10 - 5691 + 5680 10 @@ -18893,11 +18912,11 @@ class_template_argument - 2887489 + 2887353 type_id - 1362258 + 1362193 index @@ -18905,7 +18924,7 @@ arg_type - 818791 + 818753 @@ -18919,27 +18938,27 @@ 1 2 - 577750 + 577723 2 3 - 408654 + 408634 3 4 - 249951 + 249939 4 7 - 102684 + 102679 7 113 - 23217 + 23216 @@ -18955,22 +18974,22 @@ 1 2 - 606185 + 606156 2 3 - 422593 + 422573 3 4 - 250782 + 250770 4 113 - 82696 + 82692 @@ -19078,22 +19097,22 @@ 1 2 - 511580 + 511556 2 3 - 166897 + 166889 3 5 - 74922 + 74918 5 46 - 61414 + 61412 46 @@ -19114,17 +19133,17 @@ 1 2 - 720904 + 720870 2 3 - 79593 + 79589 3 22 - 18294 + 18293 @@ -19134,11 +19153,11 @@ class_template_argument_value - 506797 + 506789 type_id - 204506 + 204502 index @@ -19146,7 +19165,7 @@ arg_value - 506662 + 506653 @@ -19160,7 +19179,7 @@ 1 2 - 154818 + 154815 2 @@ -19186,7 +19205,7 @@ 1 2 - 146999 + 146996 2 @@ -19329,7 +19348,7 @@ 1 2 - 506526 + 506518 2 @@ -19350,7 +19369,7 @@ 1 2 - 506662 + 506653 @@ -19360,15 +19379,15 @@ is_proxy_class_for - 48244 + 48241 id - 48244 + 48241 templ_param_id - 45582 + 45580 @@ -19382,7 +19401,7 @@ 1 2 - 48244 + 48241 @@ -19398,7 +19417,7 @@ 1 2 - 44867 + 44865 2 @@ -19413,11 +19432,11 @@ type_mentions - 5911109 + 5911106 id - 5911109 + 5911106 type_id @@ -19425,7 +19444,7 @@ location - 5854796 + 5854793 kind @@ -19443,7 +19462,7 @@ 1 2 - 5911109 + 5911106 @@ -19459,7 +19478,7 @@ 1 2 - 5911109 + 5911106 @@ -19475,7 +19494,7 @@ 1 2 - 5911109 + 5911106 @@ -19609,7 +19628,7 @@ 1 2 - 5809103 + 5809100 2 @@ -19630,7 +19649,7 @@ 1 2 - 5809103 + 5809100 2 @@ -19651,7 +19670,7 @@ 1 2 - 5854796 + 5854793 @@ -19709,26 +19728,26 @@ is_function_template - 1328114 + 1328113 id - 1328114 + 1328113 function_instantiation - 967596 + 967580 to - 967596 + 967580 from - 181523 + 181520 @@ -19742,7 +19761,7 @@ 1 2 - 967596 + 967580 @@ -19758,12 +19777,12 @@ 1 2 - 109834 + 109833 2 3 - 42546 + 42545 3 @@ -19788,11 +19807,11 @@ function_template_argument - 2468730 + 2468689 function_id - 1443897 + 1443873 index @@ -19800,7 +19819,7 @@ arg_type - 296063 + 296058 @@ -19814,22 +19833,22 @@ 1 2 - 777949 + 777936 2 3 - 410501 + 410494 3 4 - 170692 + 170689 4 15 - 84753 + 84752 @@ -19845,22 +19864,22 @@ 1 2 - 796971 + 796958 2 3 - 408606 + 408599 3 4 - 168526 + 168523 4 9 - 69793 + 69792 @@ -19998,12 +20017,12 @@ 1 2 - 173637 + 173634 2 3 - 26164 + 26163 3 @@ -20023,7 +20042,7 @@ 11 76 - 23219 + 23218 79 @@ -20044,12 +20063,12 @@ 1 2 - 255142 + 255137 2 3 - 31918 + 31917 3 @@ -20064,11 +20083,11 @@ function_template_argument_value - 449832 + 449825 function_id - 195502 + 195499 index @@ -20076,7 +20095,7 @@ arg_value - 447158 + 447151 @@ -20090,7 +20109,7 @@ 1 2 - 150418 + 150415 2 @@ -20116,7 +20135,7 @@ 1 2 - 143546 + 143544 2 @@ -20269,7 +20288,7 @@ 1 2 - 444484 + 444477 2 @@ -20290,7 +20309,7 @@ 1 2 - 447158 + 447151 @@ -20311,11 +20330,11 @@ variable_instantiation - 427356 + 427355 to - 427356 + 427355 from @@ -20333,7 +20352,7 @@ 1 2 - 427356 + 427355 @@ -20430,7 +20449,7 @@ 2 3 - 189535 + 189534 3 @@ -20461,7 +20480,7 @@ 2 3 - 179828 + 179827 3 @@ -20869,7 +20888,7 @@ template_template_argument - 9636 + 9635 type_id @@ -20881,7 +20900,7 @@ arg_type - 9047 + 9046 @@ -21100,7 +21119,7 @@ 1 2 - 9026 + 9025 2 @@ -21838,15 +21857,15 @@ routinetypes - 600588 + 600578 id - 600588 + 600578 return_type - 282016 + 282012 @@ -21860,7 +21879,7 @@ 1 2 - 600588 + 600578 @@ -21876,12 +21895,12 @@ 1 2 - 232565 + 232561 2 3 - 34998 + 34997 3 @@ -22262,11 +22281,11 @@ ptrtomembers - 9678 + 9677 id - 9678 + 9677 type_id @@ -22288,7 +22307,7 @@ 1 2 - 9678 + 9677 @@ -22304,7 +22323,7 @@ 1 2 - 9678 + 9677 @@ -22320,7 +22339,7 @@ 1 2 - 7732 + 7731 2 @@ -22341,7 +22360,7 @@ 1 2 - 7732 + 7731 2 @@ -22579,11 +22598,11 @@ funspecifiers - 9694661 + 9694656 func_id - 4002014 + 4002634 spec_id @@ -22601,17 +22620,17 @@ 1 2 - 1525489 + 1526110 2 3 - 505634 + 506256 3 4 - 1034540 + 1033917 4 @@ -22737,11 +22756,11 @@ varspecifiers - 3078855 + 3078853 var_id - 2314866 + 2314865 spec_id @@ -22759,7 +22778,7 @@ 1 2 - 1654293 + 1654292 2 @@ -23405,7 +23424,7 @@ 1 2 - 641034 + 641033 2 @@ -23979,11 +23998,11 @@ attribute_arg_value - 16585 + 16584 arg - 16585 + 16584 value @@ -24001,7 +24020,7 @@ 1 2 - 16585 + 16584 @@ -24135,15 +24154,15 @@ attribute_arg_constant - 71640 + 71584 arg - 71640 + 71584 constant - 71640 + 71584 @@ -24157,7 +24176,7 @@ 1 2 - 71640 + 71584 @@ -24173,7 +24192,7 @@ 1 2 - 71640 + 71584 @@ -24355,7 +24374,7 @@ spec_id - 615273 + 615272 @@ -24594,15 +24613,15 @@ unspecifiedtype - 7228465 + 7228462 type_id - 7228465 + 7228462 unspecified_type_id - 3955719 + 3955717 @@ -24616,7 +24635,7 @@ 1 2 - 7228465 + 7228462 @@ -24632,12 +24651,12 @@ 1 2 - 2475280 + 2475279 2 3 - 1114436 + 1114435 3 @@ -24657,11 +24676,11 @@ member - 4182340 + 4182338 parent - 541973 + 541972 index @@ -24669,7 +24688,7 @@ child - 4177735 + 4177733 @@ -24754,7 +24773,7 @@ 2 3 - 83256 + 83255 3 @@ -24947,7 +24966,7 @@ 1 2 - 4177735 + 4177733 @@ -24963,7 +24982,7 @@ 1 2 - 4173131 + 4173128 2 @@ -24978,15 +24997,15 @@ enclosingfunction - 114982 + 114976 child - 114982 + 114976 parent - 69094 + 69091 @@ -25000,7 +25019,7 @@ 1 2 - 114982 + 114976 @@ -25016,12 +25035,12 @@ 1 2 - 37471 + 37469 2 3 - 24479 + 24478 3 @@ -25041,15 +25060,15 @@ derivations - 473796 + 473788 derivation - 473796 + 473788 sub - 452201 + 452194 index @@ -25057,11 +25076,11 @@ super - 234021 + 234017 location - 35167 + 35166 @@ -25075,7 +25094,7 @@ 1 2 - 473796 + 473788 @@ -25091,7 +25110,7 @@ 1 2 - 473796 + 473788 @@ -25107,7 +25126,7 @@ 1 2 - 473796 + 473788 @@ -25123,7 +25142,7 @@ 1 2 - 473796 + 473788 @@ -25139,12 +25158,12 @@ 1 2 - 435785 + 435778 2 9 - 16416 + 16415 @@ -25160,12 +25179,12 @@ 1 2 - 435785 + 435778 2 8 - 16416 + 16415 @@ -25181,12 +25200,12 @@ 1 2 - 435785 + 435778 2 9 - 16416 + 16415 @@ -25202,12 +25221,12 @@ 1 2 - 435785 + 435778 2 8 - 16416 + 16415 @@ -25362,12 +25381,12 @@ 1 2 - 224273 + 224269 2 1655 - 9748 + 9747 @@ -25383,12 +25402,12 @@ 1 2 - 224273 + 224269 2 1655 - 9748 + 9747 @@ -25404,7 +25423,7 @@ 1 2 - 233581 + 233577 2 @@ -25425,12 +25444,12 @@ 1 2 - 228707 + 228703 2 81 - 5314 + 5313 @@ -25446,7 +25465,7 @@ 1 2 - 26333 + 26332 2 @@ -25482,7 +25501,7 @@ 1 2 - 26333 + 26332 2 @@ -25518,7 +25537,7 @@ 1 2 - 35167 + 35166 @@ -25534,7 +25553,7 @@ 1 2 - 28533 + 28532 2 @@ -25559,11 +25578,11 @@ derspecifiers - 475556 + 475548 der_id - 473356 + 473348 spec_id @@ -25581,7 +25600,7 @@ 1 2 - 471156 + 471148 2 @@ -25627,11 +25646,11 @@ direct_base_offsets - 447056 + 447049 der_id - 447056 + 447049 offset @@ -25649,7 +25668,7 @@ 1 2 - 447056 + 447049 @@ -25846,19 +25865,19 @@ frienddecls - 695869 + 767816 id - 695869 + 767816 type_id - 42140 + 54358 decl_id - 77341 + 100626 location @@ -25876,7 +25895,7 @@ 1 2 - 695869 + 767816 @@ -25892,7 +25911,7 @@ 1 2 - 695869 + 767816 @@ -25908,7 +25927,7 @@ 1 2 - 695869 + 767816 @@ -25924,46 +25943,41 @@ 1 2 - 6160 + 5584 2 3 - 13843 + 24978 3 - 7 - 3553 + 8 + 4806 - 7 - 12 - 3418 + 8 + 17 + 4738 - 12 - 20 - 3621 + 17 + 27 + 4467 - 20 - 32 - 3283 + 27 + 45 + 4298 - 33 - 50 - 3757 + 45 + 81 + 4738 - 50 - 80 - 3757 - - - 101 - 120 + 102 + 121 744 @@ -25980,46 +25994,41 @@ 1 2 - 6160 + 5584 2 3 - 13843 + 24978 3 - 7 - 3553 + 8 + 4806 - 7 - 12 - 3418 + 8 + 17 + 4738 - 12 - 20 - 3621 + 17 + 27 + 4467 - 20 - 32 - 3283 + 27 + 45 + 4298 - 33 - 50 - 3757 + 45 + 81 + 4738 - 50 - 80 - 3757 - - - 101 - 120 + 102 + 121 744 @@ -26036,7 +26045,7 @@ 1 2 - 40786 + 53004 2 @@ -26057,32 +26066,32 @@ 1 2 - 47792 + 67287 2 3 - 5889 + 8258 3 - 8 - 5957 + 9 + 9206 - 8 - 15 - 6024 + 9 + 24 + 7615 - 15 - 40 - 6024 + 24 + 127 + 7547 - 40 - 164 - 5652 + 135 + 191 + 710 @@ -26098,32 +26107,32 @@ 1 2 - 47792 + 67287 2 3 - 5889 + 8258 3 - 8 - 5957 + 9 + 9206 - 8 - 15 - 6024 + 9 + 24 + 7615 - 15 - 40 - 6024 + 24 + 127 + 7547 - 40 - 164 - 5652 + 135 + 191 + 710 @@ -26139,12 +26148,12 @@ 1 2 - 76664 + 99408 2 - 5 - 676 + 6 + 1218 @@ -26164,7 +26173,7 @@ 2 - 20370 + 22496 372 @@ -26185,7 +26194,7 @@ 2 - 1148 + 1509 135 @@ -26206,7 +26215,7 @@ 2 - 2132 + 2841 338 @@ -26217,19 +26226,19 @@ comments - 11208577 + 11208571 id - 11208577 + 11208571 contents - 4294966 + 4294963 location - 11208577 + 11208571 @@ -26243,7 +26252,7 @@ 1 2 - 11208577 + 11208571 @@ -26259,7 +26268,7 @@ 1 2 - 11208577 + 11208571 @@ -26275,7 +26284,7 @@ 1 2 - 3920500 + 3920498 2 @@ -26301,7 +26310,7 @@ 1 2 - 3920500 + 3920498 2 @@ -26327,7 +26336,7 @@ 1 2 - 11208577 + 11208571 @@ -26343,7 +26352,7 @@ 1 2 - 11208577 + 11208571 @@ -26353,15 +26362,15 @@ commentbinding - 3905317 + 3905315 id - 3342686 + 3342684 element - 3740174 + 3740172 @@ -26375,7 +26384,7 @@ 1 2 - 3281208 + 3281207 2 @@ -26396,7 +26405,7 @@ 1 2 - 3575031 + 3575029 2 @@ -26411,15 +26420,15 @@ exprconv - 9634075 + 9634070 converted - 9633969 + 9633964 conversion - 9634075 + 9634070 @@ -26433,7 +26442,7 @@ 1 2 - 9633864 + 9633859 2 @@ -26454,7 +26463,7 @@ 1 2 - 9634075 + 9634070 @@ -26464,22 +26473,22 @@ compgenerated - 9923438 + 9923433 id - 9923438 + 9923433 synthetic_destructor_call - 1666649 + 1666648 element - 1241202 + 1241201 i @@ -26487,7 +26496,7 @@ destructor_call - 1666649 + 1666648 @@ -26501,7 +26510,7 @@ 1 2 - 826181 + 826180 2 @@ -26527,7 +26536,7 @@ 1 2 - 826181 + 826180 2 @@ -26685,7 +26694,7 @@ 1 2 - 1666649 + 1666648 @@ -26701,7 +26710,7 @@ 1 2 - 1666649 + 1666648 @@ -26719,7 +26728,7 @@ name - 4555 + 4554 @@ -26749,7 +26758,7 @@ 1 2 - 3724 + 3723 2 @@ -26780,7 +26789,7 @@ namespacembrs - 2110397 + 2110396 parentid @@ -26788,7 +26797,7 @@ memberid - 2110397 + 2110396 @@ -26878,7 +26887,7 @@ 1 2 - 2110397 + 2110396 @@ -26888,11 +26897,11 @@ exprparents - 19456297 + 19456287 expr_id - 19456297 + 19456287 child_index @@ -26900,7 +26909,7 @@ parent_id - 12941381 + 12941374 @@ -26914,7 +26923,7 @@ 1 2 - 19456297 + 19456287 @@ -26930,7 +26939,7 @@ 1 2 - 19456297 + 19456287 @@ -27048,12 +27057,12 @@ 1 2 - 7395565 + 7395561 2 3 - 5083216 + 5083213 3 @@ -27074,12 +27083,12 @@ 1 2 - 7395565 + 7395561 2 3 - 5083216 + 5083213 3 @@ -27094,11 +27103,11 @@ expr_isload - 6898016 + 6898013 expr_id - 6898016 + 6898013 @@ -27183,11 +27192,11 @@ iscall - 5790819 + 5790816 caller - 5790819 + 5790816 kind @@ -27205,7 +27214,7 @@ 1 2 - 5790819 + 5790816 @@ -27367,15 +27376,15 @@ namequalifiers - 3042587 + 3042586 id - 3042587 + 3042586 qualifiableelement - 3042587 + 3042586 qualifyingelement @@ -27397,7 +27406,7 @@ 1 2 - 3042587 + 3042586 @@ -27413,7 +27422,7 @@ 1 2 - 3042587 + 3042586 @@ -27429,7 +27438,7 @@ 1 2 - 3042587 + 3042586 @@ -27445,7 +27454,7 @@ 1 2 - 3042587 + 3042586 @@ -27461,7 +27470,7 @@ 1 2 - 3042587 + 3042586 @@ -27477,7 +27486,7 @@ 1 2 - 3042587 + 3042586 @@ -27498,7 +27507,7 @@ 2 3 - 8173 + 8172 3 @@ -27534,7 +27543,7 @@ 2 3 - 8173 + 8172 3 @@ -27683,11 +27692,11 @@ varbind - 8255502 + 8255498 expr - 8255502 + 8255498 var @@ -27705,7 +27714,7 @@ 1 2 - 8255502 + 8255498 @@ -27721,7 +27730,7 @@ 1 2 - 171554 + 171553 2 @@ -27751,7 +27760,7 @@ 7 9 - 80824 + 80823 9 @@ -27776,11 +27785,11 @@ funbind - 5806092 + 5806089 expr - 5803625 + 5803622 fun @@ -27798,7 +27807,7 @@ 1 2 - 5801158 + 5801155 2 @@ -27849,11 +27858,11 @@ expr_allocator - 44949 + 44948 expr - 44949 + 44948 func @@ -27875,7 +27884,7 @@ 1 2 - 44949 + 44948 @@ -27891,7 +27900,7 @@ 1 2 - 44949 + 44948 @@ -28122,15 +28131,15 @@ expr_cond_guard - 897972 + 897971 cond - 897972 + 897971 guard - 897972 + 897971 @@ -28144,7 +28153,7 @@ 1 2 - 897972 + 897971 @@ -28160,7 +28169,7 @@ 1 2 - 897972 + 897971 @@ -28170,15 +28179,15 @@ expr_cond_true - 897968 + 897967 cond - 897968 + 897967 true - 897968 + 897967 @@ -28192,7 +28201,7 @@ 1 2 - 897968 + 897967 @@ -28208,7 +28217,7 @@ 1 2 - 897968 + 897967 @@ -28218,15 +28227,15 @@ expr_cond_false - 897972 + 897971 cond - 897972 + 897971 false - 897972 + 897971 @@ -28240,7 +28249,7 @@ 1 2 - 897972 + 897971 @@ -28256,7 +28265,7 @@ 1 2 - 897972 + 897971 @@ -28266,11 +28275,11 @@ values - 13541403 + 13541557 id - 13541403 + 13541557 str @@ -28288,7 +28297,7 @@ 1 2 - 13541403 + 13541557 @@ -28334,11 +28343,11 @@ valuetext - 6637663 + 6637698 id - 6637663 + 6637698 text @@ -28356,7 +28365,7 @@ 1 2 - 6637663 + 6637698 @@ -28386,7 +28395,7 @@ 7 - 593719 + 593717 27872 @@ -28397,15 +28406,15 @@ valuebind - 13649553 + 13649707 val - 13541403 + 13541557 expr - 13649553 + 13649707 @@ -28419,7 +28428,7 @@ 1 2 - 13451245 + 13451399 2 @@ -28440,7 +28449,7 @@ 1 2 - 13649553 + 13649707 @@ -28842,19 +28851,19 @@ initialisers - 2244827 + 2244826 init - 2244827 + 2244826 var - 978849 + 978848 expr - 2244827 + 2244826 location @@ -28872,7 +28881,7 @@ 1 2 - 2244827 + 2244826 @@ -28888,7 +28897,7 @@ 1 2 - 2244827 + 2244826 @@ -28904,7 +28913,7 @@ 1 2 - 2244827 + 2244826 @@ -28972,7 +28981,7 @@ 1 2 - 978841 + 978840 2 @@ -28993,7 +29002,7 @@ 1 2 - 2244827 + 2244826 @@ -29009,7 +29018,7 @@ 1 2 - 2244827 + 2244826 @@ -29025,7 +29034,7 @@ 1 2 - 2244827 + 2244826 @@ -29072,7 +29081,7 @@ 1 2 - 443423 + 443422 2 @@ -29134,15 +29143,15 @@ expr_ancestor - 1672612 + 1672611 exp - 1672612 + 1672611 ancestor - 837121 + 837120 @@ -29156,7 +29165,7 @@ 1 2 - 1672612 + 1672611 @@ -29192,11 +29201,11 @@ exprs - 25213263 + 25213250 id - 25213263 + 25213250 kind @@ -29204,7 +29213,7 @@ location - 10586811 + 10586806 @@ -29218,7 +29227,7 @@ 1 2 - 25213263 + 25213250 @@ -29234,7 +29243,7 @@ 1 2 - 25213263 + 25213250 @@ -29412,7 +29421,7 @@ 1 2 - 8904644 + 8904640 2 @@ -29443,7 +29452,7 @@ 1 2 - 9044063 + 9044058 2 @@ -29453,7 +29462,7 @@ 3 32 - 768384 + 768383 @@ -29463,15 +29472,15 @@ expr_reuse - 844479 + 844478 reuse - 844479 + 844478 original - 844479 + 844478 value_category @@ -29489,7 +29498,7 @@ 1 2 - 844479 + 844478 @@ -29505,7 +29514,7 @@ 1 2 - 844479 + 844478 @@ -29521,7 +29530,7 @@ 1 2 - 844479 + 844478 @@ -29537,7 +29546,7 @@ 1 2 - 844479 + 844478 @@ -29589,11 +29598,11 @@ expr_types - 25213263 + 25213250 id - 25213263 + 25213250 typeid @@ -29615,7 +29624,7 @@ 1 2 - 25213263 + 25213250 @@ -29631,7 +29640,7 @@ 1 2 - 25213263 + 25213250 @@ -29776,15 +29785,15 @@ new_allocated_type - 45897 + 45896 expr - 45897 + 45896 type_id - 27213 + 27212 @@ -29798,7 +29807,7 @@ 1 2 - 45897 + 45896 @@ -29819,7 +29828,7 @@ 2 3 - 14385 + 14384 3 @@ -29897,11 +29906,11 @@ param_ref_to_this - 24953 + 24952 expr - 24953 + 24952 @@ -31292,11 +31301,11 @@ typeid_bind - 47589 + 47588 expr - 47589 + 47588 type_id @@ -31314,7 +31323,7 @@ 1 2 - 47589 + 47588 @@ -33124,11 +33133,11 @@ stmts - 6349657 + 6349654 id - 6349657 + 6349654 kind @@ -33136,7 +33145,7 @@ location - 2676168 + 2676166 @@ -33150,7 +33159,7 @@ 1 2 - 6349657 + 6349654 @@ -33166,7 +33175,7 @@ 1 2 - 6349657 + 6349654 @@ -33404,7 +33413,7 @@ 1 2 - 2218095 + 2218094 2 @@ -33435,7 +33444,7 @@ 1 2 - 2593461 + 2593460 2 @@ -33605,15 +33614,15 @@ if_then - 990319 + 990318 if_stmt - 990319 + 990318 then_id - 990319 + 990318 @@ -33627,7 +33636,7 @@ 1 2 - 990319 + 990318 @@ -33643,7 +33652,7 @@ 1 2 - 990319 + 990318 @@ -33653,15 +33662,15 @@ if_else - 435786 + 435785 if_stmt - 435786 + 435785 else_id - 435786 + 435785 @@ -33675,7 +33684,7 @@ 1 2 - 435786 + 435785 @@ -33691,7 +33700,7 @@ 1 2 - 435786 + 435785 @@ -34116,7 +34125,7 @@ 2 3 - 407749 + 407748 3 @@ -34142,7 +34151,7 @@ 2 3 - 407749 + 407748 3 @@ -34571,11 +34580,11 @@ stmtparents - 5611096 + 5611093 id - 5611096 + 5611093 index @@ -34583,7 +34592,7 @@ parent - 2374341 + 2374340 @@ -34597,7 +34606,7 @@ 1 2 - 5611096 + 5611093 @@ -34613,7 +34622,7 @@ 1 2 - 5611096 + 5611093 @@ -34756,7 +34765,7 @@ 2 3 - 515764 + 515763 3 @@ -34797,7 +34806,7 @@ 2 3 - 515764 + 515763 3 @@ -35250,15 +35259,15 @@ blockscope - 1640355 + 1640354 block - 1640355 + 1640354 enclosing - 1423690 + 1423689 @@ -35272,7 +35281,7 @@ 1 2 - 1640355 + 1640354 @@ -35489,11 +35498,11 @@ preprocdirects - 5395215 + 5395212 id - 5395215 + 5395212 kind @@ -35501,7 +35510,7 @@ location - 5392103 + 5392101 @@ -35515,7 +35524,7 @@ 1 2 - 5395215 + 5395212 @@ -35531,7 +35540,7 @@ 1 2 - 5395215 + 5395212 @@ -35679,7 +35688,7 @@ 1 2 - 5391979 + 5391976 26 @@ -35700,7 +35709,7 @@ 1 2 - 5392103 + 5392101 @@ -35732,7 +35741,7 @@ 1 2 - 648003 + 648002 2 @@ -35768,11 +35777,11 @@ preproctrue - 438183 + 438182 branch - 438183 + 438182 @@ -35790,19 +35799,19 @@ preproctext - 4341758 + 4341756 id - 4341758 + 4341756 head - 2947935 + 2947934 body - 1679307 + 1679306 @@ -35816,7 +35825,7 @@ 1 2 - 4341758 + 4341756 @@ -35832,7 +35841,7 @@ 1 2 - 4341758 + 4341756 @@ -35848,7 +35857,7 @@ 1 2 - 2749813 + 2749812 2 @@ -35869,7 +35878,7 @@ 1 2 - 2866919 + 2866918 2 @@ -35890,7 +35899,7 @@ 1 2 - 1531463 + 1531462 2 @@ -35916,7 +35925,7 @@ 1 2 - 1535694 + 1535693 2 @@ -35936,15 +35945,15 @@ includes - 317352 + 317337 id - 317352 + 317337 included - 58458 + 58456 @@ -35958,7 +35967,7 @@ 1 2 - 317352 + 317337 @@ -35974,7 +35983,7 @@ 1 2 - 28929 + 28928 2 @@ -36012,6 +36021,54 @@ + + embeds + 1 + + + id + 1 + + + included + 1 + + + + + id + included + + + 12 + + + 1 + 2 + 1 + + + + + + + included + id + + + 12 + + + 1 + 2 + 1 + + + + + + + link_targets 816 @@ -36062,11 +36119,11 @@ link_parent - 30225290 + 30224787 element - 3843783 + 3843719 link_target @@ -36084,17 +36141,17 @@ 1 2 - 527072 + 527063 2 9 - 26773 + 26772 9 10 - 3289937 + 3289882 From b35271a2ca0ea72b9486f10a15b0f0781a340e6f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 20 Jan 2026 15:10:58 +0100 Subject: [PATCH 260/263] C++: Add upgrade and downgrade script --- .../old.dbscheme | 2489 +++++++++++++++++ .../preprocdirects.ql | 13 + .../semmlecode.cpp.dbscheme | 2483 ++++++++++++++++ .../upgrade.properties | 4 + .../old.dbscheme | 2483 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2489 +++++++++++++++++ .../upgrade.properties | 2 + 7 files changed, 9963 insertions(+) create mode 100644 cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme create mode 100644 cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/preprocdirects.ql create mode 100644 cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme new file mode 100644 index 00000000000..9439176c1d1 --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme @@ -0,0 +1,2489 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/preprocdirects.ql b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/preprocdirects.ql new file mode 100644 index 00000000000..c8f927943bd --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/preprocdirects.ql @@ -0,0 +1,13 @@ +class PreprocessorDirective extends @preprocdirect { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from PreprocessorDirective ppd, int kind, int kind_new, Location l +where + preprocdirects(ppd, kind, l) and + if kind = 17 then kind_new = /* ppd_warning */ 18 else kind_new = kind +select ppd, kind_new, l diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..83100310bf7 --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme @@ -0,0 +1,2483 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties new file mode 100644 index 00000000000..a1d5935c29b --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties @@ -0,0 +1,4 @@ +description: Support embed preprocessor directive +compatibility: partial +embeds.rel: delete +preprocdirects.rel: run preprocdirects.qlo diff --git a/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme new file mode 100644 index 00000000000..83100310bf7 --- /dev/null +++ b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme @@ -0,0 +1,2483 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..9439176c1d1 --- /dev/null +++ b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.cpp.dbscheme @@ -0,0 +1,2489 @@ + +/*- Compilations -*/ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * gcc -c f1.c f2.c f3.c + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + /** + * An invocation of the compiler. Note that more than one file may + * be compiled per invocation. For example, this command compiles + * three source files: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#keyset[id, num] +compilation_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * The expanded arguments that were passed to the extractor for a + * compiler invocation. This is similar to `compilation_args`, but + * for a `@someFile` argument, it includes the arguments from that + * file, rather than just taking the argument literally. + */ +#keyset[id, num] +compilation_expanded_args( + int id : @compilation ref, + int num : int ref, + string arg : string ref +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The time taken by the extractor for a compiler invocation. + * + * For each file `num`, there will be rows for + * + * kind | seconds + * ---- | --- + * 1 | CPU seconds used by the extractor frontend + * 2 | Elapsed seconds during the extractor frontend + * 3 | CPU seconds used by the extractor backend + * 4 | Elapsed seconds during the extractor backend + */ +#keyset[id, num, kind] +compilation_time( + int id : @compilation ref, + int num : int ref, + /* kind: + 1 = frontend_cpu_seconds + 2 = frontend_elapsed_seconds + 3 = extractor_cpu_seconds + 4 = extractor_elapsed_seconds + */ + int kind : int ref, + float seconds : float ref +); + +/** + * An error or warning generated by the extractor. + * The diagnostic message `diagnostic` was generated during compiler + * invocation `compilation`, and is the `file_number_diagnostic_number`th + * message generated while extracting the `file_number`th file of that + * invocation. + */ +#keyset[compilation, file_number, file_number_diagnostic_number] +diagnostic_for( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int ref +); + +/** + * If extraction was successful, then `cpu_seconds` and + * `elapsed_seconds` are the CPU time and elapsed time (respectively) + * that extraction took for compiler invocation `id`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties new file mode 100644 index 00000000000..2289f3b5a5f --- /dev/null +++ b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties @@ -0,0 +1,2 @@ +description: Support embed preprocessor directive +compatibility: partial From 701569bb2000e95d85a3f752e18d1005dcdc064b Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Tue, 20 Jan 2026 16:05:51 +0100 Subject: [PATCH 261/263] Update cpp/ql/lib/semmle/code/cpp/Preprocessor.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- cpp/ql/lib/semmle/code/cpp/Preprocessor.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll b/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll index 726670c81a6..a0dfdcb9382 100644 --- a/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll +++ b/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll @@ -330,7 +330,7 @@ class PreprocessorLine extends PreprocessorDirective, @ppd_line { } /** - * A C23 or C++26`#embed` preprocessor directive. For example, the following code + * A C23 or C++26 `#embed` preprocessor directive. For example, the following code * contains one `Embed` directive: * ```cpp * char arr[] = { From fa926456efc72453b5b3ca28484cc5487dadf496 Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 20 Jan 2026 18:16:03 +0100 Subject: [PATCH 262/263] python: add changenote --- .../2026-01-20-support-ListElement-in-python-MaD.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/lib/change-notes/2026-01-20-support-ListElement-in-python-MaD.md diff --git a/python/ql/lib/change-notes/2026-01-20-support-ListElement-in-python-MaD.md b/python/ql/lib/change-notes/2026-01-20-support-ListElement-in-python-MaD.md new file mode 100644 index 00000000000..cf51193efe9 --- /dev/null +++ b/python/ql/lib/change-notes/2026-01-20-support-ListElement-in-python-MaD.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* It is now possible to refer to list elements in the Python models-as-data language, via the `ListElement` path. From f76d85c9c663da2375be4e5aee55007305706d08 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 20 Jan 2026 15:08:47 +0100 Subject: [PATCH 263/263] Address review comments --- .../codeql/rust/frameworks/stdlib/Stdlib.qll | 55 ++++++++++--------- .../typeinference/FunctionOverloading.qll | 49 ++++++++--------- .../internal/typeinference/TypeInference.qll | 8 ++- 3 files changed, 56 insertions(+), 56 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index b5c1dff3bea..c5999305e16 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -22,6 +22,34 @@ private class StartswithCall extends Path::SafeAccessCheck::Range, MethodCall { } } +/** + * A flow summary for the [reflexive implementation of the `From` trait][1]. + * + * Blanket implementations currently don't have a canonical path, so we cannot + * use models-as-data for this model. + * + * [1]: https://doc.rust-lang.org/std/convert/trait.From.html#impl-From%3CT%3E-for-T + */ +private class ReflexiveFrom extends SummarizedCallable::Range { + ReflexiveFrom() { + exists(ImplItemNode impl | + impl.resolveTraitTy().(Trait).getCanonicalPath() = "core::convert::From" and + this = impl.getAssocItem("from") and + resolvePath(this.getParam(0).getTypeRepr().(PathTypeRepr).getPath()) = + impl.getBlanketImplementationTypeParam() + ) + } + + override predicate propagatesFlow( + string input, string output, boolean preservesValue, string model + ) { + input = "Argument[0]" and + output = "ReturnValue" and + preservesValue = true and + model = "ReflexiveFrom" + } +} + /** * The [`Option` enum][1]. * @@ -300,30 +328,3 @@ class Vec extends Struct { /** Gets the type parameter representing the element type. */ TypeParam getElementTypeParam() { result = this.getGenericParamList().getTypeParam(0) } } - -// Blanket implementations currently don't have a canonical path, so we cannot -// use models-as-data for this model. -private class ReflexiveFrom extends SummarizedCallable::Range { - ReflexiveFrom() { - exists(ImplItemNode impl | - impl.resolveTraitTy().(Trait).getCanonicalPath() = "core::convert::From" and - this = impl.getAnAssocItem() and - impl.isBlanketImplementation() and - this.getParam(0) - .getTypeRepr() - .(TypeMention) - .resolveType() - .(TypeParamTypeParameter) - .getTypeParam() = impl.getTypeParam(0) - ) - } - - override predicate propagatesFlow( - string input, string output, boolean preservesValue, string model - ) { - input = "Argument[0]" and - output = "ReturnValue" and - preservesValue = true and - model = "ReflexiveFrom" - } -} diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index 1bacd2b9584..0e4bc272905 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -35,6 +35,12 @@ private predicate implSiblingCandidate( rootType = selfTy.resolveType() } +pragma[nomagic] +private predicate blanketImplSiblingCandidate(ImplItemNode impl, Trait trait) { + impl.isBlanketImplementation() and + trait = impl.resolveTraitTy() +} + /** * Holds if `impl1` and `impl2` are a sibling implementations of `trait`. We * consider implementations to be siblings if they implement the same trait for @@ -44,40 +50,31 @@ private predicate implSiblingCandidate( */ pragma[inline] private predicate implSiblings(TraitItemNode trait, Impl impl1, Impl impl2) { - exists(Type rootType, TypeMention selfTy1, TypeMention selfTy2 | - impl1 != impl2 and - implSiblingCandidate(impl1, trait, rootType, selfTy1) and - implSiblingCandidate(impl2, trait, rootType, selfTy2) and - // In principle the second conjunct below should be superflous, but we still - // have ill-formed type mentions for types that we don't understand. For - // those checking both directions restricts further. Note also that we check - // syntactic equality, whereas equality up to renaming would be more - // correct. - typeMentionEqual(selfTy1, selfTy2) and - typeMentionEqual(selfTy2, selfTy1) + impl1 != impl2 and + ( + exists(Type rootType, TypeMention selfTy1, TypeMention selfTy2 | + implSiblingCandidate(impl1, trait, rootType, selfTy1) and + implSiblingCandidate(impl2, trait, rootType, selfTy2) and + // In principle the second conjunct below should be superflous, but we still + // have ill-formed type mentions for types that we don't understand. For + // those checking both directions restricts further. Note also that we check + // syntactic equality, whereas equality up to renaming would be more + // correct. + typeMentionEqual(selfTy1, selfTy2) and + typeMentionEqual(selfTy2, selfTy1) + ) + or + blanketImplSiblingCandidate(impl1, trait) and + blanketImplSiblingCandidate(impl2, trait) ) } -pragma[nomagic] -private predicate isBlanketImpl(ImplItemNode impl, Trait trait) { - impl.isBlanketImplementation() and - trait = impl.resolveTraitTy() -} - /** * Holds if `impl` is an implementation of `trait` and if another implementation * exists for the same type. */ pragma[nomagic] -private predicate implHasSibling(ImplItemNode impl, Trait trait) { - implSiblings(trait, impl, _) - or - exists(ImplItemNode other | - isBlanketImpl(impl, trait) and - isBlanketImpl(other, trait) and - impl != other - ) -} +private predicate implHasSibling(ImplItemNode impl, Trait trait) { implSiblings(trait, impl, _) } /** * Holds if type parameter `tp` of `trait` occurs in the function `f` with the name diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 2d768a8e4af..28d381d5cb8 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -1293,7 +1293,7 @@ private class BorrowKind extends TBorrowKind { // a constrained type parameter; we should be checking the constraints in this case private predicate typeCanBeUsedForDisambiguation(Type t) { not t instanceof TypeParameter or - t.(TypeParamTypeParameter).getTypeParam() = any(TypeParam tp | not exists(tp.getATypeBound())) + t.(TypeParamTypeParameter).getTypeParam() = any(TypeParam tp | not tp.hasTypeBound()) } /** @@ -2241,7 +2241,8 @@ private module MethodResolution { methodCallBlanketLikeCandidate(mc, _, impl, _, blanketPath, blanketTypeParam) and // Only apply blanket implementations when no other implementations are possible; // this is to account for codebases that use the (unstable) specialization feature - // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html) + // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html), as well as + // cases where our blanket implementation filtering is not precise enough. (mcc.hasNoCompatibleNonBlanketTarget() or not impl.isBlanketImplementation()) | borrow.isNoBorrow() @@ -2878,7 +2879,8 @@ private module NonMethodResolution { fc.resolveCallTargetBlanketLikeCandidate(impl, pos, blanketPath, blanketTypeParam) and // Only apply blanket implementations when no other implementations are possible; // this is to account for codebases that use the (unstable) specialization feature - // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html) + // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html), as well as + // cases where our blanket implementation filtering is not precise enough. (fc.hasNoCompatibleNonBlanketTarget() or not impl.isBlanketImplementation()) ) }